Diseño Control PID Espacio Estados
Diseño Control PID Espacio Estados
Diseño Control PID Espacio Estados
MODELO MATEMÁTICO
1. Determinar el modelo matemático de un motor DC con caja reductora (figura 1). Representar la
dinámica del sistema en espacio de estados, la variable de entrada es la señal de modulación de
ancho de pulso (PWM), la cual va en un rango de −100 ≤ PWM ≤100 , y la variable de salida es la
velocidad del eje del motor expresada en RPM.
PWM∗Vcc
vin=
100
ω m=θ˙m
Nombre de las variables y KV kI R L Bm Jm n
parámetros del modelo
matemático
Vector de estados
Representación en espacio
de estados (Expresión
simbólica en función de los
parámetros)
C
2. Diseñar un circuito eléctrico que permita modificar la velocidad del eje de un motor de corriente
continua utilizando la técnica de PWM. La señal de control se encuentra en un rango de
−100 ≤ PWM ≤100 ; la velocidad se registra por medio de un encoder y se utiliza un circuito para
determinar la dirección de giro (Figura 2).
3. Programar en un sistema de procesamiento digital un algoritmo para generar una señal PWM y
determinar la velocidad de un motor (expresada en RPM) a partir de una señal de un encoder.
Seleccionar el periodo de muestreo de forma que se pueda realizar seguimiento al transitoria de la
señal de velocidad
Periodo de 0.02
muestreo
Código (anexar sentido = digitalRead(senti);
únicamente lo N = contador;
relacionado con la velocidad = (N * 200 * 60 /6533);
lectura de la if (sentido == 0) {
velocidad y velocidad = velocidad;
generación de }
señales de else {
control) velocidad = velocidad * (-1);
}
contador = 0;
//val = analogRead(pote);
val=
pwm = (200 * val) / 1023 - 100;
4. Determinar el modelo estático del sistema, para lo cual modificar el ciclo útil de la señal PWM y
registrar la velocidad del motor en estado estable (lazo abierto). Completar la siguiente tabla, iniciando
con un ciclo útil de -100 % hasta un ciclo del 100 %, con incrementos de 10%.
- Graficar los valores de la tabla anterior, ubicando en el eje de las abscisas la señal de control y en el
eje de las ordenadas la velocidad en estado estable. Determinar el rango en el cual el sistema
presenta un comportamiento lineal.
Gráfica del modelo
estático
5. Ajustar los parámetros del modelo matemático del motor DC para lo cual deben seguir la siguiente
metodología:
- Modificar el ciclo útil de la señal PWM de forma aleatoria en la zona que presente un comportamiento
lineal el sistema y registrar la respuesta transitoria de la señal de velocidad del motor. La toma de
datos debe iniciar con PWM igual a cero.
Periodo de
muestreo
0.02
Señal PWM
Señal de Velocidad
- Implementar el diagrama de bloques de la figura 3. Ajustar los parámetros del modelo matemático de
forma que la respuesta simulado coincida con los datos experimentales. Calcular el índice best fit el
cual está definido por la ecuación (1), donde y s corresponde a los datos simulados, y E a los datos
experimentales y y´ E a la media de los datos experimentales.
BestFit=100 ¿ (1)
Fig.3 Diagrama de simulink para determinar los parámetros del modelo matemático
Parámetros del
modelo
matemático
Comparación de
los datos
simulados con los
datos
experimentales
Best fit 84%
CONTROL PID
7. Diseñar un control PID discreto, de uno o dos grados de libertad para regular la velocidad del eje de
un motor DC a partir de la señal de PWM.
Justificación de la
estrategia de control PID
Se eligió un control de un grado de libertad debido a que sistema se
Controlador PID (1 DOF o
identificó adecuadamente por ende la acción de control requerida no es
2 DOF)
muy alta
Ecuación de diferencias del
controlador (1 DOF o 2 0.4∗e ( n )−0.3764∗e ( n−1 )+ 0.000376∗e ( n−2 )+ 1.04∗u ( n−1 )−0.04∗u(n−2)
DOF)
Respuesta transitoria de la
variable y i del modelo
lineal. Determinar el
sobrepaso, el tiempo de
levantamiento y el tiempo
de establecimiento
Respuesta transitoria de la
acción de control ui del
modelo lineal. Determinar
el valor pico, el tiempo de
establecimiento y el valor
en estado estable
contador = 0;
val = analogRead(pote);
Sp = 200*val/1023 -100;
en=Sp-Sf;
Un= en*0.4-0.3764 *en_1+
0.000376*en_2+1.04*Un_1-
0.04*Un_2 + ka*Du_act;
Du_act = U - Un;
en_2=en_1;
en_1 = en;
Un_2=Un_1;
Un_1=Un;
I_er_1 = I_err1;
Actualizar U
Actualización de registros
- Evaluar el comportamiento dinámico del regulador para diferentes puntos de operación (incluir valores
de referencia en los cuales el actuador se sature). Comparar la respuesta transitoria que se obtienen a
partir del modelo dinámico con los datos experimentales, dado un setpoint variable.
Setpoint – Pv
Experimental -
Pv Simulada
Señal Control
Experimental –
Señal de
Control
Simulada
Análisis de los El sistema responde de una forma adecuada pero al momento de salir de saturación
resultados su respuesta no es optima
8. Diseñar un controlador LQG en continua para regular la velocidad del eje de un motor DC a partir de la
señal de PWM. El controlador se diseña con la técnica LQR y el observador es un filtro Kalman. La
varianza de la señal de velocidad, Q n, la determina a partir de datos experimentales.
Matriz R
Matriz de
ganancias K
Polos en lazo
cerrado
Respuesta
transitoria de la
variable y i del
modelo lineal.
Determinar el
sobrepaso, el
tiempo de
levantamiento y
el tiempo de
establecimiento
Respuesta
transitoria de la
acción de control
ui del modelo
lineal.
Determinar el
valor pico, el
tiempo de
establecimiento y
el valor en
estado estable
Matriz de
covarianza Rn
Matriz de
ganancias L
Polos del
observador
Representación en A
espacio de estados:
Controlador de dos
grados de libertad
Respuesta transitoria de
la variable y i del modelo
lineal. Determinar el
sobrepaso, el tiempo de
levantamiento y el
tiempo de
establecimiento
Respuesta transitoria de
la acción de control ui
del modelo lineal.
Determinar el valor pico,
el tiempo de
establecimiento y el
valor en estado estable
Periodo de 0.02
muestreo
Representación G
en espacio de
estados
discretos
D
Respuesta
transitoria de la
variable y i del
modelo lineal.
Determinar el
sobrepaso, el
tiempo de
levantamiento y
el tiempo de
establecimiento
Respuesta
transitoria de la
acción de control
ui del modelo
lineal.
Determinar el
valor pico, el
tiempo de
establecimiento
y el valor en
estado estable
Matriz 0.02
antiwindup
(Justificar la
selección de la
matriz)
Código Control sentido = digitalRead(senti);
LQG de dos N = contador;
grados de pv1 = (N * 200 * 60 / 6533);
libertad (anexar if (sentido == 0) {
únicamente lo pv1 = pv1;
relacionado con }
la lectura de la else {
velocidad y pv1 = pv1 * (-1);
generación de la }
señal de control) contador = 0;
val = float(analogRead(pinSP1));
sp1 = 200 * val / 1023 - 100;
mtx_type in [2][1] = {
{sp1},
{pv1}
};
Matrix.Multiply((mtx_type*)LQG_a, (mtx_type*)xob_1, 3, 3, 1,
(mtx_type*)AX); // LQG_a*xob_1
Matrix.Multiply((mtx_type*)LQG_b, (mtx_type*)in, 3, 2, 1,
(mtx_type*)BU); // LQG_b*[sp;y]
Matrix.Multiply((mtx_type*)ka, (mtx_type*)Du, 3, 1, 1, (mtx_type*)KD); //
ka*Du
Matrix.Multiply((mtx_type*)I_, (mtx_type*)KD, 3, 3, 1, (mtx_type*)KD_); //
-ka*Du
Matrix.Add((mtx_type*)AX, (mtx_type*)BU, 3, 1, (mtx_type*)xob); //
LQG_a*xob_1 + LQG_b*[sp;y]
Matrix.Add((mtx_type*)xob, (mtx_type*)KD_, 3, 1, (mtx_type*)xob_); //
LQG_a*xob_1 + LQG_b*[sp;y] - ka*Du
Actualizar U
Du = U - un
Xob_1 = Xob
- Evaluar el comportamiento dinámico del regulador para diferentes puntos de operación (incluir valores
de referencia en los cuales el actuador se sature). Comparar la respuesta transitoria que se obtienen a
partir del modelo dinámico con los datos experimentales, dado un setpoint variable.
Setpoint – Pv
Experimental -
Pv Simulada
Señal Control
Experimental –
Señal de
Control
Simulada
Análisis de los El sistema de control es óptimo y hace un buen seguimiento de la señal, tiene un
resultados mejor comportamiento que el control PID
9. Diseñar un sistema de control digital para regular la velocidad del eje de un motor DC a partir de la
señal de PWM utilizando la técnica de control óptimo; para estimar los estados diseñar un observador
de Luenberger.
Matriz Q
Matriz R
Matriz de
ganancias K
Polos en lazo
cerrado
Respuesta
transitoria de la
variable y i del
modelo lineal.
Determinar el
sobrepaso y el
tiempo de
establecimiento
Respuesta
transitoria de la
acción de control
ui del modelo
lineal. Determinar
el valor pico, el
tiempo de
establecimiento y
el valor en estado
estable
val =
float(analogRead(pinSP1));
sp1 = 200 * val / 1023 - 100;
en = sp1 - pv1;
Matrix.Multiply((mtx_type*)Kest,
(mtx_type*)xob_1, 1, 1, 1,
(mtx_type*)KX); // Kest*xob_1
Matrix.Multiply((mtx_type*)Id_,
(mtx_type*)KX, 1, 1, 1,
(mtx_type*)KX_); //
-Kest*xob_1
Matrix.Add((mtx_type*)KX_,
(mtx_type*)KV, 1, 1, (mtx_type*)u); //
Ki*Vk -Kest*xob_1
Actualizar U
Vk_ 1 = Vk
Du = un - U
Xob_1 = Xob
- Evaluar el comportamiento dinámico del regulador para diferentes puntos de operación (incluir valores
de referencia en los cuales el actuador se sature). Comparar la respuesta transitoria que se obtienen a
partir del modelo dinámico con los datos experimentales, dado un setpoint variable.
Setpoint – Pv
Experimental -
Pv Simulada
Señal Control
Experimental –
Señal de
Control
Simulada
Análisis de los El control discreto de lqr y lunguerbert responde de una buena forma el problema es
resultados que tiene gran sobrepaso antes de estabilizarse, y su tiempo de respuesta luego de
la saturación es lento
10.A partir de los datos experimentales, justificar cuál es la mejor estrategia de control que se ajusta al
sistema.
Rta. La mejor estrategia de control es la de LQG debido a que es la que presenta un menor índice
de error y por consiguiente permite hacer un mejor seguimiento, además responde bien luego
de que el sistema entre en saturación
CONCLUSIONES.
Primeramente, tenemos que, partir de un modelo de identificación (Caja negra) cuando no se
conoce un modelo que me describa el comportamiento dinámico del sistema, es una alternativa
que permite interpretar el sistema y dar una aproximación de su comportamiento para poder
elaborar diferentes estrategias de control y verificar un modelo de simulación con un modelo
experimental, para ello es necesario cumplir con cierto requisitos como lo son el porcentaje de
best-fit que me indica el grado de similitud del modelo identificado, con el comportamiento del
sistema a partir de datos tomados de forma experimental.
Se desarrollaron a cabo tres estrategias de control, dos de forma inicial, LQG ydos grados de
libertad y la segunda fue un control LQR con observador de orden completo, anteriormente
escogíamos el mejor controlador o la mejor estrategia basados solo en la respuesta transitoria del
sistema, sin embargo, al incluir índices de error podemos tener un mejor criterio para seleccionar
la mejor estrategia de control para el sistema.
Basados en la conclusión anterior revisamos los índices de error para los modelos estáticos, y
también las respuestas transitorias donde podemos argumentar que la mejor estrategia planteada
para este sistema corresponde a un LQG de un grado de libertad, pues a diferencia de las otras
estrategias esta presenta los índices de error más pequeños, y al ser comparado con la
respuesta del modelo dinámico (datos experimentales) es el de mejor relación y comportamiento
en el sistema identificado.
En cuanto a las acciones de control si se tuvo una mayor diferencia en la comparación de modelo
simulado y experimental, puesto que para ninguna estrategia planteada el modelo simulado llega
a saturarse, sin embargo, en la implementación física la acción de control no sobrepasa del
100%, aun así, existen zonas de mucho acercamiento o de similar comportamiento entre ambas
acciones de control, lo que permite decir que podría ser una aproximación que nos muestre el
comportamiento del sistema físico en la variable a controlar (velocidad), de acuerdo al
comportamiento de la acción de control generado por la estrategia implementada.