Vous êtes sur la page 1sur 36

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA MECÁNICA

CONTROL DIGITAL

MT – 228

LABORATORIO 4: IDENTIFICACIÓN DE PLANTA Y

ESTABILIDAD DE SISTEMAS

PRESENTADO POR:

PABLO ALEXIS GARCÍA DE LA CRUZ

ESPECIALIDAD:

INGENIERÍA MECATRÓNICA

LIMA – PERÚ

2019
INFORME DE LABORATORIO N° 3

Sea el sistema general:

𝑦 ′′ = 𝐾1 ∙ 𝑦 ′ + 𝐾2 ∙ 𝑦 + 𝐾3 ∙ 𝑢 ⋯ (1)

Se pide:

1. Determinar en "𝒔": 𝑮(𝒔) = 𝒀(𝒔)/𝑼(𝒔)

Tomando Transformada de La Place en (1) y considerando condiciones iniciales nulas,

es decir, 𝑦(0) = 𝑦 ′ (0) = 0.

𝑌(𝑠) ∙ 𝑠 2 = 𝐾1 ∙ 𝑌(𝑠) ∙ 𝑠 + 𝐾2 ∙ 𝑌(𝑠) + 𝐾3 ∙ 𝑈(𝑠)

Despejando adecuadamente tendremos:

𝒀(𝒔) 𝑲𝟑 ⋯ (2)
𝑮(𝒔) = = 𝟐
𝑼(𝒔) 𝒔 − 𝑲𝟏 ∙ 𝒔 − 𝑲𝟐

2. Encontrar la relación de 𝑲𝟏 , 𝑲𝟐 y 𝑲𝟑 , y 𝑮(𝒔) = 𝑲 ∙ 𝝎𝟐𝒏 /(𝒔𝟐 + 𝟐 ∙ 𝒔 ∙ 𝝃 ∙ 𝝎𝒏 + 𝝎𝟐𝒏 )

Comparando con (2) tenemos:

𝐾1 = −2 ∙ 𝜔𝑛 ∙ 𝜉 ⋯ (3)

𝐾2 = −𝜔𝑛2 ⋯ (4)

𝐾3 = 𝐾 ∙ 𝜔𝑛2 ⋯ (5)

O también podemos tener despejando:

𝐾3 ⋯ (6)
𝐾=−
𝐾2

𝜔𝑛 = √−𝐾2 ⋯ (7)

𝐾1 ⋯ (8)
𝜉=−
2 ∙ 𝜔𝑛
3. Discretiza con todos los métodos para la planta del motor (LabVIEW)

Los parámetros del motor son [1]:

𝑉∙𝑠
𝑅𝑎 = 11.4Ω 𝐾𝑏 = 0.0107 𝐽𝑚 = 3.15 ∙ 10−6 𝑘𝑔 ∙ 𝑚2
𝑟𝑎𝑑
𝑁∙𝑚
𝐿𝑎 = 1𝑚𝐻 𝐾𝑡 = 0.0107 𝐵𝑚 = 6.21 ∙ 10−7 𝑁 ∙ 𝑚 ∙ 𝑠
𝐴

Hay que recalcar que en el trabajo presentado en [1] se considera al motor como una

planta de primer orden y por ello no se calcula la inductancia, por ello se hace la siguiente

prueba considerando una inductancia de 1𝑚𝐻.

clc, clear, close all;


% PARAMETROS
Kb = 0.0107;
Kt = 0.0107;
Jm = 3.15E-6;
Bm = 6.21E-7;
Ra = 11.4;
La = 1E-3;
% MODELO EXACTO Y APROXIMADO
num = Kt;
den_e = [La*Jm Ra*Jm+La*Bm Ra*Bm+Kb*Kt];
den_a = [Ra*Jm Ra*Bm+Kb*Kt];
Ge = tf(num, den_e);
polos_e = roots(Ge.den{1});
Ga = tf(num, den_a);
polos_a = roots(Ga.den{1});
% COMPARACION DE LOS MODELOS
t = 0 : 1e-5 : 3;
ye = step(Ge, t);
ya = step(Ga, t);
plot(t, ye, t, ya, 'LineWidth', 1.5);
xlabel('t [s]'), ylabel('\omega(t) [rad/s]');
legend('Modelo exacto','Modelo aproximado', 'Location',
'Southeast');

