Вы находитесь на странице: 1из 24

Universidad Libre Bogotá

Motor DC (Sistema Lineal y No Lineal)

Profesor:
Ing. Edilberto Carlos Vivas

Integrantes:
Dubanne Enrique Pachón Gómez
ID.065141029

Ingeniería Mecánica
Matlab

21 de Abril del 2017


MODELO DEL MOTOR DC

Ecuación de la parte eléctrica:

𝑑𝑖 𝑑𝜃
𝑒𝑎 = 𝑅𝑎 . 𝑖𝑎 + 𝐿𝑎 + 𝑒𝑏 ; 𝑒𝑏 = 𝐾𝑏 = 𝐾𝑏 . 𝑤
𝑑𝑡 𝑑𝑡

Ecuación de la parte mecánica:

𝑑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 (𝑖𝑎 ):

Sistema con un torque de carga 𝑇𝐿 = 𝑓𝐿 . 𝑤 , donde 𝑓𝐿 es la fricción de la carga.

Ecuación de la parte eléctrica:

𝑑𝑖 𝑑𝜃
𝑒𝑎 = 𝑅𝑎 . 𝑖𝑎 + 𝐿𝑎 + 𝑒𝑏 ; 𝑒𝑏 = 𝐾𝑏 = 𝐾𝑏 . 𝑤
𝑑𝑡 𝑑𝑡

∑𝑉 = 0 ; 𝑒𝑏 = 𝑘𝑏 ∗ 𝜃̇

𝑑𝑖𝑎
𝑒𝑎 − 𝑖𝑎 𝑅 − 𝐿 − 𝑒𝑏 = 0
𝑑𝑡

Por lo tanto como 𝑒𝑏 = 𝑘𝑏 ∗ 𝜃̇ al sustituir el voltaje de armadura obtenemos:


𝑑𝑖𝑎
𝑒𝑎 − 𝑖𝑎 𝑅 − 𝐿 − (𝑘𝑏 𝜃̇) = 0
𝑑𝑡

𝑒𝑎 − 𝑖𝑎 𝑅 − (𝑘𝑏 𝜃̇) 𝑑𝑖𝑎


=
𝐿 𝑑𝑡
Ecuación de la parte mecánica:

𝑑2 𝜃 𝑑𝑤 𝑑𝑤
∑𝜏 = 𝐽 2 = 𝐽 ; 𝑇𝑚 − 𝑓. 𝑤 − 𝑇𝐿 = 𝐽
𝑑𝑡 𝑑𝑡 𝑑𝑡

∑ 𝜏 = 𝐽𝜃̈ = 𝐽𝜔̇ ; 𝑇𝑚 − 𝑓𝜔 − 𝑇𝐿 = 𝐽𝜔̇

Como 𝑇𝐿 = 𝑓𝐿 . 𝑤 y 𝑇𝑚 = 𝐾𝑡 . 𝑖𝑎 al sustituir el torque de carga obtenemos:

𝐾𝑡 . 𝑖𝑎 − 𝑓𝜔 − 𝑓𝐿 𝜔 = 𝐽𝜔̇

𝐾𝑡 . 𝑖𝑎 − 𝑓𝜔 − 𝑓𝐿 𝜔
= 𝜔̇
𝐽

Ecuaciones de salida:

𝑌1 = 𝑤
𝑌2 = 𝑖𝑎
𝑑𝜃
𝑤=
𝑑𝑡
Por lo tanto el cambio de variables:

𝑋1 = 𝑖𝑎

𝑋1̇ = 𝑖𝑎̇

𝑋2 = 𝜃̇ = 𝜔

𝑋2̇ = 𝜃̈ = 𝜔̇

𝑢 = 𝑒𝑎

Ecuaciones con cambio de variable:

𝑢 − 𝑋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 𝑂
𝐽 𝐽

Los valores de parámetros:


%% 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

