Está en la página 1de 66

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

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

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
+ 1.75 × 2(7 − 127) = +1.316554 × 10−36

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

H D C L 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.

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

H D C L 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 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:

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:

- Flujo de entrada del líquido F (t ) [=] m3 / s


- Densidad del líquido ρ (t ) [=] Kg / m3

H D C L 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 V (t ) [ =] m3
- Tiempo 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 ) )
- Masa que se acumula:
dt
- Masa que ingresa: ρ 0 (t ) F0 (t )
- Masa que sale: ρ1 (t ) F1(t )
- 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:
dh(t )
AC = 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:

dh(t )
AC = F0 (t ) − F1(t ) donde h(0) = hs
dt

H D C L 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:

dh(t )
F1(t ) = α1h(t ) ⇒ AC = F0 (t ) − α1h(t ) con h(0) = hs
dt

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


lineal.

Caso 2:

dh(t )
F1(t ) = α 2 h(t ) ⇒ AC = F0 (t ) − α 2 h(t ) con h(0) = hs
dt

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:

dF
F [ x(t )] = F ( xs ) + ( 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
F [ x1(t ), x2 (t ),L, xn (t )] = F ( x1s , x2 s ,L, xns ) + ( x1s , x2 s ,L, xns )[ x1(t ) − x1s ]
∂x1
∂F
+ ( x1s , x2 s ,L, xns )[ x2 (t ) − x2 s ]
∂x2
+L
∂F
+ ( x1s , x2 s ,L, xns )[ xn (t ) − xns ]
∂xn

H D C L 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 con x(0) = xs
dt

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 dX (t ) dF
= ( xs )[ x(t ) − xs ] ⇒ = ( xs ) X (t ) con X (t ) = x(t ) − xs
dt dx dt dx

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 ∧ j = 1,L, m
dt
yk (t ) = gi ( xi (t ), u j (t ), t ) k = 1,L, p

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

∂fi 0 0
aij = ( x , u ) i, j = 1,L, n
∂x j
∂fi 0 0
bij = ( x , u ) i = 1,L, n j = 1,L, m
∂u j
∂gi 0 0
cij = ( x , u ) i = 1,L, p j = 1,L, n
∂x j
∂gi 0 0
dij = ( x , u ) i = 1,L, p j = 1,L, m
∂u j

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 Y/O SISTEMAS DE


CONTROL NO LINEALES Y LINEALES:

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


lineal/lineal:

dx(t ) 
= F ( x(t ), r (t ), t ) 
dt L(4.1)
y (t ) = G ( x(t ), r (t ), t ) 

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:
dx(t )
Con el método de Euler, el término derivativo de la ecuación
dt
anterior se aproxima por:

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)


k1
k2 = hF ( x(kh) + , r (kh + h ), kh + h )
2 2 2
k3
k3 = hF ( x(kh) + , r (kh + h ), kh + h )
2 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:

dh(t )
AC = F0 (t ) − α1h(t ) con h(0) = hs
dt

dh(t )
AC = F0 (t ) − α 2 h(t ) con h(0) = hs
dt

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

dh(t )
Cálculo del flujo inicial (haciendo = 0 para t=0):
dt

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:


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

H D C L Pág. 37
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

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

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:

dT F ∆H R UA
= (Ti − T ) − kC A2 − (T − TC ) L (6.2)
dt V ρC P V ρ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:

E

R (T + 273.16)
k = k0e L ( 6 .4 )

Retardo en el sensor de temperatura:

db 1  T − TM 
=  − b  L (6.5)
dt τ T  ∆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 es la concentración de reactivo en el reactor, kgmol/m^3
C Ai 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
TC es la temperatura del casquillo, C

TCi temperatura de entrada del enfriador, C

H D C L Pág. 40
Simulación de Sistemas de: Control Automático de Procesos, Procesamiento Digital de Señales; y Matemáticas

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
∆H R es el calor de la reacción; se supone constante, J/kgmol
ρ es la densidad del contenido del reactor, kgmol/m^3
Cp 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
VC 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 es el rango calibrado del transmisor, C


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

CA 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
KC es la ganancia del controlador; sin dimensiones

FC max 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
k0 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 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 '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.

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.

1
Y ( s ) = G ( s )U ( s ) = G ( s )
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)
t →∞ s →0 s

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

b1 + b2 s + L + bn s n −1
Y (s) = U ( s)
a1 + a2 s + L + an s n −1 + s n

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

b1 + b2 s + L + bn s n −1 d1 + d 2 s + L + d m s m −1
Y (s) = U1 ( s ) + U 2 (s)
a1 + a2 s + L + an s n −1 + s n c1 + c2 s + L + cm s m −1 + s m

