- 积分
- 82
- 注册时间
- 2004-5-11
- 仿真币
-
- 最后登录
- 1970-1-1
|
好久没有使用MATLAB编程了,今天写了个程序,但是有个很大的困惑,不知道哪里出问题了。
程序很简单,其中16-26行与28-38行表示的意思是一样的,但是使用前面的计算有问题,就是如果用V代替k/(2*pi*f1),就总是出问题。可以使用funavs(0.2,100,0.89,5,0.6)试试结果
function funavs(R,N,T0,A,S)
% R 滚筒半径
% N T0时刻转速,rpm
% A 加速与减速时间比
% S 行程
clc
syms T1 T2
V=2*pi*N*R/60;
T=4*T0;
f1=1/T;
f2=A*f1;
TT2=1/f2;
k=V*2*pi*f1;
k2=V*2*pi*f2;
% v10=V*(1-cos(2*pi*f1*T1));
% s10=V*T1-V*sin(2*pi*f1*T1)/(2*pi*f1);
%
% v30=v10+V*cos(2*pi*f1*(T/2-T1))-V*cos(2*pi*f1*(T/2));
% s30=s10+ v10*T1+V*cos(2*pi*f1*(T/2-T1))*T1+ V/(2*pi*f1)*sin(2*pi*f1*(T/2-T1))- V/(2*pi*f1)*sin(2*pi*f1*(T/2));
%
% v40=v30+V*cos(2*pi*f2*(TT2/2))-V*cos(2*pi*f2*(TT2/2+T2));
% s40=s30+v30*T2+V*cos(2*pi*f2*(TT2/2))*T2+ V/(2*pi*f2)*sin(2*pi*f2*(TT2/2))- V/(2*pi*f2)*sin(2*pi*f2*(TT2/2+T2));
%
% v60=v40+V*cos(2*pi*f2*(TT2-T2))-V*cos(2*pi*f2*(TT2));
% s6=s40+v40*(T2)+V*cos(2*pi*f2*(TT2-T2))*(T2)+V/(2*pi*f2)*sin(2*pi*f2*(TT2-T2))-V/(2*pi*f2)*sin(2*pi*f2*(TT2));
v10=k/(2*pi*f1)*(1-cos(2*pi*f1*T1));
s10=k*T1/(2*pi*f1)-k*sin(2*pi*f1*T1)/(2*pi*f1).^2;
v30=v10+k/(2*pi*f1)*cos(2*pi*f1*(T/2-T1))-k/(2*pi*f1)*cos(2*pi*f1*(T/2));
s30=s10+ v10*(T1)+k/(2*pi*f1)*cos(2*pi*f1*(T/2-T1))*(T1)+ k/(2*pi*f1).^2*sin(2*pi*f1*(T/2-T1))- k/(2*pi*f1).^2*sin(2*pi*f1*(T/2));
v40=v30+k2/(2*pi*f2)*cos(2*pi*f2*(TT2/2))-k2/(2*pi*f2)*cos(2*pi*f2*(TT2/2+T2));
s40=s30+v30*(2*T1+T2-2*T1)+k2/(2*pi*f2)*cos(2*pi*f2*(TT2/2))*(2*T1+T2-2*T1)+ k2/(2*pi*f2).^2*sin(2*pi*f2*(TT2/2-2*T1+2*T1))- k2/(2*pi*f2).^2*sin(2*pi*f2*(TT2/2-2*T1+2*T1+T2));
v60=v40+k2/(2*pi*f2)*cos(2*pi*f2*(TT2-T2))-k2/(2*pi*f2)*cos(2*pi*f2*(TT2));
s6=s40+v40*(T2)+k2/(2*pi*f2)*cos(2*pi*f2*(TT2-T2))*(T2)+k2/(2*pi*f2).^2*sin(2*pi*f2*(TT2-T2))-k2/(2*pi*f2).^2*sin(2*pi*f2*(TT2));
[T1,T2]=solve(s6-0.6,T1-A*T2)
in=input('是否继续? 1/0' )
if in==1
T00=2*(T1+T2)
in=0;
else
return
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
t1=0:0.001:T1;
t3=T1:0.001:2*T1;
a1=k*sin(2*pi*f1*t1);
a3=k*sin(2*pi*f1*(T/2-2*T1+t3));
v1=V*(1-cos(2*pi*f1*t1));
v10=V*(1-cos(2*pi*f1*T1));
s1=V*t1-V*sin(2*pi*f1*t1)/(2*pi*f1);
s10=V*T1-V*sin(2*pi*f1*T1)/(2*pi*f1);
v3=v10+V*cos(2*pi*f1*(T/2-2*T1+T1))-V*cos(2*pi*f1*(T/2-2*T1+t3));
v30=v10+V*cos(2*pi*f1*(T/2-2*T1+T1))-V*cos(2*pi*f1*(T/2-2*T1+2*T1));
s3=s10+ v10*(t3-T1)+V*cos(2*pi*f1*(T/2-T1))*(t3-T1)+ V/(2*pi*f1)*sin(2*pi*f1*(T/2-2*T1+T1))- V/(2*pi*f1)*sin(2*pi*f1*(T/2-2*T1+t3));
s30=s10+ v10*(2*T1-T1)+V*cos(2*pi*f1*(T/2-T1))*(2*T1-T1)+ V/(2*pi*f1)*sin(2*pi*f1*(T/2-2*T1+T1))- V/(2*pi*f1)*sin(2*pi*f1*(T/2-2*T1+2*T1));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
t4=2*T1:0.001:2*T1+T2;
t6=2*T1+T2:0.001:2*T1+2*T2;
a4=k2*sin(2*pi*f2*(TT2/2-2*T1+t4));
a6=k2*sin(2*pi*f2*(TT2-2*T1-2*T2+t6));
v4=v30+V*cos(2*pi*f2*(TT2/2))-V*cos(2*pi*f2*(TT2/2-2*T1+t4));
v40=v30+V*cos(2*pi*f2*(TT2/2))-V*cos(2*pi*f2*(TT2/2+T2));
s4=s30+v30*(t4-2*T1)+V*cos(2*pi*f2*(TT2/2))*(t4-2*T1)+ V/(2*pi*f2)*sin(2*pi*f2*(TT2/2))- V/(2*pi*f2)*sin(2*pi*f2*(TT2/2-2*T1+t4));
s40=s30+v30*T2+V*cos(2*pi*f2*(TT2/2))*T2+ V/(2*pi*f2)*sin(2*pi*f2*(TT2/2))- V/(2*pi*f2)*sin(2*pi*f2*(TT2/2+T2));
v6=v40+V*cos(2*pi*f2*(TT2-T2))-V*cos(2*pi*f2*(TT2-2*T1-2*T2+t6));
s6=s40+v40*(t6-(2*T1+T2))+V*cos(2*pi*f2*(TT2-T2))*(t6-(2*T1+T2))+V/(2*pi*f2)*sin(2*pi*f2*(TT2-T2))-V/(2*pi*f2)*sin(2*pi*f2*(TT2-2*T1-2*T2+t6));
figure(1)
% subplot(311)
plot([t1,t3,t4,t6],[a1,a3,a4,a6],'k','linewidth',1.5)
%axis([0 2*T1+2*T2 -2 2])
xlabel('时间 s', 'fontname','宋体')
ylabel('加速度 m/s^2', 'fontname','宋体')
figure(2)
% subplot(312)
plot([t1,t3,t4,t6],[v1,v3,v4,v6],'k','linewidth',1.5)
% axis([1.5 2 0 0.2])
xlabel('时间 s', 'fontname','宋体')
ylabel('速度 m/s', 'fontname','宋体')
% subplot(313)
figure(3)
plot([t1,t3,t4,t6],[s1,s3,s4,s6],'k','linewidth',1.5)
% axis([1.5 2 0.55 0.6])
xlabel('时间 s', 'fontname','宋体')
ylabel('行程 m', 'fontname','宋体')
tt1=0:0.01:T/2;
aa1=k*sin(2*pi*f1*tt1);
tt2=T/2:0.01:T/2+TT2/2;
aa2=k2*sin(2*pi*f2*(tt2-T/2+TT2/2)); |
|