programaci.n en visual basic 6 - · pdf filecuando realizamos una simulación, ......

66
PROGRAMACIÓN EN VISUAL BASIC 6.0 ORIENTADO A SISTEMAS DE CONTROL AUTOMÁTICO, PROCESAMIENTO DIGITAL DE SEÑALES y MATEMÁTICAS

Upload: hoangdang

Post on 05-Mar-2018

242 views

Category:

Documents


2 download

TRANSCRIPT

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 0

PROGRAMACIÓN EN VISUAL BASIC 6.0

ORIENTADO A SISTEMAS DE CONTROL AUTOMÁTICO, PROCESAMIENTO DIGITAL

DE SEÑALES y MATEMÁTICAS

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 1

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.

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 2

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)

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 3

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.

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 4

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:

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:

Aparecerá la ventana que se muestra en Fig.3:

Fig.1

Fig.2

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 5

• 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.

Cada control tiene propiedades (véase Fig.6):

Fig.4 Fig.5

Fig.3

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 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).

Con dicho conocimiento asigne los siguientes valores a las propiedades de los diferentes controles que se han dibujado:

Control (Nombre) Propiedad Valor de Propiedad Form1 Caption Primer Programa Label1 Caption Nombre Label2 Caption Label3 Caption CommandButton1 Caption Saludo CommandButton2 Caption Mensaje CommandButton3 Caption Salir

Cuando termine de asignar dichas propiedades, el formulario quedará así como se muestra en la Fig.9.

Fig.7

Fig.8

Fig.9

Fig.6

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 7

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: Enseguida agregamos código a Mensaje: Finalmente agregamos código a Salir:

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 :

¿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.

Private Sub Command1_Click() Nom = Text1.Text Label2.Caption = "Hola " & Nom & ", Bienvenido a Visual Basic" End Sub

Private Sub Command2_Click() Label3.Caption = "Visual Basic es bastante sencillo y tu lo aprenderás rápidamente" End Sub

Private Sub Command3_Click() End End Sub

Fig.10 Fig.11

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 8

Luego asignamos los valores a las propiedades de cada uno de los controles que se han insertado.

Control (Nombre) Propiedad Valor de Propiedad Form1 Caption Lo que quiero aprender a Programar Label1 Caption Nombre : Text1 Text CommandButton1 Caption Capturar CommandButton2 Caption Salir Frame1 Caption Lo que quiero programar Check1 Caption Programas Básicos Check2- Check10 Caption (Tal como se muestra en Fig.12) Text2 Text CommandButton3 Caption Aceptar

Con este programa aprenderemos a cambiar la propiedad ForeColor de ciertos controles, en este caso de los Check (véase Fig.13).

Fig.12

Fig.13

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 9

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):

• 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):

El código fuente se agregará durante el desarrollo del curso, cuando ejecutemos, el resultado debe ser parecido al mostrado en Fig.16:

Fig.14

Fig.15

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 10

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:

Fig.16

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 11

Luego aparecerá la ventana que se muestra en Fig. 18, allí se debe seleccionar Microsoft FlexGrid Control 6.0, finalmente click en Aceptar:

En la ventana de controles aparecerá el icono MSFlexGrid:

Fig.17

Fig.18

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 12

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.19

Fig.20

Fig.21

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 13

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.

Trabajo: averiguar como se puede modificar el ancho y alto de las celdas.

Fig.22

Fig.23

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 14

• 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:

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.24

Fig.25

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 15

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 botones 3 etiquetas 6 cajas de texto 2 lineas

Los controles los insertamos de tal manera que quede parecida a Fig.26.

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 16

Luego le agregaremos el código.

Fig.26

Fig.27

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 17

Ahora aprenderemos a agregaremos funciones, para ello seguimos el siguiente procedimiento:

En la barra de menú seleccionamos Herramientas. Luego Agregar procedimiento… Enseguida se mostrará la siguiente ventana:

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:

Luego Aceptar.

En la ventana de código se agregará automáticamente lo siguiente: Luego le modificamos para que quede de la siguiente manera:

Public Function Fac() End Function

Fig.29