F.T. de sistemas de control multivariable o sistemas con entradas


múltiples y salidas múltiples (MIMO):

 a0 + L + a m s m b0 + L + bn s n   Y1 ( s )   e0 + L + er s r f 0 + L + f t s t   U 1 ( s ) 
  =  
 c0 + L + c m s p
 d 0 + L + d q s q   Y2 ( s )   g 0 + L + g v s v 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:

b1 + b2 s + L + bn s n −1
Y (s) = U ( s)
a1 + a2 s + L + an s n −1 + s n

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:
 0 1 0 L 0  0  b1 
     
 0 0 1 L 0  0  b2 

AC = M M M O M   
B = 0 C T
=  b3 
  C   C  
 0 0 0 L 1  M  M 
− a − a − a3 L 
− an  1 b 
 1 2    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:

b1 + b2 s + L + bn s n −1 d1 + d 2 s + L + d m s m −1
Y (s) = U1 ( s ) + U 2 (s)
a1 + a2 s + L + an s n −1 + s n c1 + c2 s + L + cm s m −1 + s m

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


forma:

dx  A1 0  B1 0   u1 
=  x +    
dt  0 A2   0 B 2   u2 
u 
y = (C1 C2 ) x + (D1 D2 )  1 
 u2 
Donde:
 0 1 0 0 
L 0  b1 
     
 0 0 1 0 
L 0  b2 

A1 = M M M O M  B = 0 C1 =  b3 
  T
  1    
 0 0 0 L 1  M  M 
− a − a 
− a3 L − an    b 
 1 2 1  n

 0 1 0 L 0  0  d1 
     
 0 0 1 L 0  0  d2 
A2 =  M M M O M  B2 =  0  C2 =  d3 
T
     
 0 0 0 L 1  M  M 
− c − c − c3 L 
− cm    d 
 1 2 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 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:

b1 + b2 s + L + bn s n −1
Y (s) = U ( s)
a1 + a2 s + L + an s n −1 + s n

Si lo reescribimos en términos de ecuaciones diferenciales,


tenemos lo siguiente (modelo en ecuaciones diferenciales):

d n y (t ) d n −1 y (t ) dy (t )
+ an + L + a2 + a1 y (t ) =
dt n dt n −1 dt
d n −1u (t ) d n − 2 y (t ) du (t )
bn + bn −1 + L + b2 + b1u (t )
n −1 n−2 dt
dt 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 ) X (kT ) − 2 X (kT − T ) + X (kT − 2T )


=
dt 2 T2
d 3 x(t ) X (kT ) − 3 X (kT − T ) + 3 X (kT − 2T ) − X (kT − 3T )
=
3
dt T3
M
d n x(t ) X (kT ) − C1n X (kT − T ) + L ± C nn−1 X (kT − (n − 1)T ) m X (kT − nT )
=
dt n 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:

1
Y (kT ) = [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 muestra el resultado de la


implementación en programa:

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:

b1 + b2 s + L + bn s n −1
Y (s) = U ( s)
a1 + a2 s + L + an s n −1 + s n

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:

 0 1 0 L 0  0  b1 
     
 0 0 1 L 0  0  b2 

AC = M M M O M   
B = 0 C T
=  b3 
  C   C  
 0 0 0 L 1  M  M 
− a − a − a3 L 
− an    b 
 1 2 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 2 = T  AC  X (kT ) + 1  + BC U (kT + )
k
  2  2 
 T 
k 3 = T  AC  X (kT ) + 2  + BC U (kT + )
k
  2  2 
k 4 = T [AC ( X (kT ) + k 3 ) + BC U (kT + T )]

T
Como se puede ver aparecen términos como U (kT + ) 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 muestra el resultado de la


implementación en programa:

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
t = nT =
Fs
Sea:
xa (t ) = A Cos (Ωt + θ ), Ω = 2πF
Si lo muestreamos:
2πF
xa [nT ] = A Cos (2πFnT + θ ) = A Cos ( +θ)
Fs
De las ecuaciones anteriores se puede obtener:
F
f =
Fs
O equivalentemente:
ω
ω = ΩT , con f =

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


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:
1 1 1 1
f = o f =− ⇒ − < f <
2 2 2 2

H D C L 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
sen(2πBt )
interpolación g (t ) =
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 + θ ) x A (t ) = A Cos (2πFk t + θ )

con:
Fk = F0 + kFs , k = ±1,±2,L

muestreadas a
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 EL


FENÓMENO ALIASING.

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

M −1
y[n] = ∑ 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

También podría gustarte