En el desarrollo de este curso se va usar Microsoft Visual Basic 6.0,. ¿Porque? ...
La programación en Visual Basic (VB) es sencilla, que tiene un entorno gráfico ...
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
PROGRAMACIÓN EN VISUAL BASIC 6.0
ORIENTADO A SISTEMAS DE CONTROL AUTOMÁTICO, PROCESAMIENTO DIGITAL DE SEÑALES y MATEMÁTICAS
H D C L
Pág. 0
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
PRESENTACIÓN ¿Programación?, ¿Para que?, son seguramente las preguntas que un estudiante debe hacerse cuando se lo piden que simulen un sistema de control, un filtro digital, o cualquier programa de esta índole, en este curso ayudaremos a enfrentar a estos problemas, porque a veces parecen bastante difíciles de resolver. La programación de sistemas de control, filtros digitales o algún problema de matemáticas, son bastante importantes, ya que nos permite ver la simulación de dichos sistemas, es decir, ¿Cómo posiblemente se van a desempeñar cuando sean implementados en la práctica? Claro, para el caso de la matemática, estos son exactos. Cuando realizamos una simulación, debemos ver si esta está completa, esta bien programada, ya que ésta es la labor que desempeña un ingeniero, el ingeniero debe evaluar desde todo punto de vista las ventajas y desventajas de un sistema diseñado, no solo debe seguir reglas, esto lo harían mejor los robots y/o computadoras. En el desarrollo de este curso se va usar Microsoft Visual Basic 6.0, ¿Porque?, debido a que es un lenguaje de programación de alto nivel, es orientado a objetos, permite crear aplicaciones del tipo win32 de manera sencilla y rápida. Para el desarrollo de supone que un estudiante tiene nociones básicas de programación, mejor aun si saben programar en otros lenguajes de programación, ya que esto facilitará el aprendizaje.
H D C L
Pág. 1
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas I. TEMAS A TRATAR: ¾ PROGRAMACIÓN DE APLICACIONES BASICAS ¾ PROGRAMACIÓN DE ALGUNOS PROBLEMAS MATEMÁTICOS ¾ PROGRAMACIÓN DE SISTEMAS DE CONTROL ¾ PROGRAMACIÓN
PARA
PROCESAMIENTO
DIGITAL
DE
SEÑALES II. OBJETIVOS: Dar a conocer la programación de los temas mencionados a los estudiantes, para que lo apliquen y practiquen. III. EQUIPO Y SOFTWARE ¾ Hardware: Una computadora personal. ¾ Software: Visual Studio 6.0-> Visual Basic 6.0 IV. FUNDAMENTO TEÓRICO DE LOS TEMAS A TRATAR 1. PROGRAMACIÓN EN VISUAL BASIC 6.0 La programación en Visual Basic (VB) es sencilla, que tiene un entorno gráfico el cual nos permite manipular botones, cuadros de imagen, cuadros de texto, entre muchos otros, además Visual Basic maneja instrucciones, funciones, palabras clave entre otras con las cuales nos permite crear casi cualquier tipo de aplicaciones para el entorno de Microsoft Windows. 2. PROGRAMACION DE PROBLEMAS MATEMÁTICOS La
programación
matemática
en
cualquier
lenguaje
de
programación no especializado en matemáticas no es tan sencilla, ya sean matrices, gráficas, máximo común divisor, multiplicación y suma de polinomios, factor primo, binomio de Newton, factorial, ente otros. 3. PROGRAMACIÓN DE SISTEMAS DE CONTROL Para programar sistemas de control se requiere conocer o tener nociones de Modelamiento Matemático, Ecuaciones Diferenciales y en Diferencias,
Transformada de Laplace y Z, Arrays, Polinomios,
Sistemas de Control (respuesta a Escalón, diagramas de Bode, Controladores PID, entre otros)
H D C L
Pág. 2
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas 4. PROGRAMACIÓN PARA PROCESAMIENTO DIGITAL DE SEÑALES Para realizar programas relacionados a procesamiento digital de señales se requiere tener nociones de Ecuaciones en Diferencias, Transformada Z, Muestreo, convolución y correlación, filtros digitales, FFT, entre otros 5. METODOLOGÍA DE DESARROLLO DEL CURSO Los temas mencionados en los cuatro puntos anteriores se desarrollarán en este curso, conjuntamente con los participantes. No solo se desarrollarán programas, se abordarán también la creación de: librerías de clase, funciones, controles Activex.
H D C L
Pág. 3
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas V.
PROGRAMACIÓN EN VISUAL BASIC
•
Iniciando la creación de aplicaciones sencillas: Para iniciar Visual Basic ir a: Inicio->Programas->Microsoft Visual Studio 6.0->Microsoft Visual Basic 6.0 Aparecerá la siguiente ventana:
Fig.1 Para empezar a desarrollar aplicaciones sencillas seleccionamos: “EXE estándar” (“EXE estándar” es una aplicación que se puede compilar) en la ventana de Nuevo Proyecto, luego seleccionamos Abrir:
Fig.2 Aparecerá la ventana que se muestra en Fig.3: H D C L
Pág. 4
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.3 •
Primer programa: Desarrollaremos un pequeño programa que nos permita Escribir mensajes y recibir saludos: Empezamos dibujando tres botones (CommandButton), tres etiquetas (Label), una caja de texto (Textbox) (Fig. 4), de tal manera que los controles estean distribuidos de forma parecida a la mostrada en Fig.5.
Fig.4
Fig.5
Cada control tiene propiedades (véase Fig.6):
H D C L
Pág. 5
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.6
Siendo la propiedad más importante el (Nombre), ya que ésta se usará para identificar durante la programación. También la propiedad Caption es importante (véase Fig.7) vea lo que sucede cuando se cambia dicha propiedad (Fig.8).
Fig.7 Fig.8
Con dicho conocimiento asigne los siguientes valores a las propiedades de los diferentes controles que se han dibujado: Control (Nombre) Form1 Label1 Label2 Label3 CommandButton1 CommandButton2 CommandButton3
Propiedad Caption Caption Caption Caption Caption Caption Caption
Valor de Propiedad Primer Programa Nombre Saludo Mensaje Salir
Cuando termine de asignar dichas propiedades, el formulario quedará así como se muestra en la Fig.9.
Fig.9
H D C L
Pág. 6
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Luego escribimos el código fuente, para ello podemos seleccionar en la ventana explorador de proyectos o mas directamente hacer doble clic sobre el control al que se quiere agregar código, empezamos con el Boton Saludo: Private Sub Command1_Click() Nom = Text1.Text Label2.Caption = "Hola " & Nom & ", Bienvenido a Visual Basic" End Enseguida Sub agregamos código a Mensaje: Private Sub Command2_Click() Label3.Caption = "Visual Basic es bastante sencillo y tu lo aprenderás rápidamente" Finalmente agregamos código a Salir: End Sub Private Sub Command3_Click() End End Sub
, Luego ejecutamos presionando la tecla F5 o bien un click en entonces tenemos lo que se muestra en Fig.10, luego escribimos nuestro nombre y hacemos click en Saludo, luego click en Mensaje :
(Fig. 11), y para salir hacemos click en Salir, o en
Fig.10
Fig.11
¿Que les pareció? Bastante sencillo ¿verdad?
•
Programa 2: Insertamos controles de manera que queden dispuestos tal como se muestra en Fig.12: Usaremos un nuevo control llamado CheckBox, el cual nos permite realizar programas donde sean necesarios hacer selecciones múltiples. También usaremos el control llamado Frame, llamado también Control Contenedor, el cual nos permite agrupar de manera visual varios controles.
H D C L
Pág. 7
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Luego asignamos los valores a las propiedades de cada uno de los controles que se han insertado. Control (Nombre) Form1 Label1 Text1 CommandButton1 CommandButton2 Frame1 Check1 Check2- Check10 Text2 CommandButton3
Propiedad Caption Caption Text Caption Caption Caption Caption Caption Text Caption
Valor de Propiedad Lo que quiero aprender a Programar Nombre : Capturar Salir Lo que quiero programar Programas Básicos (Tal como se muestra en Fig.12) Aceptar
Fig.12 Con este programa aprenderemos a cambiar la propiedad ForeColor de ciertos controles, en este caso de los Check (véase Fig.13).
Fig.13
H D C L
Pág. 8
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas El código fuente de la aplicación se agregará en clase. El resultado debe ser parecido a lo que se muestra en Fig.13. Escribimos nuestro Nombre, luego click en Capturar, en seguida seleccionamos lo que deseamos aprender y finalmente si hacemos click en Aceptar saldrá un cuadro de diálogo con un mensaje (Fig.14):
Fig.14 • Programa 3: A continuación desarrollaremos un programa para manejo de cadenas de texto, para ello insertaremos los siguientes controles:
2 Label (etiquetas) 5 Text box (cajas de texto) 5 CommandButton (botones)
De tal manera que queden dispuestos tal como se muestra en Fig.15 (El valor de la propiedad Caption de los Botones, etiquetas deben ser cambiados tal como aparecen en la figura) (revise el ejemplo anterior):
Fig.15 El código fuente se agregará durante el desarrollo del curso, cuando ejecutemos, el resultado debe ser parecido al mostrado en Fig.16:
H D C L
Pág. 9
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.16 Este ejemplo es muy útil, ya que nos permitirá desarrollar programas que realicen operaciones con polinomios y matrices.
• Programa 4: En seguida desarrollaremos un programa que nos permitirá realizar operaciones lógicas binarias como son: AND, OR y XOR, como se supone esto implica el uso de tablas, para ello usaremos un nuevo componente llamado MSFlexGrid, junto a esto aprenderemos a manipular arrays unidimensionales y bidimensionales, para ello insertamos los siguientes controles:
1 Label (etiqueta) 2 Frame (Controles contenedores) 3 OptionButton (botones de opciones) 3 CommandButton (botones) 2 MSFlexGrid (Tablas), siendo necesario agregar el control MSFlexGrid en la ventana de controles, para ello se debe seguir el procedimiento que se da a continuación: ¾ Botón derecho sobre la ventana de controles, luego seleccionar Componentes… , tal como se muestra en Fig.17:
H D C L
Pág. 10
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.17
¾ Luego aparecerá la ventana que se muestra en Fig. 18, allí se debe seleccionar Microsoft FlexGrid Control 6.0, finalmente click en Aceptar:
Fig.18 ¾ En la ventana de controles aparecerá el icono MSFlexGrid:
H D C L
Pág. 11
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.19
¾ Con esto hemos acabado de agregar un nuevo control. Una vez insertado las Tablas, se debe fijar las dimensiones de las mismas, la primera Tabla tendrá 4 filas y 2 columnas (Fig.22), esto lo fijamos en el cuadro que aparece en Fig.21, dicho cuadro aparecerá cuando seleccionamos (Personalizado), esto en la ventana de propiedades (Fig.20):
Fig.20
Fig.21
H D C L
Pág. 12
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Para la segunda Tabla hacemos lo mismo, pero en este caso solo tendrá 1 columna y 4 filas (Fig.22). Una vez terminado el diseño, el formulario deberá quedar tal como se muestra en la Fig. 22, por supuesto la propiedad Caption de los diferentes controles deben ser cambiados. Nota: para que la etiqueta de los botones aparezca como p.ej. Salir en la propiedad Caption se debe escribir: &Salir Luego se agregará el código, y finalmente el programa ejecutado debe tener la apariencia de la Fig.23.
Fig.22
Fig.23
Trabajo: averiguar como se puede modificar el ancho y alto de las celdas.
H D C L
Pág. 13
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas •
Programa 5: Con este último programa básico aprenderemos a graficar funciones matemáticas, para ello insertamos los siguientes controles: 2 CommandButton (botones) 1 PictureBox (cuadro para imágenes) El formulario debe quedar parecido a la que se muestra en la Fig.24:
Fig.24
Luego implementaremos el código, el programa ejecutado debe ser como tal como se muestra en la Fig.25: Nota: La función que se ha graficado es: F(i) = Sin(i)+0.5*Sin(3*i)
Fig.25
H D C L
Pág. 14
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas VI.
PROGRAMACIÓN DE PROBLEMAS MATEMÁTICOS La programación de problemas matemáticos nos permitirá tener una visión mas clara de cómo se programan las diferentes operaciones, fórmulas, propiedades, etc. que existen en la matemática. Los programas que se desarrollarán nos permitirán entender e implementar programas mas avanzados, como son los sistemas de control y procesamiento digital de señales. En este curso básicamente abordaremos los siguientes puntos: ¾ Factorial, binomio de Newton (sc) y trinomio (opcional). ¾ Máximo común divisor. (opcional) ¾ Multiplicación y suma de matrices, determinante de matrices.(sc & pds) ¾ Multiplicación y suma de polinomios. (sc) ¾ Graficador de Funciones matemáticas: escala lineal y logarítmica.(sc & pds) ¾ Detector de raíces de funciones matemáticas explícitas. (opcional) ¾ Funciones trigonométricas (series de McClaurin) (opcional) ¾ Series de Fourier de Funciones Periódicas. (opcional) ¾ Teorema de Fermat. (opcional) ¾ Truco y otros. (opcional) Los puntos a los que se agregaron (opcional), no se desarrollará en clase. Además: sc: Sistemas de Control pds: Procesamiento Digital de Señales
• Factorial, binomio de Newton y trinomio: Implementaremos un programa que permita realizar las operaciones mencionadas en el subtítulo, junto a ello aprenderemos a crear funciones. Para este ejemplo insertamos los siguientes controles: ¾ ¾ ¾ ¾
4 3 6 2
botones etiquetas cajas de texto lineas
Los controles los insertamos de tal manera que quede parecida a Fig.26.
H D C L
Pág. 15
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.26
Fig.27
Luego le agregaremos el código. H D C L
Pág. 16
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Ahora aprenderemos a agregaremos funciones, para ello seguimos el siguiente procedimiento: 9 En la barra de menú seleccionamos Herramientas. 9 Luego Agregar procedimiento… 9 Enseguida se mostrará la siguiente ventana:
Fig.28
En esta ventana escribimos el nombre de la función, también seleccionamos si va ser privado o público, para nuestro caso el Nombre: será Fac, esto debido a que esta función obtendrá la factorial de un número, en Tipo seleccionaremos Función, y en Alcance seleccionaremos Público, tal como se muestra en la siguiente figura:
Fig.29
9 Luego Aceptar. En la ventana de código se agregará automáticamente lo siguiente: Public Function Fac() End Function Luego le modificamos para que quede de la siguiente manera:
H D C L
Pág. 17
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Public Function Fac(ByVal pp As Double) If pp = 0 Then Fac = 1 Else Fac = pp * Fac(pp - 1) End If End Function Creamos una segunda función llamada Com, que se usará para realizar la combinatoria de 2 números, esto deberá tener la siguiente forma. Public Function Com(ByVal nn As Double, ByVal mm As Double) Com = Fac(nn) / (Fac(nn - mm) * Fac(mm)) End Function Luego agregamos el código correspondiente para que pueda desarrollar el binomio de Newton y el Trinomio. También crearemos una tercera función, esto será para arreglar la presentación del desarrollo del binomio y del trinomio, esto se desarrollará junto con los participantes. Las cajas de texto en las que se mostrarán los resultados del Binomio y Trinomio tienen la propiedad Multiline en verdadero (True) (véase Fig. 30) lo que quiere decir que se puede mostrar varias líneas en la misma caja. Aquí aprenderemos a usar la instrucción vbCrlf
Fig.30
Los resultados del programa serán como los que se muestran en la Fig.27.
• Multiplicación y Suma de Polinomios: Este es uno de los programas más importantes para comprender los Sistemas de Control (ya que allí se trabajan con expresiones polinómicas en “s” donde “s” es el operador de Laplace) Con este programa aprenderemos a crear módulos. Nota: un módulo contiene rutinas/funciones generales y re-usables. El mismo módulo puede ser usado en varios programas. Para agregar módulos a nuestro programa procedemos de la siguiente manera: H D C L
Pág. 18
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
¾ Vamos a la ventana de proyecto, hacemos Clic con el botón derecho del Mouse sobre Form1, luego seleccionamos Agregar, luego seleccionamos Módulo (Fig.31), en seguida se displaya la ventana mostrada en Fig. 32, donde seleccionamos Abrir, luego en la ventana de proyecto aparecerá una nueva carpeta con nombre Módulos. Fig.31, Fig.32 y Fig.33.
Fig.31
Fig.32
¾ Para agregar código en el módulo simplemente hacemos doble click en Module1 (Module1). H D C L
Pág. 19
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.33
Para este programa se implementarán los módulos siguientes:
Módulo Módulo Módulo Módulo Módulo Módulo
Vector detectar sumas detectar productos multiplicar polinomios sumar polinomios multiplicar y Módulo sumar
Módulo Vector: se usa para convertir una expresión de la forma vectorial: a un array.
[3 5 2]
‘3*x^2+5*x+2
Const(2)=3 Const(1)=5 Const(0)=2 Gra= 2
‘3*x^2 ‘5*x ‘2 ‘Grado del polinomio
Módulo detectar sumas: se usa para encontrar los diferentes sumandos que puede tener una expresión, por ejemplo: [3 5 2]*[1 2 3]+[2 1 5]*[3 6 1]+[5 2] La expresión anterior lo desglosa en cadenas de sumandos, es decir: Sum(1)= [3 5 2]*[1 2 3] Sum(2)= [2 1 5]*[3 6 1] Sum(3)= [5 2] Num_sum= 3 ‘número de sumandos Módulo detectar productos: se usa para encontrar productos que puedan haber en una expresión polinómica, por ejemplo: Sum(1)= [3 5 2]*[1 2 3]* [2 1 5]*[2 1] La expresión anterior lo desglosa de la siguiente manera: Mul(1)= [3 5 2] Mul(2)= [1 2 3] Mul(3)= [2 1 5] Mul(4)= [2 1] Num_pro=4 ‘numero de multiplicandos Módulo multiplicar polinomios: multiplica 2 polinomios, por ejemplo se quiere multiplicar las siguientes expresiones: H D C L
Pág. 20
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Mul(1)= [3 5 2] Mul(2)= [1 2 3] Mul(3)= [2 1 5] Mult_pol Mul(1),Mul(2)
‘Multiplicación
Res(1)= [3 11 21 19 6]
‘Resultado 1
Mult_pol Res(1),Mul(3)
‘Multiplicación del ‘resultado y la ‘tercera expresión
Res(2)= [6 25 68 114 136 101 30]
‘resultado ‘final
Módulo sumar polinomios: suma dos expresiones polinómicas, por ejemplo se desea sumar las siguientes operaciones: Sum(1)= [1 5 4] Sum(2)= [6 3] Sum_pol Sum(1),Sum(2) ‘Suma Sum(1) y Sum(2) Res= [1 11 7]
‘Resultado de la suma
Módulos multiplicar y sumar: simplemente realizan operaciones complejas que involucran sumas y productos a la vez, por ejemplo: [3 5 2]*[1 2 3]+[2 1 5]*[3 6 1]+[5 2] Res= [9 26 44 55 13] Para ello hace uso de los 5 módulos anteriores. El resultado final será un programa que tendrá la apariencia parecida a la mostrada en Fig.34. Tarea: Desarrollar módulos que reconozcan expresiones con paréntesis, por ejemplo: [1 2 3]*([1 5 2]*([1 5 3 1]+[1 9 6 2])+[9 5 1])
H D C L
Pág. 21
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.34
• Multiplicación, suma, determinante de matrices: Implementaremos los siguientes módulos: Módulo para identificar matrices. Módulo para obtener determinante Módulo para multiplicar matrices Este programa nos permitirá obtener la determinante de una matriz cuadrada de dimensiones NxN. La multiplicación se realiza para matrices de MxN y NxP, quedando como resultado una matriz de dimensión MxP. El diseño del programa debe ser parecido al que se muestra en Fig.35, allí podemos ver que las matrices se ingresan como si fueran texto, el módulo que lo convierte en matriz es justamente el Módulo para identificar matrices. El resultado tanto de la multiplicación como de la suma se muestra en un formato parecido a las matrices de entrada, esto es cuestión de arreglar y ordenar los componentes de la matriz que resulta después de la operación.
H D C L
Pág. 22
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.35
Tarea: agregar la Función Inversa(A), el resultado debe ser como se muestra:
H D C L
Pág. 23
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas • Programa Graficador de Funciones Matemáticas (escala lineal y logarítmica): Se desarrollará un programa que grafique cualquier función matemática, ya sea en escala lineal o logarítmica, este programa también es de mucha importancia, ya que nos permitirá graficar la respuesta al escalón unitario, las gráficas de bode (Sistemas de Control), además para la respuestas de los filtros digitales, entre otros que se desarrollarán en el transcurso del curso. Este programa también será capaz de detectar el máximo y mínimo valor de una función, y en base a ello la escala vertical será automática y la escala horizontal será dada y se podrá elegir entre lineal y logarítmica. Se hará uso de un nuevo componente: ScriptControl, el cual nos permitirá evaluar una función cualesquiera. También una de las características es que la variable, rango, paso, y la función se ingresan en una misma caja de texto, aquí procedemos de manera similar al programa anterior (Operaciones con matrices) para identificar, cual es cual. Los resultados deben ser parecidos a los mostrados en Fig.37 y Fig.38.
Fig.37
H D C L
Pág. 24
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.38 Para el caso de la escala lineal, el rango se define como sigue: F=0:0.1:50 Lo que significa es que: -El límite inferior horizontal será: 0 - El límite superior horizontal será: 50 - El paso será cada: 0.1 ‘esto para fines de graficar Para el caso de la escala logarítmica, el rango se define como sigue: w=-1:0.01:3 Lo que significa es que: -El límite inferior horizontal será: 10^(-1) - El límite superior horizontal será: 10^3 - El paso será cada: 10^(0.01) ‘esto para fines de graficar
H D C L
Pág. 25
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas • Programa para convertir un número con Punto Flotante en Binario (ANSI/IEEE Std. 754-1985) (32bits: Single Point): Insertar, ordenar y arreglar controles, de tal manera que se parezca a la Fig.39.
Fig.39 La representación con punto flotante es similar a la notación científica, excepto que se trabaja en base 2, en lugar de base 10. El formato más común es ANSI/IEEE Std. 754-1985. Este estándar define el formato para números de 32 bits llamados de precisión simple, también existe para números de 64 bits llamados de precisión doble. Estos 32 bits forman el número con punto flotante, v, mediante la siguiente relación:
v = (−1) S × M × 2( E −127) Donde: S es el valor del signo, M es el valor de la mantisa, y E es el valor del exponente. Los 32 bits se dividen en tres grupos: -
Los bits del 0 al 22 forman la mantisa Los bits del 23 al 30 forman el exponente (0 al 255) El bit 31 es el signo (0: positivo y 1: negativo)
Ejemplo: 0 00000111 11000000000000000000000
+
7
+ 1.75 × 2(7 − 127) = +1.316554 × 10−36
0.75
La mantisa tiene la siguiente forma:
M = 1 + m 22 × 2−1 + m 21 × 2−2 + m 20 × 2−3 + m19 × 2−3 + K H D C L
Pág. 26
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Lo descrito hasta ahora permitirá comprender la representación en binario de los números con punto flotante de precisión simple, esto mismo se implementa en el programa para finalmente tener el resultado mostrado en la Fig.40.
Fig.40
Prefijos usados para nombrar a los objetos o controles: Prefijo cbo chk cmd dir drv fil fra frm grd hsb img lbl lin lst mnu mod ole opt pic res shp tmr txt typ vsb
H D C L
Tipo de Objeto o Control ComboBox CheckBox CommandButton DirListBox DriveListBox FileListBox Frame Form Grid HScrollbar Image Label Line Listbox Menu Module OLE OptionButton PictureBox Resource Shape Timer TextBox User-defined data type VScrollbar
Pág. 27
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas VII.
PROGRAMACIÓN DE SISTEMAS DE CONTROL: 1. CONTROL DE PROCESOS DINÁMICOS Variables en un Proceso: Estudiar el comportamiento de un proceso es analizar las variables involucradas y sus relaciones entre ellas. Véase Fig. 41
Fig.41 Las variables pueden ser: o
Externas o entradas: Son determinados por otros procesos o por el ambiente donde se encuentra el proceso.
o
Variables manipuladas o de control: u, Si son usadas para influir en la dinámica del proceso. Perturbaciones: d, Si son no controlables provenientes de otros subsistemas.
Internas: Son dependientes de las entradas al proceso. Estamos interesados en evaluar el comportamiento de estas variables del proceso:
Salidas o variables medidas: y, Si son sensadas y proporcionan información de la evolución del proceso. Variables controladas: z, Si los objetivos de control están basados en ellos. Pueden ser salidas o no. Variables de estado: x, mínimo conjunto de variables internas que permiten la computación de cualquier otra variable interna si las entradas son conocidas.
Objetivos del Control: El objetivo de un sistema de control es forzar un conjunto dado de variables de proceso, para que se comporten de una manera deseada y prescrita, cumpliendo para ello algunos requerimientos en el dominio del tiempo o en el dominio de la frecuencia. Los siguientes son objetivos del control:
H D C L
Regulación (rechazo de las perturbaciones) Seguimiento de referencia.
Pág. 28
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Generación de una secuencia de procedimientos (Para el encendido y apagado). Adaptación (Cambiando algunos parámetros ajustables). Detección de defectos o faltas (Para evitar daños al proceso o proporcionando re-configuración). Supervisión (Cambiando las condiciones de operación, la estructura o los componentes). Coordinación (Proporcionando Puntos fijos) Aprendizaje (Extrayendo algunos conocimientos de la experiencia).
Modos de operación del Control: Cualquier proceso controlado puede operar en una variedad de situaciones tales como encendido/apagado, transferencia de ciertas condiciones de operación a otras nuevas, o bajo la guía de un operador. Todo esto significa diferentes modos de operación requiriendo para ello diferentes estrategias de control: o o
Control Manual: Si las variables manipuladas son determinadas por el operador. Control Automático: Donde las variables manipuladas son gobernadas por el controlador, puede ser logrado de dos formas:
Control en lazo abierto: No hay retroalimentación del proceso y las variables de control son determinadas por el sistema de control basándose en la información proporcionada por el operador o las medidas de las entradas. Control en lazo cerrado: El controlador determina las variables manipuladas basándose en las referencias y los objetivos introducidos por el operador y las medidas del proceso.
2. PRINCIPIOS DE MODELAMIENTO DE UN PROCESOS DINÁMICO Modelos dinámicos Empíricos y Teóricos: Los modelos dinámicos describen cómo cambia el comportamiento de un proceso con el tiempo. Los modelos empíricos son esencialmente formas de curvas del comportamiento del proceso observado, como tal, pueden ser desarrollados relativamente rápidos. Son modelos que se aproximan al proceso, pero éste modelo no describe al proceso. Los modelos teóricos son derivados a partir de principios físicos, químicos, eléctricos o mecánicos, son modelos que sí describen al proceso. La desventaja está en obtenerlos, ya que son desafiantes y se requiere de bastante tiempo. Variables conservadas y ecuaciones de conservación: Los modelos se obtienen a partir de las ecuaciones de conservación. Las variables que se conservan en un proceso son: H D C L
Pág. 29
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
-
Masa. Masa del componente i (balance de especias). Energía. Momentum.
El balance de las ecuaciones de conservación se obtienen a partir de la siguiente definición:
Acumulación = Entrada – Salida + Generación – Consumición
Buena práctica de Ingeniería de procesos y de control: Implica los siguientes pasos: -
Figura del proceso con etiquetas apropiadas. Unidades usadas en el modelo. Asunciones hechas en la obtención del modelo. Detalles de la derivación del modelo paso-a-paso. Una ecuación diferencial final que describa al modelo dinámico, incluyendo las condiciones iniciales
Un ejemplo sencillo: El proceso mostrado en Fig.42 es un tanque que tiene un líquido fluyendo de la parte superior, saliendo del tanque por la parte inferior. Como las variables lo indican, la tasa del flujo de la entrada tanto como el de la salida cambian con el tiempo. El área transversal del tanque es constante, mas no la altura, lo que implica que el volumen del tanque es cambiante y está relacionado con la altura del mismo. Figura del proceso con etiquetas apropiadas:
Fig.42
Variables con unidades:
H D C L
-
Flujo de entrada del líquido
F (t ) [=] m3 / s
-
Densidad del líquido
ρ (t ) [=] Kg / m3 Pág. 30
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas -
Nivel de la altura del líquido
h (t ) [ = ] m
-
Área transversal del tanque
AC [=] m 2
-
Volumen del líquido Tiempo
V (t ) [ =] m3 t [=] s
Asunciones: -
El proceso de modelado es restringido por el volumen y el flujo del líquido. El líquido puede entrar y salir del tanque sólo a través de las corrientes de flujo mostrados (no por evaporación). El área transversal del tanque es constante. Los líquidos son incompresibles y así la densidad es constante
ρ0 (t ) = ρ1(t ) = ρ (t ) = ρ
Detalles paso-a-paso: Desarrollando el balance de masa para este proceso:
d (ρ (t )V (t ) ) dt ρ 0 (t ) F0 (t ) ρ1 (t ) F1(t )
-
Masa que se acumula:
-
Masa que ingresa:
-
Masa que sale: No se genera ni consume la masa.
Usando la definición de balanceo y las asunciones, se obtiene:
dV (t ) = F0 (t ) − F1 (t ) dt Sabiendo que: V (t ) = AC h(t ) Luego tenemos la siguiente ecuación diferencial, que es el modelo matemático del tanque:
AC
dh(t ) = F0 (t ) − F1 (t ) dt
Como se sabe, una ecuación diferencial sin condiciones límites y/o iniciales es incompleta. Para modelos dinámicos usados en el proceso de control, las condiciones mas útiles son las condiciones iniciales, o aquellas que se definen la condición del proceso en un tiempo ( t = 0 ). Supongamos que conocemos la altura inicial del líquido que es ( hs ), o:
h(0) = hs El modelo dinámico del proceso con condiciones iniciales se convierte en:
AC
H D C L
dh(t ) = F0 (t ) − F1(t ) dt
donde
h(0) = hs
Pág. 31
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas El flujo de salida puede ser proporcional a la altura, o bien a la raíz cuadrada de la altura (siendo éste último de mayor precisión). Caso 1:
F1(t ) = α1h(t )
⇒
AC
dh(t ) = F0 (t ) − α1h(t ) dt
con h(0) = hs
Como se puede ver el modelo es una ecuación diferencial lineal. Caso 2:
F1(t ) = α 2 h(t )
⇒
AC
dh(t ) = F0 (t ) − α 2 h(t ) dt
con h(0) = hs
En éste último caso el modelo se convierte en una ecuación diferencial no lineal. 3. LINEALIZACIÓN DE MODELOS NO LINEALES: La linealización consiste en aproximar una función no lineal por una función lineal, esto no es mas usar la expansión en series de Taylor de la función no lineal, pero truncadas en la primera derivada. La linealización nos permitirá diseñar controladores para un cierto proceso con ciertas condiciones iniciales. Linealización de funciones con una variable: Una función no lineal: F [ x(t )] puede ser aproximado por:
F [ x(t )] = F ( xs ) +
dF ( xs )[ x(t ) − xs ] dx
Linealización de funciones con dos o más variables: Una función no lineal: F [ x1(t ), x2 (t ),L , xn (t )] puede ser aproximado por:
F [ x1(t ), x2 (t ),L, xn (t )] = F ( x1s , x2 s ,L, xns ) + +
∂F ( x1s , x2 s ,L, xns )[ x1(t ) − x1s ] ∂x1
∂F ( x1s , x2 s ,L, xns )[ x2 (t ) − x2 s ] ∂x2
+L +
H D C L
∂F ( x1s , x2 s ,L, xns )[ xn (t ) − xns ] ∂xn
Pág. 32
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Ejemplo de aplicación: Sea la ecuación diferencial no lineal de primer orden:
dx(t ) = F [ x(t )] + k dt
con x(0) = xs
Reemplazando la aproximación de la función F [ x(t )] en la ecuación diferencial, y evaluando en t=0, se tiene:
dx(0) dF = 0 = F ( xs ) + ( xs )[ x(0) − xs ] + k ⇒ F ( xs ) = −k dt dx44 1 42444 3 0 Q x ( 0) = xs
Lo que nos lleva a:
d [ x(t ) − xs ] dF = ( xs )[ x(t ) − xs ] ⇒ dt dx
dX (t ) dF = ( xs ) X (t ) con dt dx
X (t ) = x(t ) − xs
Transformándose así ODE no lineal en una ODE lineal:
dX (t ) dF = kX (t ) con k = ( xs ) dt dx ODE: Ordinary Differential Equation Ecuación diferencial Ordinaria Como se pudo ver la linealización de modelos matemáticos en muy útil. Aplicación de la linealización para la obtención de Ecuaciones de Estado Lineales: Sea el conjunto de ODE’s no lineales que describen un proceso:
dxi (t ) = fi ( xi (t ), u j (t ), t ) i = 1,L, n ∧ dt yk (t ) = gi ( xi (t ), u j (t ), t ) k = 1,L, p
j = 1,L, m
Para llevar éste conjunto de ecuaciones no lineales a variables de estado lineales de la forma:
dx = A x + Bu dt y = C x + Du Se procede de la siguiente manera:
H D C L
Pág. 33
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
aij =
∂fi 0 0 ( x , u ) i, j = 1,L, n ∂x j
bij =
∂fi 0 0 ( x , u ) i = 1,L, n ∂u j
j = 1,L, m
cij =
∂gi 0 0 ( x , u ) i = 1,L, p ∂x j
j = 1,L, n
dij =
∂gi 0 0 ( x , u ) i = 1,L, p ∂u j
j = 1,L, m
Donde u 0 es el punto de equilibrio, y x 0 son las soluciones de f (u 0 , x) = 0 .
4. SIMULACIÓN DE PROCESOS DINÁMICOS CONTROL NO LINEALES Y LINEALES:
Y/O
SISTEMAS
DE
Supongamos que tenemos el modelo dinámico de un proceso no lineal/lineal:
dx(t ) = F ( x(t ), r (t ), t ) dt y (t ) = G ( x(t ), r (t ), t )
L(4.1)
Como sabemos la computadora no puede resolver ecuaciones diferenciales no linelaes, nosotros debemos facilitarle el asunto, para resolver ecuaciones diferenciales no lineales existen métodos numéricos: Método de Euler: Con el método de Euler, el término derivativo anterior se aproxima por:
dx(t ) de la ecuación dt
x(kh + h) − x(kh) , donde “h” es llamado “paso de integración” h La ecuación 4.1 queda de la siguiente forma:
x(kh + h) − x(kh) = F ( x(kh), r (kh), kh) h y = G ( x(kh), r (kh), kh) Reescribiendo tenemos:
x(kh + h) = x(kh) + hF ( x(kh), r (kh), kh) L(4.2) y = G ( x(kh), r (kh), kh) H D C L
Pág. 34
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Para k = 0, 1, 2,… el valor del vector x(0) es la condición inicial y se asume que es conocido. Para generar la respuesta de los sistemas no lineales/lineales a la entrada r (kh) se procede a calcular recursivamente x(h), x(2h), x(3h) . La ecuación 4.2 es fácil de implementar en cualquier lenguaje de programación. Método de Runge-Kutta: Mientras que el método de Euler es fácil de entender e implementar en código, algunas veces para lograr una buena exactitud, el valor de h debe ser muy pequeño. Muy a menudo, para lograr una buena precisión en la simulación, son usados métodos más sofisticados, tal como el método de Runge-Kutta. En el método de cuarto orden de Runge-Kutta, la aproximación que se hace es la siguiente:
1 x(kh + h) = x(kh) + (k1 + 2k2 + 2k3 + k4 ) 6 L(4.3) y = G ( x(kh), r (kh), kh) Donde los cuatro vectores se definen por:
k1 = hF ( x(kh), r (kh), kh) k2 = hF ( x(kh) + k3 = hF ( x(kh) +
k1 , 2 k3 , 2
r (kh + h ), kh + h ) 2
2
r (kh + h ), kh + h ) 2
2
k4 = hF ( x(kh) + k3 , r (kh + h), kh + h) Como podemos ver la ecuación 4.3 no es difícil comprenderlo. Si se quiere controlar cualquier proceso, por más sencillo o complicado que sea éste, siempre se debe contar con el modelo matemático que describa la dinámica de dicho proceso. Ya que el diseño del controlador se hace en función del modelo, si bien es cierto existen estrategias de control que no requieren conocer el modelo para diseñar un controlador (control difuso, neurocontrol, etc.), aún así se necesita el modelo para ver el comportamiento del proceso incluido ya el controlador que se ha diseñado. Si no quiero simular, hago el análisis matemático. (no es sencillo) ¿Y para que linealizo si puedo simular un proceso no lineal? Mire, el controlador se diseña con el modelo linealizado y la simulación se realiza con el modelo no lineal. Ahora si tiene sentido linealizar el modelo.
H D C L
Pág. 35
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas 5. SIMULACIÓN DEL NIVEL DE ALTURA DE UN PROCESO Modelo del proceso: En este punto simularemos el nivel de altura del proceso modelado en el punto 2, es decir el modelo del proceso mostrado en Fig.43.
Fig.43
Tenemos los siguientes modelos:
AC
dh(t ) = F0 (t ) − α1h(t ) dt
AC
dh(t ) = F0 (t ) − α 2 h(t ) dt
con h(0) = hs con h(0) = hs
Condiciones Iniciales: Altura inicial: hs=5 m Alfa (1 o 2): 0.9 (m^2/s o m^(2.5)/s) Área de la sección transversal del tanque: 5 m^2 Cálculo del flujo inicial (haciendo o o
dh(t ) = 0 para t=0): dt
Modelo lineal: F0=4.5 Modelo No lineal: F0= 2.012461
Método de Programación: Para simular el proceso se usará el método de Euler:
x(kh + h) = x(kh) + hF ( x(kh), r (kh), kh) y = G ( x(kh), r (kh), kh)
En las ecuaciones anteriores, h es llamado paso de integración, y el valor de este debe ser pequeño para poder aproximar con bastante precisión la respuesta del proceso. Pero para procesos con respuesta lenta, este valor puede ser cercano a 1 o 0.5. En el programa se denomina T, símbolo del periodo de muestreo H D C L
Pág. 36
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Consideraciones en la Programación: Se está considerando: - Off-set de altura de: 0 m - Off-set de flujo de entrada de: 0.05 m^3/s Se está usando un control ActiveX denominado Tanque, el que fue creado por: Héctor D. CHOQUE L. para simular procesos que implican control de nivel de altura, las propiedades de dicho tanque son:
-
La altura máxima.(Maximo) El valor real de la altura.(Altura) El color del líquido que contiene dicho tanque.(Color)
Los controles usados son: Control Frame Frame Frame Label Label Label Label Label Label Label Label Label Label Label Label Label Label Label Label Label Label Label Label Label Label Label Label CommandButton CommandButton CommandButton CommandButton CommandButton TextBox TextBox TextBox TextBox TextBox TextBox TextBox TextBox TextBox H D C L
(Nombre) Frame1 Frame2 Frame3 Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 Label10 Label11 Label12 Label13 Label14 Label15 Label16 Label17 Label18 Label19 Label20 Label21 Label22 Label23 Label24 cmdPau cmdCon cmdEmp cmdAceptar cmdSalir txtFlu txtAlt txtTmin txtTmax txtHmin txtHmax txtT txtAC txtalfa12
Propiedad Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Text Text Text Text Text Text Text
Valor de Propiedad Proceso : Parámetros y condiciones iniciales : Datos para Graficar : Nivel de altura inicial (hs): alfa (1 o 2): Razón de alimentación (F0): m m^2/s m^3/s m^2 Área transversal del tanque (AC): Modelo: T (Per. de Muestr): m m s s Hmax: Hmin: Tmax: Tmin: Altura: m Flujo: m^3/s P” C> E> Aceptar Salir 0.05 0 0 200 0 10 0.1 5 0.9 Pág. 37
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas TextBox TextBox PictureBox
txths txtF0 picResp
Timer
Timer1
OptionButton OptionButton Image Image Image Tanque
optLineal optNolineal Image1 Image2 Image3 Tanque1
5 Appearance AutoRedraw Enabled Interval Caption Caption
Flat True False 1 No lineal Lineal
Visible Visible
False False
Para ordenar adecuadamente los controles véase la Fig.44. Con este ejemplo también aprenderemos a usar el control Timer. También se usará el modulo ModuloGrafico, que se ha desarrollado para dibujar líneas divisoras, imprimir escalado numérico, cuadro, color de fondo, todo ello a un control PictureBox, en este caso a picResp. Resultados de la simulación: El resultado que se muestra en la Fig.44
Fig.44
H D C L
Pág. 38
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas 6. SIMULACIÓN DEL CONTROL DE TEMPERATURA DE UN TANQUE DE REACCIÓN CON AGITACIÓN CONTINUA: Figura con etiquetas apropiadas: Se simulará el modelo de un tanque de reacción con agitación continua (TRAC), en este proceso la variable que se controla es la temperatura de salida, para lograr el objetivo de control se usará un controlador PI. En la. Fig.45 se presenta un PI&D del reactor con casquillo.
Fig.45
Asunciones: Suponemos que el reactor y el casquillo están combinados perfectamente, que los volúmenes y las propiedades físicas son constantes y que las pérdidas de calor se desprecian. Modelado del proceso: Con las asunciones anteriores, las ecuaciones que describen el proceso son: Balance de masa del reactivo A:
dC A F = (C Ai − C A ) − kC A2 L (6.1) dt V
H D C L
Pág. 39
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Balance de energía en el contenido del reactor:
∆H R dT F UA = (Ti − T ) − kC A2 − (T − TC ) L (6.2) dt V V ρC p ρC P Balance de energía en el casquillo:
dTC UA F = (T − TC ) − C (TC − TCi ) L (6.3) dt VC ρC C pC VC Coeficiente de razón de reacción:
k = k0e
−
E R (T + 273.16)
L ( 6 .4 )
Retardo en el sensor de temperatura:
db 1 = dt τ T
T − TM − b L (6.5) ∆TT
Controlador Proporcional-Integral con retroalimentación:
dy 1 = (m − y ) L (6.6) dt τ i T fijo − TM m = y + KC − b L ( 6 .7 ) ∆TT Límites de la señal de salida del controlador:
0 ≤ m ≤ 1 L (6.8) Válvula de control de porcentaje igual (aire para cerrar)
FC = FC maxα − m L (6.9) Los parámetros usados en las ecuaciones anteriores se describen de la siguiente manera: Parám.
Descripción, unidad
CA C Ai T TT TC
es la concentración de reactivo en el reactor, kgmol/m^3
TCi H D C L
es la concentración del reactivo en la alimentación, kgmol/m^3 es la temperatura en el reactor, C es la temperatura de alimentación, C es la temperatura del casquillo, C temperatura de entrada del enfriador, C Pág. 40
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas b F V k ∆H R
ρ
Cp
es es es es es
la señal del transmisor en una escala de 0 a 1 la razón de alimentación, m^3/s el volumen del reactor, m^3 el coeficiente de razón de reacción, m^3/kgmol-s el calor de la reacción; se supone constante, J/kgmol
es la densidad del contenido del reactor, kgmol/m^3 es la capacidad calorífica de los reactivos, J/kgmol-C
U A VC
es el coeficiente de transferencia total de calor, J/s-m*-C es el área de transferencia de calor, m^2 es el volumen del casquillo, m^3
ρC
es la densidad del enfriador, kg/m^3
C pC
es el calor específico del enfriador, J/kg-C
∆TT FC
es el rango calibrado del transmisor, C
CA
τT τi
y m KC
FC max α k0 E R
es la razón de flujo del enfriador, m^3/s es el límite inferior del rango del transmisor, C es la constante de tiempo del sensor de temperatura, s es el tiempo de integración del controlador, s es la variable de retroalimentación de reajuste del controlador es la señal de salida del controlador en una escala de 0 a 1 es la ganancia del controlador; sin dimensiones es el flujo máximo a traves de la vailvula de control, m^3/s es el parámetro de ajuste en rango de la válvula es el parámetro de frecuencia de Arrhenius, m^3/s-kgmol es la energía de activación de la reacción, J/kgmol es la constante de la ley de los gases ideales, 8314.39 J/kgmol-K
En este modelo del reactor y de su controlador de temperatura, las variables de estado son C A , T , TC , b e y ; las variables auxiliares
k , m y FC se pueden calcular junto con las funciones de derivación, a partir de los valores de las variables de estado en cualquier punto del tiempo. Las variables de entrada al modelo son F , C Ai , Ti , TCi y T fijo . Método de Programación: Para simular el proceso se usará el método de Euler:
x(kh + h) = x(kh) + hF ( x(kh), r (kh), kh) y = G ( x(kh), r (kh), kh) Condiciones iniciales: Para hacer la simulación del reactor se deben determinar los parámetros del modelo y las condiciones iniciales. En la práctica, los parámetros del modelo se obtienen a partir de las especificaciones del equipo y de los diagramas de tubería e instrumentación. Se trabaja con los siguientes parámetros del reactor:
H D C L
Pág. 41
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas V = 7.08 'm^3 p = 19.2 'kgmol/m^3 Cp = 181500 'kgmol-C A = 5.4 'm^2 pC = 1000 'kg/m^3 ko = 0.0744 'm^3/s-kgmol tauT = 20 's alfa = 50 '(sin dimensiones) deltaHR = -98507000 'J/kgmol U = 3550 'J/s-m^2-C VC = 1.82 'm^3 CpC = 4184 'J/kg-C E = 11820000 ‘J/kgmol FCmax = 0.02 'm^3/s TM = 80 'C deltaTT = 20 'C R = 8314.39 ‘ Si el propósito de la simulación es ajustar el controlador a las condiciones de operación de diseño, las condiciones iniciales se toman en el punto de operación de diseño. Un requisito importante es que “con las condiciones iniciales se deben satisfacer las ecuaciones del modelo en estado estacionario”; esto es, todas las derivadas que se calculan con base en las ecuaciones del modelo deben ser exactamente cero en los valores iniciales de las variables de estado. Puesto que se tiene una ecuación de modelo para cada variable de estado y auxiliar, el número de especificaciones de diseño no debe exceder el de variables de entrada. En este ejemplo, las variables de entrada y las condiciones de diseño son las siguientes: F = 0.0075 CAi = 2.88 TCi = 27 Tfijo = 88 Ti = 66
'm^3/s 'kgmol/m^3 'C 'C 'C
Ahora se pueden utilizar las ecuaciones del modelo para calcular los demás valores iniciales y variables auxiliares. El orden de los cálculos es el que se muestra a continuación:
(6.7) (6.5) (6.4) (6.1) (6.2) (6.3) (6.9) (6.6)
b = (Tfijo – TM)/deltaTT = 0,40 T = b*deltaTT + TM = 88.O K = 1.451*1e-3 CA = 1.133 TC = 50.5 FC = 7.3 9 2*1e-3 m = 0.2544 y = 0.2544
‘(sin dimensiones) ‘C ‘m^3/kgmol-s ‘kgmol/m^3 ‘C ‘m^3/s ‘(sin dimensiones) ‘(sin dimensiones)
Los valores anteriores son calculados por el programa que se desarrollará para simular este proceso.
H D C L
Pág. 42
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Se observará que la única forma de satisfacer las ecuaciones (6.5), (6.6) y (6.7) en estado estacionario es que la temperatura del reactor se mantenga en el punto de control, debido a que el controlador tiene acción de integración. Una vez que se tienen las ecuaciones del modelo, el valor de los parámetros y las condiciones iniciales, ya podemos programar las ecuaciones. Consideraciones en la Programación: Se está considerando: - Off-set de tasa de alimentación: 0 m^3/s - Set point: 2. C (mas los 88C de las condiciones iniciales) Los controles usados ya no se describen al detalle, ya que son bastantes y ocuparían mucho espacio, pero se pueden ver en Fig.46, Fig.47 y Fig. 48. Resultados de la simulación: Se muestran en Fig.46, Fig.47 y Fig. 48.
Fig.46
H D C L
Pág. 43
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.47
Fig.48
H D C L
Pág. 44
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas 7. RESPUESTA AL ESCALÓN DE SISTEMAS DE CONTROL LTI La respuesta a la función Delta de Dirac es de especial interés en el estudio de sistemas lineales. La transformada de Laplace de la Delta de Dirac es 1. Así, si aplicamos tal función a la entrada de un sistema con condiciones iniciales nulas, la respuesta de salida simplemente será Y ( s ) = G ( s )U ( s ) = G ( s ) . Esta observación puede ser resumido de la siguiente forma: La función de transferencia de un sistema en tiempo continuo es la Transformada de Laplace de su respuesta al impulso (Delta de Dirac) con condiciones iniciales nulas.
Función impulso o Delta de Dirac ∆→0 Debido a la idealización en el gráfico anterior, es decir la función impulso tiene una duración muy corta (tiende a cero) y su amplitud es infinita, lo cual es prácticamente imposible de lograr físicamente o en términos de voltios. Por la razón expuesta en el párrafo anterior, lo mas común es usar la respuesta al escalón para estudiar el comportamiento dinámico del sistema, esto es cuando U ( s ) = 1 s . Esto lleva a lo que se llama respuesta al escalón.
Y ( s ) = G ( s )U ( s ) = G ( s )
1 s
La aplicación del teorema del valor final muestra que la respuesta en estado estacionario para un escalón unitario está dado por:
1 Lim y (t ) = y∞ = Lim sG ( s ) = G (0) s t →∞ s →0 Si el sistema es estable, entonces la parte transitoria de la respuesta al escalón decrecerá exponencialmente hacia cero y así y∞ existirá. Note que si G ( s ) tiene uno o mas ceros en s = 0 , entonces
y∞ = 0 . También es muy útil definir el conjunto de parámetros que describen ciertas propiedades relevantes de la dinámica del sistema. H D C L
Pág. 45
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Para introducir estas definiciones consideraremos una función de transferencia estable teniendo como respuesta al escalón la figura que se muestra a continuación:
Valor en estado estacionario, y∞ : El valor final de la repuesta al escalón. Tiempo de Levantamiento, tr : El tiempo transcurrido hasta el instante en el cual la respuesta al escalón alcanza por primera vez el valor de kr y∞ . La constante k r varía de autor en autor, siendo usualmente 0.9 o bien 1. Sobrepasamiento Positivo, M p : La máxima cantidad instantánea por la cual la respuesta al escalón excede a su valor final. Esto es usualmente expresado como un porcentaje de y∞ . Sobrepasamiento Negativo, M u : La (valor absoluto de) máxima cantidad instantánea por el cual la respuesta al escalón cae por debajo de cero. Tiempo de Asentamiento, ts : El tiempo transcurrido hasta que la respuesta al escalón entra (sin salir de ella, ni una vez mas) a una banda de desviación específica, ± δ , alrededor del valor final. Esta desviación, δ , es usualmente definido como un porcentaje de y∞ , por decir 2% al 5%. (Agregar al programa para que muestre los parámetros descritos anteriormente) H D C L
Pág. 46
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas La respuesta al escalón de sistemas de control se puede obtener de las siguientes maneras:
•
Conociendo la Función de Transferencia del Proceso: Existen diferentes formas de funciones transferencia, esto dependiendo del tipo de proceso o sistema de control F.T. de sistemas de una entrada y una salida (SISO):
Y (s) =
b1 + b2 s + L + bn s n −1
a1 + a2 s + L + an s n −1 + s n
U ( s)
F.T. de sistemas de entradas múltiples y una salida (MISO):
Y (s) =
b1 + b2 s + L + bn s n −1
a1 + a2 s + L + an s n −1 + s n
U1 ( s ) +
d1 + d 2 s + L + d m s m −1
c1 + c2 s + L + cm s m −1 + s m
U 2 (s)
F.T. de sistemas de control multivariable o sistemas con entradas múltiples y salidas múltiples (MIMO):
a0 + L + a m s m c0 + L + c m s p
b0 + L + bn s n Y1 ( s ) e0 + L + er s r = d 0 + L + d q s q Y2 ( s ) g 0 + L + g v s v
f 0 + L + f t s t U 1 ( s ) h0 + L + hw s w U 2 ( s )
En este curso desarrollaremos la respuesta a sistemas del tipo SISO y MISO.
•
Conociendo la representación en Ecuaciones de Estado del proceso: Existen diferentes maneras de representar un modelo en ecuaciones de estado, siendo la más conocida la representación en su forma canónica (FC). Las ecuaciones de estado de sistemas de control pueden tener diferentes formas, esto dependiendo si se trata de sistemas SISO, MISO, SIMO, o MIMO. Ecuaciones de estado de Sistemas SISO (Forma canónica): Asumamos un sistema de control SISO con función de transferencia:
Y (s) =
b1 + b2 s + L + bn s n −1
a1 + a2 s + L + an s n −1 + s n
U ( s)
Esto puede ser representado por el modelo de estado en su forma canónica observable:
dx = AC x + BC u dt y = CC x + DC u H D C L
Pág. 47
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Donde:
1 0 0 0 AC = M M 0 0 − a − a 2 1
0
L
1
L
M 0
O L
− a3 L
0 b1 0 0 b2 0 T = b3 B = 0 C M C C 1 M M b 1 − an n
Normalmente la matriz DC es una matriz nula. Ecuaciones de estado de Sistemas MISO (Forma canónica): Asumamos un sistema de control MISO con función de transferencia:
Y (s) =
b1 + b2 s + L + bn s n −1
a1 + a2 s + L + an s n −1 + s n
U1 ( s ) +
d1 + d 2 s + L + d m s m −1
c1 + c2 s + L + cm s m −1 + s m
U 2 (s)
Este puede ser representado por el modelo de estado de la siguiente forma:
dx A1 = dt 0
0 B1 0 u1 x + A2 0 B 2 u2 u y = (C1 C2 ) x + (D1 D2 ) 1 u2
Donde:
1 0 0 0 A1 = M M 0 0 − a − a 2 1 1 0 0 0 A2 = M M 0 0 − c − c 2 1
0 b1 0 0 b2 0 T B = 0 C1 = b3 M O M 1 0 L 1 M M b − a3 L − an 1 n 0 1
L L
0
L
1
L
M 0
O L
− c3 L
0 d1 0 0 d2 0 T M B2 = 0 C2 = d3 1 M M d − cm 1 m
Normalmente las matrices D1 y D2 son matrices nulas. Para obtener la respuesta de los sistemas mencionados es necesario desarrollar la integración numérica o la solución numérica de ecuaciones diferenciales lineales ordinarias, para ello usaremos los métodos de Euler y de Runge-Kutta, ambos descritos en los puntos anteriores.
H D C L
Pág. 48
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas De los dos métodos anteriores el de mayor precisión es el de Runge-Kutta, pero la más fácil de implementar es el método de Euler. La representación del modelo en ecuaciones de estado son un poco más complicados de manipular ya que se debe realizar operaciones con matrices, pero nos permite analizar la controlabilidad y observabilidad del proceso que se desea controlar. La representación del modelo en forma de función transferencia nos permite analizar la estabilidad del sistema.
de
Como podemos ver, para analizar sistemas de control se hace necesario usar ambas formas de representación de un modelo. Lo que si está claro es que la respuesta al escalón se puede obtener a partir de cualquiera de las dos formas de representación. o REPUESTA AL ESCALÓN DE SISTEMAS SISO USANDO SU FUNCIÓN DE TRANSFERENCIA: En este ejemplo de programación, usaremos el método de integración de Euler. Para ello la función de transferencia de un sistema se regresa a su forma de ecuaciones diferenciales. Sea la siguiente Función de transferencia:
Y (s) =
b1 + b2 s + L + bn s n −1
a1 + a2 s + L + an s n −1 + s n
U ( s)
Si lo reescribimos en términos de ecuaciones diferenciales, tenemos lo siguiente (modelo en ecuaciones diferenciales):
d n y (t ) dt n
+ an
d n −1 y (t ) dt n −1
+ L + a2 bn
dy (t ) + a1 y (t ) = dt
d n −1u (t ) dt
n −1
+ bn −1
d n − 2 y (t ) dt
n−2
+ L + b2
du (t ) + b1u (t ) dt
El método de integración de Euler afirma que:
dx(t ) X (kh + h) − X (kh) = dt h Donde h debe ser muy pequeño, esto para tener una buena aproximación, nosotros lo cambiaremos h por T, esto para representar T como periodo de muestreo. Si desarrollamos el método de Euler para derivadas de orden superior tenemos lo siguiente (Desarrollado por Héctor CHOQUE): H D C L
Pág. 49
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas d 2 x(t ) dt 2 d 3 x(t ) dt
3
= =
X (kT ) − 2 X (kT − T ) + X (kT − 2T ) T2 X (kT ) − 3 X (kT − T ) + 3 X (kT − 2T ) − X (kT − 3T ) T3
M d n x(t ) dt n
=
X (kT ) − C1n X (kT − T ) + L ± C nn−1 X (kT − (n − 1)T ) m X (kT − nT ) Tn
En la última ecuación, los signos ± y m dependen de si n es par o impar. Ahora si aplicamos lo anterior al modelo en ecuaciones diferenciales tendríamos lo siguiente:
(a1T n + a 2T n −1 + L + a nT + C 0n ) Y (kT ) − Tn (a 2T n −1 + 2a3T n − 2 + L + C1n −1a nT + C1n ) Y (kT − T ) + Tn (a3T n − 2 + 3a 4T n − 2 + L + C 2n −1a nT + C 2n ) Y ( kT − 2T ) − Tn (C 0n a nT + C nn−1 ) C nn LL ± Y ( kt − ( n − 1)T ) m Y ( kT − nT ) Tn T n −1 (b1T n −1 + b2T n − 2 + L + bn −1T + C 0n −1bn ) = U ( kT ) − T n −1 (b2T n − 2 + 2b3T n − 3 + L + C1n − 2 bn −1T + C1n −1bn ) U ( kT − T ) + T n −1 (b3T n − 3 + 3b4T n − 4 + L + C 2n − 2 bn −1T + C 2n −1bn ) U (kT − 2T ) − T n −1 (C 0n −1bn −1T + C nn−−12 bn ) C nn−−11bn LL m U (kt − (n − 2)T ) ± U (kT − (n − 1)T ) T n −1 T n −1 Finalmente ordenando y asumiendo ciertas constantes, tenemos:
Y (kT ) =
1 [A1Y (kT − T ) − A2Y (kT − 2T ) + L ± AnY (kT − nT )] + A0
T [n − ( n −1) ] * [B1U (kT ) − B2U (kT − T ) + L ± BnU (kT − (n − 1)T )] A0 Esta última ecuación ya es posible implementarlo.
H D C L
Pág. 50
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas En la siguiente figura se implementación en programa:
muestra
el
resultado
de
la
Fig.49
o REPUESTA AL ESCALÓN DE SISTEMAS SISO USANDO SU REPRESENTACIÓN EN ECUACIONES DE ESTADO EN SU FORMA CANÓNICA OBSERVABLE: En este ejemplo de programación usaremos el método de integración de Runge-Kutta. Sea la función de transferencia:
Y (s) =
b1 + b2 s + L + bn s n −1
a1 + a2 s + L + an s n −1 + s n
U ( s)
Si llevamos lo anterior a ecuaciones de estado en su forma canónica observable tenemos:
dx = AC x + BC u dt y = CC x + DC u Donde:
1 0 0 0 AC = M M 0 0 − a − a 2 1
0
L
1
L
M 0
O L
− a3 L
0 b1 0 0 b2 0 T = b3 B = 0 C M C C 1 M M b − an 1 n
Normalmente la matriz DC es una matriz nula. H D C L
Pág. 51
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Reescribiendo las ecuaciones de estado del sistema dinámico usando Runge-Kutta tenemos:
1 X (kT + T ) = X (kT ) + (k1 + 2k 2 + 2k 3 + k 4 ) 6 Y (kT ) = CC X (kT ) Donde los cuatro vectores se definen como:
k1 = T [AC X (kT ) + BCU (kT )] T k k 2 = T AC X (kT ) + 1 + BC U (kT + ) 2 2 T k k 3 = T AC X (kT ) + 2 + BC U (kT + ) 2 2 k 4 = T [AC ( X (kT ) + k 3 ) + BC U (kT + T )] Como se puede ver aparecen términos como U (kT +
T ) y 2
U (kT + T ) , para el caso de que u (t ) sea el escalón unitario, no hay problemas, sus valores siempre serán 1, por lo tanto son iguales a U (kT ) y esto se usará en la programación. En la siguiente figura se implementación en programa:
muestra
el
resultado
de
la
Fig.50
H D C L
Pág. 52
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas 8. RESPUESTA EN EL DOMINIO DEL TIEMPO DE SISTEMAS DE CONTROL
Fig.51
9. RESPUESTA EN EL DOMINIO DE LA FRECUENCIA DE SISTEMAS DE CONTROL
Fig.52
H D C L
Pág. 53
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas VIII.
PROGRAMACIÓN PARA PROCESAMIENTO DIGITAL DE SEÑALES 1. INTRODUCCIÓN: El tratamiento digital de señales es una de las tecnologías más poderosas que tiene la ciencia y la ingeniería en el siglo XXI. Con el Tratamiento Digital de Señales se han logrado cambios revolucionarios en un amplio rango de áreas tales como: Comunicaciones, Radar & Sonar, reproducción de música de alta fidelidad, predicción de petróleo y minerales, por mencionar algunos. El rápido desarrollo de la tecnología de circuitos integrados, MSI, LSI, VLSI, han estimulado el desarrollo de ordenadores digitales más potentes, pequeños, rápidos y “baratos”. Ellos han permitido construir sistemas digitales altamente sofisticados, capaces de realizar funciones y tareas del procesado de señal digital que normalmente eran demasiado difíciles realizarlas con el procesado de señales analógicas. El tratamiento digital de señales se realiza mediante operaciones matemáticas. Las computadoras de propósito general no son adecuadas para la implementación de algoritmos como el filtrado digital y análisis de Fourier. Para ello existen los llamados Procesadores Digitales de Señales, que son microprocesadores diseñados específicamente para manipular tareas del tratamiento digital de señales. Estos dispositivos han tenido un enorme crecimiento en las dos décadas pasadas, se usan en equipos desde teléfonos celulares hasta los instrumentos científicos mas avanzados. 2. CONVERSIÓN A/D Y D/A: La mayoría de señales de interés práctico, tales como señales de voz, biológicos, sísmicas, radar & sonar, son analógicas. Para procesar señales analógicas por medios digitales es necesario convertirlas a formato digital, esto es, transformarlas una secuencia de números de precisión finita. Los dispositivos que realizan esta conversión se llaman Conversores A/D (ADC’s). En la Fig.53 podemos ver el proceso de conversión A/D, donde se observa que la señal que se está procesando tiene diferentes formatos en los diferentes puntos del proceso de conversión A/D:
Fig.53
H D C L
Pág. 54
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Conceptualmente, podemos ver la conversión A/D como un proceso de tres pasos: o
Muestreo: Ésta es la conversión de una señal en tiempo continuo (Fig.54) a una señal en tiempo discreto obtenida tomando muestras de la señal en tiempo continuo en instantes de tiempo discreto (Fig.55). Así, si x a (t ) es la entrada al muestreador, la salida es xa [ nT ] ≡ xa [ n] , donde T se denomina el intervalo de muestreo.
o
Cuantificación: Ésta es la conversión de una señal en tiempo discreto con valores continuos a una señal en tiempo discreto con valores discretos (señal digital Fig.56). El valor de cada muestra de la señal se representa mediante un valor seleccionado de un conjunto finito de valores posibles.
o
Codificación: En este proceso, cada valor discreto xq [n] se representa mediante una secuencia binaria de b bits.
Fig.54
Fig.55
Fig.56
•
Muestreo de señales analógicas: Existen diferentes maneras de muestrear una señal. El mas usado es el muestreo periódico o uniforme, éste se describe mediante la relación:
x[n] = x[nT ], − ∞ < n < ∞ donde x[n] es la señal en tiempo discreto obtenida tomando muestras de la señal analógica x a (t ) cada T segundos {denominado periodo de muestreo o intervalo de muestreo, y su recíproco 1 T = Fs se llama velocidad de muestreo (muestras por segundo) o frecuencia de muestreo (Hertz)}.
H D C L
Pág. 55
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas n Fs
t = nT = Sea:
xa (t ) = A Cos (Ωt + θ ), Ω = 2πF
Si lo muestreamos:
xa [nT ] = A Cos (2πFnT + θ ) = A Cos (
2πF +θ) Fs
De las ecuaciones anteriores se puede obtener:
f =
F Fs
O equivalentemente:
ω = ΩT , con
f =
ω 2π
f se denomina frecuencia normalizada o relativa. ¾
Señales sinusoidales en tiempo continuo:
xa (t ) = A Cos (Ω t + θ ), Ω = 2πF , − ∞ < t < ∞ Propiedades: - Para todo valor fijo de la frecuencia F, xa (t ) es periódica.
xa (t + T p ) = xa (t )
-
¾
TP periodo fundamental. Las señales en tiempo continuo diferentes son diferentes. El aumento en la frecuencia F aumento de la tasa de oscilación sentido de que se incluyen mas intervalo de tiempo dado.
con frecuencias resulta en un de la señal, en periodos en un
Señales sinusoidales en tiempo discreto:
x(n) = A Cos (ω n + θ ), ω = 2π f , − ∞ < n < ∞ Propiedades: - Una sinusoide en tiempo discreto es periódica si su frecuencia f es un número racional.
x[n + N ] = x[n]
-
-
N periodo fundamental. La sinusoides en tiempo discreto cuyas frecuencias están separadas por un múltiplo entero de 2π , son idénticas. La mayor tasa de oscilación en una sinusoide en tiempo discreto se alcanza cuando:
ω =π
o ω = −π
⇒
−π < ω < π
⇒
−
o equivalentemente:
f =
H D C L
1 2
o
f =−
1 2
1 1 < f < 2 2
Pág. 56
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas •
Teorema del muestreo: Dada una señal analógica cualquiera, ¿Cómo se debe elegir el periodo de muestreo T ó, lo que es lo mismo, la velocidad de muestreo Fs ? La definición de un muestreo apropiado es sencilla. Suponga que se muestrea una señal analógica de alguna manera. Si ésta se puede reconstruir a partir de sus muestras, el proceso de muestreo fue apropiado. Aún si los datos muestreados parecen confusos o incompletos, la información mas importante ha sido capturada si el proceso se puede revertir. Si la frecuencia más alta contenida en una señal analógica xa (t ) es Fmax = B y la señal se muestrea a una velocidad
Fs > 2 Fmax ≡ 2 B , entonces
se puede recuperar totalmente a partir de sus muestras mediante la siguiente función de interpolación g (t ) =
sen(2πBt ) 2πBt
Entonces una señal continua puede ser muestreada apropiadamente, solo si ésta no contiene frecuencias mayores a la mitad de la frecuencia de muestreo.
•
Aliasing: Las señales analógicas:
xa (t ) = A Cos (2πF0t + θ ) con:
muestreadas a
Fk = F0 + kFs ,
x A (t ) = A Cos (2πFk t + θ )
k = ±1,±2,L
Fs = 1 T
son las mismas. Por lo tanto x A (t ) es un alias de xa (t ) . Véase Fig.57, del ejemplo de programación. La señal analógica antes de entrar al sistema de conversión A/D es pasada a través de un filtro electrónico pasabajos, esto para remover las frecuencias que son mayores a la frecuencia de muestreo. Esto se hace con la finalidad de evitar el fenómeno del aliasing, y este filtro es llamado Filtro Anti-Alias. Por otro lado, después de pasar la señal digital a través de un convertidor D/A, ésta es pasada a través de un filtro pasabajos con frecuencia de corte fijada a la frecuencia de Nyquist, y este filtro es llamado Filtro Reconstructor. 2. ANÁLISIS DE SEÑALES Y SISTEMAS DIGITALES EN COMPARACIÓN CON EL DE SEÑALES Y SISTEMAS EN TIEMPO DISCRETO. Se ha visto que una señal digital se define como una función de una variable independiente entera y sus valores se toman de un conjunto finito de valores posibles. La utilidad de tales señales es una consecuencia de las posibilidades que ofrecen los ordenadores digitales. Los ordenadores operan con números, que se representan con una H D C L
Pág. 57
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas cadena de ceros y unos. La longitud de esta cadena (longitud de palabra) es fija y generalmente es de 8, 12, 16 ó 32 bits. La longitud de palabra finita causa complicaciones en el análisis de los sistemas de procesado digital de señales. Para evitar estas complicaciones, se desprecia la naturaleza cuantificada de las señales y sistemas digitales en nuestro curso, y los consideraremos como señales y sistemas en tiempo discreto, por esta misma razón no se trata a fondo los temas de cuantificación y codificación. 3. SIMULACIÓN DEL MUESTREO DE UNA SEÑAL ANALÓGICA, Y FENÓMENO ALIASING.
EL
Fig.57
4. CONVOLUCIÓN Y CORRELACIÓN ¾ CONVOLUCIÓN: Es una operación matemática formal, tal como lo son la adición, multiplicación, e integración. Es una técnica matemática que combina dos señales y produce una tercera señal. Ésta es la técnica más importante en el tratamiento
H D C L
Pág. 58
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas digital de señales porque relaciona las tres señales de interés: la de entrada, salida y la respuesta al impulso. Si conocemos la respuesta al impulso del sistema, entonces podemos calcular la respuesta del sistema para cualquier tipo de entrada. Esto significa que conocemos todo acerca del sistema. Matemáticamente, la convolución se representa de la siguiente manera:
y[ n] = x[ n] ∗ h[ n]
En Fig.58 podemos ver esta operación en forma gráfica.
Fig.58
En Fig.58, la operación de la convolución se representa con un asterisco ∗ . Cuidado en los lenguajes de programación el ∗ significa multiplicación. Si la entrada a un sistema lineal invariante en el tiempo (LTI) y causal es una secuencia causal, es decir, si x[n] es una secuencia de longitud N (de 0 a N-1), y es h[n] una secuencia de longitud M (de 0 a M-1), la convolución de las dos señales y[n] = x[n] ∗ h[n] es una secuencia de longitud N+M-1 (de 0 a N+M-2).
y[n] =
M −1
∑ h[k ]x[n − k ] ;
0≤ n ≤ M + N −2
k =0
Esta última expresión es a veces llamada convolución por el lado de la salida. Y éste es el algoritmo que implementaremos en nuestro ejemplo de programación. Programación de la convolución: Convolucionaremos una señal de entrada de longitud 81 y la respuesta al impulso de longitud 31, en este caso usaremos el kernel de un filtro pasa-bajo y también el de un filtro pasa-alto. Tenemos los siguientes datos (obsérvese Fig.58): La señal de entrada es la siguiente secuencia: x(n) = n/20 - 2*Sin(n*0.3) ;
0 ≤ n ≤ 80
El kernel de los filtros son los siguientes:
H D C L
Pág. 59
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas Filtro pasa-bajo: h(0) = h(30) = 0 h(1) = h(29) = -0.0058 h(2) = h(28) = -0.0116 h(3) = h(27) = -0.0173 h(4) = h(26) = -0.0231 h(5) = h(25) = -0.0277 h(6) = h(24) = -0.0329 h(7) = h(23) = -0.0371 h(8) = h(22) = -0.0414 h(9) = h(21) = -0.045 h(10) = h(20) = -0.0481 h(11) = h(19) = -0.0502 h(12) = h(18) = -0.0523 h(13) = h(17) = -0.0535 h(14) = h(16) = -0.0544 h(15) = 0.945 Filtro pasa-alto: h(0) = h(30) = 0 h(1) = h(29) = 0.0058 h(2) = h(28) = 0.0116 h(3) = h(27) = 0.0173 h(4) = h(26) = 0.0231 h(5) = h(25) = 0.0277 h(6) = h(24) = 0.0329 h(7) = h(23) = 0.0371 h(8) = h(22) = 0.0414 h(9) = h(21) = 0.045 h(10) = h(20) = 0.0481 h(11) = h(19) = 0.0502 h(12) = h(18) = 0.0523 h(13) = h(17) = 0.0535 h(14) = h(16) = 0.0544 h(15) = 0.055 El resultado de la programación será parecida a la mostrada en Fig.59.
H D C L
Pág. 60
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
Fig.59
¾ CORRELACIÓN: El concepto de correlación se puede explicar mejor usando un ejemplo.
1.
Fig.57
H D C L
Pág. 61
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
H D C L
Pág. 62
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
H D C L
Pág. 63
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
H D C L
Pág. 64
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas
H D C L
Pág. 65