Al ejecutar el código tenemos por polos:


Apreciamos que el modelo exacto presenta un polo extremadamente grande y uno

pequeño que viene a ser igual al polo del modelo aproximado, por ello podemos asumir

que ambos sistemas se comportarán prácticamente igual, dicho esto lo verificamos usando

el mismo código:

Figura 1. Modelo del motor: exacto y aproximado. Se verifica que son iguales

Con ello trabajamos en LabVIEW. El programa realizado consta de una parte del modelo

exacto y otra parte del modelo aproximado, en él podemos ver las mínimas diferencias

entre el modelo exacto y aproximado, sin embargo, se presenta una peculiaridad para la

discretización Backward para el modelo exacto, el cual no es estable.


Para las discretizaciones exactas tenemos:
Mientras que para los métodos de discretización aproximada tenemos:
4. Dibujar en MatLab la respuesta ante diferentes entradas

Para ello usamos el siguiente código:

% RESPUESTA ANTE DIFERENTES ENTRADAS


G = Ge;
% -> Respuesta al impulso
y_impulso = impulse(G, t);
figure, plot(t, y_impulso, 'LineWidth', 1.5);
legend('Respuesta al impulso - Modelo exacto', 'Location',
'Southeast');
% -> Respuesta al escalon unitario
y_escalon = step(G, t);
figure, plot(t, y_escalon, 'LineWidth', 1.5);
legend('Respuesta al escalón - Modelo exacto', 'Location',
'Southeast');
% -> Respuesta a la rampa
in = t;
y_rampa = lsim(G, in, t);
figure, plot(t, y_rampa, 'LineWidth', 1.5);
legend('Respuesta a la rampa - Modelo exacto', 'Location',
'Southeast');

Y tenemos:
5. Dibujar en MatLab el diagrama de bode, indicando los parámetros más

importantes

6. Determinar la ecuación en diferencias del inciso 3 (𝒁𝑶𝑯, 𝑭𝑶𝑯)

Para esto solo trabajaremos con el modelo exacto. De los realizado en el inciso 3 tenemos:

ZOH

𝑊(𝑧) 2.90532 ∙ 𝑧 + 0.0252888 2.90532 ∙ 𝑧 −1 + 0.0252888 ∙ 𝑧 −2


𝐺(𝑧) = = =
𝑉(𝑧) 𝑧 2 − 0.966704 ∙ 𝑧 1 − 0.966704 ∙ 𝑧 −1

Convirtiendo a una ecuación en diferencias tendremos:

𝜔(𝑘) = 0.966704 ∙ 𝑤(𝑘 − 1) + 2.90532 ∙ 𝑣(𝑘 − 1) + 0.0252888 ∙ 𝑣(𝑘 − 2)


FOH

𝑊(𝑧) 1.44808 ∙ 𝑧 2 + 1.4823 ∙ 𝑧 + 0.000221894


𝐺(𝑧) = =
𝑉(𝑧) 𝑧 2 − 0.966704 ∙ 𝑧

𝑊(𝑧) 1.44808 + 1.4823 ∙ 𝑧 −1 + 0.000221894 ∙ 𝑧 −2


𝐺(𝑧) = =
𝑉(𝑧) 1 − 0.966704 ∙ 𝑧 −1

Convirtiendo a una ecuación en diferencias tendremos:

𝜔(𝑘) = 0.966704 ∙ 𝑤(𝑘 − 1) + 1.44808 ∙ 𝑣(𝑘) + 1.4823 ∙ 𝑣(𝑘 − 1)

+ 0. .000221894 ∙ 𝑣(𝑘 − 2)

Para el presente trabajo haré uso de trabajo pasado [1], el cual adquirí datos de un motor,

dicho trabajo será también adjuntado en los archivos del trabajo.

El motor a adquirir datos es el siguiente:

Figura 1. Datos del motor al que se le hallará el modelo dinámico


Para este trabajo se realizó el siguiente diagrama:

Figura 2. Diagrama de conexión para adquirir datos

Para adquirir datos se usó el siguiente circuito en LabVIEW:

Figura 3. Panel frontal del programa


Figura 4. Diagrama de bloques del programa

Donde 𝑚 y 𝑏 representan las ganancias de conversión de frecuencia a voltaje.

