You are on page 1of 14

CONTROL DIGITAL

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA


CARRERA DE:
INGENIERÍA ELECTRONICA, AUTOMATIZACIÓN Y CONTROL.

Ing. Rodolfo Gordillo

DEBER N°4

INTEGRANTES:
Carlos Mora
Alex Pachacama
Israel Rojas

FECHA DE PRESENTACIÓN:
16 de enero del 2018

1
1. Introducción
Se pretende revisar las técnicas de diseño de un controlador digital basadas en el método
de ubicación de polos, tanto por emulación del controlador analógico como en forma
digital directa. Para ello deberá utilizar las funciones de aproximación que correspondan,
y resolver la ecuación Diofantina en el dominio que corresponda. Se deberá verificar el
funcionamiento del controlador y finalmente realizar el algoritmo de software que realiza
digitalmente el controlador.

2. Descripción del problema:

Se desea controlar digitalmente la velocidad de un micro-servo motor G(s) mediante un


controlador PID en su forma paralela. Las funciones de transferencia del motor y del PID
están determinadas respectivamente por:

Se desea ubicar los polos dominantes de lazo del sistema de manera que el índice de
amortiguamiento ζ=0.8 y la frecuencia natural no amortiguada ωn = 800 rad/s. Como
polo auxiliar se selecciona un valor de α=1300.

1. Diseñe el controlador PID en tiempo continuo por ubicación de polos.

Utilizando la ecuación diofantina obtenemos:


Δ(𝑠) = (𝑠 − 𝑠1 )(𝑠 − 𝑠2 )

Δ(𝑠) = 𝑠 2 + 2 ⋅ 𝜀 ⋅ 𝜔𝑛 𝑠 + 𝜔𝑛 2
Considerando 𝜀 ⋅ 𝜔𝑛 se tiene:
Δ(𝑠) = 𝑠 2 + 1280 𝑠 + 640000
Se coloca el polo auxiliar para igualar obtener un tercer polo y cumplir con la ecuación
de diofantina al lado izquierdo para mantener estabilidad 𝛼 = −1300

Δ(𝑠) = 𝑠 3 + 2580 𝑠 2 + 2304000 𝑠 + 832000000

Δ1 = 𝐴𝑅 + 𝐵𝑆
Δ1 = 𝑠(𝑠 + 60)(𝑠 + 600) + 360000(𝑠 ⋅ 𝑘𝑝 + 𝑘𝑖 +𝑘𝑑 ⋅ 𝑠 2 )

2
Δ1 = 𝑠 3 + (660 + 360000 ⋅ 𝑘𝑑 )𝑠 2 + (36000 + 360000 𝑘𝑝 )𝑠 + 360000 𝑘𝑖

Considerando las ecuaciones;

𝑠3 ∶ 1=1
𝑠2: 660 + 360000 𝑘𝑑 = 2530 𝑘𝑑 = 0.0053
𝑠1 : 36000 + 360000 𝑘𝑝 = 2304000 𝑘𝑝 = 6.3
𝑠 0 : 360000 𝑘𝑖 = 832000000 𝑘𝑖 = 2311.11
Obtenemos:
𝑘𝑑 = 0.0053
𝑘𝑝 = 6.3
𝑘𝑖 = 2311.11

Reemplazando los valores obtenemos el controlador:

0.0053 𝑠 2 + 6.3 𝑠 + 2311.11


𝐶(𝑠) =
𝑠
Calculamos la función en lazo abierto
0.0053 𝑠 2 + 6.3 𝑠 + 2311.11 360000
𝑔(𝑠) = ∗
𝑠 (𝑠 + 60)(𝑠 + 600)

Se comprueba los resultados del controlador analógico usando Matlab:

function controlador_analogico

close all
gs=tf(360000,[1 660 36000]);
cs=tf([0.0053 6.3 2311.11],[0 1 0])
step(feedback(gs*cs,1))

cs =

0.0053 s^2 + 6.3 s + 2311


-------------------------
s

Continuous-time transfer function.

3
Figura 1. Ubicación de polos

2. Realice un estudio de selección del periodo de muestreo en base al criterio del


