Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Control de Velocidad
Del Motor DC –
Identificación de la
planta
PROFESOR:
MSc. Ricardo Bustinza
INTEGRANTES:
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.
1. Objetivo
Realizar la adquisición de datos y desarrollo del escalamiento F/V mediante regresión
lineal.
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.
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.
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 3.
Con los datos adquiridos aplicamos una regresión en Matlab, teniendo como resultado la recta:
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.
end
%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)
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
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
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
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.