Así mismo se agregó la reducción del motor (𝑛 = 90) como se ve en la figura 1.

Para mayor información se recomienda revisar el trabajo adjuntado

1. OBTENGA LOS VALORES DE ENTRADA (VOLTAJE) Y SALIDA

(VELOCIDAD ANGULAR) DE LA PLANTA (MOTOR). CONSIDERE UNA

ENTRADA DE TIPO ESCALÓN

El archivo 𝒎𝒐𝒕𝒐𝒓_𝒅𝒂𝒕𝒐𝒔. 𝒍𝒗𝒎 cuenta con los datos adquiridos en el presente trabajo.
Se muestra una parte de los datos adquiridos, en el que vemos que estabiliza a 11.5 𝑟𝑎𝑑/𝑠

para una entrada nominal de 12 𝑉.

Esto es correcto ya que:

𝑟𝑎𝑑 1 𝑟𝑒𝑣 60 𝑠
11.5 ∙ ∗ = 109 𝑅𝑃𝑀
𝑆 2 ∗ 𝜋 1 𝑚𝑖𝑛

Lo que es casi igual a la velocidad que nos da fabricante.

Finalmente, graficamos los datos:

clc, clear, close all;

% Cargamos el archivo
load motor_datos.lvm;

% Asignamos variables a los datos (columna 1 y 3 es la misma)


t = motor_datos(:,1);
u = motor_datos(:,2);
y = motor_datos(:,4);

% Graficamos los datos


subplot(2,1,1),plot(t,u,'r'), grid on; title('Señal generada');
xlabel('t (s)'); ylabel('V (V)');
axis([0 14.4 -inf inf]);
subplot(2,1,2),plot(t,y,'b'), grid on, title('Respuesta del motor');
axis([0 max(t) min(y) max(y)+10])
xlabel('t (s)'); ylabel('w (rad/s)');}
2. MEDIANTE LA GRÁFICA OBTENIDA, OBTENGA LOS PARÁMETROS

PARA UN MODELO DE SEGUNDO ORDEN. USE EL MÉTODO DE CURVA

DE REACCIÓN. DAR COMO RESULTADO G(s)

Para resolver este ejercicio se usó [2], para ello primero calculamos los polos

considerando un sistema de polo doble (críticamente amortiguado).


Figura 5. Tiempo y valor en ese instante para el cálculo de parámetros de la planta

Con los datos de la figura 5 hallamos:

𝑘𝑝 = 0.9625 𝜏 ′ = 0.1479 ′
𝑡𝑚 = 3.575

Luego para hallar los polos para un modelo sobre-amortiguado usamos:


Y tenemos:

𝑎 = 0.44 𝜏1 = 0.2054 𝜏2 = 0.0904

Finalmente, nuestro modelo es:

0.9625
𝐺(𝑠) =
(0.2054 ∙ 𝑠 + 1) ∙ (0.0904 ∙ 𝑠 + 1)

3. GRAFIQUE LA RESPUESTA ANTE UNA ENTRADA IMPULSO Y RAMPA

USANDO MATLAB/LABVIEW

Matlab

Usamos el siguiente código:

clc, clear, close all;

% Modelo del motor


s = tf('s');
G = 0.9625/((0.2054*s+1)*(0.0904*s+1));

% Respuestas ante diferentes entradas


t = 0 : 1e-2 : 2;
figure, impulse(G, t);
figure, lsim(G, t, t), title('Respuesta a la rampa');
LabVIEW

Figura 6. Diagrama de bloques del programa

Figura 7. Vista frontal del programa. Se aprecia la respuesta al impulso

4. GRAFIQUE EN EL DOMINIO DEL PLANO “S” LOS POLOS Y LOS CEROS

DEL SISTEMA USANDO MATLAB.

Basta con usar la función 𝑝𝑧𝑚𝑎𝑝 de Matlab.


Figura 8. Diagrama de bode la planta hallada en el inciso 2

5. GRAFIQUE EL DIAGRAMA DE BODE RESALTANDO LOS

PARÁMETROS MÁS IMPORTANTES USANDO MATLAB

Basta usar la función 𝑏𝑜𝑑𝑒 de Matlab.


Figura 9. Diagrama de bode del motor

