Sei sulla pagina 1di 16

CONTROL DIGITAL - INFORME 4

Control de Velocidad
Del Motor DC –
Identificación de la
planta
PROFESOR:
MSc. Ricardo Bustinza

INTEGRANTES:

 Campos Campos Yover


 Fuentes Allauca Josue Angel
 George Fajardo Steve

UNI-FIM
1

El objetivo final es realizar el control de velocidad de un Motor DC, para ello es necesario realizar
pasos previos; estos son, el proceso de la adquisición de datos, la identificación de la planta y el
análisis de esta.
Para ello se trabajó en dos formas:
 Mediante la adquisición de datos por medio del DAQ y la identificación de la planta
mediante modelos lineales GREY – BOX.

 Mediante la adquisición de datos por medio del Arduino y la identificación de la planta


usando un ToolBox de Matlab.

1. Objetivo
 Realizar la adquisición de datos y desarrollo del escalamiento F/V mediante regresión
lineal.

 Identificar la constante proporcional con unidades [V-s/rad] utilizada para convertir la


velocidad rotacional w(s) expresada en [rad/s] en una salida de voltaje V(s).

 Identificación de la planta mediante la estimación por modelos lineales GREY-BOX.

2. Marco Teórico
 IDENTIFICACIÓN DE LA PLANTA
Desde el punto de vista de control, se entiende la identificación de procesos dinámicos como
la determinación del modelo matemático del sistema a controlar a partir del conocimiento
previo del proceso y de experiencias prácticas.
En función del conocimiento previo de la estructura del proceso a identificar se utiliza una de
las siguientes 3 alternativas que definen el tipo de modelo.
 Primeros principios (White – box): Se plantean las ecuaciones diferenciales que
aproximan el comportamiento del proceso basándose en leyes físicas y relaciones (como
balances de masa o energía).

 Parametrizado (black – box): Se escoge una estructura genérica definida como familia
de modelos, donde cada modelo se diferencia del resto por su matriz de parámetros θ. A
partir de datos experimentales se determina el modelo que mejor aproxima el
comportamiento del proceso a identificar.
2

 Híbrido (grey – box): Consiste en aunar las mejores características de los dos tipos
anteriores, de modo que se define una estructura con una componente genérica y otra
específica obtenida a partir del conocimiento previo disponible del proceso a identificar.

 GANANCIA DEL TACÓMETRO


La constante de ganancia del tacómetro es una constante proporcional con unidades [V-
s/rad] utilizada para convertir la velocidad rotacional w(s) expresada en [rad/s] en una salida
de voltaje V(s).

Figura 1. Diagrama de bloques.

3. Esquema del experimento

El presente laboratorio consistió en obtener la planta del motor a través de diferentes modelos.
Es importante usar un circuito convertidor de frecuencia a voltaje dado que la retroalimentación
para el control debe ser mediante una señal de voltaje.
La primera parte consiste en obtener una salida de PWM mediante un potenciómetro y generada
por un microcontrolador en este caso arduino. Luego esta señal mediante un puente H controla
el motor.
Luego de calibrar convenientemente se realiza la adquisición de datos para luego poder obtener
los modelos de las plantas.
En el presente experimento se estiman parámetros para luego usar la aproximación por idgrey.
Al obtener el modelo de nuestra planta pasamos a la última etapa la cual es el diseño del
controlador discreto para la planta.
3

4. Resultados
ADQUISICIÓN DE DATOS MEDIANTE DAQ + TACOMETRO:
Los resultados obtenidos de la experiencia se ven en la siguiente Tabla:
Tabla 1. Resultados de la adquisición de datos.

Vgen (DAQ) Vadq (F/V) RPM f(kHz) RPM(calculado con f) w(rad/s)


5 5 2007 1.76 2000 209.43951
4.75 4.75 1918 1.7 1931.818182 202.299527
4.5 4.5 1804 1.59 1806.818182 189.209558
4.25 4.25 1723 1.52 1727.272727 180.879577
4 4 1690 1.47 1670.454545 174.929591
3.75 3.75 1522 1.34 1522.727273 159.459627
3.5 3.5 1400 1.23 1397.727273 146.369658
3.25 3.25 1316 1.16 1318.181818 138.039677
3 3 1191 1.05 1193.181818 124.949708
2.75 2.75 1107 0.98 1113.636364 116.619727
2.5 2.5 962 0.86 977.2727273 102.339761
2.25 2.25 898 0.796 904.5454545 94.7237785
2 2 772 0.68 772.7272727 80.9198108
1.75 1.75 688 0.606 688.6363636 72.1138314
1.5 1.5 560.7 0.498 565.9090909 59.2618614
1.25 1.25 475 0.42 477.2727273 49.9798831
0.75 0.75 261 0.22 250 26.1799388
0.5 - - - - -
Según se muestra en la tabla, al realizar el cálculo de la velocidad mediante la relación:
𝐹𝑒𝑛𝑐 [𝐻𝑧]
𝑤[𝑅𝑃𝑀] = ∗ 2𝜋 ∗ 60
𝑃𝑃𝑅
4