Fig.28

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 18

Creamos una segunda función llamada Com, que se usará para realizar la combinatoria de 2 números, esto deberá tener la siguiente forma. 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

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:

Public Function Fac(ByVal pp As Double) If pp = 0 Then Fac = 1 Else Fac = pp * Fac(pp - 1) End If End Function

Public Function Com(ByVal nn As Double, ByVal mm As Double) Com = Fac(nn) / (Fac(nn - mm) * Fac(mm)) End Function

Fig.30

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 19

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.

Para agregar código en el módulo simplemente hacemos doble

click en Module1 (Module1).

Fig.31

Fig.32

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 20

Para este programa se implementarán los módulos siguientes:

Módulo Vector Módulo detectar sumas Módulo detectar productos Módulo multiplicar polinomios Módulo sumar polinomios Módulo multiplicar y Módulo sumar

Módulo Vector: se usa para convertir una expresión de la forma vectorial:

[3 5 2] ‘3*x^2+5*x+2 a un array.

Const(2)=3 ‘3*x^2 Const(1)=5 ‘5*x Const(0)=2 ‘2 Gra= 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:

Fig.33

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 21

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])

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 22

• 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.

Fig.34

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 23

Tarea: agregar la Función Inversa(A), el resultado debe ser como se muestra:

Fig.35

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 24

• 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

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 25

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

Fig.38

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 26

