You are on page 1of 3

1) Codigo de datos del motor: M1datos.

2) %%SIMULANDO UN MOTOR DC: Parmetros de Simulacin AnalgicoDigital:


clc;clear;close all;

3)
4)
5) %Prametros de Simulink:
6) Ts=0.1e-3;
7) to=0;
8) tfinal=10;
9) %%
10)
%Prametros del Motor:
11)
%----------------------------------------------------------------------Pmax=21;
%Potencia nominal en Watt.
Vmax=24;
%Voltaje nominal en Volt.
Ra=5.25;
%Resistencia de armadura en ohmios
La=3.84e-3; %Inductancia de armadura en Henrios.
Kw=5.45e-2; %Coeficiente de fuerza contraelectromotriz:V.s/m
Ki=5.45e-2; %Coeficiente de relacin torque-corriente:N.m/A
J=8.205e-5;
%Inercia del Motor:Kg.m^2
Kb=5e-7;
%Coeficiente de friccin en N.m.s

12)
13)
14)
15)
16)
17)
18)
19)
20)
21)
22)
23)
24)
25)
26)
27)
28)
29)
30)
31)
32)
33)
34)
35)
36)
37)
38)
39)
40)

%%
%SEAL DE ENTRADA: Voltaje nominal 24V.
Vsetpoint=24;
%%
%MODELO EN ESPACIO DE ESTADOS:
A=[-Kb/J Ki/J;-Kw/La -Ra/La];
B=[0;1/La];
C=[1 0];
D=zeros(2,1);
%%
% %Simulando:
% motor=ss(A,B,C,D,0);
% step(motor)
% %ts=30ms; Ts=sampling=ts/500=0.06/1000=6e-5;
%%

2) Simulacion de la velocidad: M1velocidad.m


%%
M1datos;

%Ejecuta el archivo que contiene los datos del motor DC.

%%
%Obtendremos la funcin de transferencia del modelo de velocidad
% En laplace:Wm(s)/Va(s)=Y/R=F
%F=bm1/(s^2+am2*s+am3); numM1=bm1; denM1=[1 am2 am3];
bm1=Ki/(La*J);
am1=(La*Kb+Ra*J)/(La*J);
am2=(Ra*Kb+Ki*Kw)/(La*J);
numM1=bm1;
denM1=[1 am1 am2];
disp('*******************************************************************
**');
disp('Funcion de transferencia del motor');
printsys(numM1,denM1,'s');
disp('*******************************************************************
**');
disp('Otra forma de obtener la funcion de transferencia es:');
SistemaMotor1=tf(numM1,denM1)
disp('*******************************************************************
**');
%Dibujando1:%Para una entrada escaln de Vsetpoint: ver el archivo
%M1datos.m para cambiar cualquier constante
figure;
step(Vsetpoint*numM1,denM1);
%Ahora dibujandolo de otra forma:
figure;
t=to:Ts:0.9;
ref1=Vsetpoint*ones(size(t));
wmotor1=step(Vsetpoint*numM1,denM1,t);
subplot(3,1,1);
plot(t,ref1,'-B');grid on;xlabel('t');ylabel('ref1 en V');title('Voltaje
de entrada al motor');
subplot(3,1,2);
plot(t,wmotor1,'-M');grid on;xlabel('t');ylabel('wmotor1 en
rad/s');title('Velocidad de salida del motor');
disp('Para una entrada de Vsetpoint=');
disp(Vsetpoint);
disp('la velocidad del motor en estado estacionario en rad/s es=');
disp(max(wmotor1));
disp('*******************************************************************
**');
%%
%Calculo de los polos:
disp('Los Polos del motor son');

polosM1=roots(denM1);
p1=polosM1(1)
p2=polosM1(2)
%%
%Calculo de e y wn
%Como son polos reales: e >1. y Mp=0%
%ts(2%)=4/ewn=4/Re(p1)=
tasentamiento=4/(abs(real(p1)))
terrorasen=abs(t-tasentamiento);
tobtener=t(terrorasen==min(terrorasen))
wmotortasen=wmotor1(t==tobtener)
%%
%La grfica de la corriente es:
%Tm=KiIa=KbW+JSW
%Ia=[(SJ+Kb)/Ki]W=F1*W;
% F2=numF2/denF2
W=numF1/denM1*Va
%
W=Vsetpoint*numF1/denM1*escalonVa
numIA=conv([J Kb],numM1); %multiplicacin de polinomios
denIA=conv(Ki,denM1);
iarmadura=step(Vsetpoint*numIA,denIA,t);
subplot(3,1,3);
plot(t,iarmadura,'-r');grid on;xlabel('t');ylabel('iarmadura(t) en
A');title('Corriente de armadura del motor');%axis([min(t) 100e-3 -1 5]);
disp('*******************************************************************
*');
disp('La corriente mxima del motor en Ampere es iarmaduramax=');
disp(max(iarmadura));
timax=t(iarmadura==max(iarmadura));
disp('La corriente mxima se da en el tiempo en segundos timax=');
disp(timax);
disp('*******************************************************************
*');
disp('La corriente en estado estacionario en mA es iarmadura
estacionaria=');
disp(1000*iarmadura(end));

You might also like