PDF de programación - Parte II. Ejemplo de Aplicación Al Control De Sistemas

Imágen de pdf Parte II. Ejemplo de Aplicación Al Control De Sistemas

Parte II. Ejemplo de Aplicación Al Control De Sistemasgráfica de visualizaciones

Publicado el 25 de Marzo del 2018
1.697 visualizaciones desde el 25 de Marzo del 2018
1,5 MB
33 paginas
Creado hace 17a (25/10/2006)
MODELADO, SIMULACION Y CONTROL

DE SISTEMAS DINAMICOS



P.F.PULESTON y F.VALENCIAGA



Nota: Este apunte tiene por objetivo principal introducir al modelado,
simulación y control de sistemas dinámicos empleando Matlab. Gran
parte del material aquí presentado esta basado en los Control Tutorial
for Matlab de la Universidad de Michigan, Demos y Manuales de
Matlab. Abundante información adicional y soluciones a muchos otros
problemas vinculados al control de sistemas, procesamiento de señal y
calculo matricial en general, puede encontrarse en dicha bibliografía.



Parte II. Ejemplo de Aplicación Al Control De

Sistemas

Sección 1: Modelado de un Motor de CC



Ecuaciones físicas del sistema
Requerimientos de Diseño
Representación en MATLAB y respuesta de lazo cerrado

Ecuaciones físicas del sistema
Un actuador mecánico muy difundido es el motor de CC. Provee directamente
movimiento rotacional y, adecuadamente acondicionado, movimiento traslacional.
El circuito eléctrico de armadura y el diagrama mecánico rotacional, se muestran
en la figura:

Para el ejemplo se consideraron los siguientes parámetros:



* momento de inercia del sistema (J) = 0.01 kg.m^2/s^2

* coeficiente de roce (b) = 0.1 Nms

* constante de fuerza electromotriz (K=Ke=Kt) = 0.01 Nm/Amp

* resistencia de armadura (R) = 1 ohm

* inductancia de armadura (L) = 0.5 H

* entrada (V): Fuente de Tensión

* posición del eje: Q



* Se supone rotor y eje rígidos.

La cupla (T) está relacionada con la corriente de armadura y la fem (e) con la
velocidad de rotación, según las ecuaciones:

=

t
iKT



= eKe





siendo ambas constantes iguales (Kt=Ke=K)

En base a la ley de Newton y la ley de Kirchoff, resultan las siguientes ecuaciones
diferenciales que describen la dinámica del sistema:

••
+q
b


=q

J

iK



=+

KViR





L

di
dt

q



q

-

1. Función de Transferencia

Aplicando la Transformada de Laplace y haciendo cero las condiciones iniciales,
las ecuaciones del sistema quedan expresadas en el dominio de s:

(

)

( )
s

=

+

s

bsJ
( )
sIRsL

+

)

(

( )sIK

( )s



=

sKV

Eliminando I(s) se obtiene la transferencia entre la entrada de tensión de armadura

V y la velocidad de rotación



como salida:



=Q
V

(

+

bsJ

) (

K
+
2KRsL

+

)



2. Espacio de Estados

La descripción del sistema de estados en el dominio temporal puede obtenerse

definiendo las variables físicas velocidad de rotación



( )t

y corriente de armadura

i(t), como variables de estado, la tensión de armadura v(t) como entrada y la
velocidad de rotación como salida:

d
dt



i

=

b
J
K
L

K
J
R
L



i

Ø+

0
L
1

v



Requerimientos de Diseño
El motor sin compensar puede rotar solamente a 0,1rad/s con una entrada de 1 Volt
(ver simulación de la planta a lazo abierto). Uno de los requerimientos es que en
estado estacionario presente un error respecto de la velocidad deseada menor que
el 1%. Dinámicamente se espera un tiempo de establecimiento de 2 seg y un
sobrepaso menor que el 5% para evitar daños en la máquina. Es decir:

• tiempo de establecimiento de 2 seg


Q


Q


-

Q

q

œ
ß
ø
Œ
º
œ
œ
ß
ø
Œ
Œ
º
Ø
q

œ
œ
œ
ß
ø
Œ
Œ
Œ
º
Ø
-
-
-
œ
œ
ß
ø
Œ
Œ
º
Ø
q
• sobrepaso menor que el 5%

• Error de estado estacionario 1%

Representación en Matlab y respuesta de lazo cerrado
1. Función de Transferencia

Para representar la función de transferencia es necesario considerar los polinomios
numerador y denominador:

(

=

den

Creando un archivo .m:

=
num
K
) (
+
2KRsL
bsJ

+

)

+



J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];

Para observar la respuesta al escalón del sistema a lazo abierto, basta con agregar
al archivo los siguientes comandos y ejecutarlo:

Step(num,den,0:0.1:3)
title('Step Response for the Open Loop System')

Resultando:




De la figura se observa que a lazo abierto se obtiene una salida 10 veces más chica
que la deseada (0,1 rad/s) y 3 seg de establecimiento, sin cumplir las
especificaciones.

2. Espacio de Estados

Análogamente se puede crear el siguiente archivo .m y ejecutarlo, resultando la
misma figura.

J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
A=[-b/J K/J
-K/L -R/L];
B=[0
1/L];
C=[1 0];
D=0;

step(A, B, C, D)