Se aprecia que la ganancia del sistema, entre una entrada de tensión y de respuesta la

velocidad angular, es menor a 1. Es decir que, idealmente, para una entrada de 1 𝑉, la

velocidad del motor será menor a 1 𝑟𝑎𝑑/𝑠.

6. GRAFIQUE LA TRAZA DE NYQUIST, RESALTANDO LOS PARÁMETROS

MÁS IMPORTANTES USANDO MATLAB

Basta usar la función 𝑛𝑦𝑞𝑢𝑖𝑠𝑡 de Matlab.


Figura 10. Traza de Nyquist del motor

Al igual que el diagrama de Bode, acá también obtenemos el mismo parámetro que indica

que la ganancia del sistema es menor a uno.

7. ANALICE LA ESTABILIDAD DEL SISTEMA CON LO RESULTADOS

OBTENIDOS EN 4, 5 y 6.

Según la figura 8, el sistema es estable en lazo abierto ya que sus polos se encuentran en

el semiplano izquierdo.

Viendo el diagrama de Bode (figura 9), vemos que los márgenes de ganancia y de fase

son prácticamente 0 y 180° respectivamente, por lo que el sistema es estable en lazo

cerrado para cualquier ganancia 𝐾 (esto también se puede verificar viendo el lugar de las

raíces de la planta).
Figura 11. Lugar de las raíces del motor

Por otro lado, la traza de Nyquist (figura 10) nos dice lo mismo que el diagrama de Bode,

pero desde otra perspectiva: siguiendo el Criterio de Nyquist tenemos que:

𝑃=0 𝑍=0 𝑁=0

Lo cual verifica el criterio de Nyquist y asegura una estabilidad para cualquier ganancia

𝐾 en lazo cerrado.

8. DISCRETICE LA PLANTA G(s) ANTEPONIENDO UN ZOH Y FOH

(CAUSAL Y NO CAUSAL) USANDO LABVIEW Y/O MATLAB.

CONSIDERE UN TIEMPO DE MUESTREO IDÓNEO

Para hallar el tiempo de muestreo idóneo primero graficamos la respuesta al escalón:


Figura 12. Respuesta a un escalón unitario de la planta

Viendo la figura 12 tomaremos:

1
𝑡𝑠 = = 0.05 𝑚𝑠
20

clc, clear, close all;

% Modelo del motor


s = tf('s');
G = 0.9625/((0.2054*s+1)*(0.0904*s+1));
Ts = 5E-2; % Tiempo de muestreo
T = 0 : 5E-2 : 1.5;

% Discretizacion
G_zoh = c2d(G, Ts, 'zoh');
G_foh = c2d(G, Ts, 'foh');
9. GRAFIQUE LA RESPUESTA ANTE UNA ENTRADA IMPULSO Y RAMPA

A LOS SISTEMAS DISCRETOS OBTENIDOS EN 8. USE

MATLAB/LABVIEW

% Respuesta impulsiva
y_impulse_zoh = impulse(G_zoh, T);
y_impulse_foh = impulse(G_foh, T);
figure;
stairs(T, y_impulse_zoh), hold on;
stairs(T, y_impulse_foh);
title('Respuesta al impulso');
legend('ZOH', 'FOH(Causal)');

% Respuesta al step
y_step_zoh = step(G_zoh, T);
y_step_foh = step(G_foh, T);
figure;
stairs(T, y_step_zoh), hold on;
stairs(T, y_step_foh);
title('Respuesta al escalón');
legend('ZOH', 'FOH (Causal)', 'location', 'SouthEast');
LabVIEW
Figura 13. Diagrama de bloques

Figura 14. Vista frontal del programa. Se dibujó escalón ya que no hay una función
predeterminada para rampa
10. GRAFIQUE EN EL DOMINIO DEL PLANO “Z” LOS POLOS Y CEROS DEL

SISTEMA DISCRETO EN 8 USANDO MATLAB

Basta usar la función 𝑝𝑧𝑚𝑎𝑝.

Figura 15. Mapeo de polos y ceros de los modelos discretizados


11. GRAFIQUE EL DIAGRAMA DE BODE DEL SISTEMA DISCRETO

OBTENIDO EN 8, RESALTANDO LOS PARÁMETROS MÁS

IMPORTANTES

Figura 16. Diagrama de Bode de los modelos discretizados


