Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matlab Control PDF
Matlab Control PDF
SIMULACIÓN DE SISTEMAS:
FUNCIONES PARA CONTROL
𝑠 2 − 4𝑠 + 20
𝐺 𝑠 =
(𝑠 + 5)(𝑠 2 + 22 + 10)
Representación de polos y ceros
Escribimos num y den, utilizar la función conv:
>> printsys(num,den)
num/den = Pole-Zero Map
5
s^2 - 4 s + 20
4
-----------------------
s^3 + 7 s^2 + 20 s + 50
3
Imaginary Axis
>> denraices=roots(den) % polos del sistema 0
-1
>>pzmap(num,den) -2
>>axis([-6 3 -5 5]) -4
-5
-6 -5 -4 -3 -2 -1 0 1 2 3
Real Axis
Descomposición en Fracciones Parciales
Una FT G(s) se descompone en fracciones parciales con:
>> [r,p,k]=residue(num,den)
Donde: r= coeficientes de los numeradores, p= polos del sistema ((𝒔 − 𝒑𝟏 )(𝒔 − 𝒑𝟐 )...
k= residuo
5 Lo que equivale a:
Ejemplo: 𝐺 𝑠 =
𝑠 2 +2𝑠
>> [num,den]=residue(r,p,k)
2. Convertir:
𝑷(𝒔) −𝟐. 𝟑𝟑𝟑𝟑 𝟑 𝟎. 𝟔𝟔𝟔𝟔
= + −
𝑸(𝒔) 𝒔 + 𝟏𝟏 𝒔+𝟓 𝒔+𝟐
Objetos Simbólicos en Matlab
• Matlab cuenta con herramientas para realizar análisis
simbólico, bajo su sintaxis habitual. Ej.: y=int(x^2)
• Por tanto:
−1
6𝑠 − 4 −2𝑡 −2𝑡
𝐿 2
= 6𝑒 cos 4𝑡 − 4𝑒 𝑠𝑠𝑠 4𝑡
𝑠 + 4𝑠 + 20
Ejercicios
1. Obtener la FT para el diagrama de polos y ceros de la figura:
Pole-Zero Map
4
1
Imaginary Axis
-1
-2
-3
-4
-9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2
Real Axis
𝑠2 −𝑠−3
a) 𝐸 𝑠 = 𝑠(𝑠−1)(𝑠+3)
6𝑠2 +26𝑠+8
b) 𝐹 𝑠 = 𝑠 3 +4𝑠2 +14𝑠+20
10𝑠 2 +51𝑠+56
c) 𝐺 𝑠 = (𝑠+4)(𝑠+2)2
10
𝑃 𝑠 = 𝑚
𝑠
𝑥
Expandir en fracciones parciales y aplicar transformada inversa
Solución de Ecuaciones Diferenciales
Una de las maneras de resolverlas es utilizando la función
dsolve
• D indica la primera diferenciación de la variable dependiente.
• D2 indica la segunda diferenciación y así sucesivamente.
La combinación de dsolve con el símbolo Dn permite
determinar su solución con Matlab.
𝑑𝑑 2 𝑑𝑑
2
+2 + 10𝑦 = 2𝑈(𝑡)
𝑑𝑑 𝑑𝑑
0.25
0.2
0.15
0.1
0.05
0
0 1 2 3 4 5 6
t
Respuesta Transitoria en Matlab
• Se presentan las bondades de Matlab para obtener la respuesta de los
sistemas ante entradas en el dominio del tiempo como el escalón,
impulso y rampa.
• Se analizan las respuestas ante condiciones iniciales y funciones de
tiempo arbitrarias.
𝐾𝐾𝑛2
𝐺 𝑠 = 2
𝑠 + 2𝜁𝑤𝑛 𝑠 + 𝑤𝑛2
𝜁 = Factor de amortiguamiento
𝑤𝑛 = Frecuencia natural
Respuesta Transitoria en Matlab
• Considerando, por ejemplo, el cado de
𝜁 = 0.4
𝑤𝑛 = 5 rad / seg
En Matlab:
>> wn=5;
>> Fa=0.4;
>> [num0,den]=ord2(wn,Fa);
>> num=wn^2*num0;
>> printsys(num,den,'s')
num/den =
25
--------------
s^2 + 4 s + 25
Respuesta al Escalón
Ej 01: Considerando el sistema mecánico mostrado, montado sobre una
plataforma móvil, donde u es el desplazamiento de entrada i y es el
desplazamiento de salida, derivar una función de transferencia y calcular su
respuesta al escalón en Matlab.
𝑚𝑚 = ∑ 𝐹
𝑢 𝑦
𝑑2 𝑦 𝑑𝑑 𝑑𝑑
𝑘 𝑚 2 = −𝑏 − − 𝑘(𝑦 − 𝑢)
𝑑𝑡 𝑑𝑑 𝑑𝑑
𝑚
𝑑2 𝑦 𝑑𝑑 𝑑𝑑
𝑚 2 +𝑏 + 𝑘𝑘 = 𝑏 + 𝑘𝑘
𝑏 𝑑𝑡 𝑑𝑑 𝑑𝑑
>> sys=tf(num,den);
Amplitude
>> step(sys)
>> grid 0.5
0
0 1 2 3 4 5 6
Time (sec)
Respuesta al Escalón
Asignando algunas características personalizadas:
>> t=0:0.01:8;
>> num=[2 10];
>> den=[1 2 10];
>> sys=tf(num,den);
>> step(sys,t);
>> grid
>> title('Respuesta al escalón Sistema Masa-Resorte','Fontsize',20')
>> xlabel('t','Fontsize',20')
>> ylabel('Salida y','Fontsize',20') Respuesta al escalón Sistema Masa-Resorte
1.5
1
Salida y
0.5
0
0 1 2 3 4 5 6 7 8
t (sec)
Respuesta al Escalón
Es posible también obtener curvas de respuesta al escalón a partir de
ecuaciones de estado.
Dado el sistema:
𝑥̇ 1 −1 −1 𝑥1 1 1 𝑢1
= 𝑥2 +
𝑥̇ 2 6.5 0 1 0 𝑢2
𝑦1 1 0 𝑥1 0 0 𝑢1
𝑦2 = 𝑥2 + 0 0 𝑢2
0 1
Graficar las 04 respuestas individuales al escalón.
Respuesta al Escalón
Dada la correspondencia de Funciones de Transferencia a partir de la
ecuación en espacio de estado, de acuerdo a la ecuación:
𝐺 𝑠 = 𝐶(𝑠𝑠 − 𝐴)−1 𝐵
𝑠−1 𝑠
𝑦1 (𝑠) 𝑠 2 + 𝑠 + 6.5 𝑠 2 + 𝑠 + 6.5 𝑢1 (𝑠)
=
𝑦2 (𝑠) 𝑠 + 7.5 6.5 𝑢2 (𝑠)
𝑠 2 + 𝑠 + 6.5 𝑠 2 + 𝑠 + 6.5
Respuesta al Escalón
Sin embargo, graficando directamente de las matrices A, B, C y D, se obtiene
una respuesta equivalente:
Step Response
From: In(1) From: In(2)
>> A=[-1 -1;6.5 0]; 0.4
-0.4
2
1.5
To: Out(2)
0.5
0
0 2 4 6 8 10 12 0 2 4 6 8 10 12
Time (sec)
Respuesta al Escalón para sistemas Retroalimentados
Considerando el sistema mostrado en la figura, obtener la salida C(t),
cuando r(t)=1 y d(t)=0 y viceversa.
𝑑(𝑡)
𝑟(𝑡) 𝑐(𝑡)
>> num1=[1]; 1
>> grid 0
0 0.5 1 1.5 2 2.5
t seg
3 3.5 4 4.5 5
>> t=0:0.01:5;
>> num1=[1];
>> den1=[1 2 0];
>> sys1=tf(num1,den1);
>> sys=feedback(sys1,[10]);
>> [c_d,t]=step(sys,t);
>> plot(t,c_d)
>> grid
>> title('Respuesta al escalón unitario C_d(s)/D(s)')
>> xlabel('t seg')
>> ylabel('Salida Y en función de perturbación d(t)')
Respuesta al Escalón para sistemas Retroalimentados
Graficar la respuesta al escalón de los siguientes sistemas:
a)
𝑟(𝑡) 𝑐(𝑡)
b)
𝑟(𝑡) 𝑐(𝑡)
3
Lugar Geométrico de Raíces
Considerando el sistema en lazo cerrado de la figura:
𝐶(𝑠) 𝐺(𝑠)
=
𝑅(𝑠) 1 + 𝐺 𝑠 𝐻(𝑠)
>> [r,K]=rlocus(num,den)
>> [r,K]=rlocus(num,den,K)
>> [r,K]=rlocus(A,B,C,D)
>> [r,K]=rlocus(A,B,C,D,K)
>> [r,K]=rlocus(sys)
Lugar Geométrico de Raíces
1. Considerando el sistema de la figura, graficar el lugar de raíces
contemplado bajo la región: −6 ≤ 𝑥 ≤ 6, −6 ≤ 𝑦 ≤ 6
Código Matlab:
>> num=[1 3]; den=conv([1 1 0],[1 4 16]);
>> r=rlocus(num,den);
>> plot(r,'-'); v=[-6 6 -6 6]; axis(v); axis('square')
>> grid
>> title('Lugar de Raices de: G(s)=K(s+3)/[s(s+1)(s^2+4s+16)]')
>> xlabel('eje real'); ylabel('eje imaginario')
>> gtext('o','Fontsize',15) % Para ubicar 'o' en el cero de lazo abierto.
>> gtext('x','Fontsize',15) % Para ubicar 'x' en los 04 polos de lazo abierto.
>> gtext('x','Fontsize',15) % Para ubicar 'x' en los 04 polos de lazo abierto.
>> gtext('x','Fontsize',15) % Para ubicar 'x' en los 04 polos de lazo abierto.
>> gtext('x','Fontsize',15) % Para ubicar 'x' en los 04 polos de lazo abierto.
Lugar Geométrico de Raíces
Graficar el LGR para el sistema que se muestra en la figura, considerar:
− 6 ≤ 𝑥 ≤ 6, −6 ≤ 𝑦 ≤ 6.
Considerar:
K=[k1 k2 k3]
Donde:
K1=0:0.2:20;
K2=20:0.1:30;
K3=30:5:1000;
Lugar Geométrico de Raíces
2.
s = tf('s');
G = 2/(3*s+1)/(s+1); %Define FdT
H = 0.5;
sys_ol = G*H; %FdT del sistema en lazo abierto
figure; %Abre una figura nueva
rlocus(sys_ol) %Grafica LGR para sys_ol
Lugar Geométrico de Raíces
>> bode(num,den)
>> bode (num,den,w)
>> bode(A, B, C, D)
>> bode (A, B, C, D, w)
>> bode (A, B, C, D, w)
>> bode (A, B,C,D, iu, w)
>> bode(sys)
>> w=logspace(d1,d2)
>> w=logspace(d1,d2,n)
Por ejemplo, para generar 100 puntos entre 1 rad/seg y 1000 rad /seg:
>>w= logspace(0,3,100)
Análisis de la Respuesta en Frecuencia
Calcular el diagrama de Bode para la FT:
9(𝑠 2 + 0.22 + 1)
G s =
𝑠(𝑠 2 + 1.2𝑠 + 9)
Código Matlab:
4
Ejemplo MG y MF
sys_ol3 = 5/s/(s^2+2*s+4)
% Margen de Ganancia (MG) % Margen de
Fase (MF)
% Frecuencias asociadas Wcg y Wcf
[MG, MF, Wcg, Wcf] = margin(sys_ol3)
% Margen de manera gráfica
margin(sys_ol3)
sys_ol4 = 3e4 * (0.05*s + 1)^2 / ((s+1)^3 * (0.01*s + 1));
% Ancho de banda
BW = bandwidth(sys_ol4)
% Ganancia en continua GH(0)
Gdc = dcgain(sys_ol4)
4
Análisis de la Respuesta en Frecuencia
Considerando el sistema de la figura:
A = [0 1; -5 -2];
B = [0 ; 3];
C = [0 1];
D = 0;
Donde:
x1: ángulo del eje,
x2: velocidad del eje,
x3: corriente de armadura,
%Matriz de estado
A = [0 1 0; 0 -Bf/J Kt/J; 0 -Kth/L -R/L ];
%Matriz de entrada
B = [0 ; 0 ; 1/L];
%Matriz de salida
C = eye(3); %Matriz identidad
%Matriz de transferencia directa
D = 0;
f = 1; %Frecuencia: 1Hz
T = 1/f; %Período
t = 0:T/1000:T; %Vector de tiempos
u = 12*sin (2*pi*f*t); %Señal de voltaje
figure; lsim (sys, u, t) %Aplica señal arbitraria
Investigue cómo se
puede representar
este sistema en MATLAB y
consiga su respuesta
en el tiempo a una
señal cuadrada,
tal como se muestra
en la figura.
Ejercicio: Motor DC
Donde:
kl = 10 m3/s
ko = 50 m2/s
N = 10
Ingresar a la aplicación:
>>sisotool
SISOTOOL