Sie sind auf Seite 1von 55

Instituto Tecnolgico de Zacatepec Ingeniera Electromecnica

Depto. Metal Mecnica.

Anlisis de Sistemas de Control Utilizando Matlab.


Ingeniera de Control.

Agosto - Diciembre 2011

Dr. Oscar Sarmiento Martinez.

Introduccin a los Sistemas de Control.


Existen dos tipos basicos de sistemas de control: El de lazo abierto y el de lazo cerrado. El Control de Lazo Abierto: Es aquel en el cual la accin de control es independiente de la salida.

Tienen dos rasgos sobresalientes: a) La habilidad de ejecutar una accin con exactitud (determinada por su calibracin). b) No presentan problemas de inestabilidad.

El Control de Lazo Cerrado: es aquel en el cual continuamente se est monitoreando la seal de salida para compararla con la seal de referencia y calcular la seal de error, la cual a su vez es aplicada al controlador para generar la seal de control y tratar de llevar la seal de salida al valor deseado. Tambin es llamado control realimentado.

Control de Velocidad en lazo abierto de una mesa giratoria.

Control de Velocidad en lazo cerrado de una mesa giratoria.

Funcin de Transferencia.
La Funcin de Transferencia de un sistema se define como la relacin entre la trasformada de Laplace de la variable de salida y la transformada de Laplace de la variable de entrada, suponiendo que todas las condiciones iniciales son iguales a cero.

La Funcin de Transferencia de un sistema (o elemento) representa la relacin que describe la dinmica del sistema considerado. Puede definirse solamente para un sistema lineal y estacionario (parametro constante).

Funcin de Transferencia.(Conexiones en Serie).

FTSerie.m numg=[1]; deng=[500 0 0]; numgc=[1 1]; dengc=[1 2]; [num,den]=series(numg,deng,numgc,dengc); printsys(num,den);

>> FTSerie

num/den =
s+1 -----------------500 s^3 + 1000 s^2

Funcin de Transferencia.(Conexiones en Paralelo).

FTParalelo.m numg=[1]; deng=[500 0 0]; numgc=[1 1]; dengc=[1 2]; [num,den]=parallel(numg,deng,numgc,dengc); printsys(num,den);

>> FTParalelo num/den = 500 s^3 + 500 s^2 + s + 2 -------------------------500 s^3 + 1000 s^2
7

Funcin de Transferencia.(Function Cloop).

FTCloop.m numg=[1]; deng=[500 0 0]; numgc=[1 1]; dengc=[1 2]; [num1,den1]=series(numg,deng,numgc,dengc); [num,den]=cloop(num1,den1,-1); printsys(num,den);

>> FTCloop

num/den =
s+1 --------------------------500 s^3 + 1000 s^2 + s + 1

10

Funcin de Transferencia.(Function Feedback).

FTFeedback.m numg=[1]; deng=[500 0 0]; numh=[1 1]; denh=[1 2]; [num,den]=feedback(numg,deng,numh,denh,-1); printsys(num,den);

>> FTFeedback

num/den =
s+2 --------------------------500 s^3 + 1000 s^2 + s + 1

11

Funcin de Transferencia.(Function ft).

FTft.m numg=[1]; deng=[500 0 0]; numh=[1 1]; denh=[1 2]; sys1=tf(numg,deng); sys2=tf(numh,denh); sys=feedback(sys1,sys2); display(sys); >> FTft

Transfer function: s+2 -------------------------500 s^3 + 1000 s^2 + s + 1

12

Ejemplo.

13

Mover H2 detras de G4

Eliminando G3G4H1

Eliminando el lazo que contiene H2

Eliminando el ultimo lazo y calculando T(s).


14

Codigo Matlab.
RedBlockes.m
ng1=[1]; >> RedBlockes dg1=[1 10]; ng2=[1]; num/den = dg2=[1 1]; s^5 + 4 s^4 + 6 s^3 + 6 s^2 + 5 s + 2 ng3=[1 0 1]; ---------------------------------------------------------------dg3=[1 4 4]; 12 s^6 + 205 s^5 + 1066 s^4 + 2517 s^3 + 3128 s^2 + 2196 s + 712 ng4=[1 1]; dg4=[1 6]; nh1=[1 1]; dh1=[1 2]; nh2=[2]; dh2=[1]; nh3=[1]; dh3=[1]; n1=conv(nh2,dg4); d1=conv(dh2,ng4); [n2a,d2a]=series(ng3,dg3,ng4,dg4); [n2,d2]=feedback(n2a,d2a,nh1,dh1,+1); [n3a,d3a]=series(ng2,dg2,n2,d2); [n3,d3]=feedback(n3a,d3a,n1,d1); [n4,d4]=series(ng1,dg1,n3,d3); [num,den]=cloop(n4,d4,-1); printsys(num,den); 15