Al simular la ecuación de estado con un voltaje de armadura 𝑒𝑎 = 𝑒𝑠𝑐𝑎𝑙ó𝑛 𝑑𝑒 12 𝑣𝑜𝑙𝑡𝑖𝑜𝑠


durante un tiempo de simulación de 150 milisegundos, con un periodo de muestreo de 1
milisegundo, obtenemos el siguiente código.

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

Las gráficas resultantes son las siguientes:


Velocidad Angular:

Corriente de armadura:
Aceleración angular:

Todas las señales:


El programa de simulink se puede visualizar de la siguiente manera:

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
𝑑𝑡

Ecuación de la parte eléctrica:

𝑒𝑎 − 𝑖𝑎 𝑅𝑎 − (𝑘𝑏 𝜃̇) 𝑑𝑖𝑎


=
𝐿 𝑑𝑡
Ecuación de la parte mecánica:

∑ 𝜏 = 𝐽𝜃̈ = 𝐽𝜔̇ ; 𝑇𝑚 − 𝑓𝜔 − 𝑇𝐿 = 𝐽𝜔̇

Sustituyendo los torques generados por el motor y la carga obtenemos:

𝑑𝑤
𝐾𝑡 . 𝑖𝑎 − 𝑓𝜔 − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝜃) + 𝑓𝐿 . 𝑤 + 𝐽𝐿 = 𝐽𝜃̈
𝑑𝑡
𝐾𝑡 . 𝑖𝑎 − 𝑓𝜃̇ − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝜃) + 𝑓𝐿 𝜃 + 𝐽𝐿 𝜃̈ = 𝐽𝜃̈
𝐾𝑡 . 𝑖𝑎 − 𝑓𝜃̇ − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝜃) + 𝑓𝐿 𝜃 = 𝐽𝜃̈ − 𝐽𝐿 𝜃̈
𝐾𝑡 . 𝑖𝑎 − 𝑓𝜃̇ − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝜃) + 𝑓𝐿 𝜃 = (𝐽 − 𝐽𝐿 )𝜃̈
𝐾𝑡 𝑖𝑎 − 𝑓𝜃̇ − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝜃) − 𝑓𝐿 𝜃
= 𝜃̈
𝐽 − 𝐽𝐿

Donde 𝐿 es la longitud del péndulo, 𝑚 es la masa del péndulo, 𝑔 es la gravedad


%parametros fisicos del pendulo
m=0.03; %masa en kilogramos
g=9.81; %gravedad (m/s^2)
L=0.1; %Longitud del pendulo en metros
fl=3.0623e-5; %friccion viscosa de la carga
Jl=m*L^2; %inercia del pendulo si la masa está concentrada en el
%extremo

Tomando como variables de estado 𝑥1 = 𝜃 , 𝑥2 = 𝑤 , 𝑥3 = 𝑖 , como señal de control el


voltaje de armadura (𝑢 = 𝑒𝑎 ).
El cambio de variables resulta el siguiente:

𝑋1 = 𝜃
𝑋1̇ = 𝑋2 = 𝜃̇
𝑋2̇ = 𝜃̈
𝑋3 = 𝑖𝑎
𝑋3̇ = 𝑖𝑎̇
𝑢 = 𝑒𝑎

Tomando como ecuaciones de salida:

𝑌1 = 𝜃
𝑌2 = 𝑤
𝑌3 = 𝑖𝑎
𝑌1 = 𝑋1 = 𝜃
𝑌2 = 𝑋2 = 𝜃̇
𝑌3 = 𝑋3 = 𝑖𝑎

Las ecuaciones con cambio de variable son las siguientes:

𝑋1̇ = 𝑋2
𝐾𝑡 𝑋3 − 𝑓𝑋2 − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 ) − 𝑓𝐿 𝑋2
𝑋2̇ =
(𝐽 − 𝐽𝐿 )
𝑢 − 𝑅𝑎 𝑋3 − 𝐾𝑏 𝑋2
𝑋3̇ =
𝐿𝑎