Se aproximan los valores, lo cual indica que los valores adquiridos son correctos.
Los datos del Vadq, son tomados cuando se encuentra en estado estable.
Para la generación del archivo se realiza el siguiente diagrama en LabView:

Figura 2. Esquema del VI en LabView.


Los datos obtenidos son Vgen y Vadq, se muestran en la Figura 3.
El periodo de muestreo fue de 0.001, se adquirió con el método One - sample.

Figura 3.
Con los datos adquiridos aplicamos una regresión en Matlab, teniendo como resultado la recta:

Figura 4. Recta obtenida en Matlab, ecuación: 𝑉𝑎𝑑𝑞 = 𝑉𝑔𝑒𝑛 ∗ 1.0534 − 0.2131


Con esta ecuación se realiza el escalamiento para la nueva adquisición de datos. Cabe resaltar,
que otra manera de lograr que el voltaje adquirido sea del mismo valor que el voltaje generado
es mediante el potenciómetro de precisión que va conectado al integrado conversor de F/V 331.
5

GANANCIA DEL TACOMETRO


Para el cálculo de la ganancia del tacómetro, se utiliza la siguiente fórmula:
𝑉𝑚𝑎𝑥 ∗ 𝑃𝑃𝑅
𝐾𝑡𝑎𝑐 =
2𝜋 ∗ 𝐹𝑚𝑎𝑥
Realizando el cálculo se obtiene:
𝐾𝑡𝑎𝑐 = 0.0239
IDENTIFICACIÓN INICIAL DE LA PLANTA MEDIANTE TFEST
Mediante la función de Matlab identificamos el modelo del motor DC estimándolo mediante el
modelo de función de transferencia con un ajuste de los datos de 91.55%
Los resultados obtenidos de las iteraciones son:

Se obtuvo la función de transferencia:


6

0.9916
𝐺𝑣(𝑠) =
0.00035𝑠 + 1
Esta función de transferencia es de la relación Vgen – Vadq.
Con la ganancia del tacómetro se tiene:
41.5385
𝐺𝑤(𝑠) =
0.00035𝑠 + 1
Esta función de transferencia es de la relación Vgen – W (rad/s)
Graficando con simulink las respuestas de estas plantas ante una entrada step de 5v.

Figura 5. Diagrama simulink con las plantas Gv y Gw.

Figura 6. Respuesta escalón 5v, planta Gv.


7

Figura 7. Respuesta escalón 5v, planta Gw.


Como vemos ante una señal de 5v, el sistema genera una velocidad de 207 rad/s
aproximadamente, lo cual está en el rango esperado.
MODELO DE CAJA GRIS
Para la estimación de la planta aplicando el modelo de caja gris usamos los parámetros obtenidos
anteriormente en la función de transferencia Gv.
Estos parámetros son:
𝐾 = 0.9916
𝑡𝑎𝑢 = 0.00035
Primero creamos una función en matlab que nos retorne el modelo del motor:
function [A,B,C,D,K,x0] = mifuncion(par,Ts)
% FUNCION DE TRANSFERENCIA G = K/(Ts+1)
A = [0 1; 0 par(1)];
B = [0;par(2)];
C = eye(2);
D = zeros(2,1);
K = zeros(2,2);
x0 =[par(3);0];

if Ts>0 % Sample the model with sample time Ts


s = expm([[A B]*Ts; zeros(1,3)]);
A = s(1:2,1:2);
B = s(1:2,3);
end

end

Luego mediante el siguiente código en matlab generamos el modelo de caja gris:


8

%Parametros
% Funcion de transferencia de la primera aproximacion
% G = K/(tau*s+1)
Ts=0.001;
% Ganancia
data1 obtenida deuread,
= iddata(yread, la primera
Ts); aproximacion
Kw=41.5385;
data1.InputName = 'Voltaje';
% Constante de tacometro
data1.InputUnit = 'V';
Ktac=0.0239;
data1.OutputName = {'Posicion Angular','Velocidad Angular'};
K=Kw*Ktac;
data1.OutputUnit = {'rad','rad/s'};
% Tau obtenida
data1.Tstart = de
0; la primera aproximacion
tau=0.00035;
data1.TimeUnit = 's';
par=[-1/tau;K/tau;0];
data = load('dataCompleta.lvm');
aux={};
uread=data(:,1);
T=0;
yread=data(:,2);
mi=idgrey(@mifuncion,par,'c',aux,T);
% AGREGAMOS UNA "DATA FICTICIA" PARA LA POSICION PARA LA FUNCION greyest
m_est=greyest(data1,mi)
% NOS
opt = INTERESA SOLO LOS RESULTADOS EN LA VELOCIDAD
compareOptions('InitialCondition','zero');
Ne=length(yread);
compare(data1,m_est,Inf,opt)
yread=[zeros(Ne,1) yread];
A=[0 1; 0 -2568];
B=[0; 2512];
C=[1 0;0 1];
D=[0;0];
% LA PLANTA SE OBTIENE DE LA MATRIZ DE ESPACIO DE ESTADOS
% PARA LA VELOCIDAD: G(s)= B(2)/(1 - A(4))
numG=2512;
denG=[1 2568];
G=tf(numG,denG);
step(G)

