Академический Документы
Профессиональный Документы
Культура Документы
Profesor:
Ing. Edilberto Carlos Vivas
Integrantes:
Dubanne Enrique Pachón Gómez
ID.065141029
Ingeniería Mecánica
Matlab
𝑑𝑖 𝑑𝜃
𝑒𝑎 = 𝑅𝑎 . 𝑖𝑎 + 𝐿𝑎 + 𝑒𝑏 ; 𝑒𝑏 = 𝐾𝑏 = 𝐾𝑏 . 𝑤
𝑑𝑡 𝑑𝑡
𝑑2𝜃 𝑑𝑤
∑𝜏 = 𝐽 2 = 𝐽
𝑑𝑡 𝑑𝑡
𝑑𝑤
𝑇𝑚 − 𝑓. 𝑤 − 𝑇𝐿 = 𝐽
𝑑𝑡
El torque generado por el motor es:
𝑇𝑚 = 𝐾𝑡 . 𝑖𝑎
Donde:
𝑟𝑎𝑑 𝑑𝜃
𝑤 → 𝑣𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑 𝑎𝑛𝑔𝑢𝑙𝑎𝑟 𝑒𝑛 ; 𝑤=
𝑠𝑒𝑔 𝑑𝑡
1
𝑟𝑒𝑐𝑜𝑟𝑑𝑎𝑟 𝑞𝑢𝑒 𝜃 = ∫ 𝑤 𝑑𝑡 ⇒ 𝜃(𝑠) = . 𝑤(𝑠)
𝑆
𝐾𝑏 → 𝐶𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 𝑑𝑒 𝑣𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑
𝐾𝑡 → 𝐶𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 𝑑𝑒 𝑡𝑜𝑟𝑞𝑢𝑒
𝐿𝑎 → 𝐼𝑑𝑢𝑐𝑡𝑎𝑛𝑐𝑖𝑎 𝑑𝑒 𝑎𝑟𝑚𝑎𝑑𝑢𝑟𝑎
𝑅𝑎 → 𝑅𝑒𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑎𝑟𝑚𝑎𝑑𝑢𝑟𝑎
𝑒𝑎 → 𝑣𝑜𝑙𝑡𝑎𝑗𝑒 𝑑𝑒 𝑎𝑟𝑚𝑎𝑑𝑢𝑟𝑎
SISTEMA LINEAL
Tomando como variables de estado la velocidad angular (𝑤) y la corriente de armadura (𝑖𝑎 ):
𝑑𝑖 𝑑𝜃
𝑒𝑎 = 𝑅𝑎 . 𝑖𝑎 + 𝐿𝑎 + 𝑒𝑏 ; 𝑒𝑏 = 𝐾𝑏 = 𝐾𝑏 . 𝑤
𝑑𝑡 𝑑𝑡
∑𝑉 = 0 ; 𝑒𝑏 = 𝑘𝑏 ∗ 𝜃̇
𝑑𝑖𝑎
𝑒𝑎 − 𝑖𝑎 𝑅 − 𝐿 − 𝑒𝑏 = 0
𝑑𝑡
𝑑2 𝜃 𝑑𝑤 𝑑𝑤
∑𝜏 = 𝐽 2 = 𝐽 ; 𝑇𝑚 − 𝑓. 𝑤 − 𝑇𝐿 = 𝐽
𝑑𝑡 𝑑𝑡 𝑑𝑡
𝐾𝑡 . 𝑖𝑎 − 𝑓𝜔 − 𝑓𝐿 𝜔 = 𝐽𝜔̇
𝐾𝑡 . 𝑖𝑎 − 𝑓𝜔 − 𝑓𝐿 𝜔
= 𝜔̇
𝐽
Ecuaciones de salida:
𝑌1 = 𝑤
𝑌2 = 𝑖𝑎
𝑑𝜃
𝑤=
𝑑𝑡
Por lo tanto el cambio de variables:
𝑋1 = 𝑖𝑎
𝑋1̇ = 𝑖𝑎̇
𝑋2 = 𝜃̇ = 𝜔
𝑋2̇ = 𝜃̈ = 𝜔̇
𝑢 = 𝑒𝑎
𝑢 − 𝑋1 𝑅 − 𝑘𝑏 𝑋2
𝑋1̇ =
𝐿
𝑘𝑡 𝑋1 − 𝑓𝜔 𝑋2 − 𝑓𝐿 𝑋2
𝑋2̇ =
𝐽
Matrices:
−𝑅 −𝑘𝑏
1
𝑋̇ 𝐿 𝐿 𝑋1
[ 1] = 𝑘 [
−𝑓𝜔 − 𝑓𝐿 𝑋2 ] + [ 𝐿] [𝑢]
𝑋2̇ 𝑡
0
[ 𝐽 𝐽 ]
La ecuación de salida depende de lo que se quiere “leer” del sistema en nuestro caso es:
velocidad, aceleración y corriente de armadura.
0 1
𝑌1 𝑂
1 0 𝑋1
[𝑌2 ] = [𝑘 −𝑓𝜔 − 𝑓𝐿 ] [𝑋2 ] + [𝑂] [𝑢]
𝑡
𝑌3 𝑂
𝐽 𝐽
% variables de estado:
% X1=W
% X2=Ia
Código:
%% MOTOR DC
Ra=2.99; % resistencia de armadura(ohms)
La=420e-6; % inductancia de armadura(H)
f=1e-5; % friccion viscosa del eje del motor
fl=3.0623e-5; % friccion viscosa de la carga
J=4.14e-6; % inercia del rotor(Kg*m^2)
Kb=24.96e-3; % constante de velocidad (V/(rad/seg))
Kt=24.1e-3; % constante de torque (N*m/amp)
% variables de estado:
% X1=W
% X2=Ia
% Matrices
A=[-Ra/La -Kb/La;
Kt/J (-f-fl)/J ];
B=[1/La;
0];
C=[0 1;
1 0;
Kt/J (-f-fl)/J]; %Hay tres salidas
D=[0;
0;
0];
sist=ss(A,B,C,D)
step(12*sist);%respuesta a escalón de amplitud 12 voltios; todas las
salidas
%en una sola grafica
sistft=tf(sist) %convertir a FT
step(12*sistft);%función de transferencia con una señal escalón de 12
voltios
Tm=1e-3; %periodo de muestreo
Corriente de armadura:
Aceleración angular:
Dentro del sistema encontraremos el siguiente subsistema en donde entran las variables
A,B,C y D:
La solución de la ecuación de estado (𝑖𝑎 (𝑡) 𝑦 𝑤(𝑡)) es la siguiente:
X(t)
Donde:
𝑖𝑎 (𝑡) = 0.0562
𝜔 = 33.334
Es preciso encontrar tres funciones de transferencia; una para la velocidad angular, otra para
la aceleración angular y una última para la corriente de la armadura:
𝑤(𝑠)
𝐺1 (𝑠) =
𝑒𝑎 (𝑠)
𝑖𝑎 (𝑠)
𝐺2 (𝑠) =
𝑒𝑎 (𝑠)
𝜔̇ (𝑠)
𝐺3 (𝑠) =
𝑒𝑎 (𝑠)
Para más facilidad es recomendable utilizar el comando Gtf=tf(Gss) donde Gss es la variable
que guarda la ecuación de estado.
Al simularla obtenemos la siguiente grafica (similar a la obtenida en la ecuación de estado):
SISTEMA NO LINEAL
Ahora se cambia a una carga tipo péndulo que ejerce un torque sobre el eje del motor dado
como:
𝑑𝑤
𝑇𝐿 = 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝜃) + 𝑓𝐿 . 𝑤 + 𝐽𝐿 ; 𝐽𝐿 = 𝑚. 𝐿2
𝑑𝑡
𝑑𝑤
𝐾𝑡 . 𝑖𝑎 − 𝑓𝜔 − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝜃) + 𝑓𝐿 . 𝑤 + 𝐽𝐿 = 𝐽𝜃̈
𝑑𝑡
𝐾𝑡 . 𝑖𝑎 − 𝑓𝜃̇ − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝜃) + 𝑓𝐿 𝜃 + 𝐽𝐿 𝜃̈ = 𝐽𝜃̈
𝐾𝑡 . 𝑖𝑎 − 𝑓𝜃̇ − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝜃) + 𝑓𝐿 𝜃 = 𝐽𝜃̈ − 𝐽𝐿 𝜃̈
𝐾𝑡 . 𝑖𝑎 − 𝑓𝜃̇ − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝜃) + 𝑓𝐿 𝜃 = (𝐽 − 𝐽𝐿 )𝜃̈
𝐾𝑡 𝑖𝑎 − 𝑓𝜃̇ − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝜃) − 𝑓𝐿 𝜃
= 𝜃̈
𝐽 − 𝐽𝐿
𝑋1 = 𝜃
𝑋1̇ = 𝑋2 = 𝜃̇
𝑋2̇ = 𝜃̈
𝑋3 = 𝑖𝑎
𝑋3̇ = 𝑖𝑎̇
𝑢 = 𝑒𝑎
𝑌1 = 𝜃
𝑌2 = 𝑤
𝑌3 = 𝑖𝑎
𝑌1 = 𝑋1 = 𝜃
𝑌2 = 𝑋2 = 𝜃̇
𝑌3 = 𝑋3 = 𝑖𝑎
𝑋1̇ = 𝑋2
𝐾𝑡 𝑋3 − 𝑓𝑋2 − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 ) − 𝑓𝐿 𝑋2
𝑋2̇ =
(𝐽 − 𝐽𝐿 )
𝑢 − 𝑅𝑎 𝑋3 − 𝐾𝑏 𝑋2
𝑋3̇ =
𝐿𝑎
𝑋1̇ = 0
𝑋2̇ = 𝑋2 = 0
𝑋3̇ = 0
𝐾𝑡 𝑋3 − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 )
0=
(𝐽 − 𝐽𝐿 )
𝑢 − 𝑅𝑎 𝑋3
0=
𝐿𝑎
Al despejar obtenemos:
𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 ) 𝐾𝑡 𝑋3
=
(𝐽 − 𝐽𝐿 ) (𝐽 − 𝐽𝐿 )
(𝐽 − 𝐽𝐿 ) ∗ 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 )
= 𝐾𝑡 𝑋3
(𝐽 − 𝐽𝐿 )
𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 )
= 𝑋3
𝐾𝑡
𝑅𝑋3 𝑢
=
𝐿𝑎 𝐿𝑎
𝐿𝑎 ∗ 𝑅𝑎 𝑋3
=𝑢
𝐿𝑎
𝑅𝑎 𝑋3 = 𝑢
𝑅𝑎 . 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 )
𝑢=
𝐾𝑡
X1:
𝜕𝑋1
=1
𝑋2
X 2:
𝜕𝑋2̇ 𝑚. 𝑔. 𝐿. 𝑐𝑜𝑠(𝑋1 ) 𝜕𝑋2̇ −𝑓 − 𝑓𝐿 𝜕𝑋2̇ 𝐾𝑡 𝜕𝑋2̇
=− ; = ; = =0
𝑋1 (𝐽 − 𝐽𝐿 ) 𝑋2 (𝐽 − 𝐽𝐿 ) 𝑋3 (𝐽 − 𝐽𝐿 ) 𝑢
X 3:
𝜕𝑋3 𝜕𝑋3̇ 𝐾𝑏 𝜕𝑋3̇ 𝑅𝑎 𝜕𝑋3̇ 1
=0 ; =− ; =− ; =
𝑋1 𝑋2 𝐿𝑎 𝑋3 𝐿𝑎 𝑢 𝐿𝑎
Matrices:
∅ 1 ∅
̇ 𝑚. 𝑔. 𝐿. 𝑐𝑜𝑠(𝑋 ) −𝑓 − 𝑓𝐿 𝐾𝑡 ∅
𝑋1 1 𝑋1
− ∅
[𝑋2̇ ] = (𝐽 − 𝐽𝐿 ) (𝐽 − 𝐽𝐿 ) (𝐽 − 𝐽𝐿 ) [𝑋2 ] + [ 1 ] [𝑢]
𝑋3̇ 𝐾𝑏 𝑅𝑎 𝑋3
∅ − − 𝐿𝑎
[ 𝐿𝑎 𝐿𝑎 ]
𝑌1 1 0 0 𝑋 𝑂
1
𝑌
[ 2 ] = [0 1 0] [ ] + [𝑂] [𝑢]
𝑋2
𝑌3 0 0 1 𝑂
6° > 𝜃 > 9°
sist=ss(A,B,C,D)
step(12*sist); %respuesta en 3 gráficos separados
sistft=tf(sist) %convertir a FT
Tm=1e-3; %periodo de muestreo
Velocidad angular:
Corriente de armadura:
Todas:
El programa de simulink para el sistema no lineal se puede visualizar de la siguiente
manera:
Graficas
% variables de estado:
% X1=W
% X2=Ia
% Matrices
A=[-Ra/La -Kb/La;
Kt/J (-f-fl)/J ];
B=[1/La;
0];
C=[0 1;
1 0;
Kt/J (-f-fl)/J]; %Hay tres salidas
D=[0;
0;
0];
sist=ss(A,B,C,D)
step(12*sist);%respuesta a escalón de amplitud 12 voltios; todas las
salidas
%en una sola grafica
sistft=tf(sist) %convertir a FT
step(12*sistft);%función de transferencia con una señal escalón de 12
voltios
Tm=1e-3; %periodo de muestreo
%%
step(12*sist(1),12*sist(2),12*sist(3));
legend('Velocidad angular','Corriente de armadura','Aceleración
angular');
%% una vez ejecutado el archivo de simulink:
W=datos.signals.values(:,1); %Posición angular
I=datos.signals.values(:,2); %Corriente de armadura
Aa=datos.signals.values(:,3); %Aceleración angular
t=datos.time; %vector de tiempo
plot(t,W,t,I,t,Aa);
legend('Posición angular','Corriente de armadura','Aceleración angular');
%% MÉTODO TRANSFORMADO
syms s
A=[-7119 -59.43;5821 -9.812];
B=[2381;0];
U=1/s; %Señal de entrada(escalón unitario)
Xo=[0;0]; %Condiciones iniciales
I=eye(size(A)); %Matriz identidad
%X=inv(s*I-A)*Xo+inv(s*I-A)*B*U %X(s)
X=(s*I-A)\(Xo+B*U) %X(s)
pretty(X)
Xt=ilaplace(X) %transformada inversa de laplace para obtener X(t)
pretty(Xt) %Matriz de transición de estado
xlabel('tiempo')
ylabel('Variables de estado X(t)')
title('Respuesta temporal del sistema')
legend('X1(t)','X2(t)')
grid on
% variables de estado:
% X1=Theta
% X2=Thetap=w
% X3=Ia
sist=ss(A,B,C,D)
step(12*sist); %respuesta en 3 gráficos separados
sistft=tf(sist) %convertir a FT
Tm=1e-3; %periodo de muestreo
%%
step(12*sist(1)); %respuesta a escalon de 12 voltios (salida 1)
legend('Posición angular');
%%
step(12*sist(2)); %respuesta a escalon de 12 voltios (salida 2)
legend('Velocidad angular');
%%
step(12*sist(3)); %respuesta a escalon de 12 voltios (salida 4)
legend('Corriente de armadura');
%% Todas las salidas al tiempo
step(12*sist(1),12*sist(2),12*sist(3));
legend('Posición angular','Velocidad angular','Corriente de armadura');
%% una vez ejecutado el archivo de simulink:
X1=datos.signals.values(:,1); %Posición angular
X2=datos.signals.values(:,2); %Velocidad angular
X3=datos.signals.values(:,3); %Corriente de armadura
t=datos.time; %vector de tiempo
plot(t,X1,t,X2,t,X3);
legend('Posición angular','Velocidad angular','Corriente de armadura');
SISTEMA NO LINEAL (CODIGO SIMULINK):
function Xp = fcn(u,X)
%estados:
X1=X(1); %posicion
X2=X(2); %velocidad
X3=X(3);%corriente de armadura