tiempo de establecimiento y la frecuencia de cruce de ganancia en lazo abierto.
En la selección considere además que el hardware donde programará el
controlador tiene una frecuencia máxima de adquisición de 5 kHz

Para obtener el periodo de muestreo T

Analizamos tiempo de establecimiento Ts, en lazo cerrado:

4
𝑇𝑠 = = 0.00625[𝑠]
𝜔n 𝜀
Por lo tanto para lazo cerrado el tiempo de establecimiento se encuentra entre:

𝑇𝑠 𝑇𝑠
<𝑇<
75 15
Es decir
0.00625[𝑠] 0.00625[𝑠]
<𝑇<
75 15
Se obtiene que el rango de T se encuentra entre:

4
0.000083 < 𝑇 < 0.000417
No se puede escoger este rango por la limitaciones de Hardware 5kHz

A continuación la selección del periodo de muestreo en base al criterio de la frecuencia


de cruce de ganancia en lazo abierto

0.0053 𝑠 2 + 6.3 𝑠 + 2311.11 360000


𝑔(𝑠) = ∗
𝑠 (𝑠 + 60)(𝑠 + 600)

En Matlab con la ayuda del comando margin se obtiene los siguientes resultados:

gs=tf([1920 2268000 832000000],[1 660 36000 0])


margin(gs)

gs =

1920 s^2 + 2.268e06 s + 8.32e08


-------------------------------
s^3 + 660 s^2 + 36000 s

Continuous-time transfer function.

Figura 2. Diagrama de bode

5
En la figura 2, se puede observar el diagrama de bode de la función de transferencia en
lazo abierto, donde se muestra el dato de la frecuencia de cruce de ganancia
𝑟𝑎𝑑
𝜔𝑐𝑔 = 1.9788 ∗ 103 [ ]
𝑠
Entonces se encuentra el rango de la frecuencia de muestreo 𝜔 𝑇
40𝜔𝑐𝑔 < 𝜔 𝑇 < 80𝜔𝑐𝑔

𝑟𝑎𝑑 𝑟𝑎𝑑
40 (1.9788 ∗ 103 [ ]) < 𝜔 𝑇 < 80 (1.9788 ∗ 103 [ ])
𝑠 𝑠

𝑟𝑎𝑑 𝑟𝑎𝑑
79152 [ ] < 𝜔 𝑇 < 158304 [ ]
𝑠 𝑠

Transformando a periodo de muestreo se tiene

0.000079 < 𝑇 < 0.00004


No se puede escoger este rango por la limitaciones de Hardware 5kHz

Considerando que en ambos casos no se puede seleccionar el período de muestreo por las
limitaciones del hardware se considera un tiempo de muestreo de 0.0002 [s]

3. Implemente digitalmente el controlador del numeral 1 considerando el periodo de


muestreo de (2) Utilice la aproximación de Euler en adelanto para la acción
integral y Euler atraso para la acción derivativa en la digitalización del
controlador.

𝑘𝑖
𝐶(𝑠) = 𝑘𝑑 ∗ 𝑠 + 𝑘𝑝 +
𝑠

2311.11
𝐶(𝑠) = 0.0053𝑠 + 63 +
𝑠
Acción Integral
Euler Adelanto:
𝑧−1
𝑠=
𝑇

Acción Derivativa
Euler Atraso:

6
𝑧−1
𝑠=
𝑇𝑧

𝑧−1 2311.11
𝐶(𝑧) = 0.0053 ∗ ( ) + 63 +
𝑇𝑧 𝑧−1
𝑇
𝑘𝑑 ∗ 𝑧 2 − 2 ∗ 𝑘𝑑 ∗ 𝑧 + 𝑘𝑑 + 𝑘𝑝 ∗ 𝑇 ∗ 𝑧 2 − 𝑘𝑝 ∗ 𝑇 ∗ 𝑧 + 𝑘𝑖 ∗ 𝑇 2 ∗ 𝑧
𝐶(𝑧) =
𝑇 ∗ 𝑧2 − 𝑇 ∗ 𝑧

𝑘𝑑 ∗ 𝑧 2 2 ∗ 𝑘𝑑 ∗ 𝑧 𝑘𝑑
− + 𝑇 + 𝑘𝑝 ∗ 𝑧 2 − 𝑘𝑝 ∗ 𝑧 + 𝑘𝑖 ∗ 𝑇 ∗ 𝑧
𝐶(𝑧) = 𝑇 𝑇
𝑧2 − 𝑧

𝑘𝑑
𝑆0 : 𝑧 2 : + 𝑘𝑝 -> 𝑆0 = 32.8
𝑇
2∗𝑘𝑑
𝑆1 : 𝑧1 : − − 𝑘𝑝 + 𝑘𝑖 ∗ 𝑇 -> 𝑆1 = −58.8
𝑇
𝑘𝑑
𝑆2 : 𝑧 0 : -> 𝑆0 = 89.5-> 𝑆2 = 26.5
𝑇

𝑆0 𝑧 2 + 𝑆1 𝑧 + 𝑆2
𝐶(𝑧) =
(𝑧 − 1)(𝑧 − 𝑟)

32.8𝑧 2 − 58.8𝑧 + 26.5


𝐶(𝑧) =
(𝑧 − 1)(𝑧)

f=5*10^3;
T=1/f;
cz=tf([32.8 -58.8 26.5],[1 -1 0],T)
gz=c2d(gs,T)
step(feedback(gz*cz,1))
hold on

cz =

32.8 z^2 - 58.8 z + 26.5


------------------------
z^2 - z

Sample time: 0.0002 seconds


Discrete-time transfer function.

gz =

7
0.006893 z + 0.006596
----------------------
z^2 - 1.875 z + 0.8763

Sample time: 0.0002 seconds


Discrete-time transfer function.

Figura 3. Comparación Controlador Analógico y Digital

4. De acuerdo a la forma digital del controlador del ítem anterior, diseñe ahora en
forma directa. De ser necesario un polo observador adicional considérelo como
incógnita para que el sistema de ecuaciones sea consistente.

𝑆0 𝑧 2 + 𝑆1 𝑧 + 𝑆2
𝐶(𝑧) =
(𝑧 − 1)(𝑧 − 𝑟)

Forma directa

8
f
m 𝑆0 u

𝑧 −1

g
1 𝑆1

𝑧 −1

𝑆2

h
Figura 4. Forma directa

Aplicando ZOH:
360000
𝐺(𝑠) =
(𝑠 + 60)(𝑠 + 600)

𝐺(𝑠)
𝐺(𝑧) = (1 − 𝑧 −1 )𝑧 { }
𝑠

𝑧 − 1 𝐺(𝑠)
𝐺(𝑧) = 𝑧{ }
𝑧 𝑠

360000
𝑧−1 (𝑠 + 60)(𝑠 + 600)
∗𝑧{ }
𝑧 𝑠

Aplicando fracciones parciales

360000 𝐴 𝐵 𝐶
= + +
(𝑠 + 60)(𝑠 + 600) ∗ 𝑠 𝑠 𝑠 + 60 𝑠 + 600

𝐴𝑠 2 + 660𝐴𝑠 + 36000𝐴 + 𝐵𝑠 2 + 600𝐵𝑠 + 𝐶𝑠 2 + 60𝐶𝑠

De donde se obtiene el siguiente sistema de ecuaciones:

9
𝑠2: 𝐴 + 𝐵 + 𝐶 = 0
𝑠1 : 660𝐴 + 600𝐵 + 60𝐶 = 0
𝑠 0 : 3600𝐴 + 600𝐵 + 60𝐶 = 0

Obteniendo:
𝐴 = 10
𝐵 = −11.1
𝐶 = 1.1

Aplicando en la ecuación original tenemos:

𝑧−1 1 1 1
∗ 𝑧 {10 ∗ − 11.1 ∗ + 1.1 ∗ }
𝑧 𝑠 𝑠 + 60 𝑠 + 600
Aplicando la transformada Z

𝑧−1 𝑧 𝑧 𝑧
∗ (10 ∗ − 11.1 ∗ −60𝑇
+ 1.1 ∗ )
𝑧 𝑧−1 𝑧−𝑒 𝑧 − 𝑒 −600𝑇
Donde

0.006893𝑧 + 0.006596
𝐺(𝑧) =
𝑧 2 − 1.875𝑧 + 0.8763

