____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
UNIVERSIDAD SIMÓN BOLÍVARDIVISIÓN DE CIENCIAS FÍSICA Y MATEMÁTICADEPARTAMENTO DE PROCESOS Y SISTEMAS
PROF. SILVANA REVOLLARPROF. YAMILET SÁNCHEZ MONTERO
GUÍA DE INTRODUCCIÓN A MATLAB Y SIMULINK
Matlab (Matrix Laboratory) es un sistema basado en matrices para realizar cálculosmatemáticos y de ingeniería. Simulink es una librería de MATLAB que permite la simulación deprocesos mediante diagramas de bloques.
1) ACCEDER A LA LIBRERÍA DE BLOQUES DE SIMULINK:Al ejecutar MATLAB se abre la Ventana Principal (Matlab Command Window) luego, si se seescribe la instrucción Simulink (�Enter) o se busca en la barra de herramientas el símbolocorrespondiente a Simulink, aparece la ventana llamada Simulink Library Browser (Figura 1).Aquí aparece un listado de las librerías de Simulink, si se desea acceder a una de ellasvisualizando el contenido en forma de bloques se selecciona y se hace click con el botón derechodel mouse, si se desea un listado se presiona el botón izquierdo.
Figura 1: Simulink Library Browser.
La librería Simulink contiene los bloques necesarios para simular un sistema mediante técnicasconvencionales, las demás librerías son herramientas adicionales que se utilizan paraaplicaciones específicas de control avanzado. En la Figura 2 se muestra el contenido de la libreríaSimulink.
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
2) BLOQUES MÁS UTILIZADOS DE SIMULINK:En la tabla 1 se muestran los bloques más utilizados de Simulink, ahí se indica su función, lalibrería en la cual se encuentran y los parámetros que requieren. En las figuras 3 y 4 se muestranalgunos de los bloques más utilizados y su ubicación.
Simulink Block Library 3.0Copyright (c) 1990-1998 by The MathWorks, Inc.
Sources Sinks
In1Out1
Signals& Systems
NonlinearMath Functions& Tables
DiscreteContinuous
Figura 2: Librerías de Simulink.
Figura 3: Bloques de Simulink más utilizados en control y simulación.
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
Figura 4: Bloques de Simulink más utilizados en control y simulación.
3) COMANDOS DE MATLAB MÁS UTILIZADOS EN CONTROL Y SIMULACIÓN:MATLAB tiene infinidad de aplicaciones, pero existen funciones que involucran la resoluciónde problemas de control como lo son la realización de gráficos del lugar de las raíces, de Bode yde Nyquist. A continuación se presenta una lista de las funciones de MATLAB (contenidas en elmenú help) más utilizadas, todas estas funciones deben ser llamadas desde la Ventana Principalde MATLAB (MATLAB Command Window).
� AXIS:Se utiliza para manipular la escala del gráfico actual. Si se escribe la siguiente sintaxis:
axis([ Xmin Xmáx , Ymin Ymáx ]) ó ([ Xmin Xmáx Ymin Ymáx ]) siendo:Xmin , Xmáx = los valores mínimos y máximos respectivamente de escala en el eje horizontal.Ymin , Ymáx = los valores mínimos y máximos respectivamente de escala en el eje vertical.se obtiene la gráfica actual, pero esta vez con una escala que va desde Xmin a Xmáx en el ejehorizontal y de Ymin a Ymáx en el eje vertical.
� BODE:Es la representación de la respuesta frecuencial para sistemas lineales continuos en el
tiempo. La sintaxis es: bode(num,den)y produce el diagrama de Bode para el polinomio representado por la función de transferencia:G(s) = NUM(s) / DEN(s) donde NUM y DEN contienen los coeficientes de polinomio de s enorden descendente.
Cuando se utiliza la secuencia de comandos: [MAG, FAS,W] = BODE(NUM,DEN,...)se obtiene devuelta el vector de frecuencias W y las matrices de margen (MAG) y Fase (FASE)(en grados) como columnas de salida y la longitud (W) en filas. Ningún gráfico de Bode seobtiene con esta secuencia.
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
Tabla 1: Bloques de Simulink más utilizados en el Laboratorio.
Bloque Función Librería Parámetros requeridosConstante Asigna un valor constante a la
entrada.Sources Valor de la constante.
Entradaescalón
Introduce un escalón de magnitudespecífica en un tiempo dado.
Sources Tiempo del escalón Valorinicial del escalónValor final del escalón
EntradaRampa
Introduce una rampa en un tiempoespecificado.
Sources Tiempo de la rampaPendiente
EntradaSenoidal
Introduce una señal senoidalespecíficada por el usuario.
Sources Amplitud de la ondaFrecuenciaFase
Workspace Almacena datos de la señal quellega al bloque y la convierte envector. Si se conecta al reloj sealmacena el vector tiempo.
SinksNombre y tipo de la variable(Save format: Matrix)
Scope Grafica la señal que se introduzcacon respecto al tiempo.
Sinks
XYgraph Grafica la entrada superior en eleje x y la inferior en el eje y
Rango de los ejes
Función deTransferencia
Representa la función detransferencia a lazo abierto.
Contin. Numerador de la FTDenominador de la FT
Integrador Integra una señal en función deltiempo
Contin. Valor inicial desde el cual seva a integrar
Retardo detransporte
Introduce un retardo en el tiempoen el cual aparece la señal.
Contin. Valor del retardo (Debe ser unnúmero positivo)
Ganancia Multiplica la señal por cualquiervalor de ganancia que seintroduzca.
Math Valor de la ganancia
Sumador Suma dos señales. Math Número de entradas a sumarMultiplicador
Multiplica dos señales. Math Número de entradas amultiplicar
Matlab-Function
Aplica cualquier funciónmatemática conocida por Matlaba la señal.
FunctionsandTables
Función a utilizar:Sin, exp, u^b.
PID Es un controlador donde se puedeintroducir una parte proporcional,una integral y una derivativa
Blocksets&Toolbox.:Simulink-extras:Aditionallinear
Proporcional: KIntegral: K/TiDerivativo: K.Td
Mux Permite representar dos señalesdistintas en una misma gráfica.
Signals&System.
Número de entradas
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
� CLOOP:Es la función de transferencia de lazo cerrado. La sintaxis es:cloop(num,den) donde:
num,den = es el numerador y denominador respectivamente de la función de transferencia de lazoabierto.
� GRID:Genera las líneas de división en los gráficos. La sintaxis es: Grid
� HELP: Presenta la descripción y sintaxis de la función o comando de Matlab que se desee.La sintaxis es: Help Nombre de la función o comando.
� LEGEND: Coloca la leyenda del gráfico. La sintaxis es Legend('Serie 1', 'Serie 2').
� MARGIN:Devuelve el margen de ganancia, margen de fase y frecuencias de corte. La sintaxis es:
[Gm,Pm,Wcg,Wcp] = MARGIN(NUM,DEN) lo cual arroja los márgenes de fase y gananciapara un sistema en el dominio s de la forma (NUM,DEN).
Si se utiliza: [Gm,Pm,Wcg,Wcp] = MARGIN(MAG,FASE,W) se obtienen losmárgenes de ganancia y de fase dados los vectores de magnitud de Bode, de fase y de frecuencia.Cuando se utiliza el comando sin los argumentos del lado izquierdo: MARGIN(NUM,DEN) seobtiene el gráfico de Bode con los márgenes de fase y de ganancia señalados con una líneavertical.
� NYQUIST:Representa la respuesta frecuencial para sistemas lineales continuos en el tiempo. Su
sintaxis es: Nyquist(num,den). Esto produce el diagrama para el polinomio representado por lafunción de transferencia G(s) = NUM(s) / DEN(s) donde NUM y DEN contiene los coeficientesde polinomio en orden descendente de s.
Cuando se utiliza con los siguientes argumentos del lado izquierdo del comando:[RE,IM,W] = NYQUIST(NUM,DEN,...) se obtiene el vector de frecuencias W y las matricesRE e IM como columnas con la longitud(W) en filas. Ningún gráfico aparece en la pantalla.
� PLOT:Dibuja una gráfica, la sintaxis es: PLOT(t,g1) donde:
t = es la variable tiempo.g1 = la variable a graficar
Para graficar más de una variables en un solo gráfico utilícese la siguiente sintaxis:plot(t,[g1,g2,...,gn])
� RLOCUS:La sintaxis o secuencia de comandos RLOCUS(NUM,DEN) calcula el gráfico del lugar
de las raíces de la función de transferencia de lazo abierto.Si se escribe la sintaxis: RLOCUS(NUM,DEN,K) se obtiene el mismo gráfico anterior
para un vector de conjunto de ganancias K. Los vectores NUM y DEN debe contener loscoeficientes de denominador y numerador en orden descendente de s.
� RLOCFIND:
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
Muestra el valor de la ganancia K y los polos en el punto seleccionado sobre el lugar delas raíces, la sintaxis es: rlocfind(num,den). Se utiliza después de ejecutar RLOCUS.
� XLABEL, YLABEL:Coloca nombres a los ejes de una gráfica. La sintaxis es: Xlabel('text')
� ZOOM:Sintaxis: Zoom
4) EJEMPLOS:a) Dada la función de transferencia:
FT=24
12
�� ss
Obtenga la respuesta a lazo abierto ante una entrada escalón unitario.
Paso 1:Seleccionar los bloques que se van a utilizar y llevarlos a la ventana Untitled. Para ello se abrecada una de las librerías donde se encuentran los bloques (Ver tabla 1), se hace click sobre elbloque seleccionado para marcarlo y luego se arrastra con el mouse hasta la ventana Untitled.
Clock1
SimoutTo Workspace2
Step Input
1s+1
Transfer Fcn
Paso 2:Armar el modelo. Los bloques se pueden arrastrar con el mouse hasta colocarlos en la posicióndeseada. Para copiar un bloque se arrastra manteniendo apretado el botón derecho de mouse o seutilizan las opciones Copy Paste del menú Edit. Los “cables” que unen los bloques se generanhaciendo click sobre la salida del cable y arrastrándolo hasta el bloque que se va a conectar.
Step Input
Clock1
tTo Workspace2
yTo Workspace1
1s +4s+22
Transfer Fcn
Paso 3:Modificar los parámetros de cada bloque. En este caso los parámetros son:
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
Entrada escalón:Step time: 0 (Para que el escalón sea introducido el tiempo de simulación t=0)Valor inicial: 0 (El escalón parte de 0)Valor final: 1 (Porque es un escalón unitario)
Función de transferencia:El numerador y el denominador se introducen como vectores de coeficientes.Numerator: [1]Denominator: [1 4 2]
To Workspace:Variable name:Al que va conectado al reloj por lo general se le llama t, porque es la variable asociada al tiempo.Al que va conectado a la salida se le puede poner el nombre que se desee.Save format: Matrix
Paso 4:Cambiar los parámetros de simulación.
Parámetros de simulación: (Menú Simulation opción Parameters)En la pestaña Solver:Stop time: 20
Paso 5:Simular y graficar. Después de seleccionar Start en el menú Simulation y escribir la instrucciónplot(t,y) � enter en la Ventana Principal de MATLAB se obtiene:
0 5 10 15 200
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
Paso 6:Mejorar la presentación del gráfico. Llamando al comando grid desde la ventana principal deMATLAB se generan las líneas de división. Llamando a los comandos xlabel(‘t’) y ylabel(‘y’)se coloca nombre a los ejes x y y del gráfico.
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
0 5 10 15 200
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
t
y
b) Compare la respuesta a lazo cerrado obtenida para la función de transferencia delejemplo anterior con la respuesta obtenida al aumentar 5 veces la ganancia y alimplementar un controlador PI de función de transferencia:
Gc1: ��
���
��Ti
K´11 con K=1, Ti=0.5
Paso 1:Los bloques seleccionados son:
Step Input
Clock1
1s+1
Transfer Fcn
Mux
Mux
simoutTo Workspace2
++
Sum1PID
PID Controller
1
Gain
Paso 2:El modelo queda como:
Clock1t
To Workspace2
+-
Sum
1s +4s+22
Transfer Fcn
Mux
Mux
sTo Workspace31
s +4s+22
Transfer Fcn1
5
Gain
+-
Sum1
1s +4s+22
Transfer Fcn2
PID
PID Controller
+-
Sum2
Step Input
Aumentando ganacia
Controlador PI
Step Input2
Lazo cerrado
Step Input1
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
Paso 3:Modificar parámetros:Sumador:List of sigs: +-Ganancia:Gain: 5Mux:Number of inputs: 3PID:Proportional: 1Integral: 1/0.5 (K/Ti)Derivative: 0
Paso 4:Cambiar los parámetros de simulación.
Parámetros de simulación: (Menú Simulation opción Parameters)En la pestaña Solver:Stop time: 15
Pasos 5 y 6:Simular y graficar. Mejorar la presentación del gráfico.(La leyenda se colocó con “Cuadros de texto de Word”)
0 5 10 150
0.2
0.4
0.6
0.8
1
1.2
t
s
Recomendación: En caso de modelos como éste, donde se repiten grupos de bloques, se puedeseleccionar un grupo de bloques haciendo un “drag” sobre ellos y luego copiarlos a dónde sedesee. También se puede alternar el orden de los pasos 2 y 3 según convenga.
Lazo cerrado
Aumentando ganancia
Controlador PI
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
b.1) En este ejemplo se pide, además, hallar el lugar de las raíces y el diagrama de Bode dela función:
Para hallar el lugar de las raíces se escribe en la ventana principal de MATLAB:nun=1 � Enterden= [1 4 2] � Enter
y luego, se escribe la instrucción:Rlocus(nun,den) � EnterSe obtiene:
-4 -3 -2 -1 0 1 2-1.5
-1
-0.5
0
0.5
1
1.5
Para hallar la ganancia en un punto determinado del lugar de las raíces, se escribe la instrucción:Rlocfind(nun, den) � Enter (Debe estar abierto el gráfico de lugar de las raíces)
Aparece un cursor sobre el gráfico y se puede marcar cualquier punto sobre las ramas del LGR, almarcarlo aparecerá en la ventana principal:Selected point -2.003+0.4708i
Ans=2.2216 (Ganancia)
El mismo procedimiento se sigue para hallar el diagrama de Bode:Se escribe la instrucción:Bode(nun,den) y se obtiene el diagrama.
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
c) Si se tiene la ecuación diferencial:
XT
expdtdX
��
���
� ��
6051
Donde Xo=0, T=500
Paso 1:Los bloques seleccionados son:
++
Sum
*
Product
ClockStep Input
youtTo Workspace
1/sIntegrator
1
Gain
MATLABFunction
MATLAB Fcn
Paso 2:Armar el modelo. En este caso las ecuaciones diferenciales se “escriben en bloques de Simulink”como función del tiempo sin realizar ninguna modificación de las mismas para linealizarlas ollevarlas al dominio de Laplace. Se debe despejar la derivada de la variable que se desearepresentar, para luego integrarla con respecto al tiempo y obtener sus valores.
Clock
tTo Workspace1
-60
e/r
MATLABFunction
1/TT
MATLABFunction
exp(e/(kT))
*
Product1
- + Sum
1
1/s Integrator
XaTo Workspace
5
K
Paso 3:
Entrada escalón (T):Step time: 0Valor inicial: 500
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
Valor final 500
Entrada escalón (1):Step time: 0Valor inicial: 0Valor final 1
Integrador:Initial value: 0
Matlab Function (1/T):Matlab Function: 1/u
Matlab Function (exp(e/kT)):Matlab Function: exp
Paso 4:Modificar parámetros de simulación.Parámetros de simulación: (Menú Simulation opción Parameters)En la pestaña Solver:Stop time: 10
Paso 5 y 6:Simular y graficar.En este caso se graficó utilizando la instrucción Plot(t, Xa) y se obtuvo:
0 2 4 6 8 100
0.05
0.1
0.15
0.2
0.25
t
X
Si se introduce una perturbación:Para introducir una perturbación de 150K en la temperatura a los 5s de simulación:Se modifica:Entrada escalón (T):Step time: 5 (Tiempo en el cual se introduce la perturbación)
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
Valor inicial: 500 (Valor de la variable a los 0s)Valor final 650 (Valor de la variable después de introducir un escalón de 150k)Repitiendo los pasos acostumbrados se obtiene:
0 2 4 6 8 100
0.05
0.1
0.15
0.2
0.25
t
X
d) Sistemas no lineales con ecuaciones acopladas:Si se tienen las ecuaciónes diferenciales:
)TaT(BFo*)ToT(AdtdT
���� , A= 0.08 , B= 0.05
)TTa(DFo*)ToTa(CdtdTa
���� , C=0.5 , D=0.01
Donde Fo, To1 y To son posibles perturbaciones cuyos valores son:Fo=0.01 m3/minTo (To1)=280KTao (To)=350K
Paso 1:Los bloques seleccionados son:
1
Gain1/s
Integrator
youtTo Workspace
++
Sum
*
Product
ClockStep Input
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
Paso 2:Armar el modelo. En este caso las ecuaciones diferenciales se “escriben en bloques de Simulink”como función del tiempo sin realizar ninguna modificación de las mismas para linealizarlas ollevarlas al dominio de Laplace.
+-
(T-To)
-+
(Ta-To)
0.5
C
Fo
*
Fo*A(T-To)
*
Fo*C(Ta-To)
+-
dT/dt1/sT
0.01
D++
dTa/dt1/sTa
-+
Ta-T
0.05
B
+-
T-Ta
TTo Workspace4
TaTo Workspace3
Clock1
tTo Workspace2
To
To1
0.08
A
Paso 3:Entrada escalón (To1):Step time: 0Valor inicial: 280Valor final 280Entrada escalón (To):Step time: 0Valor inicial: 350Valor final 350
Integrador (T):Initial value: 280
Integrador (Ta):Initial value: 350
Paso 4:Modificar parámetros de simulación.Parámetros de simulación: (Menú Simulation opción Parameters)En la pestaña Solver:Stop time: 100
Paso 5:Simular y graficar.En este caso se graficó utilizando la instrucción Plot(t, [T,Ta] ) y se obtuvo:
____________________________________________________________________________________________________________Prof. Silvana RevollarProf. Yamilet Sánchez Montero
0 20 40 60 80 100280
290
300
310
320
330
340
350
360
370
380
Ta
T