Está en la página 1de 7

1

Diseño e Implementación de sistemas de


seguimiento en el espacio de estados aplicados
al motor de corriente continua de un módulo
EPC

López Leonardo, Naranjo Paola, Naranjo Mauricio.


Resumen – El sistema ABS utilizado en los vehículos permite • La reducción de la distancia de frenado del automóvil y la
desarrollar el siguiente proyecto ya que es la base del estudio minimización de aceleraciones laterales del vehiculó.
para determinar si el sistema permite la reducción de la distancia
al implementarse en un vehículo, en la base de estudio se • Mediante las señales proporcionadas por los sensores de
implementó tres controladores un ON-OFF, PID y un control presión, velocidad y medición inercial se realizará el
avanzado, en este estudio el mejor controlador es el ON-OFF por control.
los datos obtenidos. Los modelos implementados se obtienen a • Este control ayudara a la estabilidad del automóvil sin
base de los controladores estudiados en clases.
tener cambios bruscos en la aceleración.
• Cuando el conductor viaja en línea recta este debe tener
I. INTRODUCCION una disminución significativa de la distancia de frenado
con respecto al obstáculo.

E l presente proyecto se implementará y diseñara los III. DESCRIPCIÓN METODOLÓGICA


controladores para el funcionamiento de sistemas de control
variable aplicados a motores de corriente directa. En este
proceso se utilizó los controladores de seguimiento de A. Diagramas de bloque del Sistema de Control
trayectorias de forma triangular y cuadrada con entrada cero,
un controlador clásico PID en su forma de ecuación de En la figura 1 se muestra el diagrama de bloques del control
recurrencia. Se implementó un controlador de seguimiento con de seguimiento con integrador que se implementa en el
integrador. software de laview para el sistema EPS.
Para la implementación de estos controladores de manera
física se utilizara el software Laview mediante una tarjeta de
adquisición de datos DAC de National Instruments y una
planta EPC que consta de un motor de corriente directa y un
freno mecánico y un sistema de temperatura.

Fig. 1. Control de seguimiento con Integrador


II. JUSTIFICACION
En la figura 2 se muestra el diagrama de bloques del sistema
de control de seguimiento de trayectorias con entrada cero
Al existir actualmente muchos accidentes debido al mal estado que se implementa en el software de Laview.
de la carretera, mal diseño de las mismas, el incremento de
velocidad en carreteras abiertas. En este contexto es necesario
que se implemente sistemas de seguridad tanto como para los
conductores como para el automóvil. Siendo así necesario el
caso de estudio, donde se analizara:
2

v(k) = v(k-1) + r(k) - y(k);


