Upload
elmer-calle
View
47
Download
0
Embed Size (px)
DESCRIPTION
simulacion con matlab
Citation preview
Programación en Matlab:Control Toolbox
Maestría en Ingeniería de Control y Automatización
2015-2
Objetivos
Encontrar la respuesta en el tiempo de diversos sistemas físicos y analizar los resultados.
Utilizar MATLAB para construir sistemas y analizar su estabilidad mediante diferentes métodos.
Obtener la respuesta en frecuencia de sistemas lineales mediante diagramas de Bode.
Comandos del Control Toolbox
• Dinámica
ss, tf, zpktf2ss, c2dssdata, tfdataseries, parallelorderpole, zero, pzmapminreal
•Análisis
initial, step, lsimbode, nyquistevalfr, dcgainbandwidthpid, lqr, kalmanisstable
Respuesta por Convolución
La respuesta por convolución se utiliza en sistemas lineales.
Se aproxima la respuesta de un sistema mediante la integración de las respuestas individuales a los componentes elementales de la excitación.
Puede usar el comando conv() para realizar esta opeación en Matlab.
Ejemplo:
>> t = 0:0.1:10;
>> u1 = heaviside(t-1) + 2*heaviside(t-4);
>> u2 = 3*exp(-2*t);
>> plot(t,u1,t,u2);
>> y1 = conv(u1,u2);
>> plot(y1)
Funciones de Transferencia
)()(1
)(
sHsG
sGFT
En el enfoque clásico los sistemas de control se representan en frecuencia usando las funciones de transferencia (FT) en Laplace.
G(s), H(s): FT en Laplace
Transformada de Laplace
El comando laplace usa la siguiente definición:
>> syms t x s
>> Fs = laplace(t^2+2*t-2);
>> Gs = laplace(2*t);
>> Geq = Fs*Gs
>> Hs = laplace(heaviside(t-3)+x,t,s)
Transformada Inversa de Laplace
El comando ilaplace usa la siguiente definición:
>> syms s x y
>> f1 = ilaplace(1/(s^2+2));
>> f2 = ilaplace(1/(s^2+2*y),s,x);
Expansión en Fracciones Parciales
La expansión en fracciones parciales es muy útil cuando se desea hallar las respuestas en el tiempo a partir de las Transformadas de Laplace en sistemas con muchos polos.
La expansión se puede realizar en Matlab mediante el comando residue.
Ejemplo:
>> num = 1;
>> den = [1 13 39 27];
>> [z p k] = residue(num,den);
Definición de Funciones de Transferencia
La representación en función de transferencia de un sistema dinámico se puede ingresar a MATLAB con el comando “tf”.
1) Usando el tipo sistema:
>> s = tf(„s‟);
>> Fs = 1/(s-1)/(s-2)
2) Usando vectores:
>> num = [1];
>> den = [1 -3 2];
>> Fs = tf(num,den);
Ejemplo: G1(s) = 10/ (s2+2s+10), G2(s) = 5/(s+5)
1)
>> s = tf(„s‟);
>> G1s = 10/(s^2+2*s+10)
>> G2s = 5/(s+5)
2)
>> num1 = 10;
>> den1 = s^2+2*s+10;
>> num1 = 5;
>> den1 = s+5;
>> G1 = tf(num1,den1)
>> G2 = tf(num2,den2)
Operaciones con FT
Una vez creado un modelo, se puede encontrar características propias tales como los polos y ceros:
>> pole(G3s) %Encuentra polos de FdT>> zero(G3s) %Encuentra ceros de FdT>> pzmap(G3s) %Muestra polos (x) y ceros (o) de manera gráfica
Así como, combinar funciones de transferencia:
>> Gs = series(G1,G2) %Arreglo serie: Gs = G1*G2>> Gp = parallel(G1,G2) %Arreglo paralelo Gp = G1+G2>> Gfn = feedback(G1,G2,-1) %Arreglo de realimentación negativa>> Gfp = feedback(G1,G2,+1) %Arreglo de realimentación positiva
Respuesta de Sistemas en el Tiempo
Respuesta al Impulso:
>> impulse(Geq)
Respuesta al Escalón:
>> step(Geq)
Respuesta a entradas arbitrarias:
>> lsim(Geq,u,t)
Ejemplo:>> t = 0:0.1:50;>> s = tf(„s‟);>> F = (s+1)/(s^3+5*s^2+s+1);>> figure(1);>> subplot(3,1,1);>> impulse(F,t);>> subplot(3,1,2);>> step(F,t);>> subplot(3,1,3);>> u = t.^2 – 4*t;>> lsim(F,u,t);
0 5 10 15 20 25 30 35 40 45 50-0.5
0
0.5
Impulse Response
Time (sec)
Am
plit
ude
0 5 10 15 20 25 30 35 40 45 500
1
2Step Response
Time (sec)
Am
plit
ude
0 5 10 15 20 25 30 35 40 45 50-2000
0
2000
4000Linear Simulation Results
Time (sec)
Am
plit
ude
Aplicación 1: Sistema de suspensión 1DOF
Halle la respuesta (y) del siguiente sistema ante un bache en el camino (yo = -2u(t)+2u(t-1)):
Ecuación:
De las ecuaciones dadas se puede deducir que la FT es:FT = (cv*s+k)/(m*s^2+cv*s+k)Código:>> t = 0:0.01:3; % definimos tiempo>> m = 2500 ; % definimos constantes>> cv = 15000;>> k = 500000;>> s = tf(„s‟); % iniciamos la variable s en modo tf>> Fs = (cv*s+k)/(m*s^2+cv*s+k); % representamos la FT>> y1 = -2*step(Fs,t); % obtenemos los datos>> y2 = 2*lsim(Fs,heaviside(t-1),t); >> plot(t,y1+y2) % grafica de la respuesta
0 0.5 1 1.5 2 2.5 3-0.3
-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
Ejercicio 1
Emplee convolución para hallar la respuesta del sistema presentado en la aplicación 1:
Ejercicio 2:
Calcule la función de transferencia del sistema:
En cada caso: Gk = 1/(k.s+1)
Ejercicio 3:
Un sistema de segundo orden se enuncia de la siguiente manera:
Grafique la respuesta a un escalón (en una sola gráfica) para diferentes valores de ξ. Recuerde que ξsólo puede estar en el rango <0,1>.
Aplicación 2
Sistemas de segundo orden
%Modelos de Segundo Orden s = tf('s'); R1=20e+3; %R del circuito doble malla RC, R1=20kΩ C1=0.04e-3; %C del circuito doble malla RC, C1 = 0.04mF R2 = 50e+3; %R del circuito doble malla RC, R2 = 50kΩ C2 = 0.13e-3; %C del circuito doble malla RC, C2 = 0.13mF %Factor de Amortiguamiento y frecuencia natural dseta=(R1*C1+R2*C2+R1*C2)/(2*sqrt(R1*C1*R2*C2)); omega = 1/sqrt(R1*C1*R2*C2); DobleRC_sys=omega^2/(s^2+2*dseta*omega*s+omega^2) L = 0.8; %Inductancia del circuito LRC, L = 0.8H R = 8.33; %Resistencia del circuito LRC, R = 8.33Ω C = 20e-3; %Condensador del circuito LRC, C = 20mF LRC_sys = C*s/(L*C*s^2+R*C*s+1) %Crea modelo del LRC
Como señales estándar se puede utilizar el escalón y el impulso unitario:
step(RLC_sys); %Respuesta al escalón unitario
grid %Grilla en la gráfica
impulse(DobleRC_sys, 60); %Respuesta al impulso, tf = 60s
Para estas señales existe una herramienta gráfica que permite encontrar parámetros importantes de la respuesta en el tiempo de manera bastante sencilla:
ltiview(LRC_sys) %Lanza LTI Viewer en MATLAB
LTIviewer
Ejercicio 4:
Halle la respuesta en el voltaje del condensador ante una entrada en v(t) = 10*sin(200t).
Ejercicio 5
Una superficie particularmente agreste puede aproximarse por una función del siguiente tipo:
Determine el valor de “f” de tal forma que la amplitud de la respuesta inducida en y(t) sea 10% de la amplitud en r(t).
Usar sistema de Ejercicio 4.
Análisis de la Estabilidad
El análisis de la estabilidad es un procedimiento esencial en el diseño de sistemas de control.
Para el análisis de estabilidad se utilizan las siguientes técnicas: Lugar de Raíces (rlocus).
Método de Routh Hurtwitz
Criterio de Nyquist (nyquist, nyquistplot)
Diagramas de Bode (bode, margin)
Lugar de Raices:
Es un método gráfico para determinar la estabilidad de un sistema.
Permite examinar cómo las raíces de un sistema cambian respecto a algún parámetro, usualmente una ganancia dentro de un lazo de realimentación.
Se emplea en el diseño del factor de amortiguamiento y frecuencia natural de un sistema de control.
Lugar de Raíces
>> s = tf('s');>> G = 2/(3*s+1)/(s+1); %Define FT>> H = 0.5; % >> sys_ol = G*H; %FT del sistema en lazo abierto>> figure; %Abre una figura nueva >>rlocus(sys_ol) %Grafica LGR para sys_ol
Lugar de Raíces
En el siguiente ejemplo se establece un punto con determinadas características
>> grid
>> axis([-2 0 -1 1])
>> axis(„equal‟)
>> dzeta = 0.7 % dzeta = 0,7 y omega = 1.33
>> omega = 1.33
>> sgrid(dzeta,[])
>> sgrid([],omega)
>> sgrid(dzeta,omega)
Ejercicio 6
La función de transferencia de un sistema es:
Grafique el lugar de raices y encuentre la ganancia necesaria para obtener un ξ=0.707. Grafique la respuesta.
Routh Hurwitz
Routh- Hurwitz Criterio es el siguiente: El sistema es estable si y sólo si todos sus elementos en la
primera columna tienen el mismo signo, el número de cambiosde signo sera igual al número de polos en el semiplanoderecho.
El criterio de Routh-Hurwitz trabaja con la función de transferencia en lazo cerrado.
El criterio de Routh Hurwitz no esta implementado en Matlab
Ejercicio 7
Implemente el criterio de Routh Hurtwitz en código m.
Diagramas de Bode
Un Diagrama de Bode es una representación gráfica que sirve para caracterizar la respuesta en frecuencia de un sistema. Normalmente consta de dos gráficas separadas, una que corresponde con la magnitud de dicha función y otra que corresponde con la fase.
El diagrama de magnitud de Bode dibuja el módulo de la función de transferencia (ganancia) en decibelios en función de la frecuencia angular en escala logarítmica.
El diagrama de fase de Bode representa la fase de la función de transferencia en función de la frecuencia angular en escala logarítmica. Se da usualmente en grados sexagesimales.
Diagrama de Bode
Ejemplo
>> s = tf(„s‟)
>> F = (s+2)/(s^3+ …
5*s^2+7*s)
>> bode(F)
>> grid
-80
-60
-40
-20
0
20
Magnitu
de (
dB
)
10-1
100
101
102
-180
-135
-90
Phase (
deg)
Bode Diagram
Frequency (rad/s)
Margen de ganancia y fase
Algo importante a obtener tras la realización del diagrama de Bode para el análisis de la estabilidad de un sistema es lo siguiente:
Margen de fase: Es el ángulo que le falta a la fase para llegar a los -180º cuando la ganancia es de 0dB. Si la ganancia es siempre inferior a 0dB, el margen de fase es infinito.
Margen de ganancia: Es el valor por el que habría que multiplicar (en decimal), o sumar (en dB) a la ganancia para llegar a 0dB cuando la fase es de -180º.
El sistema representado será estable si el margen de ganancia y el margen de fase son positivos.
Ejemplo
sys_ol1 = 1/(0.3*s+1); %Define FdT (1) en L.A.sys_ol2 = 2/(s+12)*5/(2*s+1); %Define FdT (2) en L.A.
figure; %Abre figura nuevabode(sys_ol1) %Muestra diagrama de Bodefigure;bode(sys_ol1,'r', sys_ol2,'k') %D. Bodegrid %Habilita grillabode(sys_ol1*sys_ol2) %Open loop
-120
-100
-80
-60
-40
-20
0
Magnitu
de (
dB
)
10-2
10-1
100
101
102
103
-180
-135
-90
-45
0
Phase (
deg)
Bode Diagram
Frequency (rad/sec)
Margen de Fase y Ganancia
Algo importante a obtener tras la realización del diagrama de Bode para el análisis de la estabilidad de un sistema es lo siguiente:
Margen de fase: Es el ángulo que le falta a la fase para llegar a los -180º cuando la ganancia es de 0dB. Si la ganancia es siempre inferior a 0dB, el margen de fase es infinito.
Margen de ganancia: Es el valor por el que habría que multiplicar (en decimal), o sumar (en dB) a la ganancia para llegar a 0dB cuando la fase es de -180º.
El sistema representado será estable si el margen de ganancia y el margen de fase son positivos.
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)
-150
-100
-50
0
50M
agnitu
de (
dB
)
10-1
100
101
102
-270
-225
-180
-135
-90
Phase (
deg)
Bode DiagramGm = 4.08 dB (at 2 rad/sec) , Pm = 33.6 deg (at 1.44 rad/sec)
Frequency (rad/sec)
Ejercicio 7
Encuentre el máximo valor de K para que el sistema sea estable.
Sistemas en Espacio Estados
Dado un modelo de sistema en representación de espacio de estados (A, B, C, D), este se puede ingresar a MATLAB con ayuda de la instrucción: “ss”.
Ejemplo: Para el sistema:
>> A = [0 1; -5 -2];
>> B = [0 ; 3];
>> C = [0 1];
>> D = 0;
sys1 = ss (A, B, C, D) %Define modelo en espacio de estados
Sistemas en Espacio Estados
La estabilidad en un sistema en espacio estados se calcula mediante los eigenvalores de la matriz A.
>> eig(A)
Para obtener la respuesta en el tiempo de los sistemas en espacio estados se emplean los mismos comandos estudiados previamente, (impulse, step, lsim).
>> step(sys1)
>> impulse(sys1)
>> lsim(sys1,u,t)
Sistemas en Espacio Estados
Se puede obtener las matrices del sistema en espacio estados a partir de una función de transferencia, o las funciones de transferencia de un sistema a partir de las matrices del sistema en espacio estados.
>> F = (s+10)/(s^3+s^2+s+10)
>> [A B C D] = ft2ss(F);
>> Fs = ss2tf(A, B, C, D);
Ejercicio 8
El sistema mostrado tiene como objetivo regular el nivel de un tanque mediante el accionamiento de válvulas.
Ecuaciones del Sistema
La entrada del sistema es el voltaje de alimentación del circuito ei, mientras que la salida es el nivel h(t).
Las ecuaciones que describen el sistema vienen dadas por:
Parámetros
Resistencia del motor, Ra = 10 Ω
Constante del par, ki = 10 N.m/A
Constante de fuerza, kb = 0.0706 V.s/m
Inercia de carga: JL = 10 kg.m2
Ganancia del amplificador, ka = 50
Inductancia del motor, La = 0.5 H
Inercia del motor, Jm = 0.005 kg.m2
Relación de engranes, n = 1/100
Carga y fricción del motor: despreciable
Area del tanque, A = 50 m2
Flujo en el tanque
El número de válvulas conectadas al tanque desde el recipiente es N = 10. Todas las válvulas tienen las mismas características y son manipuladas simultáneamente por θc.
Las ecuaciones que gobiernan el flujo vienen dadas por:
Respuesta en el tiempo
Donde: kl = 10 m3/s ko = 50 m2/s N = 10
Considerando que las variables de estado son:
Encuentre el modelo del sistema en espacio de estados y encuentre el nivel del tanque ante diversos tipos de estímulos en el voltaje de entrada.