• 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.

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:

)127(2)1( −××−= ES Mv

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

361277 1031655412751 −− ×+=×+ .. )(

+ 7 0.75 La mantisa tiene la siguiente forma:

K+×+×+×+×+= −−−− 319

320

221

122 22221 mmmmM

Fig.39

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 27

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.

Prefijos usados para nombrar a los objetos o controles:

Prefijo Tipo de Objeto o Control cbo ComboBox chk CheckBox cmd CommandButton dir DirListBox drv DriveListBox fil FileListBox fra Frame frm Form grd Grid hsb HScrollbar img Image lbl Label lin Line lst Listbox mnu Menu mod Module ole OLE opt OptionButton pic PictureBox res Resource shp Shape tmr Timer txt TextBox typ User-defined data type vsb VScrollbar

Fig.40

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 28

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

Las variables pueden ser:

o Externas o entradas: Son determinados por otros procesos o por el ambiente donde se encuentra el proceso.

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.

o 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:

Regulación (rechazo de las perturbaciones) Seguimiento de referencia.

Fig.41

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 29

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 Control Manual: Si las variables manipuladas son determinadas por el operador.

o 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:

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 30

- 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:

Variables con unidades:

- Flujo de entrada del líquido smtF /][)( 3=

- Densidad del líquido 3/][)( mKgt =ρ

Fig.42

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 31

- Nivel de la altura del líquido mth ][)( =

- Área transversal del tanque 2][ mAC =

- Volumen del líquido 3][)( mtV = - Tiempo st ][= 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

ρρρρ === )()()( 10 ttt Detalles paso-a-paso: Desarrollando el balance de masa para este proceso:

- Masa que se acumula: ( )

dttVtd )()(ρ

- Masa que ingresa: )()( 00 tFtρ - Masa que sale:

)()( 11 tFtρ

- No se genera ni consume la masa.

Usando la definición de balanceo y las asunciones, se obtiene:

)()()(10 tFtF

dttdV

−=

Sabiendo que:

)()( thAtV C= Luego tenemos la siguiente ecuación diferencial, que es el modelo

matemático del tanque:

)()()(10 tFtF

dttdhAC −=

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 ( 0=t ). Supongamos que conocemos la altura inicial del líquido que es ( sh ), o:

shh =)0(

El modelo dinámico del proceso con condiciones iniciales se convierte en:

sC hhdondetFtFdt

tdhA =−= )0()()()(10

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 32

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:

sC hhconthtFdt

tdhAthtF =−=⇒= )0()()()()()( 1011 αα

Como se puede ver el modelo es una ecuación diferencial lineal.

Caso 2:

sC hhconthtFdt

tdhAthtF =−=⇒= )0()()()()()( 2021 αα

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: )]([ txF puede ser aproximado por:

])()[()()]([ sss xtxxdxdFxFtxF −+=

Linealización de funciones con dos o más variables:

Una función no lineal: )](,),(),([ 21 txtxtxF nL puede ser aproximado por:

])()[,,,(

])()[,,,(

])()[,,,(),,,()](,),(),([

21

22212

11211

2121

nsnnsssn

snsss

snsssnsssn

xtxxxxxF

xtxxxxxF

xtxxxxxFxxxFtxtxtxF

−∂∂

+

+

−∂∂

+

−∂∂

+=

L

L

L

LLL

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 33

Ejemplo de aplicación: Sea la ecuación diferencial no lineal de primer orden:

sxxconktxFdt

tdx=+= )0()]([)(

Reemplazando la aproximación de la función )]([ txF en la ecuación diferencial, y evaluando en t=0, se tiene:

kxFkxxxdxdFxF

dtdx

s

xx

sss

s

−=⇒+−+==

=

)(])0()[()(0)0(

)0(0444 3444 21

Q

Lo que nos lleva a:

sssss xtxtXcontXx

dxdF

dttdXxtxx

dxdF

dtxtxd

−==⇒−=− )()()()()(])()[(])([

Transformándose así ODE no lineal en una ODE lineal:

)()()(sx

dxdFkcontkX

dttdX

==

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:

pkttutxgty

mjnittutxfdt

tdx

jiik

jiii

,,1)),(),(()(

,,1,,1)),(),(()(

L

LL

==

=∧==

Para llevar éste conjunto de ecuaciones no lineales a variables de estado lineales de la forma:

uDxCy

uBxAdt

xd

+=

+=

Se procede de la siguiente manera:

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 34

mjpiuxugd

njpiuxxgc

mjniuxufb

njiuxxfa

ji

ij

ji

ij

ji

ij

ji

ij

,,1,,1),(

,,1,,1),(

,,1,,1),(

,,1,),(

00

00

00

00

LL

LL

LL

L

==∂∂

=

==∂∂

=

==∂∂

=

=∂∂

=

Donde 0u es el punto de equilibrio, y 0x son las soluciones de

0),( 0 =xuf .

4. SIMULACIÓN DE PROCESOS DINÁMICOS Y/O SISTEMAS DE CONTROL NO LINEALES Y LINEALES:

Supongamos que tenemos el modelo dinámico de un proceso no lineal/lineal:

)1.4()),(),(()(

)),(),(()(L

=

=

ttrtxGty

ttrtxFdt

tdx

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 dt

tdx )( de la ecuación

anterior se aproxima por:

hkhxhkhx )()( −+

, donde “h” es llamado “paso de integración”

La ecuación 4.1 queda de la siguiente forma:

)),(),((

)),(),(()()(

khkhrkhxGy

khkhrkhxFh

khxhkhx

=

=−+

Reescribiendo tenemos:

)2.4()),(),((

)),(),(()()(L

=+=+

khkhrkhxGykhkhrkhxhFkhxhkhx

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 35

Para k = 0, 1, 2,… el valor del vector )0(x es la condición inicial y se asume que es conocido. Para generar la respuesta de los sistemas no lineales/lineales a la entrada )(khr se procede a calcular recursivamente )3(),2(),( hxhxhx . 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:

)3.4()),(),((

)22(61)()( 4321 L

=

++++=+

khkhrkhxGy

kkkkkhxhkhx

Donde los cuatro vectores se definen por:

)),(,)((

)),(,)((

)),(,)((

)),(),((

34

2223

2222

1

3

1

hkhhkhrkkhxhFk

khkhrkhxhFk

khkhrkhxhFk

khkhrkhxhFk

hhk

hhk

+++=

+++=

+++=

=

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.

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 36

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.

Tenemos los siguientes modelos:

sC hhconthtFdt

tdhA =−= )0()()()(10 α

sC hhconthtFdt

tdhA =−= )0()()()(20 α

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 0)(=

dttdh

para t=0):

o Modelo lineal: F0=4.5 o Modelo No lineal: F0= 2.012461

Método de Programación: Para simular el proceso se usará el método de Euler:

)),(),(()),(),(()()(

khkhrkhxGykhkhrkhxhFkhxhkhx

=+=+

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

Fig.43

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 37

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 (Nombre) Propiedad Valor de Propiedad Frame Frame1 Caption Proceso : Frame Frame2 Caption Parámetros y condiciones iniciales : Frame Frame3 Caption Datos para Graficar : Label Label1 Caption Nivel de altura inicial (hs): Label Label2 Caption alfa (1 o 2): Label Label3 Caption Razón de alimentación (F0): Label Label4 Caption m Label Label5 Caption m^2/s Label Label6 Caption m^3/s Label Label7 Caption m^2 Label Label8 Caption Área transversal del tanque (AC): Label Label9 Caption Modelo: Label Label10 Caption T (Per. de Muestr): Label Label11 Caption m Label Label12 Caption m Label Label13 Caption s Label Label14 Caption s Label Label15 Caption Hmax: Label Label16 Caption Hmin: Label Label17 Caption Tmax: Label Label18 Caption Tmin: Label Label19 Caption Altura: Label Label20 Caption m Label Label21 Caption Flujo: Label Label22 Caption m^3/s Label Label23 Caption Label Label24 Caption CommandButton cmdPau Caption P ” CommandButton cmdCon Caption C > CommandButton cmdEmp Caption E > CommandButton cmdAceptar Caption Aceptar CommandButton cmdSalir Caption Salir TextBox txtFlu Text 0.05 TextBox txtAlt Text 0 TextBox txtTmin Text 0 TextBox txtTmax Text 200 TextBox txtHmin Text 0 TextBox txtHmax Text 10 TextBox txtT Text 0.1 TextBox txtAC 5 TextBox txtalfa12 0.9

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 38

TextBox txths 5 TextBox txtF0 PictureBox picResp Appearance Flat AutoRedraw True Timer Timer1 Enabled False Interval 1 OptionButton optLineal Caption No lineal OptionButton optNolineal Caption Lineal Image Image1 Image Image2 Visible False Image Image3 Visible False Tanque Tanque1

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

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 39

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.

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:

)1.6()( 2 LAAAiA kCCC

VF

dtdC

−−=

Fig.45

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 40

Balance de energía en el contenido del reactor:

)2.6()()( 2 LCp

AP

Ri TT

CVUAkC

CHTT

VF

dtdT

−−∆

−−=ρρ

Balance de energía en el casquillo:

)3.6()()( LCiCC

CC

pCCC

C TTVFTT

CVUA

dtdT

−−−=ρ

Coeficiente de razón de reacción:

)4.6()16.273(0 L+−

= TRE

ekk

Retardo en el sensor de temperatura:

)5.6(1L

∆−

= bTTT

dtdb

T

M

Controlador Proporcional-Integral con retroalimentación:

( ) )6.6(1Lym

dtdy

i−=

τ

)7.6(L

∆−

+= bT

TTKymT

Mfijo

C

Límites de la señal de salida del controlador:

)8.6(10 L≤≤ m

Válvula de control de porcentaje igual (aire para cerrar)

)9.6(max LmCC FF −= α

Los parámetros usados en las ecuaciones anteriores se describen

de la siguiente manera: Parám. Descripción, unidad

AC es la concentración de reactivo en el reactor, kgmol/m^3

AiC es la concentración del reactivo en la alimentación, kgmol/m^3

T es la temperatura en el reactor, C

TT es la temperatura de alimentación, C

CT es la temperatura del casquillo, C

CiT temperatura de entrada del enfriador, C

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 41

b es la señal del transmisor en una escala de 0 a 1 F es la razón de alimentación, m^3/s V es el volumen del reactor, m^3 k es el coeficiente de razón de reacción, m^3/kgmol-s

RH∆ es el calor de la reacción; se supone constante, J/kgmol ρ es la densidad del contenido del reactor, kgmol/m^3

pC es la capacidad calorífica de los reactivos, J/kgmol-C

U es el coeficiente de transferencia total de calor, J/s-m*-C A es el área de transferencia de calor, m^2

CV es el volumen del casquillo, m^3

Cρ es la densidad del enfriador, kg/m^3

pCC es el calor específico del enfriador, J/kg-C

TT∆ es el rango calibrado del transmisor, C

CF es la razón de flujo del enfriador, m^3/s

AC es el límite inferior del rango del transmisor, C

Tτ es la constante de tiempo del sensor de temperatura, s

iτ es el tiempo de integración del controlador, s

y es la variable de retroalimentación de reajuste del controlador m es la señal de salida del controlador en una escala de 0 a 1

CK es la ganancia del controlador; sin dimensiones

maxCF 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

0k es el parámetro de frecuencia de Arrhenius, m^3/s-kgmol

E es la energía de activación de la reacción, J/kgmol R 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 AC , T , CT , b e y ; las variables auxiliares

k , m y CF 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 , AiC , iT , CiT y fijoT . Método de Programación: Para simular el proceso se usará el método de Euler:

)),(),(()),(),(()()(

khkhrkhxGykhkhrkhxhFkhxhkhx

=+=+

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:

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 42

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 'm^3/s CAi = 2.88 'kgmol/m^3 TCi = 27 'C Tfijo = 88 'C Ti = 66 '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) b = (Tfijo – TM)/deltaTT = 0,40 ‘(sin dimensiones) (6.5) T = b*deltaTT + TM = 88.O ‘C (6.4) K = 1.451*1e-3 ‘m^3/kgmol-s (6.1) CA = 1.133 ‘kgmol/m^3 (6.2) TC = 50.5 ‘C (6.3) FC = 7.3 9 2*1e-3 ‘m^3/s (6.9) m = 0.2544 ‘(sin dimensiones) (6.6) y = 0.2544 ‘(sin dimensiones)

Los valores anteriores son calculados por el programa que se desarrollará para simular este proceso.

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 43

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

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 44

Fig.47

Fig.48

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 45

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á )()()()( sGsUsGsY == . 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 ssU 1)( = . Esto lleva a lo que se llama respuesta al escalón.

ssGsUsGsY 1)()()()( ==

La aplicación del teorema del valor final muestra que la respuesta en estado estacionario para un escalón unitario está dado por:

)0(1)()(0

Gs

ssGLimytyLimst

===→

∞∞→

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 )(sG tiene uno o mas ceros en 0=s , entonces

0=∞y .

También es muy útil definir el conjunto de parámetros que describen ciertas propiedades relevantes de la dinámica del sistema.

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 46

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, rt : El tiempo transcurrido hasta el instante en el cual la respuesta al escalón alcanza por primera vez el valor de ∞ykr . La constante rk varía de autor en autor, siendo usualmente 0.9 o bien 1. Sobrepasamiento Positivo, pM : 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, uM : 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, st : 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)

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 47

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):

)()( 121

121 sU

ssasaasbsbbsY nn

n

nn

++++

+++=

L

L

F.T. de sistemas de entradas múltiples y una salida (MISO):

)()()( 2121

121

1121

121 sU

sscsccsdsddsU

ssasaasbsbbsY mm

m

mm

nnn

nn

++++

++++

++++

+++=

L

L

L

L

F.T. de sistemas de control multivariable o sistemas con entradas múltiples y salidas múltiples (MIMO):

++++++++=

++++++++

)()(

)()(

2

1

00

002

1

00

00sUsU

shhsggsffsee

sYsY

sddsccsbbsaa

ww

vv

tt

rr

qq

pm

nn

mm

LL

LL

LL

LL

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:

)()( 121

121 sU

ssasaasbsbbsY nn

n

nn

++++

+++=

L

L

Esto puede ser representado por el modelo de estado en su forma canónica observable:

uDxCy

uBxAdtdx

CC

CC

+=

+=

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 48

Donde:

−−−−

=

n

C

aaaa

A

L

L

MOMMM

L

L

321

1000

01000010

=

1

000

MCB

=

n

TC

b

bbb

CM3

2

1

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:

)()()( 2121

121

1121

121 sU

sscsccsdsddsU

ssasaasbsbbsY mm

m

mm

nnn

nn

++++

++++

++++

+++=

L

L

L

L

Este puede ser representado por el modelo de estado de la siguiente forma:

( ) ( )

+=

+

=

2

12121

2

1

2

120

010

0

uu

DDxCCy

uu

BB

xA

Adtdx

Donde:

−−−−

=

naaaa

A

L

L

MOMMM

L

L

321

11000

01000010

=

1

000

1M

B

=

n

T

b

bbb

CM3

2

1

1

−−−−

=

mcccc

A

L

L

MOMMM

L

L

321

21000

01000010

=

1

000

2M

B

=

m

T

d

ddd

CM3

2

1

2

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.

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 49

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 de transferencia nos permite analizar la estabilidad del sistema.

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:

)()( 121

121 sU

ssasaasbsbbsY nn

n

nn

++++

+++=

L

L

Si lo reescribimos en términos de ecuaciones diferenciales, tenemos lo siguiente (modelo en ecuaciones diferenciales):

)()()()(

)()()()(

122

211

1

121

1

tubdt

tdubdt

tydbdt

tudb

tyadt

tdyadt

tydadt

tyd

n

nnn

nn

n

nnn

n

++++

=++++

−−

L

L

El método de integración de Euler afirma que:

hkhXhkhX

dttdx )()()( −+=

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):

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 50