u(k) = -K2 * xes(:,k) + K1*v(k);
x(:,k+1) = G * x(:,k) + H * u(k); % Ecuacion de estados
xes(:,k+1) = G*xes(:,k) + H*u(k) + Ke'*(y(k) - C*xes(:,k));
end
% ******** + Despliegue resultados + ********
t = 0 : T : (N-1)*T; % Vector de tiempo
subplot(2,2,1)
plot(t, r, '--', t, y, 'LineWidth', 1.2); grid on; legend('r(kT)',
'y(kT)')
xlabel('Tiempo (s)'); title('Respuesta de tiempo del sistema');
subplot(2,2,2)
Fig. 2. Control de seguimiento de trayectorias con entradas cero plot(t, u, 'LineWidth', 1.2); grid on
xlabel('Tiempo (s)'); title('Senal de control')
B. Diseño de Controladores subplot(2,1,2)
plot(x(1,:), x(2,:), '->', xes(1,:), xes(2,:),'o','LineWidth',1.2);
Controlador de Seguimiento con Integrador grid on
xlabel('x1_(kT)'); ylabel('x_2(kT)')
En el diseño del modelo matemático del sistema para la % ********* + Lazo de simulacion + ********
implementación del controlador, es necesario que el sistema
tenga un integrador en lazo cerrado para esto se introduce un Para la realización de este controlador se definen las matrices
nuevo vector de estado que integre la diferencia entre el vector del sistema y el tiempo de muestreo, con esto se obtiene la
de comando y el vector de salida. ganancia del observador para definir lo valores de estados
estimados. Se definen las matrices aumentadas y el tiempo de
A continuación se describe el código del controlador establecimiento, se define los polos de filtro de Bessel con
respuesta al escalón. Con estos polos y el método de
clc; clear; close all; Ackerman se obtiene la ganancia del regulador integrador.
% ******** + Definicion del sistema + *********
Seguidor de trayectoria cuadrada con entrada cero
G = [1.245 -0.6896; 0.5 0]; % Matriz de estados
H = [8; 0]; % Matriz de entrada En el diseño matemático para el seguidor de trayectoria con
C = [3.2862 7.895]; % Matriz de salida forma de onda cuadrada con período de 1 segundos. Esta señal
T = 0.05; % Tiempo de muestreo no tiene una transformada de Laplace racional, hacemos una
expansión de Fourier y se toma los 4 primeros términos.
Ke = acker(G', C', [0 0]); %ganancia del observador
% ******** + Diseno del controlador + ********* clc; clear; close all;
Gcap = [G H; 0 0 0]; % Matriz G aumentada % ******** + Definicion del sistema + *********
Hcap = [0; 0; 1]; % Matriz H aumentada syms z t
tss = 4; A = [1.2447 1; -0.3448 0]; % Matriz de estados con otra
p1 = (-5.0093)/tss; p2 = (-3.9668 - j*3.7845)/tss; representación
p3 = (-3.9668 + j*3.7845)/tss; B = [26.29; 31.58]; % Matriz de entrada
z1 = exp(T*p1); z2 = exp(T*p2); z3 = exp(T*p3); C = [1 0]; % Matriz de salida
Kcap = acker(Gcap, Hcap, [z1 z2 z3]); T = 50e-3; % Tiempo de muestreo
K2K1 = (Kcap + [0 0 1]) * inv([G-eye(2), H; C*G, C*H]);
K2 = K2K1(1:2); Ba = -[-6.0796 17.5296 -31.2380 37.5794 -31.2380 17.5296 -
K1 = K2K1(end); 6.0796 1]';
% ********* + Lazo de simulacion + ******** Aa = [Ba [diag([1 1 1 1 1 1 1]);zeros(1,7)]];
ts = 15; % Tiempo de simulacion Ca = zeros(1,8);
N = floor(ts/T); % # muestras por simulacion Ca(1,1) = 1;
x(:,2) = [0.4; 0.6]; % Condicion inicial Da = 1;
v(1) = 0;
r = 1000 * ones(1,N); % Referencia Ad = [Aa zeros(8,2);B*Ca A]; %Sistema aumentado
xes0 = [0;0]; Bd = [Ba;B];
xes(:,2) = xes0; Cd = [zeros(1,8) C];
tss = .051;
for k = 2 : N
y(k) = C * x(:,k); % Lectura del sensor p1 = (-4.6835 + j*12.4022)/tss; p2 = (-4.6835 - j*12.4022)/tss;
3

%Polinomios de Bessel orden 10 original


p3 = (-7.3609 + j*9.3777)/tss; p4 = (-7.3609 - j*9.3777)/tss; xa(:,k+1) = Aa*xa(:,k) + Ba*u(k);
p5 = (-8.9698 + j*6.6057)/tss; p6 = (-8.9698 - j*6.6057)/tss; y(k) = C*x(:,k); %Respuesta del sistema
p7 = (-9.9657 + j*3.9342)/tss; p8 = (-9.9657 - j*3.9342)/tss; xes(:,k+1) = A*xes(:,k) + B*ya(k) + Ke'*(y(k) - C*xes(:,k));
p9 = (-10.4278 + j*1.3071)/tss; p10 = (-10.4278 - %Ec Observador estados estimados
j*1.3071)/tss; end

