You are on page 1of 46

1

UNIVERSIDAD NACIONAL DE SAN MARTN


FACULTAD DE INGENIERA DE SISTEMAS E INFORMTICA
Departamento Acadmico de Sistemas e Informtica



GUA
USO DEL MATLAB EN SISTEMAS DE CONTROL

Asignaturas:
INGENIERA DE CONTROL
CONTROL POR COMPUTADORA



Docente:

Ing. BUENAVENTURA RIOS RIOS
__________________________
Tarapoto, PER
2012
2

PREFACIO
MATLAB es un programa de gran aplicacin en ingeniera, diseado para realizar clculos
numricos con vectores y matrices, grficos en dos y tres dimensiones, as como, posee un
lenguaje de programacin propio. MATLAB es una abreviatura de MATrix LABoratory.
Dentro de las mltiples herramientas que ofrece MATLAB, tambin se encuentra una librera
denominada Simulink, que permite precisamente la simulacin de procesos mediante
diagramas de bloques, que son de mucha utilidad para la Teora de Control y la Ingeniera de
Control.
Siempre se ha dicho, modelar un sistema es expresar ese sistema en forma matemtica, es
decir, a travs de ecuaciones diferenciales (que contienen derivadas de orden n), porque
representan a procesos o fenmenos dinmicos, que estn en permanente cambio y
movimiento.
Luego, haciendo uso de la Transformada de Laplace podemos pasar cualquier ecuacin
diferencial escrita en trminos generalmente del tiempo (t) a trminos de la variable S, que
es una variable compleja. En suma, se puede expresar en forma de una Funcin de
Transferencia, que relaciona la salida con la entrada del sistema, con un polinomio en el
numerador y otro en el denominador llamada ecuacin caracterstica que es clave para
determinar la estabilidad de los sistemas.
MATLAB como herramienta de clculo nos permite operar con los polinomios, pasarla de
una forma a otra, como por ejemplo, expresar la funcin de transferencia como producto de
races o expandirla en sus fracciones parciales y viceversa; los polinomios se escriben como
vectores y el conjunto de vectores como matrices, lo que le confiere mucha versatilidad
como herramienta de clculo matemtico.
Los sistemas pueden representarse adems como diagramas de bloques, los que se pueden
reducir y/o simplificar, pero sobre todo se pueden simular haciendo uso del subprograma
Simulink, en la que podemos observar grficamente cmo evolucionan las diferentes
variables que representan el funcionamiento dinmico del Sistema.
El ingeniero de sistemas no solo debe tener una concepcin holstica de los sistemas, sino
debe ser capaz de modelarlo, es decir, de expresarlo matemticamente y conocer su
funcionamiento simulando su comportamiento. Para eso, MATLAB y Simulink constituyen
una poderosa herramienta.


3

Conociendo MATLAB
Como ya se ha dicho, MATLAB es un programa para realizar clculos numricos con vectores
y matrices, as como, realizar grficas en dos y tres dimensiones. Adems, puede simular
procesos para efectos de control.

VENTANA INICIAL

MATLAB se puede iniciar como cualquier otro programa, haciendo doble CLICK en el cono
correspondiente. Al iniciarse aparecer una Ventana parecida a la que se muestra en la
Figura 1:

Figura 1: Ventana INICIAL de MATLAB

En ella se pueden observar varias alternativas como: Command Windows, Current Directory,
Command History y Workspace. De ellos el ms importante es el Command Windows
(Ventana de Comandos), porque all se trabaja y se ejecutan los comandos del MATLAB.
Current Directory.- Es el Directorio Actual, el que se utiliza en el momento, muestra los
ficheros con extensin *.m en forma ordenada por fechas, tamaos, nombres, etc.
4

Command History.- Ofrece acceso a las sentencias que se ejecutaron anteriormente en el
Command Windows, lo que facilita la seleccin de dichas sentencias cuando se desea
repetir. Se puede hacer un Copy.
Workspace.- Es el Espacio de Trabajo del MATLAB, contiene informacin sobre las variables
y sus valores guardados en la memoria, los que se pueden visualizar y modificar. (>>Whos).
La disposicin que se muestra en esta Ventana puede ser cambiada por el usuario a travs
de la opcin Desktop Layout del Men Principal. Se tienen varias opciones:
- Default: Por defecto.
- Command Windows Only: Presenta slo la Ventana de Comandos.
- History and Command Windows: Presenta Command Windows y Command History.
- All Tabbet.
- All but Command Windows Minimized: Todos minimizados en el Command Windows.
Es importante hacer mencin a la opcin Editor, a la cual se accede a travs de
Desktop/Editor. En esta ventana se puede trabajar un Programa MATLAB, redactando paso
a paso un borrador, para despus hacerlo correr en el Command Windows. Ver Figura 2.


Figura 2: Acceso al EDITOR

Tambin revierte importancia el uso de la opcin Start (inicio), ubicado en la parte inferior
izquierda del Men Principal, que nos permite el acceso inmediato a algunas capacidades de
MATLAB.
Para salir del MATLAB basta con escribir en el Prompt del Command Windows quit o exit.
Tambin se puede elegir exit en el Men File.
5

VENTANA COMMAND WINDOWS
La presencia del smbolo (>>) en la pantalla del Command Windows indica que el programa
est listo para recibir instrucciones y ejecutarlas.

Figura 3: Ventana COMMAND WINDOWS

Veamos la potencialidad de Command Windows a travs del siguiente ejemplo:
>> A=rand(6), B=inv(A), B*A
A =
0.8147 0.2785 0.9572 0.7922 0.6787 0.7060
0.9058 0.5469 0.4854 0.9595 0.7577 0.0318
0.1270 0.9575 0.8003 0.6557 0.7431 0.2769
0.9134 0.9649 0.1419 0.0357 0.3922 0.0462
0.6324 0.1576 0.4218 0.8491 0.6555 0.0971
0.0975 0.9706 0.9157 0.9340 0.1712 0.8235