n

nn

n

n

n

T

nTkTXTnkTXCTkTXCkTX

dttxd

TTkTXTkTXTkTXkTX

dttxd

TTkTXTkTXkTX

dttxd

)())1(()()()(

)3()2(3)(3)()(

)2()(2)()(

11

33

3

22

2

−−−±+−−=

−−−+−−=

−+−−=

− mL

M

En la última ecuación, los signos my± dependen de si n es par o impar. Ahora si aplicamos lo anterior al modelo en ecuaciones diferenciales tendríamos lo siguiente:

))1(())2(()(

)2()3(

)()2(

)()(

)())1(()(

)2()3(

)()2(

)()(

1

11

1

121

10

1

121

22

44

33

1

111

21

33

22

1

101

22

11

110

21

22

42

3

11

12

31

2

01

21

TnkTUT

bCTnktU

T

bCTbC

TkTUT

bCTbCTbTb

TkTUT

bCTbCTbTb

kTUT

bCTbTbTb

nTkTYT

CTnktY

T

CTaC

TkTYT

CTaCTaTa

TkTYT

CTaCTaTa

kTYT

CTaTaTa

nn

nn

nn

nnn

n

nn

nn

nnn

nn

nn

nnn

nn

nn

nn

n

nn

n

nnn

n

n

nn

nnn

n

nn

nnn

n

nn

nn

−−±−−+

−−++++

+−++++

−++++

=

−−−+

±

−−++++

+−++++

−++++

−−

−−−

−−

−−−

−−

−−−

−−

−−

−−

−−−

−−−

mLL

L

L

L

mLL

L

L

L

Finalmente ordenando y asumiendo ciertas constantes, tenemos:

[ ]

[ ][ ]))1(()()(*

)()2()(1)(

210

)1(

210

TnkTUBTkTUBkTUBA

T

nTkTYATkTYATkTYAA

kTY

nnn

n

−−±+−−

+−±+−−−=

−−L

L

Esta última ecuación ya es posible implementarlo.

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 51

En la siguiente figura se muestra el resultado de la implementación en programa:

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:

)()( 121

121 sU

ssasaasbsbbsY nn

n

nn

++++

+++=

L

L

Si llevamos lo anterior a ecuaciones de estado en su forma canónica observable tenemos:

uDxCy

uBxAdtdx

CC

CC

+=

+=

Donde:

−−−−

=

n

C

aaaa

A

L

L

MOMMM

L

L

321

1000

01000010

=

1

000

MCB

=

n

TC

b

bbb

CM3

2

1

Normalmente la matriz CD es una matriz nula.

Fig.49

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 52

Reescribiendo las ecuaciones de estado del sistema dinámico usando Runge-Kutta tenemos:

)()(

)22(61)()( 4321

kTXCkTY

kkkkkTXTkTX

C=

++++=+

Donde los cuatro vectores se definen como:

[ ]

( )[ ])()(

)2

()(

)2

()(

)()(

34

23

22

1

2

1

TkTUBkkTXATk

TkTUBkTXATk

TkTUBkTXATk

kTUBkTXATk

CC

Ck

C

Ck

C

CC

+++=

++

+=

++

+=

+=

Como se puede ver aparecen términos como )2

( TkTU + y

)( TkTU + , para el caso de que )(tu sea el escalón unitario, no hay problemas, sus valores siempre serán 1, por lo tanto son iguales a )(kTU y esto se usará en la programación. En la siguiente figura se muestra el resultado de la implementación en programa:

Fig.50

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 53

8. RESPUESTA EN EL DOMINIO DEL TIEMPO DE SISTEMAS DE CONTROL

9. RESPUESTA EN EL DOMINIO DE LA FRECUENCIA DE SISTEMAS DE CONTROL

Fig.51

Fig.52

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 54

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

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 55

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 )(txa es la entrada al muestreador, la salida es ][][ nxnTx aa ≡ , 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 ][nxq se

representa mediante una secuencia binaria de b bits.

• 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:

∞<<∞−= nnTxnx ],[][

donde ][nx es la señal en tiempo discreto obtenida tomando muestras de la señal analógica )(txa cada T segundos denominado periodo de muestreo o intervalo de muestreo, y su recíproco sFT =1 se llama velocidad de muestreo (muestras por segundo) o frecuencia de muestreo (Hertz).

Fig.54 Fig.55

Fig.56

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 56

sFnnTt ==

Sea:

FtCosAtxa πθ 2),()( =Ω+Ω= Si lo muestreamos:

)2()2(][ θπθπ +=+=s

a FFCosAFnTCosAnTx

De las ecuaciones anteriores se puede obtener:

sFFf =

O equivalentemente:

πωω2

, =Ω= fconT

f se denomina frecuencia normalizada o relativa.

Señales sinusoidales en tiempo continuo: ∞<<∞−=Ω+Ω= tFtCosAtxa ,2),()( πθ

Propiedades: - Para todo valor fijo de la frecuencia F, )(txa es

periódica. )()( txTtx apa =+

TP periodo fundamental.

- Las señales en tiempo continuo con frecuencias diferentes son diferentes.

- El aumento en la frecuencia F resulta en un aumento de la tasa de oscilación de la señal, en sentido de que se incluyen mas periodos en un intervalo de tiempo dado.

Señales sinusoidales en tiempo discreto: ∞<<∞−=+= nfnCosAnx ,2),()( πωθω

Propiedades: - Una sinusoide en tiempo discreto es periódica si su

frecuencia f es un número racional. ][][ nxNnx =+ 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:

21

21

21

21

<<−⇒−== ffof

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 57

• 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 sF ? 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 )(txa es BF =max y la señal se muestrea a una velocidad

BFFs 22 max ≡> , entonces se puede recuperar totalmente a partir de sus muestras mediante la siguiente función de

interpolación Bt

Btsentgππ

2)2()( =

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:

)2()( 0 θπ += tFCosAtxa

)2()( θπ += tFCosAtx kA

con: L,2,1,0 ±±=+= kkFFF sk

muestreadas a

TFs 1= son las mismas.

Por lo tanto )(txA es un alias de )(txa . 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

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 58

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 EL FENÓMENO ALIASING.

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

Fig.57

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 59

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:

][][][ nhnxny ∗= En Fig.58 podemos ver esta operación en forma gráfica.

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 ][nx es una secuencia de longitud N (de 0 a N-1), y es ][nh una secuencia de longitud M (de 0 a M-1), la convolución de las dos señales

][][][ nhnxny ∗= es una secuencia de longitud N+M-1 (de 0 a N+M-2).

20;][][][1

0−+≤≤−= ∑

=NMnknxkhny

M

k

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:

Fig.58

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 60

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.

Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

H D C L Pág. 61

CORRELACIÓN: El concepto de correlación se puede explicar mejor usando un ejemplo.

1.

Fig.57

Fig.59

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