1. Aproximaciones al diseño
• El estudio de los sistemas muestreados puede
realizarse en base a tres aproximaciones:
– Diseño continuo.
• Diseño prescindiendo de los elementos discretos y discretización del
controlador resultante.
– Diseño discreto.
• Discretización de la planta y diseño en el dominio discreto.
– Combinación.
2. Implementación de las acciones
básicas de control
• Código común.
– Ciclo continuo que captura la señal de referencia (r(kT)) y la salida
(y(kT)), generando la señal de error (e(kT)=r(kT)-y(kT)).
• Control todo/nada.
– Instrucciones condicionales para la comparación del error con los
umbrales y activación del control correspondiente (c(kT)=Ui).
• Control proporcional.
– c(kT)=Kp*e(kT)
3. • Control derivativo.
– c(kT)=Kd*[e(kT)-e(kT-T)]/T
• Control integral.
– i(kT)=i(kT-T)+T*e(kT) (integración por rectángulos)
– i(kT)=i(kT-T)+T*[e(kT)+e(kT-T)]/2 (integración por trapecios)
– c(kT)=Ki*i(kT)
4. • Código de control típico.
while(1) {
r=A/D(canal_referencia);
y=A/D(canal_salida);
e=r-y;
c=Control(e);
D/A(canal_control, c);
}
5. Implementación de controladores
• Considérese el siguiente controlador con n polos y m
ceros (n>=m).
C ( z ) b0 z m + b1 z m −1 + b2 z m −2 + ... + bm
Gc ( z ) = = n
E ( z) z + a1 z n −1 + a2 z n −2 + ... + an
– Expresando en términos de z^(-1).
C ( z ) b0 z m −n + b1 z m −1−n + b2 z m −2−n + ... + bm z − n
Gc ( z ) = =
E ( z) 1 + a1 z −1 + a2 z −2 + ... + an z −n
6. – Multiplicando en cruz.
C ( z )(1 + a1 z −1 + a2 z −2 + ... + an z − n ) = E ( z )(b0 z m −n + b1 z m −1−n + b2 z m −2−n + ... + bm z − n )
– Aplicando transformada Z inversa.
c( k ) + a1c(k − 1) + a2 c( k − 2) + ... + an c( k − n ) =
= b0e( k + m − n ) + b1e(k + m − n − 1) + b2e(k + m − n − 2) + ... + bm e( k − n )
– El algoritmo resultante es
c( k ) =
= − a1c(k − 1) − a2c( k − 2) − ... − an c(k − n ) +
+ b0e(k + m − n ) + b1e( k + m − n − 1) + b2 e( k + m − n − 2) + ... + bm e( k − n )
7. Periodo de muestreo
• El periodo de muestreo (servociclo o tiempo de ciclo)
será el tiempo que tarde el programa de control en
generar dos acciones consecutivas.
while(1) {
r=A/D(canal_referencia);
y=A/D(canal_salida);
e=r-y;
c=Control(e);
D/A(canal_control, c);
}
8. • Puede modificarse añadiendo un retardo al bucle de
control.
while(1) {
r=A/D(canal_referencia);
y=A/D(canal_salida);
e=r-y;
c=Control(e);
Posiciones
D/A(canal_control, c);
correctas
delay(T);
}
9. • Leyes básicas de control.
– Control proporcional.
D( z ) = k p
– Control derivativo.
z −1
D( z ) = kd
z
– Control integral.
z
D ( z ) = ki
z −1
Tema 6: Métodos clásicos de
análisis y diseño en discreta