B =
0.8891 2.4498 -0.8206 -0.1344 -2.6745 -0.2580
-0.7400 -0.4573 0.2516 0.7079 0.4624 0.4733
3.0570 10.2424 0.6679 -3.7108 -13.1555 -1.4818
-1.0410 -0.2263 -0.6094 -0.1742 1.9017 0.8917
-1.1175 -7.1582 1.1638 2.1185 8.4414 -0.2710
-1.2197 -9.3966 -0.4928 3.0654 10.4896 1.3799
6


ans =
1.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000
-0.0000 1.0000 -0.0000 -0.0000 -0.0000 -0.0000
0.0000 0.0000 1.0000 -0.0000 -0.0000 -0.0000
-0.0000 -0.0000 -0.0000 1.0000 -0.0000 -0.0000
-0.0000 -0.0000 0.0000 -0.0000 1.0000 0.0000
-0.0000 0 0.0000 0 0.0000 1.0000

A es una matriz aleatoria 6x6, mientras que B es una matriz inversa de A. El producto de
ambos B*A da como respuesta (ans) una matriz identidad.
MATLAB resuelve operaciones en Megaflops (Millones de operaciones aritmticas por
segundo). Por ejemplo hagamos el clculo para las siguientes operaciones y mostremos los
resultados.
>> n=1000; A=rand(n); B=rand(n); C=zeros(n); %matrices 1000x1000
>> tini=clock; C=B*A; tend=clock; mflops=(2*n^3)/1000000;
>> mflops/etime(tend,tini) %Calcula Megaflops con "etime"
ans =
3.2895e+003

OPERACIONES CON MATRICES Y VECTORES

MATLAB es bsicamente un programa de clculo matricial potente. Recomendaciones:
1. Utilizar letras MAYUSCULAS para identificar matrices.
2. Utilizar letras MINUSCULAS para identificar vectores y escalares.
Reglas para las Matrices:
- Las Matrices se introducen por filas
- Los elementos de una fila se separan por espacios en blanco o comas (,).
- Las filas se separan por puntos y coma (;).
OPERACIONES BASICAS
Se muestran en la Tabla a continuacin:
7


Expresin en MATLAB OPERACIN
+ Suma aritmtica
- Resta aritmtica
* Multiplicacin aritmtica (.*): elemento a elemento
/ Divisin derecha
\ Divisin izquierda (con un escalar)
^ Elevar un nmero a una potencia
Traspuesta
< Relacin menor que
> Relacin mayor que
<= Relacin menor igual que
>= Relacin mayor igual que
& Producto lgico (operacin AND)
| Suma lgica (operacin OR)
~ Negacin
Tabla N 1

Ejemplos:
>> A=[1 2;3 4] % Matriz A 2x2
A =
1 2
3 4

>> A*2 % Multiplicacin por el escalar 2.
ans =
2 4
6 8

>> A+4 % Sumar a la Matriz A el escalar 4.
ans =
5 6
7 8

>> A-4 % Restar a la Matriz A el escalar 4
ans =
-3 -2
-1 0
8


Otros ejemplos:

>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9

>> A' % Matriz traspuesta de A
ans =
1 4 7
2 5 8
3 6 9

>> B=A'
B =
1 4 7
2 5 8
3 6 9

>> B*A % Producto matricial B*A
ans =
66 78 90
78 93 108
90 108 126

Ms ejercicios:

>> A=[1 4 -3;2 1 5;-2 5 3]
A =
1 4 -3
2 1 5
-2 5 3

>> B=inv(A) % Matriz inversa de A
B =
0.1803 0.2213 -0.1885
0.1311 0.0246 0.0902
9

-0.0984 0.1066 0.0574

>> B*A % Para probar que B*A es la Matriz Identidad.
ans =
1.0000 0.0000 -0.0000
0 1.0000 0.0000
0 -0.0000 1.0000

Practiquemos:

Definicin del Vector Fila x:
>> x=[10 20 30] % Vector Fila "x"
x =
10 20 30

>> y=[5;10;15] % Vector Columna "y"
y =
5
10
15

>> x+y % Operacin indebida, no se puede sumar un vector fila con otro vector columna.
??? Error using ==> plus
Matrix dimensions must agree.

>> y' % Traspuesta del Vector Columna "y"
ans =
5 10 15

>> x+y' % Ahora si se puede sumar dos vectores fila.
ans =
15 30 45



Clc : Pone en blanco la pantalla del Command Windows.
Clear : Elimina todas las variables de Workspace.
Clear x : Elimina la variable x del Workspace.
Who : Lista las variables del Workspace.
10


GRAFICAS EN 2 DIMENSIONES

Para graficar en dos dimensiones el MATLAB utiliza la funcin plot. Existen adems otras
funciones que nos permiten colocar el ttulo del grfico, colocar nombre al eje x y al eje y,
grillar o cuadricular el dibujo y colocar textos en cualquier punto de la grfica. Estas son:

title (TITULO) : Aade un ttulo al grfico.
xlabel(ejeX) : Aade un nombre al eje X.
ylabel(ejeY) : Aade un nombre al eje Y.
text(x,y,Prueba) : Agrega un nombre en la coordenada (x,y).
gtext(prueba) : Agrega texto en un punto del grfico con el mouse.
grid : Incluye cuadrculas al grfico.
grid off : Elimina cuadrculas del grfico.

Ejercicio 1: Graficar el vector X.

