一、matlab软件编程物理模型
%理想弹簧阵子简谐运动
%Clear
rectangle('position',[12,8.5,2,0.3],'FaceColor',[0.5,0.3,0.4]);
axis([0,15,-1,10]);
%画顶板
hold on
plot([13,13],[7,8.5],'r','linewidth',2);
%画直线
y=2:.2:7;
M=length(y);
x=12+mod(1:M,2)*2;
x(1)=13;
x(end-3:end)=13;
D=plot(x,y);
%弹簧
C=0:.1:2*pi;r=0.35;
t1=r*sin(C);
F1=fill(13+r*cos(C),2+t1,'r');
% 球
set(gca,'ytick',[0:2:9]);
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/2*sin(pi*T))*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
具体仿真效果参见下面链接,这个是弹簧阵子的动画效果,链接中还有其他集中模型的动画效果仿真
服了你了。。北七。。。搜matlab 物理模型,第一个就是你的问题。。
二、三自由度质量弹簧系统,用matlab解这个函数,ode45或4阶龙格——库塔法都可以。谢谢
[T, Y] = ode45(@fun, [0 1] , [3 5 1 2 4 6]);
plot(T,Y(:,1))
hold on
plot(T,Y(:,1),'-ro')
plot(T,Y(:,2),'-g*')
plot(T,Y(:,3),'-ys')
plot(T,Y(:,4),'-gs')
plot(T,Y(:,5),'--b*')
plot(T,Y(:,6),'--ko')
legend('Y(:,1)'陆弯并早迹,'Y(:,2)','Y(:,3)','Y(:,4)'闹孝,'Y(:,5)','Y(:,6)')
函数fun.m见附件
matlab的help做的很好,有什么不会就help,简单易懂,信息量大,不求人。
三、matlab错误提示
主要意思是:一些命令不再支持,如擦除模式特性(EraseMode property),可用动画函数(ANIMATEDLINE)代替,另,EraseMode设为'normal', 'xor', and 'background'较好。
四、matlab显示横着的3D弹簧,怎么做?
x=0:0.01:10*pi;
plot3(x,sin(x),cos(x));