%% ANALISIS
T=0.001;
Gd=tf(numG,denG,T);
[P,Z]=pzmap(Gd);
% Esta función calcula y representa los polos y ceros de cada
% entrada/salida del sistema y su dinámica del modelo.
% SISTEMA EN LAZO CERRADO
[num1,den1]=cloop(numG,denG,-1);
[z,p,k]=tf2zp(num1,den1)
zplane(z,p)

Los resultados obtenidos son:


9

El ajuste es de 90.72% para nuestros datos de velocidad.

Figura 8. Comparación de respuestas, simulación del modelo.


10

La función de transferencia del modelo de caja gris es:


2512
𝐺𝑣 =
𝑠 + 2568
Esta función de transferencia es de la relación entre Vgen – Vadq. Para obtener la función de
transferencia Gw solo basta con dividirlo entre la constante del tacómetro.
El sistema presenta un polo en 𝑝 = −2568
Analizando su estabilidad en lazo cerrado, el sistema en lazo cerrado presenta un polo en 𝑝 =
−5008, por lo que el sistema es estable.

Figura 9. Diagrama de polos y ceros de la función de transferencia en lazo cerrado.


11

clear all;close all;clc


data = load('dataCompleta.lvm');
y= data(:,1);
u= data(:,2);
fs=100;
T=1/fs;
data=iddata(y,u,T);
td=0;
L=td+1;
th=arx(data,[1 1 L]);
present(th)
Gd=tf(th.b,th.a,T);
thc=d2c(Gd);
[num,den]=tfdata(thc);
Gs=tf(num,den);
[n,d]=tfdata(Gs,'v');
printsys(n,d)

RESULTADOS:
th =
Discrete-time ARX model: A(z)y(t) = B(z)u(t) + e(t)
A(z) = 1 - 0.9934 (+/- 0.0007685) z^-1

B(z) = 0.006516 (+/- 0.0007625) z^-1

Sample time: 0.001 seconds

Parameterization:
Polynomial orders: na=1 nb=1 nk=1
Number of free coefficients: 2
Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.
12

Status:
Estimated using ARX on time domain data "data".
Fit to estimation data: 99.11% (prediction focus)
FPE: 0.0001608, MSE: 0.0001608
More information in model's "Report" property.

num/den =

6.5381
----------
s + 6.6639
T=

0.1501
13

clear all;close all;clc


%Parametros

K= 6.5381/6.6639;
tau=6.6639;
par={K;tau};

data=load('dataCompleta.lvm');
Ts=tau/5;
u=data(:,1);
y=data(:,2);
load(fullfile(matlabroot, 'toolbox', 'ident', 'iddemos', 'data',
'dcmotordata'));
data = iddata(y, u, Ts, 'Name', 'motor-dc');
data.InputName = 'Voltaje';
data.InputUnit = 'V';
data.OutputName = {'Posicion Angular', 'Velocidad Angular'};
data.OutputUnit = {'rad', 'rad/s'};
data.Tstart = 0;
data.TimeUnit = 's';

aux={};
T=0;
mi=idgrey(@mifuncion,par,'c',{},0);
m_est=greyest(data,mi)

m_est =
Continuous-time linear grey box model defined by @mifuncion function:
dx/dt = A x(t) + B u(t) + K e(t)
y(t) = C x(t) + D u(t) + e(t)

A=
x1 x2
x1 0 1
x2 0 -1.052e+06

B=
Voltaje
x1 0
14

x2 3.246e+04

C=
x1 x2
Posicion Ang 1 0
Velocidad An 0 1

D=
Voltaje
Posicion Ang 0
Velocidad An 0

K=
Posicion Ang Velocidad An
x1 0 0
x2 0 0

Model parameters:
Par1 = 0.03087
Par2 = 9.509e-07

Parameterization:
ODE Function: @mifuncion
Disturbance component: none
Initial state: 'auto'
Number of free coefficients: 2
Use "getpvec", "getcov" for parameters and their uncertainties.

Status:
Estimated using GREYEST on time domain data "motor-dc".
Fit to estimation data: [30.97;12.18]%
15

FPE: 54.64, MSE: 20.51

5. Conclusiones
Se observa que la precisión del modelo es de 99.11% lo cual reperesenta una buena
aproximación. Además el modelo corresponde a la estructura del modelo matemático.
Realizar una aproximación con otros parámetros de ARX representaría agregar ceros
y/o polos al sistema y ello podría causar una variación en la estabilidad del sistema
discreto.
Por otra parte la constante de tiempo es de 0.1501 lo cual hace que el sistema tenga
una respuesta muy lenta respecto a la aproximación por Greybox del primer modelo
esta es una ventaja de la aproximación por Greybox.

6. Bibliografia
1. Lennart Ljung (2014). System Identification Toolbox. User’s Guide.
2. Lauri, D. (2008). Reducción de variables en la identificación de modelos lineales para
MPC. Tesina. Universidad Politécnica de Valencia.

Potrebbero piacerti anche