>> x=[1 3 2 4 5 3]; % Define vector x.
>> close % Cierra ventana grfica anterior.
>> plot(x) % Grafica el vector x.
>> grid % Coloca cuadrculas al grfico.




Figura 4: Vector X


11

Ejercicio 2: Graficar la funcin seno.

>> x=[-10:0.2:10]; % Define vector x.
>> y=sin(x); % Define la funcin seno de x.
>> close % Cierra la ventana grfica activa anterior.
>> plot(x,y) % Grafica la funcin y=seno(x).
>> grid % Coloca cuadrcula



Figura 5: Funcin seno(x)


Colocamos ttulo, nombres a los ejes y texto en las cuadrculas.

>> x=[-10:0.2:10];
>> y=sin(x);
>> close
>> plot(x,y)
>> grid
>> title('GRAFICO DE LA FUNCION SENO')
>> xlabel('EJE DE LAS ORDENADAS')
>> ylabel('EJE DE LAS ABCISAS')
>> gtext('Funcin Seno')


12


Figura 6: Funcin Seno con textos indicadores




OPERACIONES CON POLINOMIOS


Cuando se modelan sistemas obtendremos ecuaciones diferenciales de orden n, cuyas
soluciones no siempre son fciles de encontrar, por lo que se aplica sobre ellas la
Transformada de Laplace que las convierte en ecuaciones algebraicas (polinomios) en
trminos de la variable s (compleja). Conocer como se manipulan los polinomios en
MATLAB es el objetivo de esta seccin.


REPRESENTACIN DE POLINOMIOS

Supngase los siguientes polinomios:

P
1
(s) = s
4
+ 3s
3
15s
2
- 2s + 9
P
2
(s) = s
3
+ 5
P
3
(s) = (s+1+j)(s+1-j)(s+5)

Para representarlos en MATLAB los polinomios deben ser completos, es decir, deben tener
todos sus coeficiente y en el caso de no tenerlos se lo reemplaza por cero (0).

>> p1=[1 3 -15 -2 9]; % El polinomio se representa por un vector.
>> p2=[1 0 0 5]; % Se agregan ceros en las potencias de "s" que faltan.
>> p3=poly([-1+j;-1-j;-5]); % Se utiliza la funcin poly.


13

EVALUACIN DE POLINOMIOS

Deseamos encontrar el valor del polinomio P(s) = s
3
+ 5 cuando s=2. La respuesta debe ser:
P(2)=(2)
3
+5=13.

>> p2=[1 0 0 5];
>> polyval(p2,2)
ans =
13

Ejercicio.- Supngase el polinomio: g(x) = -x
5
+3x
3
-2.5x
2
-2.5, evaluado en el intervalo [0,5].

>> x=0:5/200:5; % Graficar 201 puntos en el intervalo de [0,5].
>> a=[-1 0 3 -2.5 0 -2.5]; % Define los coeficientes completos del polinomio.
>> g=polyval(a,x); % Genera el polinomio para los diferentes valores de x.
>> plot(x,g);
>> title('FUNCION POLINOMICA')
>> grid

















Figura 7: Grfica de la Funcin Polinmica


SUMA DE POLINOMIOS

Sean los polinomios: g(x)=x
4
-3x
2
-x+2.4 y h(x)=4x
3
-2x
2
+5x-16. Se desea sumar y multiplicar f(x)
por el escalar 3.

>> g=[1 0 -3 -1 2.4]; % Definimos la funcin g(x).
14

>> h=[0 4 -2 5 -16]; % Definimos la funcin h(x) y completamos con cero la potencia de 5.
>> s=g+h % Suma de g(x) y h(x).
s =
1.0000 4.0000 -5.0000 4.0000 -13.6000

>> f=3*h % Multiplicacin de h(x) por el escalar 3.
F =
0 12 -6 15 -48


MULTIPLICACIN Y DIVISIN DE POLINOMIOS

Estas operaciones no son tan sencillas, se requiere el uso de las funciones conv(a,b) y
deconv(n,d). Supngase que se desea hallar el siguiente producto:

g(x)=(3x
3
-5x
2
+6x-2)(x
5
+3x
4
-x
2
+2.5)

>> a=[3 -5 6 -2]; % vector del primer Polinomio.
>> b=[1 3 0 -1 0 2.5]; % vector del segundo polinomio.
>> g=conv(a,b) % Producto de los polinomios.
g =
3.0000 4.0000 -9.0000 13.0000 -1.0000 1.5000 -10.5000 15.0000 -5.0000

El resultado es la ecuacin:

g (x)=3x
8
+4x
7
-9x
6
+13x
5
-1x
4
+1.5x
3
-10.5x
2
+15x-5

Ahora dividamos: h(x)= g(x)/(x
5
+3x
4
-x
2
+2.5)

>> g=[3 4 -9 13 -1 1.5 -10.5 15 -5]; % vector del numerador.
>> b=[1 3 0 -1 0 2.5]; % vector del denominador.
>> [q,r]=deconv(g,b) % operacin Divisin.
q =
3 -5 6 -2
r =
0 0 0 0 0 0 0 0 0

El resultado es: q(x)=3x
3
-5x
2
+6x-2 y su residuo r(x)=0.

RAICES DE POLINOMIOS

En muchos problemas de ingeniera se requiere conocer las races de los polinomios, los que
se obtienen expresando la forma extendida del polinomio en forma de productos. Si el
polinomio es de la forma y=f(x), las races sern los valores de x para los que y=0.
15


Ejemplo.- Sea el polinomio: f(x)=x
2
+x-6= (x+3)(x-2).
Haciendo y=f(x)=(x+3)(x-2)=0, entonces los valores de x para que y=f(x)=0 son: x=-3 y x=2.

La funcin MATLAB para obtener las races de un polinomio es roots(a) donde a es el vector
de coeficientes del polinomio.