Funcion minreal.

Fminreal.m numg=[1 4 6 6 5 2]; deng=[12 205 1066 2517 3128 2196 712]; [num,den]=minreal(numg,deng); printsys(num,den); >> Fminreal 1 pole-zero(s) cancelled num/den = 0.083333 s^4 + 0.25 s^3 + 0.25 s^2 + 0.25 s + 0.16667 -------------------------------------------------------------s^5 + 16.0833 s^4 + 72.75 s^3 + 137 s^2 + 123.6667 s + 59.3333

16

Ejem2.m num1=[10]; den1=[1 1]; num2=[1]; den2=[2 0 5]; num3=[540]; den3=[1]; num4=[0.1]; den4=[1]; [na,da]=series(num1,den1,num2,den2); [nb,db]=feedback(na,da,num4,den4,-1); [nc,dc]=series(num3,den3,nb,db); [num,den]=cloop(nc,dc,-1); printsys(num,den);

>> Ejem2 num/den = 5400 -------------------------2 s^3 + 2 s^2 + 5 s + 5406

17

Comportamiento de sistemas.
Las especificaciones de comportamiento en el dominio temporal generalmente vienen dadas en terminos de respuesta transitoria de un sistema a una seal de entrada especifica. Como las seales de entrada son generalmente desconocidas , se suele utilizar una seal de entrada estandar de prueba.

18

Funcin Escalon Unitario.


Respuesta a una entrada escalon unitario para el control de velocidad de un motor de traccin elctrico.

Mescalon.m num=[5400]; den=[2 2.5 5402]; t=[0:0.005:3]; sys=tf(num,den); [y t]=step(sys,t); plot(t,y); grid; xlabel('tiempo [seg]'); ylabel('Velocidad');

1.8 1.6 1.4 1.2


Velocidad

1 0.8 0.6 0.4 0.2 0

0.5

1.5 tiempo [seg]

2.5

19

Funcin Impulso.
Sistema realimentado de segundo orden con lazo simple.

Funcin de Transferencia

20

Sys2ordenStep.m t=0:0.1:12; z1=0.1; z2=0.2; z3=0.4; z4=0.7; z5=1; z6=2; num=[1]; den1=[1 2*z1 1]; sys1=tf(num,den1); den2=[1 2*z2 1]; sys2=tf(num,den2); den3=[1 2*z3 1]; sys3=tf(num,den3); den4=[1 2*z4 1]; sys4=tf(num,den4); den5=[1 2*z5 1]; sys5=tf(num,den5); den6=[1 2*z6 1]; sys6=tf(num,den6); [y1,t1]=step(sys1,t); [y2,t2]=step(sys2,t); [y3,t3]=step(sys3,t); [y4,t4]=step(sys4,t); [y5,t5]=step(sys5,t); [y6,t6]=step(sys6,t); plot(t1,y1,t2,y2,t3,y3,t4,y4,t5,y5,t6,y6); xlabel('\omega_n t'); ylabel('y(t)'); title('\zeta=0.1,0.2,0.4,0.7,1.0,2.0'); grid on;

Respuesta a una entrada Escalon Unitario.

=0.1,0.2,0.4,0.7,1.0,2.0
1.8 1.6 1.4 1.2 1
y(t)

0.8 0.6 0.4 0.2 0

10

12

n t

21

Sys2ordenImpulse.m t=0:0.1:12; z1=0.1; z2=0.2; z3=0.4; z4=0.7; z5=1; z6=2; num=[1]; den1=[1 2*z1 1]; sys1=tf(num,den1); den2=[1 2*z2 1]; sys2=tf(num,den2); den3=[1 2*z3 1]; sys3=tf(num,den3); den4=[1 2*z4 1]; sys4=tf(num,den4); den5=[1 2*z5 1]; sys5=tf(num,den5); den6=[1 2*z6 1]; sys6=tf(num,den6); [y1,t1]=impulse(sys1,t); [y2,t2]=impulse(sys2,t); [y3,t3]=impulse(sys3,t); [y4,t4]=impulse(sys4,t); [y5,t5]=impulse(sys5,t); [y6,t6]=impulse(sys6,t); plot(t1,y1,t2,y2,t3,y3,t4,y4,t5,y5,t6,y6); xlabel('\omega_n t'); ylabel('y(t)'); title('\zeta=0.1,0.2,0.4,0.7,1.0,2.0'); grid on;

