Vous êtes sur la page 1sur 30

Modelado y Identificación

de Parámetros de un
Motor DC con Matlab

M.Sc. Ricardo Rodríguez Bustinza.

2009

M.Sc. Ricardo Rodriguez B. 1


Motivación

Usar un Código
de Programa

Obtener la DATA
usando la NIDAQ

Aplicar la Teoría
de Control Digital

Construir los
Circuitos

M.Sc. Ricardo Rodriguez B. 2


Motor DC

M.Sc. Ricardo Rodriguez B. 3


Modelo

v(t ) MOTOR LOAD TL (t


()
T (t ) ω (t )
R L

+
+ B
V (t
() i (t ) Vb (t
() J TL (t
()
− −
T (t ) ω (t )

M.Sc. Ricardo Rodriguez B. 4


Ecuaciones que gobiernan la dinámica del
sistema electromecánico.

Tomando la transformada de Laplace.


Laplace

M.Sc. Ricardo Rodriguez B. 5


Las transformadas anteriores proporcionan
las bases para construir el siguiente
diagrama de bloques.

TL (s )

1 I (s
( ) T ( s) Ω( s )
V (s ) 1
Kt +
+ Ls + R Js + B

Vb ( s )
Kb

La forma estándar de un sistema de segundo orden es dado por:

M.Sc. Ricardo Rodriguez B. 6


Resolviendo la ganancia en estado
estacionario Km, la frecuencia natural ωn y
el factor de amortiguamiento ζ en términos
de los parámetros del motor resulta en:

M.Sc. Ricardo Rodriguez B. 7


SIMULINK p para el Modelo
Motor DC para el Control
d P
de Posición
i ió

M.Sc. Ricardo Rodriguez B. 8


Modelo
M
Motor DC
(Posición)

Modelo
Motor DC
(Velocidad)

M.Sc. Ricardo Rodriguez B. 9


Controlador Digital
g

450( z − 0.85)( z − 0.85)


D( z ) =
( z + 0.98)( z − 0.7)
T = 0.001s

M.Sc. Ricardo Rodriguez B. 10


Modelo Motor DC con
SIMULINK

Respuesta en lazo abierto

M.Sc. Ricardo Rodriguez B. 11


Modelo Motor DC con
Toolkits de LabVIEW

M.Sc. Ricardo Rodriguez B. 12


M.Sc. Ricardo Rodriguez B. 13
Discretizando el
Modelo Motor DC con
T lkit de
Toolkits d LabVIEW
L bVIEW

M.Sc. Ricardo Rodriguez B. 14


M.Sc. Ricardo Rodriguez B. 15
Identificando Parámetros
de un Motor DC

M.Sc. Ricardo Rodriguez B. 16


load datamdc
who
ho
tt=muestra_datos(:,1); % tiempo
xx=muestra_datos(:,2); % posicion
uu=muestra datos(: 3); % entrada
uu=muestra_datos(:,3);
vv=muestra_datos(:,4); % velocidad

M.Sc. Ricardo Rodriguez B. 17


Datos=[N t u x v]

M.Sc. Ricardo Rodriguez B. 18


tam=length(u);
datos_ident=[v(1:tam/2) u(1:tam/2)];
datos_vald=[v(tam/2+1:tam) u(tam/2+1:tam)];
figure
plot(
l t( datos_ident,
d t id t ‘k')
xlabel(' # muestras')

M.Sc. Ricardo Rodriguez B. 19


figure
muestra ident=iddata(datos
muestra_ident iddata(datos_ident);
ident);
plot(muestra_ident,'r','LineWidth',2)

M.Sc. Ricardo Rodriguez B. 20


Ecuación en diferencias
de Motor DC
y (k ) + a1 y (k − 1) + a2 y (k − 2) = b1u (k − 1) + b2u (k − 2)

load datamdc
tam=length(u);
datos_ident=[v(1:tam/2) u(1:tam/2)];
datos_vald=[v(tam/2+1:tam) u(tam/2+1:tam)];
% Identificación Paramétrica Modelos ARX
( _ ,[ 2 1]);
th=arx(datos_ident,[2 ]);
present(th)
% Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t)
% A(q) = 1 - 1.63
1 63 (+
(+-0
0.005044)
005044) q
q^-1
1 + 0.6681
0 6681 (+
(+-0
0.004624)
004624) q
q^-2
2
% B(q) = 0.3746 (+-0.004756) q^-1 + 0.3746 (+-0.004756) q^-2
% Estimated using ARX from data set datos_ident
% Loss function 0.000113658
0 000113658 and FPE 0.000118297
0 000118297
% Sampling interval: 1
% B(q) = 0.3746q^-1 + 0.3746q^-2
% A(q)
A( ) = 1 - 1.63q^-1
1 63 ^ 1 + 0.6681q^-2
0 6681 ^ 2
M.Sc. Ricardo Rodriguez B. 21
Modelo ARX
T=1;
G=tf([0.3746 0.3746],[1 -1.63 0.6681],T);
[nd,dd]=tfdata(G,'v');
tk 0:T:200;
tk=0:T:200;
yd=dstep(nd,dd,201);
stairs(tk,yd)
xlabel('#
xlabel( # Muestras
Muestras'))
ylabel('yd')

y (k ) − 1.63 y (k − 1) + 0.6681 y (k − 2) = 0.3746u (k − 1) + 0.3746u (k − 2)

M.Sc. Ricardo Rodriguez B. 22


Elección de la
Estructura Optima
hold
plot(datos_ident(:,1))
( ( 1))
legend('Ident','Data',4)

M.Sc. Ricardo Rodriguez B. 23


nn=struc([1:4],[1:4],[1:4]);
v=arxstruc(datos_ident,datos_valid,nn);
nn=selstruc(v)
% nn =
% 1 2 1

M.Sc. Ricardo Rodriguez B. 24


th=sett(th,0.01);
present(th)
% Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t)
% A(q) = 1 - 1.63 (+-0.005044) q^-1 + 0.6681 (+-0.004624) q^-2
% B(q) = 0.3746 (+-0.004756) q^-1 + 0.3746 (+-0.004756) q^-2
% Estimated using
sing ARX from data set datos_ident
datos ident
% Loss function 0.000113658 and FPE 0.000118297
% Sampling interval: 0.01
% B(q) = 0.3746q^-1 + 0.3746q^-2
% A(q) = 1 - 1.63q^-1 + 0.6681q^-2

B( z −1 ) 0.3746 z −1 + 0.3746 z −2
G( z) = =
A( z ) 1 − 1.63z −1 + 0.6881z − 2
−1

M.Sc. Ricardo Rodriguez B. 25


D=tf([0.3746 0.3746 0],[1 -1.63 0.6681],0.01);
C=d2c(D);
% Transfer function:
% 0.3746 s^2 + 87.74 s + 9139
% ---------------------------
% s s^2
2 + 40.33
40 33 s + 464.8
464 8

thc=thd2thc(th);
[numc denc]=th2tf(thc)
[numc,denc]=th2tf(thc)
printsys(numc,denc,'s')
% num/den =
% -3.0809 s + 9140.7463
% -------------------------
% s^2 + 40.335 s + 466.8238

M.Sc. Ricardo Rodriguez B. 26


Kω 2
= H (s) = 2 n
s + 2ζωn s + ωn
2

M.Sc. Ricardo Rodriguez B. 27


Validando el Modelo
fi
figure
compare(datos_ident,th);

M.Sc. Ricardo Rodriguez B. 28


Análisis de los Residuos

figure
resid(datos_valid,th);

M.Sc. Ricardo Rodriguez B. 29


¿Preguntas?

robust@uni.edu.pe
rrodriguez@giscia.com
g @g

M.Sc. Ricardo Rodriguez B. 30

Vous aimerez peut-être aussi