Ejemplo.- Sea la funcin: f(x)=x
3
-2x
2
-3x+10. Hallar las races usando MATLAB.

>> p=[1 -2 -3 10];
>> roots(p) % Races del polinomio p.
ans =
-2.0000
2.0000 + 1.0000i
2.0000 - 1.0000i

Las races del polinomio son: x=-2, x=2+i y x=2-i. Entonces:

f(x)=(x+2)(x-2-i)(x-2+i).

Si tenemos las races del polinomio y deseamos encontrar los coeficientes del polinomio, en
ese caso utilizamos la funcin poly(r).

Ejemplo.- Sea el polinomio expresado en forma de races: f(x)=(x-1)(x+1)(x-3). Hallar los
coeficientes del polinomio.

>> a=poly([-1 1 3]) % Las races son (x+1),(x-1) y (x-3), o sea: x=-1, x=1, x=3.
a =
1 -3 -1 3

El polinomio es: f(x)=1x
3
-3x
2
-1x+3.












16

CONVERSIONES DE FUNCIONES DE TRANSFERENCIA


La Funcin de Transferencia de un Sistema de Control est formada por un polinomio en el
numerador y otro polinomio en el denominador. Las races del polinomio denominador
(ecuacin caracterstica) son claves para determinar la estabilidad de los sistemas. De all la
importancia de poder manipular los polinomios haciendo las conversiones necesarias.



X(s) Y(s)




La Funcin de Transferencia es la relacin entre la salida Y(s) y la entrada X(s) del sistema
representado por la funcin G(s) en el bloque que se muestra.


DETERMINACION DE LA FUNCION DE TRANSFERENCIA G(s).

Las races del numerador Y(s) se denominan ceros y las races del denominador se
denominan polos. Los polos son de suma importancia para determinar la estabilidad de los
sistemas de control. La funcin printsys define la Funcin de Transferencia.

Ejemplo.- Sea: G(s) = (2s+3)/(s
2
+3s+6). Expresarlo a travs del MATLAB.

>> ng=[2 3]; % Numerador de G(s).
>> dg=[1 3 6]; % Denominador de G(s).
>> printsys(ng,dg) % Funcin de Transferencia.

num/den =
2 s + 3
-------------
s^2 + 3 s + 6

Para determinar los polos y ceros de G(s) se utiliza la funcin pzmap(ng,dg) de la siguiente
forma:

>> [polos,ceros]=pzmap(ng,dg)
polos =
-1.5000 + 1.9365i
-1.5000 - 1.9365i

G(s)=Y(s)/X(s)
17

ceros =
-1.5000

Para visualizar grficamente en el Plano S los polos (x) y ceros (o) se procede de la siguiente
manera:

>> pzmap(ng,dg) % Visualiza en el Plano S los polos y ceros.



Figura 8: Polos (x) y ceros(o) en el Plano S.


CONVERSIONES DE LA FUNCION DE TRANSFERENCIA

La Funcin de Transferencia de un sistema puede expresarse de diversas formas: Polinomial,
cero-polo-ganancia (por races) y extendida en fracciones parciales.

s
2
+6s+8 (s+2)(s+4) -0.5 1.6 -0.1
G(s)= = = + +
s
3
+2s
2
-5s-6 (s+1)(s-2)(s+3) (s+1) (s-2) (s+3)

CONVERSION DE POLINMICA A CERO-POLO-GANANCIA
Determina los valores de los ceros (z), polos (p) y la constante k que multiplica al numerador
de G(s). En muchos caso k=1. Se utiliza la funcin tf2zp.
>> num=[1 6 8]; % Polinomio del Numerador.
>> den=[1 2 -5 -6]; % Polinomio del Denominador.
>> [z,p,k]=tf2zp(num,den) % z=ceros, p=polos y k=ganancia.
18

z =
-4
-2

p =
2.0000
-3.0000
-1.0000

k =
1

Se obtienen los ceros: (s+4) y (s+2)
Se obtienen los polos: (s-2), (s+3) y (s+1).
Se obtiene la constante K: k=1.


CONVERSION DE CERO-POLO-GANANCIA A POLINMICA

Determina los valores num y den que contienen los coeficientes del numerador y
denominador de G(s), con las potencias de s en forma descendente. Se utiliza la funcin
zp2tf.

>> z=[-2;-4]; % Se determinan los ceros de G(s) y se separan con (;).
>> p=[-1 2 -3]; % Se determinan los polos de G(s).
>> k=1; % La constante en este caso es 1.
>> [num,den]=zp2tf(z,p,k) % Convierte de cero-polo ganancia a polinmica.

num =
0 1 6 8

den =
1 2 -5 -6

Se obtiene el numerador: s
2
+6s+8
Se obtiene el denominador: s
3
+2s
2
-5s-6.



19

CONVERSIN DE POLINMICA A FRACCIONES PARCIALES

Se obtienen las Fracciones Parciales utilizando la funcin residue. Con ella se encuentra los
valores del residuo (r), polos (p) y los trminos directos (k).

>> B=[1 6 8]; % Define el numerador de G(s).
>> A=[1 2 -5 -6]; % Define el denominador de G(s).
>> [r,p,k]=residue(B,A) % Convierte de polinmica a fracciones parciales.
r =
-0.1000
1.6000
-0.5000

p =
-3.0000
2.0000
-1.0000

k =
[]

Se obtienen los residuos: -0.1,1.6 y -0.5.
Se obtienen los polos para cada residuo: (s+3), (s-2) y (s+1).
No hay trminos directos: k=0.


CONVERSIN DE FRACCIONES PARCIALES A POLINOMICA

Se convierte de los residuos (r), polos (p) y valor directo (k) el numerador (num) y el
denominador (den) de la Funcin de Transferencia G(s).