El punto de equilibrio de cada una de las ecuaciones seria:

𝑋1̇ = 0
𝑋2̇ = 𝑋2 = 0
𝑋3̇ = 0
𝐾𝑡 𝑋3 − 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 )
0=
(𝐽 − 𝐽𝐿 )
𝑢 − 𝑅𝑎 𝑋3
0=
𝐿𝑎
Al despejar obtenemos:

𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 ) 𝐾𝑡 𝑋3
=
(𝐽 − 𝐽𝐿 ) (𝐽 − 𝐽𝐿 )
(𝐽 − 𝐽𝐿 ) ∗ 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 )
= 𝐾𝑡 𝑋3
(𝐽 − 𝐽𝐿 )
𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 )
= 𝑋3
𝐾𝑡

𝑅𝑋3 𝑢
=
𝐿𝑎 𝐿𝑎
𝐿𝑎 ∗ 𝑅𝑎 𝑋3
=𝑢
𝐿𝑎
𝑅𝑎 𝑋3 = 𝑢

Como siguiente paso es necesario sustituir X3 en u:

𝑅𝑎 . 𝑚. 𝑔. 𝐿. 𝑠𝑒𝑛(𝑋1 )
𝑢=
𝐾𝑡

Respectivamente se realiza la linealización mediante derivadas parciales, para corroborar si


el sistema lograba moverse o no:

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 𝑂

El rango de linealización es:

6° > 𝜃 > 9°

Al simular la ecuación de estado con un voltaje de armadura 𝑒𝑎 = 𝑒𝑠𝑐𝑎𝑙ó𝑛 𝑑𝑒 12 𝑣𝑜𝑙𝑡𝑖𝑜𝑠


durante un tiempo de simulación de 10 segundo, y exportar al workspace los vectores de
posición, velocidad, aceleración y corriente de armadura con un periodo de muestreo de 1
milisegundo (Tm=1e-3). Obtenemos el siguiente 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)

%Ganancia del Amplificador de potencia del motor:


Ka=2.4; %(si Vi=5V => Vo=12 voltios ; Ka=12v/5v=2.4
Xo=[0;0;0]; %condicion inicial de los estados (posicion, velocidad,
aceleracion,corriente),
% se define en el integrador de la ecuación de estado.

%parametros fisicos del pendulo


m=0.03; %masa en kilogramos
g=9.81; %gravedad (m/s^2)
L=0.1; %Longitud del pendulo en metros
fl=3.0623e-5; %friccion viscosa de la carga
Jl=m*L^2; %inercia del pendulo si la masa está concentrada en el
extremo

theta=6; %Rango pequeño de ángulos


z=cos(theta); %Parámetro de linealización para la matriz de estados
lineal
% variables de estado:
% X1=Theta
% X2=Thetap=w
% X3=Ia

%Matrices de estado DEL MODELO LINEALIZADO


A=[0 1 0;((-m*g*L*z)/(J-Jl)) ((-f-fl)/(J-Jl)) ((Kt)/(J-Jl));(0) (-Kb/La)
(-Ra/La)]
B=[0;0;(1/La)];
C=[1 0 0; 0 1 0;0 0 1];
D=[0;0;0];

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

Las gráficas de las señales exportadas son las siguientes.


Posición angular:

Velocidad angular:
Corriente de armadura:

Todas:
El programa de simulink para el sistema no lineal se puede visualizar de la siguiente
manera:

Dentro del programa encontraremos el siguiente subsistema:


¿La velocidad de estado estacionario del motor con las dos cargas (la carga que produce un
torque proporcional a la velocidad y la carga tipo péndulo) es la misma?

Graficas

Sistema Lineal Sistema NO Lineal

Como podemos observar en las dos gráficas, el comportamiento de la velocidad angular en


un sistema lineal es diferente al de la velocidad angular en el sistema no lineal. Podemos
concluir que al agregar el peso del péndulo resta energía al motor. La carga que produce un
torque proporcional a la velocidad y la carga tipo péndulo no es la misma. De igual forma
en las gráficas del sistema no lineal podemos observar que la velocidad siempre están en
números negativos lo que nos indica que el motor sufre una sobrecarga tan grande al agregar
el péndulo que hacer que este no pueda funcionar de forma adecuada. Lo que se podría hacer
en este caso para que el sistema funcione es colocar un péndulo que tenga menos peso o
agregar un voltaje mayor al torque del motor.
ANEXOS

SISTEMA LINEAL (CODIGO):


%% 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
%%

step(12*sist(1)); %respuesta a escalon de 12 voltios (salida 1)


legend('Velocidad angular');
%%

step(12*sist(2)); %respuesta a escalon de 12 voltios (salida 2)


legend('Corriente de armadura');
%%

step(12*sist(3)); %respuesta a escalon de 12 voltios (salida 2)


legend('Aceleración angular');
%% Todas las salidas juntas

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

% |x1p| |a b||X1| |0|


% | | = | || | + | |U = A.X+B.U
% |X2p| |c d||X2| |1|

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

t=0:0.1:10; %vector de tiempo en intervalos de 0.1 segundos desde 0


hasta 10
Xt=eval(Xt); %evaluar el vector X con los valores de t
plot(t,Xt) %Dibujar X vs t

xlabel('tiempo')
ylabel('Variables de estado X(t)')
title('Respuesta temporal del sistema')
legend('X1(t)','X2(t)')
grid on

SISTEMA NO LINEAL (CODIGO):


%% 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)