Respuesta a una entrada Impulso Unitario.

=0.1,0.2,0.4,0.7,1.0,2.0
1 0.8 0.6 0.4 0.2
y(t)

0 -0.2 -0.4 -0.6 -0.8

10

12

n t

23

Funcin Rampa Unitaria (lsim).


En muchos casos, es necesario el simular la respuesta del sistema a una entrada arbitraria pero conocida. En estos casos se utiliza la funcin lsim.

25

SysRampa.m

Comparacin Funcion rampa vs Funcion escalon 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2

[y1,t1]=step(sys1,t); 0.1 [y2,t2]=step(sys2,t); plot(t1,y1,t2,y2,t,u,'--'); 0 0 axis([0 8 0 1]); xlabel('tiempo'); ylabel('Respuestas a entradas arbitrarias'); title('Comparacin Funcion rampa vs Funcion escalon');

Respuestas a entradas arbitrarias

numH=[6]; denH=[1 6 11 6]; sys1=tf(numH,denH); numL=[1.6]; denL=[1 2.584 1.6]; sys2=tf(numL,denL); t=0:0.1:8; % Se crea la Funcin Rampa Uniitaria u=linspace(0,3,81); % Compara el sys1 con la Funcion Rampa Unitaria y=lsim(sys1,u,t);

4 tiempo

26

Simulink
Proporciona un entorno grafico que facilita el analisis, diseo y simulacin de sistemas (de control, electronicos, etc.), que incluyen una serie de rutinas que resuelven los calculos matematicos de fondo, con una sencilla interfaz para su uso, premitiendo dibujar los sistemas como diagramas de bloques tal y como se haria en papel.

27

Simulink

Impulse Response 1.4

1.2

0.8
Amplitude

0.6

0.4

0.2

>> g=tf([8],[1 4 9]) Transfer function: 8 ------------s^2 + 4 s + 9


Amplitude

-0.2

0.5

1.5 Time (sec)

2.5

3.5

Step Response 1 0.9 0.8 0.7

>> impulse(g) >> step(g)

0.6 0.5 0.4 0.3 0.2 0.1 0

28
0 0.5 1 1.5 Time (sec) 2 2.5 3

Ejemplo Simulink

8 s2 +4s+9 Step Transfer Fcn Scope

29

Sistema de amortiguamiento de un automvil

30

31

Modelo Simulink
Gain K Scope

Kd Step Gain 2

1 m.s2 Transfer Fcn Derivative du /dt Gain 1 B

Scope 1 -KGain 3 Scope 2

Scope 3

32

Modelo de un calentador no lineal

33

Step 1

Transfer Fcn 2 1 Rt

2*R*Io 1 Step Transfer Fcn

1 C.s Transfer Fcn 1 Scope

-3 Display

34

35

Sistemas de Control con Toolbox de Matlab.


Matlab permite trabajar mediante un entorno integrado en el diseo de sistemas de control.

Datos experimentales

Modelizacin, analisis y visualizacin de datos

Diseo y Analisis del sistema de control

Simulacin

Codigo

Problema de Ingenieria

Modelizacin Simulacin Hardware Prototipaje

SISTEMA

36

Los Toolboxes mas importantes de Matlab relacionados con control de sistemas pueden clasificarse en tres familias: Productos de modelado (System Identification Toolbox). Productos de diseo y analisis clasico (Control System Toolbox y Fuzzy Logic Toolbox). Productos de diseo y analisis avanzado (Robust Control Toolbox, Mu Analisys Toolbox, LMI Control Toolbox y Model Predictive Toolbox). Productos de optimizacin (Optimization Toolbox).

Modelado

System Identification Toolbox

Diseo y analisis Control System Toolbox Fuzzy Logic Toolbox

Robust Control Toolbox


Mu Analisys Toolbox LMI Control Toolbox

Model Predictive Toolbox


ModeladoOptimizacin OptimizationToolbox
37

Control System Toolbox.