>> r=[-0.1 1.6 -0.5]; % Define los residuos dela fracciones parciales.
>> p=[-3 2 -1]; % Define los polos de cada Fraccin Parcial.
>> k=[]; % Define el valor directo de k, en este caso k=0.
>> [num,den]=residue(r,p,k) % Convierte de Fracciones Parciales a Polinmica.

num =
1 6 8

20

den =
1 2 -5 -6

Se obtiene el numerador: 1s
2
+6s+8
Se obtiene el denominador: 1s
3
+2s
2
-5s-6.


REDUCCIN DE DIAGRAMAS DE BLOQUES

Nos permite simplificar un sistema de muchos bloques (subsistemas) en un solo Bloque
Equivalente que realiza la misma funcin.

Bloques en Serie (cascada):

Sea el siguiente esquema de bloques en serie:


=


Si G
1
(s)=2/(s+5) y G
2
(s)= 3/s(s+6), se desea hallar la ecuacin del bloque equivalente.
>> n1=2;d1=[1 5]; % Ganancia G1.
>> n2=3;d2=poly([0 -6]); % Ganancia G2 en serie con G1.
>> [neq,deq]=series(n1,d1,n2,d2); % Obtiene el numerador y denominador del Bloque
equivalente.
>> printsys(neq,deq)
num/den =
6
-------------------------
s^3 + 11 s^2 + 30 s

Bloques en Paralelo:


+
R(s) C(s)
+


G
1
(s) G
2
(s) Geq(s)
G
1
(s)
G
2
(s)
21

Si G
1
(s)=2/(s+5) y G
2
(s)= 3/s(s+6), se desea hallar la ecuacin del bloque equivalente.

>> n1=2; d1=[1 5]; % Ganancia G1.
>> n2=3; d2=poly([0 -6]); % Ganancia G2 en paralelo con G1.
>> [neqp,deqp]=parallel(n1,d1,n2,d2); % Obtiene el bloque Equivalente paralelo.
>> printsys(neqp,deqp)
num/den =

2 s^2 + 15 s + 15
-------------------------
s^3 + 11 s^2 + 30 s

Bloque Realimentado:

R(s) C(s)
+
-




Si G
1
(s)=2/(s+5) y G
2
(s)= 3/s(s+6), se desea hallar la ecuacin del bloque equivalente.

>> n1=2;d1=[1 5]; % Ganancia G1.
>> n2=3;d2=poly([0 -6]); % Ganancia G2.
>>[neqf,deqf]=feedback(n1,d1,n2,d2,1) % Determina la realimentacin (Feedback).
Realimentacin (+)=1, realimentacin (-)=-1.
neqf =
0 2 12 0

deqf =
1 11 30 -6







G
1
(s)
G
2
(s)
2s
2
+12
S
3
+11s
2
+30s-6
22

Caso Particular:

Simplificacin de Bloques en cascada con races comunes.




>> n1=[1 1];d1=[1 5]; % Ganancia del primer bloque.
>> n2=[1 5];d2=[1 2 3]; % Ganancia del segundo bloque.
>> [ns,ds]=series(n1,d1,n2,d2); % Producto de los bloques en cascada.
>> printsys(ns,ds) % Presenta el bloque equivalente sin simplificar.
num/den =
s^2 + 6 s + 5
-----------------------------
s^3 + 7 s^2 + 13 s + 15

>> [nss,dss]=minreal(ns,ds); % Para simplificar ceros con races.
1 pole-zero(s) cancelled
>> printsys(nss,dss) % Presenta bloque equivalente simplificado.
num/den =
s + 1
----------------
s^2 + 2 s + 3


RESPUESTA DE SISTEMAS DE CONTROL EN EL TIEMPO


La respuesta de los sistemas de control en el tiempo muestra grficamente el
comportamiento de los sistemas ante una seal de entrada, lo cual nos permite realizar una
evaluacin inicial de la estabilidad del mismo antes de su implementacin prctica.

Respuesta al Escaln Unitario:

Dado un sistema como el que se muestra en el diagrama de bloques siguiente:


r(t) y(t)

S+1
S+5
S+5
S
2
+2s+3
G(t)
23

Se desea conocer la respuesta en el tiempo y(t) del sistema cuando se le excita con una seal
de entrada r(t) escaln unitario. Para lo cual se utiliza la funcin step con la siguiente forma:

[y,x,t]=step(num,den)

[y,x,t]=step(num,den,t)

num: numerador de G(t).
den: denominador de G(t).
y: vector que contiene los valores de la salida y(t).
x: vector que contiene los valores de la variable interna del sistema.
t: vector que contiene el rango de tiempo de observacin del sistema.


Ejemplo: Hallar y graficar y(t).


Controlador Planta
r(t) y(t)
+
-



El controlador tiene una ganancia G
1
(t).
La planta tiene una ganancia G
2
(t).

>> n1=6.3*poly([-1.4;-1.4]);d1=[0 1 0]; % ganancia del controlador.
>> n2=1;d2=poly([0;-1;-5]); % ganancia de la planta.
>> [ns,ds]=series(n1,d1,n2,d2); % realiza el producto de las ganancias G1(s) y G2(s).
>> [nlc,dlc]=cloop(ns,ds); % Halla el bloque equivalente realimentado.
>> printsys(nlc,dlc) % muestra la funcin de transferencia del sistema realimentado.

num/den =
6.3 s^2 + 17.64 s + 12.348
-----------------------------------------
s^4 + 6 s^3 + 11.3 s^2 + 17.64 s + 12.348

>> [y,x,t]=step(nlc,dlc) % calcula la respuesta y(t) del sistema.
6.3(s+1.4)
2

