• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

用MATLAB做一个单摆运动的动画

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

用MATLAB做一个单摆运动的动画

MATLAB与单摆运动

MATLAB在机械机构分析和数值理论计算中中应用广泛。倒立摆系统的设计与弹簧振子设计类似,本文将利用MATLAB脚本建立单摆运动的动画演示。

代码的实现

简单点,说话的方式简单点,编程如下:
%% 挂摆衡梁
h = figure(‘numbertitle’,‘off’,‘name’,‘擦除动画显示(挂摆衡梁)-matlabfan’)

%% 绘制横梁
plot([-0.2;0.2],[0;0],’-k’,‘linewidth’,20);

%% 画初始位置的单摆

g=0.98; %重力加速度,可以调节摆的摆速
l=1; %摆长
theta0=pi/4; %初始位置角
x0=lsin(theta0); %初始x的位置
y0=-l
cos(theta0);

axis([-0.75,0.75,-1.25,0]);
axis off

%% 创建摆锤
head = line(x0,y0,‘color’,‘r’,‘linestyle’,’.’,‘erasemode’,‘xor’,‘markersize’,40);
%擦除模式为xor
%% 创建摆杆
body = line([0;x0],[-0.05;y0],‘color’,‘b’,‘linestyle’,’-’,‘erasemode’,‘xor’);
%% 摆的运动
t=0; %时间变量
dt=0.01; %时间增量

while 1
t=t+dt;
theta=theta0cos(sqrt(g/l)t); %单摆角度与时间的关系
x = l
sin(theta);
y =-l
cos(theta);
if ~ishandle(h),return,end
set(head,‘xdata’,x,‘ydata’,y); %改变擦除对象的坐标数据
set(body,‘xdata’,[0;x],‘ydata’,[-0.05;y]);
drawnow; %刷新屏幕
end

运行结果如下

由于小球一直在动,截图时候总是显示不了摆杆,有一点点尴尬。

结束语

做这一个小测试玩一玩,仅供学习与交流。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap