Taller de Electrónica - Unidad II - 2022 - Parte - 2
Taller de Electrónica - Unidad II - 2022 - Parte - 2
Taller de Electrónica - Unidad II - 2022 - Parte - 2
1
t
de(t )
u (t ) = K p e(t ) + ki e( )d + K d
Ti 0 dt
Ki
U ( s) = K p + + sK d E ( s )
s
Implementación Simple de un PID en forma
Digital – Algoritmo para micro-controladores o
DSP
Conocemos 3 posibles formas de dicretizar un sistema
continuo como
Ki
U ( s) = K p + + sK d E ( s )
s
z −1
Usando Euler (hacia adelante) s
T
z −1
Me todo de Diferencias (hacia atrás)
s
zT
2 z −1
Me todo Trapezoidal o aproximación de Tustin (hacia atrás) s
T z +1
Implementación Simple de un PID en forma
Digital – Algoritmo para micro-controladores o
DSP
Usando la forma mas simple de discretización
(considerando T=1)
−1
d ( )
Ki
U ( z) = K p + −1
+ K 1 − z E( z)
1− z
Si reordenamos tenemos:
K p + Ki + K d + ( − K p − 2 K d ) z −1 + K d ( z −2 )
U ( z) = −1
E( z)
1− z
Implementación Simple de un PID en forma
Digital – Algoritmo para micro-controladores o
DSP
Si definimos: K1 = K p + K i + K d
K2 = − K p − 2Kd
K3 = K d
void pid_tallereln()
{
e2=e1; // actualiza la variable de error ante-anterior
e1=e; //actualiza la variable de error anterior
y = leerADC(); lee la variable del sensor en el canal análogo digital
e=setpoint-y;
u=u+k1*e+k2*e1+k3*e2; // algortimo del PID discreto
Tracking anti-wind-up
Implementación Simple de un PID en forma
Digital – Algoritmo para micro-controladores o
DSP
Para su correcta implementación en un dispositivo programable en C considerar el siguiente
código:
…
float Val_ssat=10000; //(por ejemplo )
void pid_tallereln()
{
e2=e1; // actualiza la variable de error ante-anterior
e1=e; //actualiza la variable de error anterior
y = leerADC(); lee la variable del sensor en el canal análogo digital
e=setpoint-y;
if (u<Val_ssat && u>-Val_ssat)
{
u=u+k1*e+k2*e1+k3*e2; // algortimo del PID discreto
} Anti-Windup
else
{u=k1*e;}
if (u>UMAX) u=UMAX; // limita rango del DAC
if (u<UMIN) u=UMIN;
escribir_DAC(); // escribe en sistema digital análogo.
}
Control Proporcional Resonante
• Las estrategias de seguimiento sinusoidal basadas en el control
proporcional resonante (PR) son conocidas desde hace menos de dos
décadas. La idea principal del control PR, es emular esa ganancia infinita
que puede proporcionar por un PI en sistemas con variables continuas,
sólo que el PR lo hace en sistemas con variables AC. Esto, ya que el PR
introduce una ganancia casi infinita a una frecuencia de resonancia
específica permitiendo eliminar un error en estado estacionario en esa
frecuencia.
En el plano de la frecuencia el control resonante se puede escribir como:
s
CPR (s ) = K P + K r
s 2 + 02
Donde KP es la ganancia proporcional y Kr es la ganancia resonante del
controlador. La parte resonante del controlador, puede ser considerada como
un integrador generalizado en AC
Control Proporcional Resonante
vo voref s vo
E s E K P + Kr 1
K P + Kr 1 +
s + 02
2
s − s 2 + 02 s
300 0.2
Magnitude (dB)
250 0
Magnitude (dB)
200 -0.2
150 -0.4
100 -0.6
50 -0.8
0 -1
0 0
-5
-45
Phase (deg)
Phase (deg)
-10
-90 -15
-20
-135
-25
-180 -30
10 20 30 40 50 60 70 80 90 100 200 300 10 20 30 40 50 60 70 80 90 100 200 300
Frequency (Hz) Frequency (Hz)
(a) (b)
Esto es todo!!
Control Predictivo
Ejemplo de predicción en una inductancia
Control Predictivo
Ejemplo: Para un control predictivo del voltaje en un inversor fuente de corriente:
dio 1
= ( vo − rLio )
dt L
dvo 1
= ( S AC iDC − io )
dt Co
• Los estados de la función de switcheo SAC pueden ser
Se aplica
Sac