s
1
s(s+1)(s+5)
24

y =
0
0.0947
0.3146
0.5906
0.8758
1.1366
1.3500
1.5020
1.5868
1.6059
1.5665
1.4804
1.3618
1.2261
1.0881
0.9607
0.8541
0.7751
0.7273
0.7108
0.7227
0.7582
0.8108
0.8733
0.9388
1.0008
1.0543
1.0955
1.1223
1.1343
1.1324
1.1188
1.0961
1.0679
1.0373
1.0075
0.9811
0.9600
0.9454
0.9378
0.9370
25

0.9419
0.9515
0.9642
0.9784
0.9926
1.0055
1.0162
1.0240
1.0285
1.0297
1.0282
1.0242
1.0186
1.0121
1.0053
0.9990
0.9937
0.9896
0.9871
0.9861
0.9865
0.9880
0.9905
0.9934
0.9966
0.9996
1.0023
1.0044
1.0058
1.0065
1.0065
1.0059
1.0048
1.0035
1.0020
1.0006
0.9993

x =
[]


26

t =
Columns 1 through 16
0 0.1912 0.3824 0.5736 0.7648 0.9561 1.1473 1.3385 1.5297 1.7209
1.9121 2.1033 2.2945 2.4857 2.6769 2.8682

Columns 17 through 32
3.0594 3.2506 3.4418 3.6330 3.8242 4.0154 4.2066 4.3978 4.5891 4.7803
4.9715 5.1627 5.3539 5.5451 5.7363 5.9275

Columns 33 through 48
6.1187 6.3099 6.5012 6.6924 6.8836 7.0748 7.2660 7.4572 7.6484 7.8396
8.0308 8.2220 8.4133 8.6045 8.7957 8.9869

Columns 49 through 64
9.1781 9.3693 9.5605 9.7517 9.9429 10.1342 10.3254 10.5166 10.7078
10.8990 11.0902 11.2814 11.4726 11.6638 11.8550 12.0463

Columns 65 through 78
12.2375 12.4287 12.6199 12.8111 13.0023 13.1935 13.3847 13.5759 13.7672
13.9584 14.1496 14.3408 14.5320 14.7232

>> step(nlc,dlc) % grafica la respuesta en el tiempo de la salida y(t).




Figura 9: Respuesta en el tiempo y(t).

27


Respuesta al Impulso:

>> n1=6.3*poly([-1.4;-1.4]);d1=[0 1 0]; % ganancia del controlador.
>> n2=1;d2=poly([0;-1;-5]); % ganancia de la planta.
>> [ns,ds]=series(n1,d1,n2,d2); % realiza el producto de las ganancias G1(s) y G2(s).
>> [nlc,dlc]=cloop(ns,ds); % Halla el bloque equivalente realimentado.
>> printsys(nlc,dlc) % muestra la funcin de transferencia del sistema realimentado.

num/den =
6.3 s^2 + 17.64 s + 12.348
-----------------------------------------
s^4 + 6 s^3 + 11.3 s^2 + 17.64 s + 12.348

>>[y,x,t]=impulse(nlc,dlc); % Respuesta a la funcin impulso.
>> impulse(nlc,dlc); % grafica la salida y(t) cuando r(t) es la funcin impulso.


Figura 10: Respuesta y(t) a la funcin Impulso.


Respuesta a la funcin Rampa:

Considerando que r(s)=1/s
2
, entonces se aplicar la funcin escaln a la funcin G(s)/s.


R(s) Y(s)

G(s)
s
28



Ejemplo: Considerar G(s)=1/(s
2
+s+1) con R(s)=1/s
2
.


R(s)=1/s Y(s)



>> n=1;d=[1 1 1 0]; % numerador de G(s)/s.
>> t=0:0.1:7; % asignacin del rango del tiempo.
>> y=step(n,d,t); % calculo de la salida y(t).
>> step(n,d)



Figura 11: Respuesta Y(t) a la funcin Rampa.


Respuesta a otro tipo de Entrada:

Para este efecto se utiliza la siguiente relacin:

[ y , x ]= lsim(num,den,r,t)

Donde la salida (y), entrada (r) y el tiempo (t) son los parmetros del sistema.


1
s
3
+s
2
+s
29

R(s) Y(s)
r(t) y(t)


Ejemplo: Hallar la respuesta de G(s)= (5s+1)/(2s+3) cuando la entrada r(t)=0.2sen(5t+2)
cuando t vara entre [0,10].

>> n1=[5 1];d1=[2 3]; % numerador y denominados de la funcin de transferencia.
>> t=0:0.05:10; % definicin del rango del tiempo.
>> r=0.2*sin(5*t+2); % definicin de la seal de entrada r(t).
>> [y,x]=lsim(n1,d1,r,t); % clculo de la salida y(t).
>> lsim(n1,d1,r,t)




Figura 12: Respuesta y(t) a una entrada senoidal.








G(s)
30

SIMULANDO CON SIMULINK

EL ENTORNO SIMULINK

Simulink es una librera del MATLAB que nos permite la simulacin de sistemas de control. Es
bsicamente un entorno grfico que hace uso de diagramas de bloques para analizar y
evaluar el comportamiento dinmico de los sistemas. Para acceder a la librera Simulink,
primero se debe abrir la ventana Command Windows de MATLAB (ver Figura 13).



Figura 13: Ventana principal del Simulink.

Luego se escribe la palabra simulink despus del prompt (>>) y se aprieta la tecla Enter o
en su defecto hacer click en el smbolo correspondiente de la barra de herramientas en la
parte superior de la ventana. Inmediatamente aparecer la ventana de la Figura 14 que
muestra las diversas libreras del Simulink. En ella distinguimos dos partes: La izquierda, que
muestra el conjunto de temas (toolboxes) del Simulink y, a la derecha, el juego de bloques
del Toolbox Simulink que contiene a su vez los bloques especficos para la simulacin de
sistemas de control (Commonly Used Blocks, Continuous, Discrete, Math Operations,
Sources, Sinks, etc.).
31


