串联弹簧动态物理仿真

%%    弹簧动图

clc;clear;

global k1 k2 k3 M1 M2 M3

k1=145000;

k2=180000;

k3=121000;

M1=220;

M2=240;

M3=350;

t1=[0,5];H1=[4;0;8;0;12;0];

[t,H] = ode45(@dH,t1,H1);%求解动力学方程

figure('numbertitle','off','name','弹簧摆摆动轨迹图');

R=0.3;

 

xx1=20;xx2=40;xx3=60;

for i=1:10:length(t);

clf;hold on;

gg1=0:0.1:xx1+H(i,1);yy1=0.15+0.02*sin(gg1);

plot(gg1,yy1,'LineWidth',3,'Color','b');hold on;%第一个弹簧

gg2=xx1+H(i,1):0.1:xx2+H(i,3);yy2=0.15+0.02*sin(gg2);

plot(gg2,yy2,'LineWidth',3,'Color','r');hold on;%第二个弹簧

gg3=xx2+H(i,3):0.1:xx3+H(i,5);yy3=0.15+0.02*sin(gg3);

plot(gg3,yy3,'LineWidth',3,'Color','g');hold on;%第三个弹簧

plot([xx1+H(i,1),xx1+H(i,1)],[0,R],'LineWidth',16,'Color','b');hold on;%第一个物体

plot([xx2+H(i,3),xx2+H(i,3)],[0,R],'LineWidth',16,'Color','r');hold on;%第二个物体

plot([xx3+H(i,5),xx3+H(i,5)],[0,R],'LineWidth',16,'Color','g');hold on;%第三个物体

line([0,0],[0,0.3],'color','k','linewidth',2);hold on;

line([0,100],[0 0],'color','k','linewidth',2);hold on;

xlabel('x');ylabel('y');box on;

hold off;set(gca,'Visible','off');%设置边框宽度

axis([0 100 0 0.8]);

pause(0.5);%加坐标边框%加网格线%可以在这里添加输出动图的程序

drawnow;%实时更新坐标图窗口

end

 

function dHdt=dH(t,H)

global k1 k2 k3 M1 M2 M3

dHdt=zeros(6,1);

dHdt(1)=H(2);

dHdt(2)=-k1*H(1)/M1+k2*(H(3)-H(1))/M1;

dHdt(3)=H(4);

dHdt(4)=-k2*(H(3)-H(1))/M2+k3*(H(5)-H(3))/M2;

dHdt(5)=H(6);

dHdt(6)=k3*(H(3)-H(5))/M3;

end

0f70da8a8cd8422685624aa2987695b0.jpg

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值