基于matlabGUI的平面四杆机构的运动教材.docx

基于matlabGUI的平面四杆机构的运动教材.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于matlab GUI的平面四杆机构的运动分析 一、目的 通过matlab对平面四杆机构进行运动仿真,并以GUI界面方式实现输入输出的参数化,对平面四杆机构进行位置分析、速度分析、加速度分析和静力学分析。此外,通过动画演示,更加形象直观地观察机构的运动过程。最后,将程序编译成.exe独立可执行文件,可以在其它没有安装matlab的机器上运行。 二、设计思路 通过matlab的GUI功能模块,创建一个图形用户界面,在自动生成的代码框架中对初始化函数和回调函数等进行编辑,建立与控件相关联的程序:控件属性、位置分析、速度分析、加速度分析、静力学分析、动画演示等。 图1是平面四杆机构的示意图,输入角q的运动规律为q=pi/50*t^2+q0,r1、r2是从动角。对t时刻沿着杆长距离原点A的任意一点进行分析。 注意:输入输出角的单位为度,时间t的取值范围为0:0.05:10,任意点lx的取值范围为0~a1+a2+a3,估算的从动角r1、r2的迭代初始值不能偏离平衡位置太大。 图1、平面四杆机构示意图 三、设计流程 1、通过GUI模块创建图形用户界面 命令方式:在Matlab命令窗口键入guide;菜单方式:在Matlab的主窗口中,选择FileNewGUI命令,就会显示GUI的设计模板。如图1所示。 图2、创建图形界面 2、设计图形界面 在创建之后的图形界面中插入坐标轴axes,静态文本框static text,编辑文本框edit text,按钮push button等等。如图 所示。 图3、图形界面设计 3、编辑回调函数 1)位置分析:输入角的函数为:q=pi/50*t^2+q0。在时间t=0~10s内,每一个时间点估算两个初始从动角,根据牛顿-拉普森迭代得到准确的机构位置。10s刚好主动角经历了360度,记录每一时刻的位置,便可以动画演示。 2)速度分析:输入角速度为:dq=pi/25*t。选择杆件上的任意一点(坐标表示为质点沿着杆件到原点A的距离)做分析,正确表达出角速度系数和速度系数,便可以求出质点的速度。 3)加速度分析:输入角加速度为:ddq=pi/25。正确表达出向心系数和角加速度系数,便可以求出质点的加速度。 4)静力学分析:由虚功原理可知,当广义力Q(V,H)=0(或近似为零)时机构达到平衡,记录该平衡条件下的位置数据。 四、结果演示 1、机构杆长条件判断 1)不符合杆长条件。如图4所示。 图4、不符合杆长条件 2)符合杆长条件,输出参数。如图5所示。 图5、符合杆长条件 2、机构运动动画演示。 图6、机构动画演示 五、生成.exe文件 1、安装编译器。可有多种选择,本机安装的是matlab自带的Lcc-win32; 2、设置编译器。在matlab命令行输入mbuild –setup,选择安装的lcc编译器; 3、调用编译器。输入mcc –m sgjg,这里sgjg为要转成exe的m文件; 4、安装Matlab path\toolbox\compiler\deploy\win32目录下的MCRInstaller。 MCR是matlab的运行环境,在程序打包时,最好将相应版本的MCR一起打包。在其它机器上运行exe文件前,首先安装matlab的运行环境MCRInstaller.exe。 六、附录(程序) function varargout = sgjg(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct(gui_Name, mfilename, ... gui_Singleton, gui_Singleton, ... gui_OpeningFcn, @sgjg_OpeningFcn, ... gui_OutputFcn, @sgjg_OutputFcn, ... gui_LayoutFcn, [] , ... gui_Callback, []); if nargin ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:});

文档评论(0)

舞林宝贝 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档