𝑏1 𝑧 + 𝑏2
𝐺(𝑧) =
𝑧 2 + 𝑎1 𝑧 + 𝑎2

32.8𝑧 2 − 58.8𝑧 + 26.5


𝐶(𝑧) =
(𝑧 − 1)(𝑧)

𝑆0 𝑧 2 + 𝑆1 𝑧 + 𝑆2
𝐶(𝑧) =
(𝑧 − 1)(𝑧 − 𝑟)

∆𝑍 = 𝐴𝑅 + 𝐵𝑆

∆𝑍 = (𝑧 − 1)(𝑧 − 𝑟)(𝑧 2 + 𝑎1 𝑧 + 𝑎2 ) + (𝑆0 𝑧 2 + 𝑆1 𝑧 + 𝑆2 )(𝑏1 𝑧 + 𝑏2 )

10
Considerando que se requiere un polo observador adicional ya que solo se tiene ∆𝑍 para
tres polos

∆𝑍 = (𝑧 3 + 𝑝1 𝑧 2 + 𝑝2 𝑧 + 𝑝3 )(𝑧 + 𝑥)
Considerando
|𝑥| < 1
∆𝑍 = (𝑧 4 + (𝑥 + 𝑝1 )𝑧 3 + (𝑝1𝑥 + 𝑝2 )𝑧 2 + (𝑝2 𝑥 + 𝑝3 )𝑧 + 𝑝3 𝑥

𝑧4: 1=1
𝑧3: 𝑥 + 𝑝1 = 𝑟 − 1 + 𝑎1 + 𝑏1 𝑠0
2
𝑧 : 𝑝1 𝑥 + 𝑝2 = −𝑟 + 𝑎1 (𝑟 − 1) + 𝑎2 + 𝑏2 𝑠0 + 𝑏1 𝑠1
𝑧1 : 𝑝2 𝑥 + 𝑝3 = −𝑎1 𝑟 + 𝑎2 (𝑟 − 1) + 𝑏1 𝑠2 + 𝑏2 𝑠1
𝑧0: 𝑝3 𝑥 = −𝑎2 𝑟 + 𝑏2 𝑠2

Con estos valores se realiza la matriz de diseño

𝑏1 0 0 1 𝑠0 𝑥 + 𝑝1 − 𝑎1 + 1
𝑏 𝑏1 0 𝑎1 − 1 𝑠1 𝑝 𝑥 + 𝑝2 − 𝑎2 + 𝑎1
[ 2 ].[𝑠 ] = [ 1 ]
0 𝑏2 𝑏1 𝑎2 − 𝑎1 2 𝑝3 + 𝑝2 𝑥 + 𝑎2
0 0 𝑏2 −𝑎2 0 𝑝3 𝑥

Como se conoce los valores de 𝑠0 , 𝑠1 , 𝑠2 , 𝑠3 , 𝑎1 , 𝑎2 , 𝑏1 , 𝑏2


Se obtiene:
𝑥 = −0.99
𝑝1 = −1.2591
𝑝2 = 2.21
𝑝3 = −1.11

5. Programe y compare el performance de los controladores de (3) y (4) en relación


al seguimiento a referencia y rechazo a las perturbaciones. Utilice tiempos de
simulación de acuerdo a las características del problema.

Considerando la función filtrod

11
Código MATLAB

function u=filtrod(x);
global g h;
f=5*10^3;
T=1/f;
y=x(1);
sp=x(2); %set ponint
t=x(3); %clock
e=sp-y;
s0=32.8;
s1=-58.8;
s2=26.5;
r=0;
if t==0
f=e;
u=s0*f;
h=0;
g=f;
end
if t>0
f=e+(1-r)*g+r*h;
u=s0*f+s1*g+s2*h;
h=g;
g=f;
end

Se programa el simulink de acuerdo a la siguiente figura

Figura 5. Simulink sin perturbación

12
Figura 6. Respuesta del controlador sin perturbación

Figura 7. Simulink sin perturbación

13
Figura 8. Respuesta del controlador con perturbación

Conclusiones:

Los controladores PID permiten mejorar la respuesta de un sistema, aunque esta respuesta
no siempre sea optima.

Un controlador PID permite que la respuesta de un sistema pueda llegar a tener un error
nulo.

14

You might also like