Figura 14: Libreras del Simulink.


Los bloques ms utilizados del Simulink se muestran en la Figura 15.



Figura 15: Bloques ms utilizados del Simulink.




32

Funciones de cada Bloque:


BLOQUE


LIBRERIA

FUNCIN
Constante Sources Seal de entrada constante
Escaln (Step) Sources Seal de entrada Escaln
Rampa (Ramp) Sources Seal de entrada Rampa.
Senoidal Sources Seal de entrada senoidal.
Workspace Sinks Almacena datos de la seal que llega al Bloque.
Scope Sinks Grafica la seal con respecto al tiempo.
XYgraph Sinks Grafica las entradas en el eje X y el eje Y.
Transfer Fcn Continua Funcin de Transferencia de lazo abierto.
Integrador Continua Integra la seal que recibe.
Ganancia (Gain) Math Amplifica la seal de entrada.
Sumador (Sum) Math Suma dos o ms seales.
PID Simulink extras Controlador proporcional, integral y derivativo.
Mux, Demux Signals & System Multiplexor/Demultiplexor de seales.

Para implementar un Modelo de Simulacin se debe ingresar al Campo de Trabajo (Untitled)
del Simulink, esto se logra siguiendo la secuencia File/New/Model, que nos muestra una
ventana especial para la diagramacin y la simulacin. Hacia este campo deben ser
arrastrados los bloques desde el Toolbox de Simulink, para lo cual se requiere que ambas
ventanas aparezcan en la misma pantalla, tal como se muestra en la Figura 16.


Figura 16: Librera Browser y campo Untitled
33


Ejemplo 1.- Funcin de Transferencia a Lazo Abierto
Evaluar el comportamiento a lazo abierto del sistema de Primer Orden definida por la
siguiente ecuacin: A
1
(dy/dx) + A
0
y = Bx. Si A
1
=1, A
0
=2 y B=2. Analizar la respuesta a la
funcin Escaln Unitario.

Solucin:
Aplicando la transformada de Laplace se obtiene la Funcin de Transferencia:

Y(s)/X(s) = B/(A
1
S+A
0
) = K/(tS+1) Con: K=B/A
0
=1, t=A
1
/A
0
=0.5

Y(s)/X(s) = 1/(0.5s+1)

El diagrama de bloques a lazo abierto queda como sigue:


X(s) Y(s)


PROCEDIMIENTO DE SIMULACIN:

PASO 1.- Desde la ventana inicial de Simulink elegimos la opcin File/New/Model o
digitamos >>simulink, apareciendo directamente la ventana Untiled (Figura 17).


Figura 17: Ventana Untiled del Simulink.


1
0.5s+1
34

PASO 2.- Para trabajar en la Ventana Untiled necesitamos recurrir al Simulink Library
Browser, librera que contiene los bloques necesarios para la simulacin. Se recurre entonces
a la barra Men de Untiled siguiendo la opcin View/library, mostrndonos la pantalla
compuesta que se muestra en la Figura 18. Luego se arrastran los bloques Funcin de
Transferencia (Transfer Fcn), funcin Escaln (Step) y el Osciloscopio (Scope) desde la librera
correspondiente hacia el campo de trabajo Untiled.


Figura 18: Librera de Simulink y campo de trabajo Untiled.

PASO 3.- Interconexin de los elementos. Debe hacerse un arrastre con el ratn desde la
salida de uno de los bloques hasta la entrada del siguiente, como se observa en la Figura 19.


Figura 20: Interconexin de bloques.
35


PASO 4.- Modificacin de parmetros de los bloques. Los parmetros se asignan haciendo
doble Click en el bloque correspondiente y llenando los espacios con los valores pertinentes.
Para el caso en estudio asignaremos los siguientes parmetros:

Escaln Unitario Funcin de Transferencia
Step time = 0
Valor inicial = 0
Valor final = 1
Numerador = [1]
Denominador=[0.5 1]



Figura 21: Parmetros del bloque Step (Escaln).



Figura 22: Parmetros del bloque Transfer Fcn.
36

PASO 5.- Lanzamiento de la simulacin y visualizacin de resultados. Se lanza la simulacin
siguiendo la opcin simulation/start del Men de Untiled o se hace click en el cono start
simulation ( ). Luego se hace doble click en el bloque Scope para visualizar la respuesta del
sistema a lazo abierto (Ver Figura 23).


Figura 23.- La salida alcanza el escaln a los 3 segundos.

NOTA.- Para simular se debe guardar previamente los cambios realizados a los parmetros
de los bloques, es decir, no debe aparecer el asterisco en el nombre de Untitled*.
Ejemplo.- Guardamos nuestro archivo con el nombre SimLA (File/save As/SimLA).

Para visualizar simultneamente el Escaln Unitario (de entrada) y la salida del sistema a lazo
abierto, se requiere incluir un bloque Multiplexor (Mux) de la categora de bloques
Connections o Commonly Used Blocks y realizar la conexin que se muestra en la Figura 24.


Figura 24: Conexin de MUX para doble visualizacin
37

Luego se lanza la simulacin; se visualiza simultneamente la entrada escaln y la seal de
salida haciendo doble click en Scope (Ver Figura 25).


Figura 25: Escaln unitario y seal de salida en simultneo.

Ahora, agreguemos un bloque de ganancia K=10 en el sistema a lazo abierto (Ver Figura 26).








Figura 27: Bloque K=10.