Control System Toolbox es una coleccin de algoritmos que implementan tecnicas comunes de diseo, analisis y obtencin de modelos de sistemas de control. Comprende metodos clasicos y modernos de diseo de controles, incluido lugar geometrico de las raices, colocacin de polos y diseo de reguladores. Puede crear modelos de sistemas lineales invariantes en el tiempo (LTI), como funcin de transferencia, cero/polo/amplificacin o forma de espacios de estados. Puede manipular sistemas de tiempo tanto discreto como continuo y hacer conversiones entre varias representaciones de modelos. Calcula y representa graficamente respuestas de tiempo, respuestas de frecuencia y lugares geometricos de raices.
Sus caracteristicas son: LTI Viewer: GUI interactiva para analizar y comparar sistemas LTI. SISO Design Tool: GUI interactiva para analizar y ajustar sistemas de control de feedback de entrada unica/salida unica (SISO). GUI Suite: Ajuste de preferencias y propiedades, para conseguir un control completo sobre la visualizacin de los plots de tiempo y frecuencia. Objetos LTI: Estructuras especializadas de datos para representar de manera concisa datos de modelos en formatos de funcin de transferencia, espacio de estados, ceros/polos/ganancia y de respuesta en frecuencia. MIMO: Soporte para sistemas de entrada multiple/ salida multiple, sistemas de datos muestreados y tiempo continuo y sistemas con retraso temporal.
38

Funciones y operadores para conectar modelos LTI: Con diagramas de bloques complejos (conexiones en serie, paralelo y realimentacin). Soporte para varios metodos de conversin discreto a continuo. Funciones para representar graficamente las respuestas en tiempo y en frecuencia de sistemas y comparar varios sistemas con un unico comando. Herramientas para tecnicas clasicas y modernas de diseo de controles, incluido lugar geometrico de raices, loop shaping, colocacin de polos y regulacin

39

40

Ejemplo: Diseo de un control de respuesta de lazo cerrado.


Controlar la dinamica dada por la funcin de transferencia de tal manera que la respuesta en lazo cerrado satisfaga las especificaciones siguientes:

Paso No. 1: Introducir la Funcin de Transferencia en ventana de comandos de Matlab.

>> Sistema=tf([1.5],[1 14 40.02])


Transfer function: 1.5 -----------------s^2 + 14 s + 40.02

Paso No. 2: Abrir el SISOTool e importar la funcin de transferencia introducida anteriormente.

41

>> sisotool

42

Paso No. 3: En el menu File, importar el sistema creado con anterioridad.

43

44

Desahabilitar la opcin de Closed-Loop Bode

45

Paso No. 4: En Analisys de la ventana de SISO Design, seleccionar la opcion Other Loop Responses.

46

Paso No. 5: En Closed-Loop mantener la opcin r to y para obtener la respuesta a un cambio escalon unitario.

Para un controlador proporcional de ganancia uno, la respuesta se estabiliza aproximadamente a un tiempo de 1.5 seg. Ademas hay error en estado estacionario.
47

Paso No. 6: Seleccionar la opcion Closed-Loop Poles del menu View para visualizar los polos de la funcin de transferencia de lazo cerrado para una ganancia de este, que es igual a uno.

48

Paso No. 7: Desplazar la grafica de magnitud del diagrama de bode, para obtener un cambio en la ganancia del controlador y en los polos de lazo cerrado del controlador (ajustar la ganancia a un valor de 38).

Otra forma de hacerlo es ajustando directamente el valor de C(s) igual a 38.


49

50

Paso No. 8: Desplegar View para observar los polos del controlador para una ganacia igual a 38.

Se observa que se tiene un margen de fase de 119 grados y ademas nos muestra que el sistema es estable. 51

Paso No. 9: En propiedades del LTI Viewer cambiar los limites de la escala en el tiempo.

Notese que el tiempo de levantamiento es menor que 0.5 seg. Y que el error en estado estacionario ha disminuido.
52

Paso No. 10: Para eliminar el error en estado estacionario hay que aadir un integrador desplegando la opcin Add Pole/Zero

53

Hay que reajustar la ganacia del controlador a un valor de 100

54

Paso No. 11: ajustando la ganancia del controlador a un valor de 100.

Observese que aparece una X roja (polo) en el origen del lugar de las raices.
55

Paso No. 12: Desplegando la respuesta a un escalon unitario del lazo cerrado del control y verificando su sobrepeso y el tiempo de levantamiento.

56

La respuesta escalon unitario con un controlador integral con ganancia de 100 y tiempo integral de uno esta caracterizado por: No hay erro estacionario por que la respuesta se estabiliza en el valor de uno, y por lo que satisface el requerimiento de que el error sea menor que el 5%. El tiempo de levantamiento es de 0.408 seg por lo que satisface la condicion del 0.5 segundos. El sobrepeso maximo es de 1.32 (Pico maximo), lo que corresponde a un 32% por lo que no satisface la condicion de que sea menor a 10%.

57

Das könnte Ihnen auch gefallen