Documente Academic
Documente Profesional
Documente Cultură
TeoradeControlAutomatico1
Preparado por:
Ing. Juan Cutipa
Ing. Oscar Salazar
Ing. Daniel Yanyachi
30de mayo de 2008
Indice general
1. Introduccion al Matlab
2. Simulacion numerica
10
13
18
21
Indice de guras
1.1. Escalon Unitario y Peine de Dirac.
. . . . . . . . . . . . . . . . . . . . . . .
10
11
12
4.1.
4.2.
4.3.
4.4.
4.5.
13
.16
16
16
17
ii
Indice de tablas
4.1. Coecientes para el modelo dinamico del motor DC . . . . . . . . . . . . .14
.
iii
Captulo 1
Introduccion al Matlab
1. Repetir y ejercitar los siguientes comandos en Matlab.
Denicion de una constante:
a=1
b=[1 2]
Escribiendo numeros complejos:
a=2+i
b=-5-3*i
Expresion booleana:
a==1
Vector constante:
v=[1 2 3 4 5]
o
v=1:5
Matriz constante:
A=[2 2 3
007
5 9 -1]
o
A=[2 2 3;0 0 7;5 9 -1]
Podemos formar matrices usando operaciones con objetos denidos anteriormente:
a=1;b=2;
Observe que si colocamos punto y coma al nal de la expresion, el resultado no es
mostrado en la pantalla, lo que puede ser conveniente en algunas situaciones.
A=[a+b pi 3
b^2 0 atan(a)
5 sin(b) -1]
Podemos formar matrices y vectores de zeros:
B=zeros()
Matriz de zeros con 2 las y 3 columnas:
B=zeros(2,3)
Matriz de zeros con las dimensiones de la matriz A:
A=[2 2 3;0 0 7;5 9 -1];
B=zeros(A)
De modo semejante, podemos formar matrices y vectores de unos:
Matriz de unos con 2 las e 3 columnas:
C=ones(2,3)
Matrices diagonales:
Matriz diagonal con los elementos da diagonal principal yendo de 1 a 5:
D=diag(1:5)
Extrayendo los elementos de la diagonal principal:
A=[1 2 3
456
7 8 9]
B=diag(A)
Formandounamatrizdiagonalconloselementosdeladiagonalprincipaldeunamatriz:
C=diag(diag(A))
Operaciones: Matriz identidad:
A=diag(ones(1,3))
o
A=eye(3)
Suma de matrices (recuerde las matrices deben tener la misma dimension):
B=A+A
Sumar 1 a todos los elementos de una matriz:
C=B+1
2
Multiplicacion de matrices:
A=[1 2 3;4 5 6;7 8 9]
C=[1 2 0;0 0 1;0 2 3]
D=A*C
Multiplicacion elemento a elemento:
A=[1 0 0;0 2 3;5 0 4]
B=[2 0 0;0 2 2;0 0 3]
C=A.*B
Extraccion de la la 2:
a=C(2,:)
Extraccion da columna 3:
b=C(:,3)
Traza de una matriz:
A=[1 2 3; 4 5 6; 7 8 9]
t=trace(A)
Rank (rango) de una matriz:
r=rank(A)
Matriz transpuesta:
B=A'
Inversa de una matriz:
A=[0 1;-2 -3]
B=inv(A)
A*B
Determinante de una matriz:
d=det(A)
Polinomios:
Polinomio p1 con races en 0 e -1:
v=[0 -1]
p1=poly(v)
Polinomio p2 con coecientes 1 e 2 e 1:
3
p2=poly([1 2 1])
Calculo de races:
p=roots(p1)
Autovalores e autovectores (eigenvalues and eigenvectors):
Autovalores:
A=[0 1;-2 -3]
r=eig(A) % r vector de autovalores
o
[V,D]=eig(A) % produce un matriz diagonal D de autovalores
% y una matriz completa V cuyas columnas son
% sus correspondientes autovectores. Asi (A*V=V*D)
Funciones:
function[y]=mifuncion(x) % definimos un archivo mifuncion.m
if x<0
% donde estara nuestra 'y=f(x)'
y=x^2
else
y=sin(x*(pi/180))
end
Una vez denida la funcion, podemos evaluarla en el punto x=30 (grados)
y=mifuncion(30)
Otra funcion (mifuncion2): la funcion
y = x + x2 + sin((2pi) x) en Matlab.
Plotear la funcion entre -2 y 3:
Cree un vector variando de -2 a 3 con paso de 0.5
x=-2:0.5:3;
Calculando la funcion
y=mifuncion2(x)
Ploteando el resultado:
plot(x,y)
Creando nuevas ventanas gracas (gure(1), gure(2) ... gure(n)):
figure(1)
plot(x,y,'r')
figure(2)
plot(x,y,'b:')
%
%
%
%
1
x2 1
x1 + x2
if x1> 0, x2> 0
y = f (x1;x 2) = p 2
2
x1 + x2 en los demas casos
(1.1)
(1.2)
Captulo 2
Simulacion numerica
1. Ecuaciones diferenciales (Repetir la siguiente actividad)
[1 y(t)]
Determine la solucion de la ecuacion diferencial
y=
_ usando el metodo
2
deEuler.
Plotear el gracoy(t)
de en funcion t,
dey el graco de la solucion exacta
ye(t)
en funcion t.
de
instante inicial:
t =0
instante nal t:f =10
solucion exacta de la ecuacion diferencial:
ye(t) =1 e(1 t=2)
Primero, implementamos la funcion en edo1.m
function [ydot]=edol(y)
ydot=(1-y)/2;
Segundo, cree el archivo euler ode1.m
t(1)=0;
% Instante inicial
tf=10;
% Instante final
y(1)=0;
% Condicion inicial
ye(1)=0; % Valor inicial de la soluccion exata
%
% Paso de integracion (experimente alterar el paso):
h=0.5;
% Calculo de numero de pasos):
n=round(tf/h);
% Integracion numerica usando el metodo de Euler:
% Comando for:
for i=1:n
% Vector de tiempo:
t(i+1)=t(i)+h;
% Vector ydot (derivada en el tiempo de y):
ydot(i)=edol(y(i));
% Solucion numerica:
y(i+1)=y(i)+h*ydot(i);
% Solucion exata:
6
ye(i+1)=1-exp(-t(i+1)/2);
% Finaliza comando for:
end
% Determinacion del ultimo termino del vector ydot:
ydot(n+1)=edol(y(n+1));
% Ploteando la solucion exata 'ye' y la solucion numerica 'y', ambos versus el vetor de tiempo 't':
plot(t,y,t,ye,'r:');
% Colocando una leyenda en la parte superior derecha de la figura:
legend('solucion exacta','solucion numerica - Euler')
% Colocando titulo en la parte superior y etiquetas en las coordenadas
title('Comparacion entre la solucion exata y la solucion numerica')
xlabel('Tiempo (s)')
ylabel('Amplitud ()')
Para ejecutar la simulacion, en el workspace
euler
digite
ode1
Obs: Losarchivos.mdebenserguardadoseneldirectoriodetrabajo,quegeneralmente
es: C:nMATLAB6p5nwork
Comentario: UnodelosmetodosnumericosmasusadoseselmetodoRungeKuttade
cuartaorden(RK4),quebrindasolucionesmasexactasencomparacionconelmetodo
Euler.
2.Repita las instrucciones, le ayudara a entender como introducir funciones de transferencia (LTI) en matlab:
Denimos nuestro sistema expresado por H
la(s)
F.T.=1=(s + 1)
h=tf(1,[1 1])
Denimos nuestro sistema
G expresado en espacio de estados:
x_ = Ax + Bu
y = Cx + Du
g=ss([0 1;-5 -2],[0;3],[0 1],0)
Obtenciondel numerador y denominador de la F.T.a partir delas A;B;C
matrices
y
D (matrices del modelo en espacio de estados).
[num,den]=ss2tf([0 1;-5 -2],[0;3],[0 1],0)
Principales gracas para facilitar el analisis de sistemas LTI.
g = tf([16],[1 9 16]) % definimos nuestro sistema
subplot(2,2,1)
bode(g)
% grafico de bode
subplot(2,2,2)
pzmap(g)
% grafico de polos y zeros
subplot(2,2,3)
step(g)
% respuesta escalon unitario
subplot(2,2,4)
nyquist(g)
% grafico de nyquist
7
3. Ejercicio:realicelasimulacionnumericadelaecuaciondiferencialdescritaenelitem1.
EstavezimplementeelalgoritmoRK4,envezdelmetodoEuler.Hagaunacomparacion
entre las soluciones: Exacta, Euler y RK4.
4. Ejercicio: repetir 1, usando la ecuacion diferencial (no-lineal) siguiente:
y_ =2;5[y(1 y)]
5.
Ejercicio: reducir el diagrama de bloques de la gura 2 y expresar la funcion de transferencia entre
C y R en funcion de
G1,(G2 y H )
Captulo 3
Respuesta en frecuencia de los
Sistemas de Control Automatico
bode(G)
% La escala horizontal es logaritmica, y muestra la frequencia en rad/s.
% La escala vertical del grafico superior es lineal, y muestra la
% ganancia en db.
% La escala vertical del grafico inferior es lineal y muestra la fase
% en grados.
% Matlab asigna valores por defecto a nuestro grafico de Bode, el Matlab
% mostro que la amplitud de la ganancia esta entre -0db e +40db, la
% fase esta entre -90 e 90 grados, y que la frequencia esta entre 10 y
% 1000 rad/s. Vamos construir un vector w donde el logaritmo de la
% distancia entre un valor y otro es constante, comenzando en 10
% elevado a (-3), terminando en 10 elevado a (4), con 2000 puntos, y
% convencionando que la unidad es rad/s:
w=logspace(-3,4,2000);
% Determinamos los vetores de magnitud y fase,
[mag,phase]=bode(G,w);
% mag y fase son arrays de 3 dimensiones, esto quiere decir que la
% funcion bode trabaja con sistemas multivariable (MIMO)
% Entonces, para nuestro caso, debemos solo capturar el vector
% correspondiente
mag=mag(1,:);
phase=phase(1,:);
% Plotenado el Bode de ganancia
subplot(2,1,1)
semilogx(w,20*log10(mag)) % semilogx realiza un plot semilogaritmico
axis([10^-3 10^4 -70 60]) % definimos los margenes de la ventana
grid
% rejilla
% Ploteando el Bode de fase
subplot(2,1,2)
semilogx(w,phase) % semilogx realiza un plot semilogaritmico
axis([10^-3 10^4 -100 100]) % definimos los margenes de la ventana
grid
% rejilla
2. Ejercicio: Encuentre la respuesta en frecuencia del ltro activo mostrado en la gura
2. Encuentre el Margen de Fase (MF) y el Margen de Amplitud (MA).
enlazocerrado(LC)apartirdelanalisisenlazoabierto(LA).Portantosedebetener
en consideracion los siguientes items:
El sistema debe mostrarse estable en LC a partir de los diagramas de Bode del
sistema en LA.
La frecuencia crossover de la ganancia
Wcg) (debe ser menor que la frecuencia
crossoverdelafase(
Wcf ). EstoesWcg <W cf . Entonces,elsistemaenLCseraestable.
Siendo aun mas conservadores con respecto a la estabilidad, para un sistema de
segundo orden, podemos elegir un MF mayor a 60 grados.
Dadolositemsanteriores,enestelaboratoriosolonosabocaremosaevaluarlarespuesta
en frecuencia de un sistema controlado. Dejaremos para otro Laboratorio el ">como
dise~nar el controlador?".
Siendo asi, haga un estudio de la estabilidad mediante los gracos de Bode en LA,
identique MG,MF,Wcg y Wcf , comente los resultados para cada uno de los casos
siguientes:
Adicionalmente, para cada uno de los casos, debe plotear la respuesta al escalon unitario, indicar el overshoot, indicar el tiempo de establecimiento de la se~nal y el error
en regimen permanente
ess.
Ejercicio:
4.
Haga el modelamiento matematico del sistema de suspension de automovil
(gura 1). Exprese primeramente en EDOs y haga el traspaso a espacio de estados.
NOTA:Elinformedeestelaboratorioseentregaimpreso,dondeseincluyentodoslosscript
comentados de matlab. Por tanto, solo para este laboratorio, no es necesario adjuntar CD.
12
Captulo 4
Respuesta Temporal de los Sistemas
de Control Automatico
1.Controlador PID: Repita las siguientes instrucciones y tome atencion en cada uno de
los resultados obtenidos. Le permitira conocer la accion proporcional (P), Integral (I)
y derivativa (D), de los controladores. Estructura mayormente usada en la industria.
ElmodelodinamicodeunmotorDCestaexpresadoporlasiguientefunciondetransferencia:
_
k
=
V
(Js + b)(Ls + R) + k2
(4.1)
(4.2)
(4.3)
KI
K Ds
+ K Ds =
s
+ K Ps + K I
s
(4.4)
ylabel('Posicion (rad)')
grid
Observe. >Cual es el efecto de la accion proporcional?
b) Accion Proporcional Integral (PI)
clear all
h=pidmotor(1.79,20,0)
t=0:0.001:0.3; % tiempo de la simulacion
step(h,t)
xlabel('Tiempo (s)')
ylabel('Posicion (rad)')
grid
Incremente el valor Kde
I , primero a 50, luego a 200.
Observe. >Cual es el efecto de la accion integral?.
En los casos anteriores, el tiempo de acomodacion es muy largo. Para reducirlo
y obtener una respuesta mas rapida, hacemos las modicaciones
K P = 17 y
K I =200.
c) Accion Proporcional Integral Derivativo (PID)
Enelultimocaso,obtuvimosunarespuestarapida,peroelovershootincremento
demasiado.Portanto,parareduciresteefecto,introduciremoslaaccionderivativa.
Con los datos
K P =17, K I =200 yK D =0;15obtenemos:
clear all
h=pidmotor(17,200,0.15)
t=0:0.001:0.3; % tiempo de la simulacion
step(h,t)
xlabel('Tiempo (s)')
ylabel('Posicion (rad)')
grid
Observe. >Cual es el efecto de la accion derivativa?
Finalmente hemos alcanzado las especicaciones de dise~no de controlador. El resultado muestra un
overshootpor debajo de 16%, un tiempo de acomodacion
inferior a 40
ms y no hay error en regimen permanente.
2. Dado el sistema de segundo orden descrito en la Ec. (5),
! n2
H (s) = 2
s + 2! ns + ! n2
(4.5)
15
1
0.8
Posicion (rad)
0.6
Vel o c i d a d d e s e a d a
R(S)
0.4
+
PID(S)
V(S)
Veloc id ad de sal id a
(S)
G(S)
0.2
0
0
0.02
0.04
0.06
Tiempo (s)
0.08
0.1
Figura4.2:Respuestaescalondelsistemacontrolado
Recomendaciones
:Useelvectort =[0:0 ;1 :5]segundosparalarespuestatemporal.
Comente el comportamiento del sistema cuando
subamortiguado
es
, sobreamortiguado
y cuando= 1, comente tambien cual es el comportamiento del sistema cuando se
incrementa el valor de la frecuencia natural
! n.
3. Plotee la respuesta temporal del sistema:
G(s) =
2600
4s4 + 128s3 + 1053
s2 + 1990
s + 2600
(4.6)
Identiqueyetiquetelosvaloresenelgraco:
tr , tpt s y M p. Uselanotacionsiguiente
(adoptado de OGATA, 1998, 3ra Edicion):
tr : tiempo de levantamiento (rise time), es el tiempo requerido para que la respuesta pase del 10% al 90%, del 5% al 95% o del 0% al 100% de su valor
nal.
tp: tiempo de pico (peak time), es el tiempo requerido para que la respuesta
alcance el primer pico maximo.
M p(%)=
(4.7)
(4.8)
donde:
m =2 kg (masa del movil)
b=15 Ns=m (coef. del amortiguador)
k =25 N=m (coef. del resorte)
Recomendacion:
Elsistemacontroladodeberatenerunarespuestarapida(
ts< 1 s),
un sobrepaso mnimo
M p< ( 25%) y un error en regimen permanente
essnulo
=0).(
17
Captulo 5
Estabilidad de los Sistemas de
Control Automatico
1. CriteriodeRouth-Hurtwitz(R-H)
de R-H.
i) G(s) =
:DeterminesiG(s) esestableusandoelcriterio
N (s)
3s + 2
s3
ii ) G(s) =
kN (s)
s5 + 2s4 + 24s3 + 48s2
25s 50
(5.1)
7. Lafunciondetransferenciadelpenduloinvertidoestaexpresadopor(2),donde(
s) es
elangulodeinclinacionde labarra
T(s)y representael torqueaplicadoporun motor
enlabasedelpendulo.Hagaellugarderacessuponiendouncontroladorproporcional
Gc(s) = K>Que
tipo de respuesta em lazo cerrado espera para los diferentes valores
p.
deK p?
( s)
2
= 2
(5.2)
T(s)
s 2
8. Considere el sistema en lazo directo G(s).
G(s) =
10
s+1
(5.3)
20
Apendice A
Tutorial Basico de Matlab
21