Figura 28: Respuesta con K=10

38

Ejemplo 2.- Funcin de Transferencia a Lazo Cerrado
Evaluar el comportamiento a lazo cerrado del sistema de Primer Orden definida por la
siguiente ecuacin: A
1
(dy/dx) + A
0
y = Bx.

Si A
1
=1, A
0
=2 y B=2. Analizar la respuesta a las funciones impulso y escaln.

Solucin:

Aplicando la transformada de Laplace se obtiene la Funcin de Transferencia:

Y(s)/X(s) = 1/(0.5s+1)

El diagrama de bloques a lazo cerrado queda como se observa en la Figura 29:


Figura 29: Sistema de Primer Grado en lazo cerrado.


La respuesta del sistema de primer orden de lazo cerrado, al impulso y al escaln de
amplitud 5, se muestra en las figuras 30 y 31. En el primer caso, se hace uso del bloque Pulse
Generator la misma que da como respuesta un impulso de amplitud cercano a 5 con una
duracin de 1 segundo, en el segundo caso, se usa un generador de escaln Step obteniendo
una respuesta atenuada en amplitud estabilizndose en 1 segundo.



39


Figura 30: Respuesta del sistema al impulso de amplitud 5.



Figura 31: Respuesta del sistema al escaln de amplitud 5


Ejemplo 3.- Funcin de Transferencia de segundo orden a Lazo Cerrado

Evaluar el comportamiento a lazo cerrado del sistema de Segundo Orden que se muestra en
el bloque a continuacin:

R(s) C(s)


Evaluar la respuesta para una entrada escaln unitario y comparar los resultados para
realimentacin sin ganancia, con ganancia K=5 y el uso de un Controlador PID.

1
s
2
+5s+6
40

Solucin:

Primero, realimentacin H(s)=1 sin ganancia en el lazo directo. Ante el escaln unitario se
obtiene por respuesta una seal que se estabiliza a los 2 segundos con una amplitud baja de
0.14 (Ver Figura 32).


Figura 32: Respuesta al escaln unitario sin ganancia

Segundo, realimentacin H(s)=1 con ganancia K=10 en el lazo directo. Ante el escaln
unitario se obtiene por respuesta una seal que se estabiliza a los 2 segundos con una
amplitud media de 0.64 (Ver Figura 33).


Figura 33: Respuesta al escaln unitario con ganancia K=10.
41


Para el uso del Controlador PID (PID Controller), el bloque se obtiene de la librera Simulink
Extras y se desplaza a Untiled. Los parmetros del Controlador Proporcional Integral
Derivativo (K
P
, K
I
y K
D
) se obtienen empleando el mtodo de Ziegler Nichols, que se obtiene
a partir de la respuesta en lazo abierto de la Funcin de Transferencia del sistema materia de
anlisis (Ver Figura 34), a partir del cual se obtiene el siguiente cuadro:



Figura 34: Identificacin de parmetros L y T de seal a lazo abierto


Controlador K
P
K
I
K
D

P T/L 0 0
PI 0.9 T/L 0.3/L 0
PID 1.2 T/L 1/2L L/2


Considerando que la salida del Controlador PID es:

u(t) = K
p
{ e(t) + K
i
e(t)dt + K
d
de(t)/dt} y que:

K(s) = U(s)/E(s) = K
p
{ 1 + K
i
/s + K
d
s }

En nuestro caso, la respuesta del sistema a lazo abierto se muestra en la Figura 35.



42


Figura 35: Respuesta del sistema a lazo abierto.

A partir del cual se obtiene: L=0.162 y T=2. Con ellos obtenemos los parmetros del
Controlador PID segn Ziegler Nichols:

K
p
=12
K
i
=2.5
K
d
=0.1

Con los parmetros obtenidos simulamos el sistema a lazo cerrado con Controlador PID.


Figura 36: Respuesta al escaln unitario con Controlador PID.

43




Figura 37: Cuadro comparativo de los 3 sistemas a lazo cerrado.


Ejemplo 4.- Control de un sistema Resorte Masa Amortiguador.
Analizar el comportamiento del sistema que se muestra a continuacin si se le somete a
prueba con una seal de entrada escaln unitario:

x(t)
K
f(t)


B

Solucin:
Modelando obtenemos la ecuacin diferencial del sistema:

f(t) = M. d
2
x(t) + B. dx(t) + K x(t)
dt
2
dt

En Simulink podemos crear los bloques integrador y sumador como se muestra en las figuras
38 y 39:

M
44


Figura 38: Bloque Integrador.


Figura 39: Bloque Sumador.

Para poder implementar la ecuacin diferencial en Simulink se hace necesaria la siguiente
transformacin:

d
2
x(t) = 1 { f(t) - B. dx(t) - K x(t)}
dt
2
M dt


d
2
x(t)
dt
2

dx(t)
dt
x(t)
d
2
x(t)
dt
2
dx(t)
dt
x(t)
X(t)+dx(t)
dt
45


f(t)



Figura 40: Diagrama de bloques en Simulink del sistema Resorte Masa Amortiguador.



Figura 41: Simulacin del sistema R-M-A con K=10, B=1 y M=1.

d
2
x(t) = 1 { f(t) - B. dx(t) - K x(t)}
dt
2
M dt

dx(t)
dt
x(t)
46

Para alcanzar el nivel 1 en la salida se prueba algunos cambios en los parmetros de los
bloques. Por ejemplo, para una entrada escaln de 5, con K=10, B=10 y M=4, se obtiene el
resultado de simulacin que se observa en la Figura 42, en la que el sistema se estabiliza con
una amplitud 1 a los 4.5 segundos.



Figura 42: Simulacin con K=10, B=10 y M=4.


Tarapoto, junio del 2012.

You might also like