50
Programación en Matlab: Control Toolbox Maestría en Ingeniería de Control y Automatización 2015-2

SIMULACION CON MATLAB PARTE I-3

Embed Size (px)

DESCRIPTION

simulacion con matlab

Citation preview

Page 1: SIMULACION CON  MATLAB PARTE I-3

Programación en Matlab:Control Toolbox

Maestría en Ingeniería de Control y Automatización

2015-2

Page 2: SIMULACION CON  MATLAB PARTE I-3

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.

Page 3: SIMULACION CON  MATLAB PARTE I-3

Comandos del Control Toolbox

• Dinámica

ss, tf, zpktf2ss, c2dssdata, tfdataseries, parallelorderpole, zero, pzmapminreal

•Análisis

initial, step, lsimbode, nyquistevalfr, dcgainbandwidthpid, lqr, kalmanisstable

Page 4: SIMULACION CON  MATLAB PARTE I-3

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.

Page 5: SIMULACION CON  MATLAB PARTE I-3

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)

Page 6: SIMULACION CON  MATLAB PARTE I-3

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

Page 7: SIMULACION CON  MATLAB PARTE I-3

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)

Page 8: SIMULACION CON  MATLAB PARTE I-3

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);

Page 9: SIMULACION CON  MATLAB PARTE I-3

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);

Page 10: SIMULACION CON  MATLAB PARTE I-3

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);

Page 11: SIMULACION CON  MATLAB PARTE I-3

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)

Page 12: SIMULACION CON  MATLAB PARTE I-3

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

Page 13: SIMULACION CON  MATLAB PARTE I-3

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)

Page 14: SIMULACION CON  MATLAB PARTE I-3

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

Page 15: SIMULACION CON  MATLAB PARTE I-3

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:

Page 16: SIMULACION CON  MATLAB PARTE I-3

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

Page 17: SIMULACION CON  MATLAB PARTE I-3

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

Page 18: SIMULACION CON  MATLAB PARTE I-3

Ejercicio 1

Emplee convolución para hallar la respuesta del sistema presentado en la aplicación 1:

Page 19: SIMULACION CON  MATLAB PARTE I-3

Ejercicio 2:

Calcule la función de transferencia del sistema:

En cada caso: Gk = 1/(k.s+1)

Page 20: SIMULACION CON  MATLAB PARTE I-3

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>.

Page 21: SIMULACION CON  MATLAB PARTE I-3

Aplicación 2

Sistemas de segundo orden

Page 22: SIMULACION CON  MATLAB PARTE I-3

%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

Page 23: SIMULACION CON  MATLAB PARTE I-3

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

Page 24: SIMULACION CON  MATLAB PARTE I-3

LTIviewer

Page 25: SIMULACION CON  MATLAB PARTE I-3

Ejercicio 4:

Halle la respuesta en el voltaje del condensador ante una entrada en v(t) = 10*sin(200t).

Page 26: SIMULACION CON  MATLAB PARTE I-3

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.

Page 27: SIMULACION CON  MATLAB PARTE I-3

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)

Page 28: SIMULACION CON  MATLAB PARTE I-3

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.

Page 29: SIMULACION CON  MATLAB PARTE I-3

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

Page 30: SIMULACION CON  MATLAB PARTE I-3

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)

Page 31: SIMULACION CON  MATLAB PARTE I-3

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.

Page 32: SIMULACION CON  MATLAB PARTE I-3

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

Page 33: SIMULACION CON  MATLAB PARTE I-3

Ejercicio 7

Implemente el criterio de Routh Hurtwitz en código m.

Page 34: SIMULACION CON  MATLAB PARTE I-3

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.

Page 35: SIMULACION CON  MATLAB PARTE I-3

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)

Page 36: SIMULACION CON  MATLAB PARTE I-3

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.

Page 37: SIMULACION CON  MATLAB PARTE I-3

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

Page 38: SIMULACION CON  MATLAB PARTE I-3

-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)

Page 39: SIMULACION CON  MATLAB PARTE I-3

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.

Page 40: SIMULACION CON  MATLAB PARTE I-3

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)

Page 41: SIMULACION CON  MATLAB PARTE I-3

-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)

Page 42: SIMULACION CON  MATLAB PARTE I-3

Ejercicio 7

Encuentre el máximo valor de K para que el sistema sea estable.

Page 43: SIMULACION CON  MATLAB PARTE I-3

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

Page 44: SIMULACION CON  MATLAB PARTE I-3

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)

Page 45: SIMULACION CON  MATLAB PARTE I-3

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);

Page 46: SIMULACION CON  MATLAB PARTE I-3

Ejercicio 8

El sistema mostrado tiene como objetivo regular el nivel de un tanque mediante el accionamiento de válvulas.

Page 47: SIMULACION CON  MATLAB PARTE I-3

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:

Page 48: SIMULACION CON  MATLAB PARTE I-3

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

Page 49: SIMULACION CON  MATLAB PARTE I-3

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:

Page 50: SIMULACION CON  MATLAB PARTE I-3

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.