z1 = exp(T*p1); z2 = exp(T*p2); z3 = exp(T*p3); z4 = xaum(:,N) = [xa(:,N);xes(:,N)];


exp(T*p4); u(N) = E'*(xz(:,N) - xaum(:,N));
z5 = exp(T*p5); z6 = exp(T*p6); z7 = exp(T*p7); z8 = y(N) = C*x(:,N);
exp(T*p8); ya(N) = Ca*xa(:,N) + u(N);
z9 = exp(T*p9); z10 = exp(T*p10);
%*********Grafico de Resultados**********
E = acker(Ad, Bd, [z1 z2 z3 z4 z5 z6 z7 z8 z9 z10])'; t = T*[0 : N - 1];
Ke = acker(A', C', [0 0]); %Ganancia del Observador con r = 3000.2732*(sin(pi*t) + 1/3*sin(3*pi*t) + 1/5*sin(5*pi*t) +
deadbeat 1/7*sin(7*pi*t));
subplot(2,1,2); plot(t,y,'b',t,r,'r--'); axis([t(1) t(end) -4000
pt = 3000.2732*(sin(pi*t) + 1/3*sin(3*pi*t) + 1/5*sin(5*pi*t) 4000])
+ 1/7*sin(7*pi*t)); title('Simulación de una referencia tipo rectangular');
xlabel('Tiempo (s)'); ylabel('Salida de la Planta y(k)');
%Serie de Fourier de la señal cuadrada grid;
subplot(2,2,2); plot(t,ya,'m');
for i = 0 : length(Bd) - 1 %Evaluación de la función dinámica title('Señal de control');
rho(i+1) = subs(pt,'t',T*i);%Generadora para cálculo de la xlabel('Tiempo (s)'); ylabel('Entrada de la Planta ya(k)');
señal cuadrada grid on;
end
subplot(2,2,1)
%vector inicial plot(x(1,:), x(2,:),'-->', xes(1,:), xes(2,:),'o','LineWidth',1.2);
grid on
for i = 0 : length(Bd) - 1 xlabel('x_1(kT)'); ylabel('x_2(kT)'); title('Respuesta
Wo(i+1,:) = Cd*Ad^i; %Matriz de Observabilidad Geometrica')
end
Para la realización de este controlador se definen las matrices
%******** - Simulación de la respuesta - ******** del sistema y el tiempo de muestreo, con esto se obtiene la
xz0 = Wo^(-1)*rho'; %Vector inicial ganancia del observador para definir lo valores de estados
x0 = [0.5;0]; %Estado original de la planta estimados. Se definen las matrices aumentadas con la
xes0 = [0;0]; %Estados inicial del observador dinamica del sistema y el tiempo de establecimiento, se define
los polos de filtro de Bessel con orden 10. Con estos polos y el
xa0 = zeros(8,1); método de Ackerman obtenemos la ganancia E del sistema.
xd0 = [xa0;xes0]; %Estado ini sis aumentado Para la ganancia del observador usamos el método deadbeat ya
xd(:,1) = xd0; que escoge todos los polos en el origen y permite que el
ftime = 10; %Tiempo de simulación observador actué mucho más rápido que el regulador.
N = floor(ftime/T); %# total de muestras

x(:,1) = x0;
xes(:,1) = xes0;
xz(:,1) = xz0;
u0 = E'*(xz0 - xd0); %E'
xa(:,1) = Aa*xa0 + Ba*u0;

for k = 1: N - 1 %Ciclo de simulación


xd(:,k)=[xa(:,k);xes(:,k)];%cambiamos x por xes del
observador
xz(:,k+1) = Ad*xz(:,k);
u(k) = E'*(xz(:,k) - xd(:,k));
ya(k) = Ca*xa(:,k) + Da*u(k);
x(:,k+1) = A*x(:,k) + B*ya(k); %Ec de estados de la planta Fig. 1. Simulación del seguidor de trayectoria cuadrada con entrada cero
4

En la figura1 se puedo observar que en la salida del sistema va Wo(i+1,:) = Cd*Ad^i; %Matriz de Observabilidad
oscilando desde -1000 a 1000 revoluciones. En la respuesta end
geométrica se puede observar los estados del observador y la
señal del controlador oscila entre -20 y 20. %******** - Simulación de la respuesta - ********
xz0 = Wo^(-1)*rho'; %Vector inicial
Seguidor de trayectoria triangular con entrada cero x0 = [0;0]; %Estado ini de la planta
xes0 = [0;0]; %Estado inicial de los valores estimados
%******Seguidor con señal triangular ******
clc %Limpiar pantalla xa0 = zeros(4,1);
clear all %Borrar variables xd0 = [xa0;xes0]; %Estado ini sis aumentado
syms z t %Variables simbólicas xd(:,1) = xd0;
T = 50e-3; %Tiempo de muestreo ftime = 10; %Tiempo de simulación
%*Matriz de estados del motor*** N = floor(ftime/T); %# total de muestras
A = [1.2447 1; -0.3448 0]; % Matriz de estados con otra
reprecentacion x(:,1) = x0;
B = [26.29; 31.58]; % Matriz de entrada xes(:,1) = xes0;
C = [1 0]; xz(:,1) = xz0;
u0 = E'*(xz0 - xd0); %E'
xa(:,1) = Aa*xa0 + Ba*u0;
%**Matrices con la dinámica de la entrada***
Ba = -[-3.7574 5.5202 -3.7574 1]'; %Matriz de la dinámica for k = 1: N - 1 %Ciclo de simulación
Aa = [Ba [diag([1 1 1]);zeros(1,3)]]; % con el tiempo de xd(:,k) = [xa(:,k);xes(:,k)];
muestreo de sistema xz(:,k+1) = Ad*xz(:,k);
Ca = zeros(1,4); u(k) = E'*(xz(:,k) - xd(:,k)); %Señal de control a la entrada
Ca(1,1) = 1; ya(k) = Ca*xa(:,k) + Da*u(k); %señal de control de salida de
Da = 1; valores aumentados
x(:,k+1) = A*x(:,k) + B*ya(k);
Ad = [Aa zeros(4,2);B*Ca A]; %Sistema aumentado xa(:,k+1) = Aa*xa(:,k) + Ba*u(k);
Bd = [Ba;B]; y(k) = C*x(:,k); %Respuesta del sistema
Cd = [zeros(1,4) C]; xes(:,k+1) = A*xes(:,k)+ B*ya(k)+ Ke'*(y(k) - C*xes(:,k));
%Ec del observador
tss = 0.5; end
p1 = (-4.2169 + j*7.53)/tss; p2 = (-4.2169 - j*7.53)/tss; xaum(:,N) = [xa(:,N);xes(:,N)];
%Polinomios de Bessel u(N) = E'*(xz(:,N) - xaum(:,N));%E'
p3 = (-6.2613 + j*4.4018)/tss; p4 = (-6.2613 - j*4.4018)/tss; y(N) = C*x(:,N);
p5 = (-7.120 + j*1.454)/tss; p6 = (-7.120 - j*1.454)/tss; ya(N) = Ca*xa(:,N) + u(N);
%orden t = T*[0 : N-1];
r = 2000.8888*(sin(pi*t) - 1/8*sin(3*pi*t));
z1 = exp(T*p1); z2 = exp(T*p2); z3 = exp(T*p3); z4 =
exp(T*p4); for k1 = 1: N - 1
z5 = exp(T*p5); z6 = exp(T*p6); subplot(2,1,2); plot(t(1:k1),y(1:k1),'b',t(1:k1),r(1:k1),'r--');
title('Simulacion de una referencia tipo Triangular');
E = acker(Ad, Bd, [z1 z2 z3 z4 z5 z6])'; xlabel('Tiempo (s)'); ylabel('Salida de la Planta y(k)');
Ke = acker(A', C', [0 0]); % Ganancia del Observador grid;
subplot(2,2,2); plot(t(1:k1),ya(1:k1),'m');
pt = 2000.8888*(sin(pi*t) - 1/8*sin(3*pi*t)); xlabel('Tiempo (s)'); ylabel('Entrada de la Planta ya(k)');
for i = 0 : length(Bd) - 1 %Evaluación de la función grid on;
rho(i+1) = subs(pt,'t',T*i); %generadora para cálculo de
end %vector inicial subplot(2,2,1)
%rho = [0 0.0886 0.18477 0.29377 0.41676 0.5499]; %Con plot(x(1,:), x(2,:), xes(1,:), xes(2,:),'-->','LineWidth',1.2); grid
una amplitud de 1 on
xlabel('x_1(kT)'); ylabel('x_2(kT)'); title('Respuesta
% rho--> para 1000 RPM Geometrica')
%rho = [4.347e15 3.922e15 1.9984e15 1.0349e16 1.675e16 pause(0.01)
6.886e14]; end

for i = 0 : length(Bd) - 1 Para la realización de este controlador se definen las matrices


5

del sistema y el tiempo de muestreo, con esto se obtiene la


ganancia del observador para definir lo valores de estados
estimados. Se definen las matrices aumentadas con la
dinamica del sistema y el tiempo de establecimiento, se define
los polos de filtro de Bessel con orden 6. Con estos polos y el
método de Ackerman obtenemos la ganancia E del regulador
del sistema. Para la ganancia del observador usamos el método
deadbeat ya que escoge todos los polos en el origen y permite
que el observador actué mucho más rápido que el regulador
logrando que los valores estimados se obtenga de una manera
ágil para el controlador.

Fig. 4. Algoritmo de la ecuación de recurrencias del controlador PID

Análisis: En la figura 3 se puede observar que el controlador


PID, después de realizar una sintonización se obtuvo los
valores Kp=0,0015; Ti=0.15; Td=0.007, con estos valores se
Fig. 2. Simulación del seguidor de trayectoria triangular con entrada cero observa que el sistema ya no presenta un error en estado
estacionario y presenta un sobre impulso menor al 5%.
En la figura1 se puedo observar que en la salida del sistema va
Los resultados mostrados a continuación son el
oscilando desde -1100 a 1100 revoluciones. En la respuesta
comportamiento del Observador.
geométrica se puede observar los estados del observador y la
señal del controlador oscila entre -3 y 3.

IV. ANÁLISIS DE RESULTADOS

Los resultados mostrados a continuación son con la


implementación del controlador PID

Fig. 5. HMI planta EPS aplicada el observador

Fig. 3. HMI planta EPS de un controlador PID


6

Fig. 8. Algoritmo en Labview del Regulador-seguidor

Analisis: en la figura 7 se puede visualizar el comportamiento


del regulador-seguidor en el control del motor DC, e observa
Fig. 6. Algoritmo del observador de estados
que el sistemaposee un tiempo de establecimento de 2
segundos, la salida del sistema no presenta sobrepicos y posee
Los resultados mostrados en la figura 5 son los obtenidos por un error en estado estacionario nulo. en el algoritmo de control
el observador de estados, y se puede visualizar que su podemos mirar que los valores de las ganacias K ue son
comportamiento es óptimo ya que interpreta de manera vectores poseen valores muy similares a los simulados,
adecuada los valores del sistema real, logrando de esta manera comprobando asi que con una simulacion adecuada con el
que en el momento que se implemente un control avanzado, ya modelo correcto del sistema, los valores de los controladores
sea con un regulador-seguidor u otro algoritmo de control pueden ser implementados directamente en un sistema real.
moderno nos aseguramos que los valores estimados de la
planta serán muy próximos a los reales logrando de esta Los resultados mostrados a continuación son el
manera que el controlador funcione adecuadamente. comportamiento del controlador PID-adeline.

Los resultados mostrados a continuación son el


comportamiento del controlador Regulador -Seguidor.

Fig. 9. HMI, comportamiento y funcionamiento del PID-Adeline

Fig. 7. HMI, comportamiento del Regulador-Seguidor


7

Observamos que los controladores modernos como lo es un


Regulador-Seguidor poseen un mejor comportamiento que un
controlador clásico ya que con este tipo de controladores casi
no existe sobre picos en la salida del sistema y sus tiempos de
establecimientos son mucho más cortos, además de presentar
una mejor robustes a cambios bruscos en las plantas o en los
parámetros del sistema.
En todas la graficas del sistema real se pueden observar
ligeras oscilaciones en la salida esto se debe a que el sistema
requiere un filtro para la eliminación de ruido, ya que esto se
debe a pequeños errores debido a la instrumentación.
El controlador PID-Adeline se lo puede considerar un
controlador moderno, ya que gracias a su adaptación como red
neuronal que aprende del error, es muy aplicable en varios
sistemas y presenta un grado de robustes mucho mas elevado
que su predecesor PID clásico, pero se debe tener mucho
cuidado para colocar el valor de W ya que el controlador
mientras esta aprendiendo del error puede en un principio
Fig. 10. Algoritmo en Labview del PID-Adeline enviar señales bruscas de control que sin un cuidado correcto
podrían afectar de manera significativa algún sistema que no
Analisis: En la figura 9 se observa el comportamiento del
este preparado para cambios tan fuertes.
controlador PID-Adeline, se puede apreciar que es un
controlador bastaent efectivo, ya que no presenta
V. BIBLIOGRAFÍA
sobreimpulsos y el error en estado estacionario es nulo. a
diferencia de los otros controladores PID clasicos el PID-
Adeline posee un comportameinto mas robusto, ya que en [1] M.Sc. Eulogio Hernández Veiga, MSc. Alfredo Enrique
prubas en el laboratorio se procedio a cambiar los valore de González Digón, «PROTECCIÓN ESTÁTICA DIGITAL
tiempo de muetsreo y este continuo efectuando una correcta PARA MOTOCOMPRESORES,» Universidad de
señal de control, pero claro al igual que todo controlador posee Camagüey, Dpto. de Ingeniería Eléctrica, 2017.
sus limites el rango de periodos de muetreso que el PID- [2] Raúl Simarro, José E. Simó, José Luis Navarro «Núcleo de
Adeline presenta un comportamiento adecuado va desde 5ms a Control: Controladores modulares en entornos
500ms, fuera de este rango empieza a existir oscilaciones mas distribuidos,» IEEE, Universidad Politecnica de Valencia
pronunciadas. 2017.
[3] Farokhi, F., Shames, I., & Johansson, K. H., 2014.
«Distributed MPC via dual decomposition and alternative
direction method of multipliers. In Distributed Model
Predictive Control Made Easy (pp. 115-131) ». Springer
Netherlands.
[4] Giselsson, P., & Rantzer, A., 2014. «On feasibility,
stability and performance in distributed model predictive
control. Automatic Control», IEEE Transactions on, 59(4),
1031-1036.

[5] Carlos Felipe Vergara Ramírez, Joan Stiven Herrera


Guayazan. «Comparación de un control lineal y no lineal
Fig. 10. Algoritmo en Labview Control Cruce 0 con observador de señal en un levitador magnético», Dialnet, Revista Ingenierías
triangular USBMed, ISSN-e 2027-5846, Vol. 9, Nº. 1, 2018, págs.
112-118.

IX. CONCLUSIÓN

Al realizar la simulación con los casos de estudio se puede


notar claramente que mediante un buen modelo matemático
que describa correctamente el comportamiento de un sistema,
la implementación de los controladores es mucho mas
aplicable directamente en el sistema real.

También podría gustarte