%Ganancia del Amplificador de potencia del motor:


Ka=2.4; %(si Vi=5V => Vo=12 voltios ; Ka=12v/5v=2.4
Xo=[0;0;0]; %condicion inicial de los estados (posicion, velocidad,
aceleracion,corriente),
% se define en el integrador de la ecuación de estado.
%parametros fisicos del pendulo
m=0.03; %masa en kilogramos
g=9.81; %gravedad (m/s^2)
L=0.1; %Longitud del pendulo en metros
fl=3.0623e-5; %friccion viscosa de la carga
Jl=m*L^2; %inercia del pendulo si la masa está concentrada en el
extremo

theta=6; %Rango pequeño de ángulos


z=cos(theta); %Parámetro de linealización para la matriz de estados
lineal

% variables de estado:
% X1=Theta
% X2=Thetap=w
% X3=Ia

%Matrices de estado DEL MODELO LINEALIZADO


A=[0 1 0;((-m*g*L*z)/(J-Jl)) ((-f-fl)/(J-Jl)) ((Kt)/(J-Jl));(0) (-Kb/La)
(-Ra/La)]
B=[0;0;(1/La)];
C=[1 0 0; 0 1 0;0 0 1];
D=[0;0;0];

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)

%parametros fisicos del pendulo


m=0.03; %masa en kilogramos
g=9.81; %gravedad (m/s^2)
L=0.1; %Longitud péndulo en metros
f=1e-5; %fricción biscosa en s.N.m/rad
J=4.14e-6; % inercia del rotor(Kg*m^2)
fl=3.0623e-5; %friccion viscosa de la carga
Jl=m*L^2; %inercia del pendulo si la masa está concentrada en el
extremo
Kb=24.96e-3; % constante de velocidad (V/(rad/seg))
Kt=24.1e-3; % constante de torque (N*m/amp)
Ra=2.99; % resistencia de armadura(ohms)
La=420e-6; % inductancia de armadura(H)

%estados:
X1=X(1); %posicion
X2=X(2); %velocidad
X3=X(3);%corriente de armadura

%ecuaciones de estado no lineales:


X1p = X2;
X2p = (Kt*X3-f*X2-m*g*L*sin(X1)-fl*X2)/J;
X3p = (u-X3*Ra-Kb*X2)/La;
Xp=[X1p;X2p;X3p];

Вам также может понравиться