MATLAB与弹簧振子振动动画
MATLAB在机械机构分析和数值理论计算中中应用广泛。今天以弹簧振子为对象,利用matlab脚本文件编写一个弹簧振子简谐运动的动画,在这里暂不考虑能量的损耗。
弹簧振动系统建模和编程
简单点,直入主题,编程如下:
D = plot(x,y);
%画小球
C = 0:0.1:2*pi; r=0.35;
t1 = r sin©;
F1 = fill(13 + rcos©,2+t1,‘r’ );
%句柄黄线
set(gca,‘ytick’,[0:2:9]);Q = plot(0,3.8,‘color’,‘r’);
set(gca,‘yticklabels’,num2str([-1:3]’));
plot([0,15],[3.3,3.3],‘black’);
H1 = plot([0,13],[3.3,3.3],‘y’);
Q = plot(0,3.8,‘color’,‘r’);
%运动曲线
td = []; yd = [];
T = 0;
text(2,9,‘理想中的弹簧振子简谐振动’,‘fontsize’,16);
set(gcf, ‘doublebuffer’,‘on’);
%运动仿真
while T<12
pause(0.2);
Dy = (3/2-1/2sin(piT))*1/2;
Y = -(y-2)*Dy+7;
Yf =Y(end)+t1;
td = [td,T];yd=[yd,Y(end)];
set(D,‘ydata’,Y);
set(F1,‘ydata’,Yf,‘facecolor’,rand(1,3));
set(H1,‘xdata’,[T,13],‘ydata’,[Y(end),Y(end)]);
set(Q,‘xdata’,td,‘ydata’,yd);
T = T+0.1;
end
运行结果如下:
1.开始简谐运动
2.运动结束后: