M_u=0.358;
t_start=[0.1325 0.1767 0.1737 0.2651 0.2651 0.1767 0.1325];
t_stop=[-0.0409 -0.0545 -0.0545 -0.0818 -0.0818 -0.0545 -0.0409];
J_new=J*1E-4;
M_nom_new=M_nom*1E-2;
M_start_new=M_start*1E-2;
unction om = tacho1(time)
data
t_begin=zeros(1,length(t_int));
for i=1:length(t_int)
t_begin(i+1)=t_begin(i)+t_int(i)+t_p;
if (time >= t_begin(i) & time <= t_begin(i+1))
if(time >= t_begin(i) & time < t_begin(i+1)-t_p)
om=omega(i);
else om=0;
end
break;
end
end
clc;
clear;
format compact;
data
T_cyc=sum(t_int)+length(t_int)*t_p;
figure(1);
fplot('tacho1',[0, T_cyc, -150, 200]);
xlabel('\itt, с');
ylabel('\Omega, \itрад/с');
grid on;
P=M_load_new*abs(omega);
P_equ=sqrt(((P.^2)*t_int')/sum(t_int))
cPhi=M_nom_new/I_arm_nom;
i=1;
x=[0];
y=[torgue(x(i))];
cur=[y(1)/cPhi];
while x(i)<=T_cyc
i=i+1;
x=[x x(i-1)+0.005];
y=[y torgue(x(i-1))];
cur=[cur y(i)/cPhi];
end
figure(2);
plot(x,y);
xlabel('\itt, с');
ylabel('\itM, \itН*м');
grid on;
figure(3);
plot(x,cur);
xlabel('\itt, с');
ylabel('\itI, A');
grid on;
M_equ=sqrt((M_p^2*sum(t_start)+(M_t.^2)*t_stop'+M_u^2*sum(t_int-(t_start+t_stop)))/T_cyc)
function tg = torgue(time)
%выдает значение момента tg в заданный момент времени time
data %загрузка исх. данных
%расчет параметров для диаграммы моментов
M_start_new=M_start*1E-2; %перевод Н*см в Н*м
M_load_new=M_load*1E-2; %перевод Н*см в Н*м
M_st_frict_new=M_st_frict*1E-2; %перевод Н*см в Н*м
J_new=J*1E-4; %перевод кг*см^2 в кг*м^2
M_nom_new=M_nom*1E-2; %перевод Н*см в Н*м
M_start_new=M_start*1E-2;
M_p=0.687; %момент (пусковой-(нагрузочный+статический)) при пуске
M_t=[0.687 0.687 0.687 0.687 0.687 0.687 0.687]; %момент при торможении
M_u=0.358; %момент в установившемся движении
%расчет времени пуска и торможения для каждого интервала времени t_int
t_start=[0.1325 0.1767 0.1767 0.2651 0.2651 0.1767 0.1325];
t_stop=[-0.0409 -0.0545 -0.0545 -0.0818 -0.0818 -0.0545 -0.0409];
%абс. время
t_begin=zeros(1,length(t_int));
for i=1:length(t_int)
t_begin(i+1)=t_begin(i)+t_int(i)+t_p;
if (time >= t_begin(i) & time <= t_begin(i+1))
if (time >= t_begin(i) & time < t_begin(i+1)-t_p)
if (time >= t_begin(i) & time < t_begin(i)+t_start(i))
tg=M_p*sign(omega(i));
end
if (time >= t_begin(i)+t_start(i) & time < t_begin(i+1)-t_p)
tg=M_u*sign(omega(i));
end
elseif (time >= t_begin(i+1)-t_p & time < t_begin(i+1)-t_p+t_stop(i))
tg=M_t(i)*-sign(omega(i));
else tg=0;
end
break;
end
end
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.