Nota: dependiendo la versión de Matlab la función step puede requerir de la
creación de un sistema SYS:

SYS=SS(A,B,C,D);

step(SYS)



Sección 2: Método de Diseño de un PID para
Control de Velocidad de un Motor CC

Control Proporcional
Control PID
Sintonía


Recordando las ecuaciones dinámicas y transferencia del motor de CC:

s

(

)
bsJ
( )
sIRsL

+
)

+

(

=

( )
s

=

( )sIK

( )s



sKV



=Q
V

(

+

bsJ

) (

K
+
2KRsL

+

)



resulta el siguiente diagrama esquemático del sistema compensado:

El sistema a lazo cerrado debe cumplir las especificaciones establecidas
anteriormente:



• tiempo de establecimiento de 2 seg

• sobrepaso menor que el 5%

• Error de estado estacionario 1%

El objetivo de esta sección será diseñar un controlador PID que permita verificar
las especificaciones. Como primer paso crearemos el siguiente archivo .m:


Q


Q


-


J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];

Correspondiente al sistema a lazo abierto y recordando que la transferencia del PID
es de la forma:

+

K

P

+

K
I
s

=

sK

D

sK

D

2

+

P

+

KsK
s

I



Control Proporcional
Probemos primero un control proporcional con ganancia 100. Para ello hay que
agregar los siguientes comandos al final del archivo .m:

Kp=100;
numa=Kp*num;
dena=den;

Para determinar la transferencia de lazo cerrado se puede utilizar el comando
cloop:

[numac,denac]=cloop(numa,dena);

siendo los vectores numac y denac el numerador y denominador de la transferencia
a lazo cerrado

Nota: dependiendo la versión de Matlab la función cloop puede no existir y ser
necesario recurrir al comando feedback:

SYS1=tf(numa,dema)
SYS2=tf(1,1)
SYSlc=feedback(SYS1,SYS2);


Para ver la respuesta de lazo cerrado al escalón de entrada basta con agregar al
archivo .m los siguientes comandos:

t=0:0.01:5;
step(numac,denac,t)
title('Step response with Proportion Control')

Resultando:



Control PID
Puede observarse que el error de estado estacionario y el sobrepaso son excesivos.
Es sabido que agregando un término integral se elimina el error de estado
estacionario al escalón, mientras que un término derivativo, adecuadamente
sintonizado, puede reducir el sobrepaso. Probemos entonces con un controlador
PID con bajas ganancias KI y KD. Para ello hay que modificar el archivo .m de la
siguiente manera:

J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;


num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];

Kp=100;
Ki=1;
Kd=1;

numc=[Kd, Kp, Ki];
denc=[1 0];
numa=conv(num,numc);
dena=conv(den,denc);
[numac,denac]=cloop(numa,dena);
step(numac,denac)
title('PID Control with small Ki and Kd')


resultando


Sintonía
Ahora el tiempo de establecimiento es muy largo, por lo que incrementaremos KI a
200. Modificando este valor en nuestro archivo y ejecutándolo se obtiene:



siendo una respuesta mucho más rápida que la anterior, pero a costa de aumentar el
sobrepaso. En consecuencia, para reducirlo, incrementaremos el valor de KD a 10
en el archivo .m:



Resultando:

Kp=100,
Ki=200,
Kd=10,

una sintonía adecuada para cumplir los requerimientos de diseño.



Sección 3: Diseño del Compensador Empleando
el Método de Lugar de Raíces

Graficación del Diagrama de Lugar de Raíces
Obtención de la ganancia usando el comando rlocfind
Compensador por atraso de fase
Graficación de la respuesta de lazo cerrado


En esta sección trataremos el diseño de un compensador para el motor de CC,
basándonos en el método del lugar de raíces. Consideremos las mismas
especificaciones de diseño. Como en la sección anterior el primer paso es crear un
archivo .m que contenga el modelo de la planta a lazo abierto.



J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
num=K;den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];


Graficación del Diagrama de Lugar de Raíces
La idea principal del método es compensar agregando polos y/o ceros
adecuadamente de modo tal que la respuesta a lazo cerrado se corresponda con la
deseada. Como primer paso entonces, veremos el lugar de raíces de la planta sin
compensar. Para ello basta con agregar las siguientes líneas de comando:

rlocus(num,den)
sgrid(.8,0)
title('Root Locus without a controller')

La función sgrid(x , w
n) genera una grilla en el plano s, indicando los lugares de
coeficiente de amortiguamiento x constante (por ejemplo, 0.8 corresponde a un
sobrepaso de 5%) y los de frecuencia natural w
n constante. El diagrama de lugar
de raíces resultante es:



Obtención de la ganancia usando el comando rlocfind
Si se quisiera determinar la ganancia correspondiente a una dada posición de los
polos de lazo cerrado del lugar de raíces, se debe recurrir al comando rlocfind.
Agregándole al archivo .m el conjunto de comandos que se detallan a continuación,
se obtendrá la ganancia y la respuesta de lazo cerrado al escalón:

[k,poles] = rlocfind(num,den)
[numc,denc]=cloop(k*num,den,-1);
t=0:0.01:3;
step(numc,denc,t)
title('Step response with gain')
  • Links de descarga
http://lwp-l.com/pdf9855

Comentarios de: Parte II. Ejemplo de Aplicación Al Control De Sistemas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad