Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PROGRAMACIN EN
VISUAL BASIC 6.0
H D C L
Pg. 0
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
PRESENTACIN
Programacin?, 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
difciles de resolver.
La programacin de sistemas de control, filtros digitales o algn
problema de matemticas, son bastante importantes, ya que nos permite ver
la simulacin de dichos sistemas, es decir, Cmo posiblemente se van a
desempear cuando sean implementados en la prctica? Claro, para el caso
de la matemtica, estos son exactos.
Cuando realizamos una simulacin, debemos ver si esta est completa,
esta bien programada, ya que sta es la labor que desempea un ingeniero, el
ingeniero debe evaluar desde todo punto de vista las ventajas y desventajas de
un sistema diseado, no solo debe seguir reglas, esto lo haran 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 programacin de alto nivel, es
orientado a objetos, permite crear aplicaciones del tipo win32 de manera
sencilla y rpida.
Para el desarrollo de supone que un estudiante tiene nociones bsicas
de programacin, mejor aun si saben programar en otros lenguajes de
programacin, ya que esto facilitar el aprendizaje.
H D C L
Pg. 1
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
I. TEMAS A TRATAR:
PROGRAMACIN DE APLICACIONES BASICAS
PROGRAMACIN DE ALGUNOS PROBLEMAS MATEMTICOS
PROGRAMACIN DE SISTEMAS DE CONTROL
PROGRAMACIN
PARA
PROCESAMIENTO
DIGITAL
DE
SEALES
II. OBJETIVOS:
Dar a conocer la programacin 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 TERICO DE LOS TEMAS A TRATAR
1. PROGRAMACIN EN VISUAL BASIC 6.0
La programacin en Visual Basic (VB) es sencilla, que tiene un
entorno grfico el cual nos permite manipular botones, cuadros de
imagen, cuadros de texto, entre muchos otros, adems 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 MATEMTICOS
La
programacin
matemtica
en
cualquier
lenguaje
de
H D C L
Pg. 2
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
4. PROGRAMACIN PARA PROCESAMIENTO DIGITAL DE SEALES
Para realizar programas relacionados a procesamiento digital de
seales se requiere tener nociones de Ecuaciones en Diferencias,
Transformada Z, Muestreo, convolucin y correlacin, filtros digitales,
FFT, entre otros
5. METODOLOGA DE DESARROLLO DEL CURSO
Los temas mencionados en los cuatro puntos anteriores se
desarrollarn en este curso, conjuntamente con los participantes. No
solo se desarrollarn programas, se abordarn tambin la creacin de:
libreras de clase, funciones, controles Activex.
H D C L
Pg. 3
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
V.
Fig.1
Para empezar a desarrollar aplicaciones sencillas seleccionamos: EXE
estndar (EXE estndar es una aplicacin 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
Pg. 4
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Fig.3
Primer programa:
Desarrollaremos un pequeo 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
H D C L
Pg. 5
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Fig.6
Fig.7
Fig.8
Propiedad
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Valor de Propiedad
Primer Programa
Nombre
Saludo
Mensaje
Salir
Fig.9
H D C L
Pg. 6
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Luego escribimos el cdigo 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 cdigo,
empezamos con el Boton Saludo:
Private Sub Command1_Click()
Nom = Text1.Text
Label2.Caption = "Hola " & Nom & ", Bienvenido a Visual Basic"
End Enseguida
Sub
agregamos cdigo a Mensaje:
Private Sub Command2_Click()
Label3.Caption = "Visual Basic es bastante sencillo y tu lo
aprenders rpidamente"
Finalmente agregamos cdigo 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.10
Fig.11
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 mltiples.
Tambin usaremos el control llamado Frame, llamado tambin Control
Contenedor, el cual nos permite agrupar de manera visual varios
controles.
H D C L
Pg. 7
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Luego asignamos los valores a las propiedades de cada uno de los
controles que se han insertado.
Control (Nombre)
Form1
Label1
Text1
CommandButton1
CommandButton2
Frame1
Check1
Check2- Check10
Text2
CommandButton3
Propiedad
Caption
Caption
Text
Caption
Caption
Caption
Caption
Caption
Text
Caption
Valor de Propiedad
Lo que quiero aprender a Programar
Nombre :
Capturar
Salir
Lo que quiero programar
Programas Bsicos
(Tal como se muestra en Fig.12)
Aceptar
Fig.12
Con este programa aprenderemos a cambiar la propiedad ForeColor de
ciertos controles, en este caso de los Check (vase Fig.13).
Fig.13
H D C L
Pg. 8
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
El cdigo fuente de la aplicacin 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 dilogo con un mensaje (Fig.14):
Fig.14
Programa 3:
A continuacin 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 cdigo fuente se agregar durante el desarrollo del curso, cuando
ejecutemos, el resultado debe ser parecido al mostrado en Fig.16:
H D C L
Pg. 9
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
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 lgicas 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 continuacin:
Botn derecho sobre la ventana de controles, luego
seleccionar Componentes , tal como se muestra en Fig.17:
H D C L
Pg. 10
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Fig.17
Fig.18
En la ventana de controles aparecer el icono MSFlexGrid:
H D C L
Pg. 11
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Fig.19
Fig.20
Fig.21
H D C L
Pg. 12
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Para la segunda Tabla hacemos lo mismo, pero en este caso solo
tendr 1 columna y 4 filas (Fig.22).
Una vez terminado el diseo, 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 cdigo, y finalmente el programa ejecutado debe
tener la apariencia de la Fig.23.
Fig.22
Fig.23
H D C L
Pg. 13
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Programa 5:
Con este ltimo programa bsico aprenderemos a graficar funciones
matemticas, para ello insertamos los siguientes controles:
2 CommandButton (botones)
1 PictureBox (cuadro para imgenes)
El formulario debe quedar parecido a la que se muestra en la Fig.24:
Fig.24
Fig.25
H D C L
Pg. 14
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
VI.
4
3
6
2
botones
etiquetas
cajas de texto
lineas
Los controles los insertamos de tal manera que quede parecida a Fig.26.
H D C L
Pg. 15
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Fig.26
Fig.27
Pg. 16
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
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
Fig.29
9 Luego Aceptar.
En la ventana de cdigo se agregar automticamente lo siguiente:
Public Function Fac()
End Function
Luego le modificamos para que quede de la siguiente manera:
H D C L
Pg. 17
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
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 funcin llamada Com, que se usar para realizar
la combinatoria de 2 nmeros, 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 cdigo correspondiente para que pueda desarrollar
el binomio de Newton y el Trinomio. Tambin crearemos una tercera
funcin, esto ser para arreglar la presentacin del desarrollo del
binomio y del trinomio, esto se desarrollar junto con los participantes.
Las cajas de texto en las que se mostrarn los resultados del Binomio y
Trinomio tienen la propiedad Multiline en verdadero (True) (vase Fig.
30) lo que quiere decir que se puede mostrar varias lneas en la misma
caja.
Aqu aprenderemos a usar la instruccin vbCrlf
Fig.30
Pg. 18
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Fig.31
Fig.32
Pg. 19
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Fig.33
Mdulo
Mdulo
Mdulo
Mdulo
Mdulo
Mdulo
Vector
detectar sumas
detectar productos
multiplicar polinomios
sumar polinomios
multiplicar y Mdulo sumar
[3 5 2]
3*x^2+5*x+2
Const(2)=3
Const(1)=5
Const(0)=2
Gra= 2
3*x^2
5*x
2
Grado del polinomio
Pg. 20
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Mul(1)= [3 5 2]
Mul(2)= [1 2 3]
Mul(3)= [2 1 5]
Mult_pol Mul(1),Mul(2)
Multiplicacin
Res(1)= [3 11 21 19 6]
Resultado 1
Mult_pol Res(1),Mul(3)
Multiplicacin del
resultado y la
tercera expresin
resultado
final
Resultado de la suma
H D C L
Pg. 21
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Fig.34
H D C L
Pg. 22
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Fig.35
H D C L
Pg. 23
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Programa Graficador de Funciones Matemticas (escala lineal y
logartmica):
Se desarrollar un programa que grafique cualquier funcin
matemtica, ya sea en escala lineal o logartmica, este programa
tambin es de mucha importancia, ya que nos permitir graficar la
respuesta al escaln unitario, las grficas de bode (Sistemas de
Control), adems para la respuestas de los filtros digitales, entre
otros que se desarrollarn en el transcurso del curso.
Este programa tambin ser capaz de detectar el mximo y
mnimo valor de una funcin, y en base a ello la escala vertical ser
automtica y la escala horizontal ser dada y se podr elegir entre lineal
y logartmica.
Se har uso de un nuevo componente: ScriptControl, el cual nos
permitir evaluar una funcin cualesquiera.
Tambin una de las caractersticas es que la variable, rango,
paso, y la funcin 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
Pg. 24
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
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 lmite inferior horizontal ser: 0
- El lmite superior horizontal ser: 50
- El paso ser cada: 0.1 esto para fines de graficar
Para el caso de la escala logartmica, el rango se define como sigue:
w=-1:0.01:3
Lo que significa es que:
-El lmite inferior horizontal ser: 10^(-1)
- El lmite superior horizontal ser: 10^3
- El paso ser cada: 10^(0.01) esto para fines de graficar
H D C L
Pg. 25
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Programa para convertir un nmero 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 representacin con punto flotante es similar a la notacin cientfica,
excepto que se trabaja en base 2, en lugar de base 10. El formato ms
comn es ANSI/IEEE Std. 754-1985. Este estndar define el formato
para nmeros de 32 bits llamados de precisin simple, tambin existe
para nmeros de 64 bits llamados de precisin doble.
Estos 32 bits forman el nmero con punto flotante, v, mediante la
siguiente relacin:
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:
-
Ejemplo:
0 00000111 11000000000000000000000
0.75
M = 1 + m 22 21 + m 21 22 + m 20 23 + m19 23 + K
H D C L
Pg. 26
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Lo descrito hasta ahora permitir comprender la representacin en
binario de los nmeros con punto flotante de precisin simple, esto
mismo se implementa en el programa para finalmente tener el resultado
mostrado en la Fig.40.
Fig.40
H D C L
Pg. 27
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
VII.
Fig.41
Las variables pueden ser:
o
H D C L
Pg. 28
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Pg. 29
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Masa.
Masa del componente i (balance de especias).
Energa.
Momentum.
Un ejemplo sencillo:
El proceso mostrado en Fig.42 es un tanque que tiene un lquido
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
H D C L
F (t ) [=] m3 / s
(t ) [=] Kg / m3
Pg. 30
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
-
h (t ) [ = ] m
AC [=] m 2
V (t ) [ =] m3
t [=] s
Asunciones:
-
0 (t ) = 1(t ) = (t ) =
Detalles paso-a-paso:
Desarrollando el balance de masa para este proceso:
d ( (t )V (t ) )
dt
0 (t ) F0 (t )
1 (t ) F1(t )
dV (t )
= F0 (t ) F1 (t )
dt
Sabiendo que: V (t ) = AC h(t )
Luego tenemos la siguiente ecuacin diferencial, que es el modelo
matemtico del tanque:
AC
dh(t )
= F0 (t ) F1 (t )
dt
h(0) = hs
El modelo dinmico del proceso con condiciones iniciales se
convierte en:
AC
H D C L
dh(t )
= F0 (t ) F1(t )
dt
donde
h(0) = hs
Pg. 31
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
El flujo de salida puede ser proporcional a la altura, o bien a la
raz cuadrada de la altura (siendo ste ltimo de mayor
precisin).
Caso 1:
F1(t ) = 1h(t )
AC
dh(t )
= F0 (t ) 1h(t )
dt
con h(0) = hs
F1(t ) = 2 h(t )
AC
dh(t )
= F0 (t ) 2 h(t )
dt
con h(0) = hs
F [ x(t )] = F ( xs ) +
dF
( xs )[ x(t ) xs ]
dx
F
( x1s , x2 s ,L, xns )[ x1(t ) x1s ]
x1
F
( x1s , x2 s ,L, xns )[ x2 (t ) x2 s ]
x2
+L
+
H D C L
F
( x1s , x2 s ,L, xns )[ xn (t ) xns ]
xn
Pg. 32
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Ejemplo de aplicacin:
Sea la ecuacin diferencial no lineal de primer orden:
dx(t )
= F [ x(t )] + k
dt
con x(0) = xs
dx(0)
dF
= 0 = F ( xs ) +
( xs )[ x(0) xs ] + k F ( xs ) = k
dt
dx44
1
42444
3
0 Q x ( 0) = xs
d [ x(t ) xs ] dF
=
( xs )[ x(t ) xs ]
dt
dx
dX (t ) dF
=
( xs ) X (t ) con
dt
dx
X (t ) = x(t ) xs
dX (t )
dF
= kX (t ) con k =
( xs )
dt
dx
ODE: Ordinary Differential Equation
Ecuacin diferencial Ordinaria
Como se pudo ver la linealizacin de modelos matemticos en muy til.
Aplicacin de la linealizacin para la obtencin de Ecuaciones de Estado
Lineales:
Sea el conjunto de ODEs no lineales que describen un proceso:
dxi (t )
= fi ( xi (t ), u j (t ), t ) i = 1,L, n
dt
yk (t ) = gi ( xi (t ), u j (t ), t ) k = 1,L, p
j = 1,L, m
dx
= A x + Bu
dt
y = C x + Du
Se procede de la siguiente manera:
H D C L
Pg. 33
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
aij =
fi 0 0
( x , u ) i, j = 1,L, n
x j
bij =
fi 0 0
( x , u ) i = 1,L, n
u j
j = 1,L, m
cij =
gi 0 0
( x , u ) i = 1,L, p
x j
j = 1,L, n
dij =
gi 0 0
( x , u ) i = 1,L, p
u j
j = 1,L, m
Y/O
SISTEMAS
DE
dx(t )
= F ( x(t ), r (t ), t )
dt
y (t ) = G ( x(t ), r (t ), t )
L(4.1)
dx(t )
de la ecuacin
dt
x(kh + h) x(kh)
, donde h es llamado paso de integracin
h
La ecuacin 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:
H D C L
Pg. 34
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Para k = 0, 1, 2, el valor del vector x(0) es la condicin 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 ecuacin 4.2 es fcil de implementar en cualquier lenguaje de
programacin.
Mtodo de Runge-Kutta:
Mientras que el mtodo de Euler es fcil de entender e
implementar en cdigo, algunas veces para lograr una buena exactitud,
el valor de h debe ser muy pequeo. Muy a menudo, para lograr una
buena precisin en la simulacin, son usados mtodos ms
sofisticados, tal como el mtodo de Runge-Kutta. En el mtodo de
cuarto orden de Runge-Kutta, la aproximacin que se hace es la
siguiente:
k1
,
2
k3
,
2
r (kh + h ), kh + h )
2
r (kh + h ), kh + h )
2
H D C L
Pg. 35
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
5. SIMULACIN 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
AC
dh(t )
= F0 (t ) 1h(t )
dt
AC
dh(t )
= F0 (t ) 2 h(t )
dt
con h(0) = hs
con h(0) = hs
Condiciones Iniciales:
Altura inicial: hs=5 m
Alfa (1 o 2): 0.9 (m^2/s o m^(2.5)/s)
rea de la seccin transversal del tanque: 5 m^2
Clculo del flujo inicial (haciendo
o
o
dh(t )
= 0 para t=0):
dt
Mtodo de Programacin:
Para simular el proceso se usar el mtodo de Euler:
Pg. 36
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Consideraciones en la Programacin:
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: Hctor D. CHOQUE L. para simular procesos que implican
control de nivel de altura, las propiedades de dicho tanque son:
La altura mxima.(Maximo)
El valor real de la altura.(Altura)
El color del lquido que contiene dicho tanque.(Color)
(Nombre)
Frame1
Frame2
Frame3
Label1
Label2
Label3
Label4
Label5
Label6
Label7
Label8
Label9
Label10
Label11
Label12
Label13
Label14
Label15
Label16
Label17
Label18
Label19
Label20
Label21
Label22
Label23
Label24
cmdPau
cmdCon
cmdEmp
cmdAceptar
cmdSalir
txtFlu
txtAlt
txtTmin
txtTmax
txtHmin
txtHmax
txtT
txtAC
txtalfa12
Propiedad
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Caption
Text
Text
Text
Text
Text
Text
Text
Valor de Propiedad
Proceso :
Parmetros y condiciones iniciales :
Datos para Graficar :
Nivel de altura inicial (hs):
alfa (1 o 2):
Razn de alimentacin (F0):
m
m^2/s
m^3/s
m^2
rea transversal del tanque (AC):
Modelo:
T (Per. de Muestr):
m
m
s
s
Hmax:
Hmin:
Tmax:
Tmin:
Altura:
m
Flujo:
m^3/s
P
C>
E>
Aceptar
Salir
0.05
0
0
200
0
10
0.1
5
0.9
Pg. 37
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
TextBox
TextBox
PictureBox
txths
txtF0
picResp
Timer
Timer1
OptionButton
OptionButton
Image
Image
Image
Tanque
optLineal
optNolineal
Image1
Image2
Image3
Tanque1
5
Appearance
AutoRedraw
Enabled
Interval
Caption
Caption
Flat
True
False
1
No lineal
Lineal
Visible
Visible
False
False
Fig.44
H D C L
Pg. 38
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
6. SIMULACIN DEL CONTROL DE TEMPERATURA DE UN TANQUE DE
REACCIN CON AGITACIN CONTINUA:
Figura con etiquetas apropiadas:
Se simular el modelo de un tanque de reaccin con agitacin
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 estn combinados
perfectamente, que los volmenes y las propiedades fsicas son
constantes y que las prdidas 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
Pg. 39
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Balance de energa en el contenido del reactor:
H R
dT F
UA
= (Ti T )
kC A2
(T TC ) L (6.2)
dt V
V C p
C P
Balance de energa en el casquillo:
dTC
UA
F
=
(T TC ) C (TC TCi ) L (6.3)
dt
VC C C pC
VC
Coeficiente de razn de reaccin:
k = k0e
E
R (T + 273.16)
L ( 6 .4 )
db
1
=
dt T
T TM
b L (6.5)
TT
dy 1
= (m y ) L (6.6)
dt i
T fijo TM
m = y + KC
b L ( 6 .7 )
TT
0 m 1 L (6.8)
Vlvula de control de porcentaje igual (aire para cerrar)
FC = FC max m L (6.9)
Los parmetros usados en las ecuaciones anteriores se describen
de la siguiente manera:
Parm.
Descripcin, unidad
CA
C Ai
T
TT
TC
TCi
H D C L
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
b
F
V
k
H R
Cp
es
es
es
es
es
U
A
VC
C pC
TT
FC
CA
T
i
y
m
KC
FC max
k0
E
R
H D C L
Pg. 41
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
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
'm^3/s
'kgmol/m^3
'C
'C
'C
Ahora se pueden utilizar las ecuaciones del modelo para calcular los
dems valores iniciales y variables auxiliares. El orden de los clculos
es el que se muestra a continuacin:
(6.7)
(6.5)
(6.4)
(6.1)
(6.2)
(6.3)
(6.9)
(6.6)
(sin dimensiones)
C
m^3/kgmol-s
kgmol/m^3
C
m^3/s
(sin dimensiones)
(sin dimensiones)
H D C L
Pg. 42
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
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
accin de integracin.
Una vez que se tienen las ecuaciones del modelo, el valor de los
parmetros y las condiciones iniciales, ya podemos programar las
ecuaciones.
Consideraciones en la Programacin:
Se est considerando:
- Off-set de tasa de alimentacin: 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 ocuparan mucho espacio, pero se pueden ver en Fig.46, Fig.47 y Fig.
48.
Resultados de la simulacin:
Se muestran en Fig.46, Fig.47 y Fig. 48.
Fig.46
H D C L
Pg. 43
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Fig.47
Fig.48
H D C L
Pg. 44
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
7. RESPUESTA AL ESCALN DE SISTEMAS DE CONTROL LTI
La respuesta a la funcin Delta de Dirac es de especial inters en
el estudio de sistemas lineales. La transformada de Laplace de la Delta
de Dirac es 1. As, si aplicamos tal funcin 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 observacin puede ser resumido de la
siguiente forma:
La funcin 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.
Y ( s ) = G ( s )U ( s ) = G ( s )
1
s
1
Lim y (t ) = y = Lim sG ( s ) = G (0)
s
t
s 0
Si el sistema es estable, entonces la parte transitoria de la
respuesta al escaln decrecer exponencialmente hacia cero y as y
existir. Note que si G ( s ) tiene uno o mas ceros en s = 0 , entonces
y = 0 .
Tambin es muy til definir el conjunto de parmetros que
describen ciertas propiedades relevantes de la dinmica del sistema.
H D C L
Pg. 45
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Para introducir estas definiciones consideraremos una funcin de
transferencia estable teniendo como respuesta al escaln la figura que
se muestra a continuacin:
Pg. 46
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
La respuesta al escaln de sistemas de control se puede obtener de las
siguientes maneras:
Y (s) =
b1 + b2 s + L + bn s n 1
a1 + a2 s + L + an s n 1 + s n
U ( s)
Y (s) =
b1 + b2 s + L + bn s n 1
a1 + a2 s + L + an s n 1 + s n
U1 ( s ) +
d1 + d 2 s + L + d m s m 1
c1 + c2 s + L + cm s m 1 + s m
U 2 (s)
a0 + L + a m s m
c0 + L + c m s p
b0 + L + bn s n Y1 ( s ) e0 + L + er s r
=
d 0 + L + d q s q Y2 ( s ) g 0 + L + g v s v
f 0 + L + f t s t U 1 ( s )
h0 + L + hw s w U 2 ( s )
Y (s) =
b1 + b2 s + L + bn s n 1
a1 + a2 s + L + an s n 1 + s n
U ( s)
dx
= AC x + BC u
dt
y = CC x + DC u
H D C L
Pg. 47
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Donde:
1
0
0
0
AC = M
M
0
0
a a
2
1
M
0
O
L
a3 L
0
b1
0
0
b2
0
T
= b3
B = 0 C
M
C C
1
M
M
b
1
an
n
Y (s) =
b1 + b2 s + L + bn s n 1
a1 + a2 s + L + an s n 1 + s n
U1 ( s ) +
d1 + d 2 s + L + d m s m 1
c1 + c2 s + L + cm s m 1 + s m
U 2 (s)
dx A1
=
dt 0
0
B1 0 u1
x +
A2
0 B 2 u2
u
y = (C1 C2 ) x + (D1 D2 ) 1
u2
Donde:
1
0
0
0
A1 = M
M
0
0
a a
2
1
1
0
0
0
A2 = M
M
0
0
c c
2
1
0
b1
0
0
b2
0
T
B = 0 C1 = b3
M
O
M
1
0 L
1
M
M
a3 L an
1
n
0
1
L
L
M
0
O
L
c3 L
0
d1
0
0
d2
0
T
M B2 = 0 C2 = d3
1
M
M
d
cm
1
m
H D C L
Pg. 48
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
De los dos mtodos anteriores el de mayor precisin es el de
Runge-Kutta, pero la ms fcil de implementar es el mtodo de Euler.
La representacin del modelo en ecuaciones de estado son un
poco ms 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 representacin del modelo en forma de funcin
transferencia nos permite analizar la estabilidad del sistema.
de
Y (s) =
b1 + b2 s + L + bn s n 1
a1 + a2 s + L + an s n 1 + s n
U ( s)
d n y (t )
dt n
+ an
d n 1 y (t )
dt n 1
+ L + a2
bn
dy (t )
+ a1 y (t ) =
dt
d n 1u (t )
dt
n 1
+ bn 1
d n 2 y (t )
dt
n2
+ L + b2
du (t )
+ b1u (t )
dt
Pg. 49
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
d 2 x(t )
dt 2
d 3 x(t )
dt
=
=
M
d n x(t )
dt n
(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 nn1 )
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 nn12 bn )
C nn11bn
LL m
U (kt (n 2)T )
U (kT (n 1)T )
T n 1
T n 1
Finalmente ordenando y asumiendo ciertas constantes, tenemos:
Y (kT ) =
1
[A1Y (kT T ) A2Y (kT 2T ) + L AnY (kT nT )] +
A0
T [n ( n 1) ]
* [B1U (kT ) B2U (kT T ) + L BnU (kT (n 1)T )]
A0
Esta ltima ecuacin ya es posible implementarlo.
H D C L
Pg. 50
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
En la siguiente figura se
implementacin en programa:
muestra
el
resultado
de
la
Fig.49
Y (s) =
b1 + b2 s + L + bn s n 1
a1 + a2 s + L + an s n 1 + s n
U ( s)
dx
= AC x + BC u
dt
y = CC x + DC u
Donde:
1
0
0
0
AC = M
M
0
0
a a
2
1
M
0
O
L
a3 L
0
b1
0
0
b2
0
T
= b3
B = 0 C
M
C C
1
M
M
b
an
1
n
Pg. 51
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Reescribiendo las ecuaciones de estado del sistema dinmico
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:
k 2 = T AC X (kT ) + 1 + BC U (kT + )
2
2
T
k
k 3 = T AC X (kT ) + 2 + BC U (kT + )
2
2
k 4 = T [AC ( X (kT ) + k 3 ) + BC U (kT + T )]
Como se puede ver aparecen trminos como U (kT +
T
) y
2
muestra
el
resultado
de
la
Fig.50
H D C L
Pg. 52
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
8. RESPUESTA EN EL DOMINIO DEL TIEMPO DE SISTEMAS DE
CONTROL
Fig.51
Fig.52
H D C L
Pg. 53
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
VIII.
Fig.53
H D C L
Pg. 54
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Conceptualmente, podemos ver la conversin A/D como un proceso de
tres pasos:
o
Fig.54
Fig.55
Fig.56
H D C L
Pg. 55
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
n
Fs
t = nT =
Sea:
xa (t ) = A Cos (t + ), = 2F
Si lo muestreamos:
2F
+)
Fs
f =
F
Fs
O equivalentemente:
= T , con
f =
xa (t + T p ) = xa (t )
TP periodo fundamental.
Las seales en tiempo continuo
diferentes son diferentes.
El aumento en la frecuencia F
aumento de la tasa de oscilacin
sentido de que se incluyen mas
intervalo de tiempo dado.
con frecuencias
resulta en un
de la seal, en
periodos en un
x[n + N ] = x[n]
N periodo fundamental.
La sinusoides en tiempo discreto cuyas frecuencias
estn separadas por un mltiplo entero de 2 , son
idnticas.
La mayor tasa de oscilacin en una sinusoide en
tiempo discreto se alcanza cuando:
o =
< <
o equivalentemente:
f =
H D C L
1
2
f =
1
2
1
1
< f <
2
2
Pg. 56
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
sen(2Bt )
2Bt
xa (t ) = A Cos (2F0t + )
con:
muestreadas a
Fk = F0 + kFs ,
x A (t ) = A Cos (2Fk t + )
k = 1,2,L
Fs = 1 T
Pg. 57
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
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 anlisis de los sistemas de
procesado digital de seales.
Para evitar estas complicaciones, se desprecia la naturaleza
cuantificada de las seales y sistemas digitales en nuestro curso, y los
consideraremos como seales y sistemas en tiempo discreto, por esta
misma razn no se trata a fondo los temas de cuantificacin y
codificacin.
3. SIMULACIN DEL MUESTREO DE UNA SEAL ANALGICA, Y
FENMENO ALIASING.
EL
Fig.57
4. CONVOLUCIN Y CORRELACIN
CONVOLUCIN: Es una operacin matemtica formal, tal como
lo son la adicin, multiplicacin, e integracin. Es una tcnica
matemtica que combina dos seales y produce una tercera
seal. sta es la tcnica ms importante en el tratamiento
H D C L
Pg. 58
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
digital de seales porque relaciona las tres seales de inters: 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.
Matemticamente, la convolucin se representa de la siguiente
manera:
y[ n] = x[ n] h[ n]
Fig.58
y[n] =
M 1
h[k ]x[n k ] ;
0 n M + N 2
k =0
0 n 80
H D C L
Pg. 59
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
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 programacin ser parecida a la mostrada en
Fig.59.
H D C L
Pg. 60
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
Fig.59
1.
Fig.57
H D C L
Pg. 61
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
H D C L
Pg. 62
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
H D C L
Pg. 63
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
H D C L
Pg. 64
Simulacin de Sistemas de: Control Automtico de Procesos, Procesamiento Digital de Seales; y Matemticas
H D C L
Pg. 65