12. GRAFIQUE LA TRAZA DE NYQUIST DEL SISTEMA DISCRETO

OBTENIDO EN 8, RESALTANDO LOS PARÁMETROS MÁS

IMPORTANTES. USE MATLAB

Figura 17. Traza de Nyquist para los sistemas discretizados


13. ANALICE LA ESTABILIDAD DE LAS PLANTAS DISCRETAS OBTENIDAS

EN 8 USANDO LOS RESULTADOS OBTENIDOS EN 10, 11 y 12

Siguiendo el mapeo de polos y ceros de los sistemas discretos (figura 15), vemos que el

sistema es estable en lazo abierto. Por otro lado analizamos el sistema en lazo cerrado con

una realimentación proporcional, esto siguiendo el diagrama de Bode y la traza de

Nyquist:

 Primero vemos que el sistema no es estable para todo valor 𝐾 (esto se puede ver

tanto en el diagrama de Bode como la traza de Nyquist)

 Por otro parte, el sistema continuo sí es estable para toda ganancia proporcional

𝐾 para el sistema en lazo cerrado

 Podemos verificar que para el sistema discreto ZOH la máxima ganancia aplicada
𝑀𝐺
está dada por 10 20 , donde 𝑀𝐺 es el margen de ganancia mínimo

 Verificamos también que el sistema se comporta como un filtro pasa-baja ya que

filtra toda frecuencia menor a los 62.8 𝑟𝑎𝑑/𝑠 (≡ 1/0.05 ∙ 𝜋), que es la mitad del

ancho de banda total.

14. IDENTIFIQUE LA PLANTA (MOTOR) POR MÉTODOS PARAMÉTRICOS

USANDO MATLAB. OBTENGA G(z)

Se usará el método paramétrico ARX, para ello se usará la herramienta

𝑠𝑦𝑠𝑡𝑒𝑚𝐼𝑑𝑒𝑛𝑡𝑖𝑓𝑖𝑐𝑎𝑡𝑖𝑜𝑛 de Matlab.
Usando los datos adquiridos con el DAQ.

Y ahora obtenemos modelos de segundo orden con 0, 1 y 2 ceros que serán comparados

luego con ZOH y FOH.


Compararemos los tres modelos:
Figura 18. Diagrama de Bode para los modelos paramétricos ARX

Si se quisiera un modelo que no tenga un límite de una realimentación proporcional,

entonces se debe escoger 𝑡𝑓1.

Figura 19. Mapeo de polos y ceros para los modelos paramétricos ARX
Por contraparte, si queremos que la planta que usaremos tenga la mejor distribución de

polos y ceros, lo mejor es escoger 𝑡𝑓2 (ver figura 19).

15. COMPARE LAS PLANTAS DISCRETAS OBTENIDAS EN 8 CON LA

PLANTA OBTENIDA EN 14

Hacemos una pequeña comparación:

Figura 20. Comparación de 𝐺𝑧𝑜ℎ y 𝑡𝑓1

Por un lado, 𝐺𝑧𝑜ℎ se obtuvo a partir de la planta dada por el método de la curva de

reacción, el cual solo usa apenas 3 puntos de los datos en total, lo cual podría no ser muy

confiable si la toma de datos no es la mejor (como en caso del ruido en el DAQ y peor

aún, ruido debido al conversor frecuencia – voltaje). Por tal motivo, es más fiable el
método paramétrico ARX por que trabaja con gran parte de los datos y por tanto habría

menos error a la hora de estimar la planta, además, el mismo método ARX te da la

fiabilidad de la estimación por el método de mínimo cuadrados, en el que los tres modelos

𝑡𝑓! , 𝑡𝑓2 y 𝑡𝑓3 obtuvieron un estimación sobre el 99% y un error muy pequeño.

Esto también se puede ver reflejado en el diagrama de Bode:

 Los modelos obtenidos por ARX son más “cercanos” en respuesta que los

obtenidos por ZOH y FOH

BIBLIOGRAFÍA

[1] García P., Espinoza J. (2018). Proyecto final: Análisis y control de robots. Lima, Perú.

[2] Alfaro V. (2006). Identificación de modelos de orden reducido a partir de la curva

de reacción del proceso. Costa Rica.

Vous aimerez peut-être aussi