基于matlab GUI的平面四杆机构的运动分析
基于matlab的四杆机构运动分析
基于matlab的四杆机构运动分析一、四杆机构基本概念四杆机构是一种通过变换连杆长度,改变机构运动形态的机械系统。
四杆机构通常由固定连杆、推动连杆、连接杆和工作连杆四个连杆组成,其中固定连杆和推动连杆固定不动,连接杆和工作连杆则沿固定轴线的方向做平动或旋转运动。
四杆机构的基本构造如下图所示:四杆机构的四个连杆的长度和构造参数,以及驱动机构的运动决定了机构的运动特性。
在进行四杆机构运动分析时,需要通过求解运动学关系式和动力学方程,得到连杆的运动规律和力学特性。
二、四杆机构运动学分析1.运动学基本方程四杆机构的运动学分析基本方程是连杆长度变化的定理,即:l₁²+l₂²-2l₁l₂cosθ₂=l₃²+l₄²-2l₃l₄cosθ₄其中,l₁,l₂分别为固定连杆和推动连杆长度;l₃,l₄分别为连接杆和工作连杆长度;θ₂,θ₄分别为推动连杆和工作连杆的夹角。
2.运动学求解方法根据四杆机构运动学基本方程,可以求解机构中任意连杆的角度和位置,从而分析机构运动规律。
在matlab程序中,运动分析可以采用分析法或图解法。
分析法通常采用向量法或坐标法,即将四杆机构中各连杆和运动副的运动量表示为向量或坐标,然后根据连杆长度变化的定理,求解四个未知角度θ₁、θ₂、θ₃、θ₄。
图解法则先通过画图确定机构的运动规律,在图上求解连杆的角度。
比如可以采用伯格(Bourgeois)图法或恰普利恩(Chaplygin)图法等。
四杆机构动力学分析基本方程包括平衡方程和力平衡方程。
平衡方程:当四杆机构处于平衡状态时,连杆的受力关系可以表示为:ΣF=0其中ΣF为各连杆受力的合力。
ΣF=m×a其中,m为每个连杆的质量,a为连杆的加速度。
四杆机构动力学求解方法以matlab为工具,可借助matlab的求解器完成求解。
具体可以利用matlab的优化工具箱、控制工具箱和系统动态学工具箱等,来实现机构模型的动态模拟、仿真和优化设计。
基于MATLAB的平面四连杆机构运动学分析
一、课程设计内容及要求:1.对连杆机构运动工作原理及运动参数有一定理解2.掌握MATLAB基本命令3.了解MATLAB编程的基本知识,并能编写简单M文件4.了解MATLAB图形界面设计的基本知识5.课程设计说明书:应阐述整个课程设计内容,要突出重点和特色,图文并茂,文字通畅。
应有目录、摘要及关键词、正文、参考文献等内容,字数一般不少于6000字。
二、主要参考资料有关复杂刀具参数计算及结构设计、机械制造工艺与设备的手册与图册。
三、课程设计进度安排指导教师(签名):时间:教研室主任(签名):时间:院长(签名):时间:目录1平面连杆机构的运动分析 (1)1.1机构运动分析的任务、目的和方法 (1)1.2机构的工作原理 (1)1.3机构的数学模型的建立 (1)1.3.1建立机构的闭环矢量位置方程 (1)1.3.2求解方法 (2)2 基于MATLAB程序设计 (4)2.1程序流程图 (4)2.2 M文件编写 (6)2.3程序运行结果输出 (7)3基于MATLAB图形界面设计 (11)3.1界面设计 (11)3.2代码设计 (12)4 小结 (17)参考文献 (18)1 平面连杆机构的运动分析1.1 机构运动分析的任务、目的和方法曲柄摇杆机构是平面连杆机构中最基本的由转动副组成的四杆机构,它可以用来实现转动和摆动之间运动形式的转换或传递动力。
对四杆机构进行运动分析的意义是:在机构尺寸参数已知的情况下,假定主动件(曲柄)做匀速转动,撇开力的作用,仅从运动几何关系上分析从动件(连杆、摇杆)的角位移、角速度、角加速度等运动参数的变化情况。
还可以根据机构闭环矢量方程计算从动件的位移偏差。
上述这些内容,无论是设计新的机械,还是为了了解现有机械的运动性能,都是十分必要的,而且它还是研究机械运动性能和动力性能提供必要的依据。
机构运动分析的方法很多,主要有图解法和解析法。
当需要简捷直观地了解机构的某个或某几个位置的运动特性时,采用图解法比较方便,而且精度也能满足实际问题的要求。
基于matlab的平面四杆机构动态仿真
基于matlab的平⾯四杆机构动态仿真摘要:本⽂基于matlab 强⼤的数值计算功能,借助fsolve 函数,建⽴了⼀个平⾯四杆机构模型,并对此进⾏运动仿真,为平⾯四杆机构的尺⼨优化设计和运动分析提供了⼀条简单实⽤的捷径。
关键词:平⾯四杆机构 matlab fsolve 函数1 背景介绍平⾯四连杆机构是⼯程应⽤中使⽤⼴泛的机械结构。
如果知道相应尺⼨下杆件的运动轨迹,速度⼤⼩,对整个机构的优化设计有重要作⽤。
Matlab 具有强⼤的科学计算机数据处理能⼒,出⾊的图形处理功能,且程序语⾔简单。
基于以上叙述,本⽂⾸先设计了平⾯四杆机构的各连杆参数,然后在matlab 环境下运⽤⽜顿-⾟普顿算法,使⽤fsolve 函数快速实现了运动仿真并以图形的形式将其运动情况显⽰了出来。
2 平⾯四杆机构的运动仿真2.1 ⽤matlab 进⾏⾓位移分析平⾯四杆机构如右图所⽰,4l 为机架,1l 为摇杆,2l 为连杆,3l 为摆杆,设杆长分别为20,mm50mm 35mm,60mm.,摇杆与机架夹⾓1?θ=,连杆与⽔平线夹⾓2δθ=,摇杆与机架夹⾓3ψθ=,且初始⾓度00o ?=,1θ⾓速度为10/rad s ω=。
则可将问题转化为,已知1θ的运动状态,求23,θθ。
由铰链四杆机构复向量坐标,可以写出⾓位移⽅程3121243j j j l e l e l l e θθθ+=+将上式展开,整理的1231122433223112233(,)cos cos cos (,)sin sin sin f l l l l f l l l θθθθθθθθθθ=+--=+-??由上式可知,在1θ给定的情况下建⽴了⼀个⼆元⽅程,通过matlab 联⽴⽅程组可求解出23,θθ。
2.1 ⽤matlab 进⾏⾓速度分析⽤matlab 进⾏速度分析对上式进⾏求导并整理成矩阵形式为1211223312233113sin()sin()sin()cos()cos()cos()l l l l l l θθθθθθθθθ-??-=-运动仿真的实现为了求得23,θθ,可调⽤matlabf 中fsolve 函数。
基于matlab的连杆机构设计
基于matlab的连杆机构设计————————————————————————————————作者: ————————————————————————————————日期:目录1平面连杆机构的运动分析 (1)1.2 机构的工作原理 (1)1.3机构的数学模型的建立 (1)1.3.1建立机构的闭环矢量位置方程...................................................11.3.2求解方法.....................................................................22基于MATLAB程序设计 (4)2.1 程序流程图 (4)2.2 M文件编写 (6)2.3程序运行结果输出 (7)3 基于MATLAB图形界面设计 (11)3.1界面设计……………………………………………………………………………………………113.2代码设计……………………………………………………………………………………………124 小结 (17)参考文献 (18)1平面连杆机构的运动分析1.1 机构运动分析的任务、目的和方法曲柄摇杆机构是平面连杆机构中最基本的由转动副组成的四杆机构,它可以用来实现转动和摆动之间运动形式的转换或传递动力。
对四杆机构进行运动分析的意义是:在机构尺寸参数已知的情况下,假定主动件(曲柄)做匀速转动,撇开力的作用,仅从运动几何关系上分析从动件(连杆、摇杆)的角位移、角速度、角加速度等运动参数的变化情况。
还可以根据机构闭环矢量方程计算从动件的位移偏差。
上述这些内容,无论是设计新的机械,还是为了了解现有机械的运动性能,都是十分必要的,而且它还是研究机械运动性能和动力性能提供必要的依据。
机构运动分析的方法很多,主要有图解法和解析法。
当需要简捷直观地了解机构的某个或某几个位置的运动特性时,采用图解法比较方便,而且精度也能满足实际问题的要求。
基于MATLAB的平面连杆机构运动分析及动画毕业论文
基于MATLAB的平面连杆机构运动分析及动画摘要建立了平面机构运动分析的数学模型,利用MATLAB进行了编程并设计了计算交互界面进而求解,为解析法的复杂计算提供了便利的方法,此方法也同样适用于复杂平面机构的运动分析,并为以后机构运动分析的通用软件的设计提供了基础。
建立了平面四杆机构运动分析的数学模型,以MATLAB 程序设计语言为平台,将参数化设计与交互式相结合,设计了平面四杆机构仿真软件,该软件具有方便用户的良好界面,并给出界面设计程序,从而使机构分析更加方便、快捷、直观和形象。
设计者只需输入参数就可得到仿真结果,再将运行结果与设计要求相比较,对怎样修改设计做出决策,它为四杆机构设计提供了一种实用的软件与方法。
以一种平面六连杆为例建立了平面多连杆机构的运动分析数学模型,应用MATLAB 软件进行了优化设计和仿真分析,为机构优化设计提供了一种高效、直观的仿真手段,提高了对平面多连杆机构的分析设计能力。
同时,也为其他机构的仿真设计提供了借鉴。
关键词:解析法,平面连杆机构,MATLAB,运动分析,运动仿真Based on the MATLAB Planar Linkage Mechanism MotionAnalysis and AnimationABSTRACTThis article established the kinematical mathematic model of the planar mechanism ,which is programmed and solved with designing the mutual interface of the calculation by MATLAB.This convenient method is provided for the complicated calculation of the analysis and also applicable to the kinematical analysis of the complex planar mechanism.A mathematical model of motion analysis was established in planar four- linkage ,and emulational software was developed. The software adopted MATLAB as a design language. It combined parametric design with interactive design and had good interfacefor user. Thus,it was faster and more convenient to analyse linkage. The emulational result was obtained as soon as input parameters was imported and the devisers can make decision-making of modification by the comparing emulational result with design demand. It provides an applied software and method for linkage.This paper took a planar six-linkage mechanism as a example to set up the mathematics model of planar multi-linkage mechanisms, and made the optimization design and simulation by the MATLAB software. It gave a efficiently and directly method to optimization design of mechanisms, and improved the ability of analyzing and designing the planar multi-linkage mechanisms. At the same time, it also provides a use for reference to the design and simulation for other mechanisms.KEY WORDS: analysis, planar linkage mechanisms, MATLAB, kinematical analysis, kinematical simulation目录1.1 平面连杆机构的研究意义 (1)1.2 平面连杆机构的研究现状 (1)1.3 MATLAB软件介绍 (2)1.3.1 MATLAB简介 (2)1.3.2 MATLAB软件的特点 (4)1.3.3 用MATLAB处理工程问题优缺点 (5)第2章平面机构运动分析的复数矢量解 (6)第3章平面四杆机构运动分析 (8)3.1 铰链四杆机构曲柄存在条件 (8)3.2 平面四杆机构的位移分析 (9)3.3 平面四杆机构的速度分析 (14)3.4 平面四杆机构的加速度分析 (15)第4章基于MATLAB的平面四杆机构运动分析 (17)4.1 基于MATLAB的平面四杆机构运动参数输入界面 (17)4.2 基于MATLAB的平面四杆机构运动参数计算 (21)4.3 基于MATLAB的平面四杆机构运动分析界面 (24)4.4 基于MATLAB的平面四杆机构运动仿真 (26)4.5 基于MATLAB的平面四杆机构运动参数清空及退出 (30)第5章平面六杆机构运动分析 (32)5.1 构建平面六杆机构数学模型 (32)5.2 平面六杆机构的运动分析 (33)5.2.1 曲柄导杆机构的运动分析 (33)5.2.2 摆动滑块机构的运动分析 (36)第6章基于MATLAB的平面六杆机构运动分析 (39)6.1 基于MATLAB的平面六杆机构运动参数输入界面 (39)6.2 基于MATLAB的平面六杆机构运动参数计算 (45)6.3 基于MATLAB的平面六杆机构运动分析界面 (49)6.4 基于MATLAB的平面六杆机构运动仿真 (52)6.5 基于MATLAB的平面六杆机构运动参数清空及退出 (56)结论 (57)参考文献 (59)第1章前言1.1 平面连杆机构的研究意义机构运动分析是不考虑引起机构运动的外力的影响,而仅从几何角度出发,根据已知的原动件的运动规律(通常假设为匀速运动),确定机构其它构件上各点的位移、速度、加速度,或构件的角位移、角速度、角加速度等运动参数。
基于MATLAB的四杆机构运动分析
石河子大学毕业设计(论文)题目:基于MATLAB的四杆机构运动分析与动画模拟系统院(系):机械电气工程学院专业:机械设计制造及其自动化学号: 2002071189姓名: 娄元建指导教师:葛建兵完成日期:二零零六年五月基于MATLAB的四杆机构运动分析与动画模拟系统[摘要] 本文介绍MATLAB开发机构运动分析和动画模拟系统的方法,并且利用MATLAB软件实现平面四杆机构的运动仿真。
以MATLAB程序设计语言为平台,将参数化设计与交互式相结合,设计出四杆机构仿真系统,能够实现四杆机构的参数化设计,并且能够进行机构的速度和加速度分析。
系统具有方便用户的良好界面,并给出界面设计程序,从而使机构分析更加方便、快捷、直观和形象,设计者只需输几参数就可得到仿真结果,为平面四杆机构的设计与分析提供一条便捷的途径。
[关键词] 机构;运动分析;动画模拟;仿真;参数化;MATLABAbstract:The kinematical analysis and animation method of the mechanism using MATLAB was discussed in the paper , and the kinematic simulation of planar four-bar mechanism with software MATLAB . And emulational system was developed , the system adopted Matlab as a design , It combined parametic design with interactive design and had good interface for user , that can realize parametic design of four-bar mechanism , also to make real speed and acceleration of mechanism 。
基于MATLAB的四连杆机构运动分析
Abstract: In or der t o supply SD cards for low end embedded pr oducts, this paper pr esent s a design based on t he A RM 7 pr o cessor S 3C 44B 0X and taking W 86L 388D contr ol chip o f SD card as the co re . In this pa per , the har dw ar e circuit has been designed and the SD car d contr ol agr eement has been analy zed, the cor r esponding soft war e desig n metho d has been g iv en, and the dr iver pr og ra m has been co mpiled . F inally , the v iability of this pr oject has been analy zed thr ough actual testing . Key words: embedded systems; S3C44B0X; SD card; W 86L 388D
Design of SD Card Control System Based on ARM7
ZHANG Yu, ZHANG Yun-sheng, WANG Jian-ping
( Facult y of Inf or mat ion Engin eer ing and A ut omation , Ku nming U niversit y of Science and T echnol og y, K u nming 650051, China)
基于MATLAB的平面四连杆机构运动仿真
12端 点 B运 动分析 .
在 复 数 坐标 系 中 ,端 点 B的位 置 可 表 示 为 B ri,则 =2 ̄ e2
6
』Brn02 I =c2 I 2si O R 2s e o mB=r
速度分别为 :
( 5 ) 一
。
4
2
分 别 对 上 式 求 一 次 、二 次 导 数 ,得 到 B点 的 速 度 、加
[ ] 孙 桓 , 陈作 模 . 械 原 理 [ ] . 京 : 高 等 教 育 出版 社 1 机 M 北
2 0 . 0 6
( 转第 8 下 4页 )
1 00
5 0
>
一
5 0
。
10 0
图 4 交 替 反相 层 叠 下 相 电 压 波形 及 对 应 频谱
1 0. 0 0
lve i v re sa d DTC o rd v p lc t n .I E a so e l n etr n mo r e a p i ai s EE Tr n n i o
[ ] 刘风 君 ,多 电平 逆 变技 术及 其 应 用 [ ] , 京 :机 械 工 业 出 4 M 北
1 00 0 .
8 . 0O
.
5 0 0.
≮ 0
一
S O 0.
一
1 0. 0 0 0
^ 1 j f
1 0 2 0 0. 0. 3 0 400 0. . 500 6 0 . 0。
越
0 20 . 40 . 60 . 80 . 1 0 0.
t / ms
0
~
.
ll1 斟 s2 v t c西 m o2 B j
l 『 Is 一s i I 一 c ].∞ o h1 I l +s c o j
基于MATLAB的四连杆机构运动分析软件设计开题报告
基于MATLAB的四连杆机构运动分析软件设计开题报告云南农业大学本科生毕业设计开题报告工程技术学院车辆工程专业( 工科) 2008级设计题目:基于MATLAB的四连杆机构运动分析软件设计人机交互界面的设计云南农业大学教务处制2011年10月8日云南农业大学毕业设计开题报告1(本课题所涉及的问题在国内(外)的研究现状综述目前,MATLAB软件是功能强大的科学计算软件,被国内外高校和科研单位所使用。
尤其是基于矩阵运算的数据处理,还可用符号运算计算解析解;还可以实现数值分析、图像处理等若干个领域的计算和图形显示功能。
在工程技术界,MATLAB 也被用来解决一些实际课题和数学模型问题。
典型的应用包括数值计算、算法预设计与验证,以及一些特殊的矩阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分拆)等。
平面连杆机构是一种应用十分广泛的机构。
对它的分析及设计一直是机构学研究的一个重要课题。
但传统方法对于常见的连杆机构的运动学、动力学分析仍然是非常繁琐,以至于很难对它进行深入的研究,如果建立一个连杆机构的仿真系统,使设计人员在进行设计时,从复杂的机构分析和烦琐的计算中摆脱出来,集中精力从事于创新工作,那将是很有意义的。
基于这样一种考虑,本课题尝试建立一个平面连杆机构的运动学仿真系统。
应用Matlab/Simulink对机构领域中应用广泛的基本机构——双曲柄机构、曲柄摇杆机构、曲柄滑块机构等的连杆点轨迹作仿真,该方法编程工作量小、轨迹图形显示便捷,所建模型只需作少量更改即可适应四杆机构的不同特征值,并可推广至多杆机构情况。
建立四杆机构的优化设计模型,用 MATLAB 优化工具箱实现四杆机构的优化设计及仿真,得到的优化结果有足够的精度,能满足设计需求,同时表明MATLAB 优化工具箱在四杆机构优化设计及其相关问题中具有较好的应用前景。
2(本人对课题提出的任务要求及实现预期目标的可行性分析由于连杆机构的性能受机构上繁多的几何参数的影响,呈复杂的非线性关系,无论从性能分析上还是性能综合上都是一个比较困难的工作。
基于MATLAB的四杆变幅机构结构参数分析(1)
作者简介:黄鹤辉(1947-),男,广西宜州市人,广西工学院副教授。
收稿日期:2002-12-17基于M A TLAB 的四杆变幅机构结构参数分析黄鹤辉,陈 晨(广西工学院机械工程系,广西柳州 545006)摘要:本文介绍利用M A TLAB [1]数值计算和数据可视化功能对门座式起重机四杆变幅机构结构参数进行分析,各参数变化时对运动规律的影响。
关键词:门座式起重机;四杆变幅机构;结构分析中图分类号:TB 11 文献标识码:A :1004-2148(2003)01-0029-04引言 四杆变幅机构是门座式起重机应用最广泛的一种装置。
它的设计要求是:在变幅过程中由物品引起的臂架力矩要尽量地小,变幅轨迹的最大铅垂落差要尽量地小,速度要均匀,机构重量要轻等。
由于四杆变幅机构结构参数较多,用一般的解析法或图解法很难分析其运动规律。
本文介绍利用M A TLAB 强大的数值计算功能和数据可视化功能,当初步选定某一结构方案后,计算臂架一定转角范围内象鼻梁端点(起吊点)的轨迹坐标和臂架力矩值并绘制曲线,并在其它参数确定的情况下将某一参数在一定范围内取不同值绘制轨迹曲线和力矩曲线,分析各参数对轨迹、力矩曲线的影响规律,为合理确定各参数提供直观、可靠的依据。
在此基础上,也可借助M A TLAB 优化工具箱的函数进行优化计算[2],最后再次将优化结果绘制曲线验证。
由于M A TALB 语言书写简洁,且无须设计者进行复杂的优化计算基础编程工作,易于在实际设计工作中推广应用。
1 四杆变幅机构运动分析[3] 四杆变幅机构结构简图如图1所示。
图中S m ax ,S m in —机构最大、最小的变幅值: h —起升高度;(x ,y )—象鼻梁E 点坐标;(x 0,y 0)—拉杆固定支点B 0的坐标;l 0—A 0B 0间的长度;l 0—臂架A 0D 的长度;l 2—象鼻梁后臂DB 的长度;l 3—拉杆B 0B 的长度;l 4—象鼻梁前臂D E 的长度;图1 四杆变幅机构Η—象鼻梁前后臂之间的夹角;Α—臂架的摆角;Β—拉杆的摆角;Υ—象鼻梁前臂与x 轴的夹角。
基于matlab的平面四连杆机构设计以及该机构的运动分析参考模板
基于matlab的平面四连杆机构设计以及该机构的运动仿真分析摘要四连杆机构因其结构方便灵活,能够传递动力并实现多种运动形式而被广泛应用于各个领域,因此对其进行运动分析具有重要的意义。
传统的分析方法主要应用几何综合法和解析综合法,几何综合法简单直观,但是精确度较低;解析法精确度较高,但是计算工作量大。
随着计算机辅助数值解法的发展,特别是MATLAB软件的引入,解析法已经得到了广泛的应用。
对于四连杆的运动分析,若应用MATLAB 则需要大量的编程,因此我们引入proe软件,我们不仅可以在此软件中建立实物图,而且还可以对其进行运动仿真并对其运动分析。
在设计四连杆时,我们利用解析综合法建立数学模型,再根据数学模型在MATLAB中编程可以求得其他杆件的长度。
针对范例中所求得的各连杆的长度,我们在proe软件中画出其三维图(如图4)并在proe软件中进行仿真分析得出CB,的角加速度的变化,从而得到CB,两接触处所受到的力是成周期性变化的,可以看出CB,两点处的疲劳断裂,我们提B,两点处极易疲劳断裂,针对C出了在设计四连杆中的一些建议。
关键字:解析法 MATLAB 软件 proe 软件 运动仿真建立用解析法设计平面四杆机构模型对于问题中所给出的连架杆AB 的三个位置与连架杆CD 的三个位置相对应,即三组对应位置为:332211,,,,,ψϕψϕψϕ,其中他们对应的值分别为: 52,45,82,90,112,135,为了便于写代数式,可作出AB 与CD 对应的关系,其图如下:图—2 AB 与CD 三个位置对应的关系通过上图我们可以通过建立平面直角坐标系并利用解析法来求解,其直角坐标系图如下:φααi θi φi图—3 平面机构直角坐标系通过建立直角坐标系OXY ,如上图所示,其中0α与0φ为AB 杆与CD 杆的初始角,各杆件的长度分别用矢量d c b a ,,,,表示,将各矢量分别在X 轴与Y 轴上投影的方程为⎩⎨⎧=++=+)sin(*)sin(*)sin(*)cos(*)cos(*)cos(*φθαφθαc b a c d b a在上述的方程中我们可以消除θ,从而可以得到α与φ之间的关系如下:)cos(2)cos(2)cos(2)(2222αφαφab ac cd b d c a +-=+-++ (1) 为便于化简以及matlab 编程我们可以令:⎪⎪⎪⎩⎪⎪⎪⎨⎧==-++=c d H a d H ac b d c a H 32222212 (2) 通过将(2)式代入(1)式中则可以化简得到如下等式: )cos()cos()cos(321αφαφH H H +-=+ (3)我们可以通过(3)式将两连架杆对应的位置带入(3)式中,我们可以得到如下方程:⎪⎩⎪⎨⎧+-=++-=++-=+)cos()cos()cos()cos()cos()cos()cos()cos()cos(333332123222211311121ϕψϕψϕψϕψϕψϕψH H H H H H H H H (4) 联立(4)方程组我们可以求得321,,H H H ,再根据(2)中的条件以及所给定的机架d 的长度,我们可以求出其它杆件的长度为:⎪⎪⎪⎩⎪⎪⎪⎨⎧-++===1222322acH d c a b H d c H d a (5)四连杆设计范例:在日常生活中,我们经常看到消防门总能自动关上,其实它是利用四连杆机构与弹簧组成的。
基于MATLAB软件的铰链四杆机构运动分析仿真软件开发
文章编号: 1009-3818(2002)02-0047-03基于MATLAB 软件的铰链四杆机构运动分析仿真软件开发覃虹桥1 魏承辉2 罗佑新2(1华中科技大学材料学院 湖北武汉430074)(2常德师范学院机械工程系 湖南常德415003)摘 要: 建立了铰链四杆机构运动分析的数学模型,以MATLAB 程序设计语言为平台,将参数化设计与交互式相结合,设计了铰链四杆机构仿真软件,该软件具有方便用户的良好界面,并给出界面设计程序,从而使机构分析更加方便、快捷、直观和形象.设计者只需输入参数就可得到仿真结果,再将运行结果与设计要求相比较,对怎样修改设计做出决策.它为四杆机构设计提供了一种实用的软件与方法.关键词: 铰链四杆机构;按钮;界面;仿真中图分类号: TH 311.52;TH 113.2+2 文献标识码: A铰链四杆机构的运动学分析是机构学中典型的机构运动分析之一,如果设计铰链四杆机构时能及时图示其运动轨迹和速度分析,从而将图示结果与设计要求相比较,可以及时修改设计中的偏差.目前,MALTAB 已经不再是/矩阵实验室0,而成为国际上最流行的科学与工程计算的软件工具,以及一种具有广泛应用前景的全新的计算机高级编程语言,它在国内外高校和科研部门正扮演着越来越重要的角色,功能也越来越大,不断适应新的要求提出新的解决办法.可以预见,在科学运算与科学绘图领域,MATLAB 语言将长期保持其独一无二的地位.然而,国内至今尚未见到采用MATLAB 开发的有关机构学的软件,笔者以MATLAB 的科学运算与绘图的强大功能开发了铰链机构运动仿真软件.1 铰链四杆机构运动轨迹仿真软件1.1 程序功能与数学模型1)程序功能 本程序可以进行铰链四杆机构的运动分析及位置求解.用户在铰链四杆机构运动分收稿日期:2002-12-10基金项目:湖南省教育厅科研资助项目(00C289)第一作者:覃虹桥(1959-)男高级工程师研究方向:机械设计制造析仿真软件里输入各种参数,即可自动演示不同的铰链四杆机构(曲柄摇杆机构、双曲柄机构、双摇杆机构)的运动.2)数学模型 已知AB=a ,BC =b ,C D =c ,AD=d .AB 为主动杆,以匀角速度逆时针旋转,AD 为机架,见图1.图1 铰链四杆机构运动简图Fig.1 plame four-linkage motion diagram分析:求B C 的运动轨迹,可找B 、C 两点坐标与转动角度51的关系,然后求51+d 51及B 、C 两点的坐标,即可求出运动轨迹.由图1有矢量方程:AB +BC =AD +DC ,则其分量方程为:a c os 51+b cos 52=d +c cos 53(1)a sin 51+b sin 52=c sin 53(2)将式(1)、(2)联立消去52并整理得:a 2+c 2+d 2-b 22ac +d c os 53a -d cos 51c -cos (51-53)=0(3)再改写为:sin 51sin 53+(cos 51-da)cos 53+a 2+c 2+d 2-b 22ac -d c os 51c=0(4)令r 1=sin 51,r 2=cos 51-d a ,r 2222第14卷第2期常德师范学院学报(自然科学版)Vol.14No.22002年6月Journal of Changde Teachers University(Natural Science Edition)Jun.2002则(4)化为:r 1sin 53+r 2cos 53=r 3(5)由三角恒等式求得:53=2arctg r 1?r 21+r 22-r 23r 2+r 3(6)式(6)两个解对应于机构的两种不同装配形式./+0对应于图1的实线,而/-0对应于图1的虚线.B 点坐标:B x =A x +a cos 51,B y =A y +a sin 51C 点坐示:C x =D x +c cos 53,C y =D y +a sin 53从运动杆的转角53,对时间求导可得DC 的角速度,由式(1)、(2)解出52按速度合成可求得BC 的转动角速度[2].1.2 程序框图以曲柄摇杆机构的运动仿真程度为例,程序框图如下:图2 程序框图Fig.2 Programming frame diagram1.3 程序代码采用MATLAB 开发图形界面,程序如下:%fourlinkages.mh_main=figure(.Units .,.normalized .,.Position .,[.3,.3,.5,.5],,.MenuBar .,.none .,.Name .,.四杆机构仿真.,.Number Title .,,.off .,.Resize .,.off .);h_axis=axes(.Units .,.normalized .,.Position .,[.12,.15,.6,.6],,.Tag .,.axPlot .,.Visible .,.on .,.XLim .,[-50,80<,.YLim .,-60,80]);h_text1=uicontrol (.Style .,.Text .,.Tag .,.myText1.,.Units .,,.normalized .,.Position .,[0.78,0.55,.05,.38],.String .,,.输入已知参数.,,.HorizontalAlignment .,.right .);h_te xt2=uicontrol(.Style .,.Text .,.Tag .,.myText2.,.Units .,,.nor malized .,.Position .,[0.15,0.90,.35,0.05],.String .,,.正在仿真,,OK !.,,.HorizontalAlignment .,.right .);a =20;b =50;c =40;d =50;fai =60;four_linkages0(a,b ,c,fai );%初始化图形h_edit1=uicontrol(.Style .,.Edit .,.Tag .,.myEdit1.,.Units .,,.normalized .,.Position .,[0.86,.85,.10,.1],.String .,.20.,,.HorizontalAlignment .,.right .);h_edit2=uicontrol(.Style .,.Edit .,.Tag .,.myEdit2.,.Units .,,.normalized .,.Position .,[0.86,.75,.10,.1],.String .,.50.,,.HorizontalAlignment .,.right .);h_edit3=uicontrol(.Style .,.Edit .,.Tag .,.myEdit3.,.Units .,,.normalized .,.Position .,[0.86,.65,.10,.1],.String .,.40.,,.HorizontalAlignment .,.right .);h_edit4=uicontrol(.Style .,.Edit .,.Tag .,.myEdit4.,.Units .,,.normalized .,.Position .,[0.86,.55,.10,.1],.String .,.60.,,.HorizontalAlignment .,.right .);h_list=uic ontrol(.Style .,.ListBox .,.Tag .,.myList .,.Units .,,.normalized .,.Position .,[0.78,.35,.20,.15],.String .,.正置|反置.,,.HorizontalAlignment .,.right .,.Value .,1);k=1;h_button1=uicontrol(.Style .,.PushButton .,.Units .,,.normalized .,.Position .,[0.78,.25,.2,.1],.String .,,.运动轨迹仿真.,.CallBack .,,.hd1=findobj(gcf,..Tag ..,..myEdit1..);.,,.a =eval(get(hd1,..String ..));.,,.hd2=findobj(gcf,..Tag ..,..myEdit2..);.,,.b =eval(get(hd2,..String ..));.,,.hd3=findobj(gcf,..Tag ..,..myEdit3..);.,,.c =eval(get(hd3,..String ..));.,,.hd4=findobj(gcf,..Tag ..,..myEdit4..);.,,.d =eval(get(hd4,..String ..));.,,48常德师范学院学报(自然科学版)2002年.kk =get(findobj(gcf,..Ta g ..,..myList ..),..Value ..);.,,.four_linkages(a,b,c,d,kk ).]);%调用回调函数轨迹仿真.h_button2=uicontrol(.Style .,.PushButton .,.Units .,,.normalized .,.Position .,[0.78,.15,.2,.1],.String .,,.角速度分析.,.CallBack .,.four_linkages1(a,b,c,d ,kk ).);h_button3=uicontrol(.Style .,.PushButton .,.Units .,,.normalized .,.Position .,[0.78,.05,.2,.1],,.String .,.退出.,.CallBack .,.four_linkages2.);%调用回调函数退出系统在主程序中有3个回调函数和一个初始化函数,回调函数分别用轨迹仿真、运动分析和退出系统.回调函数程序按前述数学模型编程(程序略);初始化函数用程序运行时初始化界面的图形.运行程序产生以下界面(图3).图3 程序运行界面Fi g.3 Programming Interface在界面中输入已知参数,则可生成相应的图形.当输入a =20,b =50,c =40,d =60,装配形式选取正置时,如果选运动轨迹仿真,则得仿真轨迹(图4);如果装配形式选反置,进行轨迹仿真(图5).(注:图4 运动轨迹仿真(装配形式正置)Fi g.4 Moti on track simulation(positiveset)图5 运动轨迹仿真(装配形式为反置)Fig.5 Motion track simulation (in reverse positive set)在图4、5中为节省篇幅,这两个图形只选了对应图3的图形部分,界面的其它部分未剪取.).而当选取装配形式进行轨迹仿真后,可再选角速度分析,得到连杆与摇杆的角速度图形(略).2 结论1)自动演示不同的四杆机构的运动,模拟仿真运动轨迹与从动件的速度分析,有助于分析机构的速度、加速程度和机构的工作性能;2)采用MATLAB 语言开发机构仿真运动分析软件,开发界面容易,运行程序时无需编辑、连接,给使用者以极大的方便.只要输入数据,即可得到结果.将运行结果与设计要求相比较,从而引导设计者修改设计.参 考 文 献1 薛定宇.科学运算程序MATLAB5.3程序设计与应用[M ].北京:清华大学出版社,2000.2 孟宪源.现代机构手册(上)[M].北京:机械工业出版社,1994.3 王沫然.Si mulink4建模及动态仿真[M].北京:电子工业出版社,2002.THE DEVELOPMENT OF EMULATIONAL SOFTWARE FOR ANALYSIS OF MOTION IN PLANE GEMEL FOUR -LINKAGEBASED ON MATLAB SOFTWAREQING Hong -qiao 1 WEI CH eng -hui 2LU O You -xin 2(1T he material institute,Cen tral China University of Science and T echnology,Wuhan Hubei,430074)(2Department of Mechanical Engineering,Changde Teachers University,Changde Hunan 415003)Abstract A mathematical model of motion analysis was estab -lished in plane four-linkage,and emulational software was deve-loped .The software adop ted Matlab5.3.1as a desi gn language.It combined parametric design with interactive design and had good in -terface for user.Thus,i t was fas ter and more convenient to analyse linkage.The emulational result was obtained as soon as input param -eters was imported and the devisers can make decision-making of modification by the comparing emulational result with design de -mand.It provides an applied software and method for linkage.Key words Gemel Four -Linkage;button;interface;emula -tion(责任编校:谭长贵)49第2期覃虹桥 魏承辉 罗佑新 基于MATLAB 软件的铰链四杆机构运动分析仿真软件开发。
基于matlab的平面四杆机构运动分析_毕业论文
……………………. ………………. …………………毕业论文基于MATLAB的平面四杆机构运动分析院部机械与电子工程学院装订线……………….……. …………. …………. ………摘要 (I)Abstract (II)1 绪论 (1)2 平面四杆机构运动分析 (2)2.1 平面四杆机构简介 (2)2.2 平面四杆机构类型分析 (3)2.3 建立平面四杆机构的数学模型 (4)2.3.1 建立平面四杆机构的封闭矢量位置方程式 (4)2.3.2 运用矢量法和矩阵法求解封闭矢量方程式 (5)2.3.3 求解过程涉及的数学、物理计算方法 (6)3 基于MATLAB 的运动分析程序设计 (7)3.1 MATLAB简介 (7)3.2 程序设计流程 (8)3.3 编写程序的M文件 (10)3.3.1编写fun函数 (10)3.3.2编写主程序 (10)3.4 程序运行输出结果 (12)4 基于MATLAB的GUI分析系统设计 (15)4.1 GUI简介 (15)4.2 GUI界面设计 (15)4.3 GUI代码编写 (16)4.3.1 Edit Text代码编写 (16)4.3.2 Pop-up Menu代码编写 (16)4.4 GUI分析系统运行效果 (17)5 结论 (18)参考文献 (20)致谢 (20)附录 (20)附录一主函数程序代码 (20)附录二popupmenu4_Callback函数下程序代码 (23)Abstract (II)1 Introduction (1)2 The analysis of motion for planar four-bar mechanism (2)2.1 Intoduction to the planar four-bar mechanism (2)2.2 Analysis for the types of planar four-bar mechanism (3)2.3 Build the mathematical model of planar four-bar mechanism (4)2.3.1 Build the closed position vector equation for planar four-bar mechanism (4)2.3.2 Apply the vector & matrix method to solve the closed vector equation (4)2.3.3 Mathematical & physical calculation method involved in the solving process (5)3 The program design for the motion analysis based on MATLAB (7)3.1 Introduction to MATLAB (7)3.2 The program design process (7)3.3 Write the M-file for program (9)3.3.1 Write the fun function (9)3.3.2 Write the main function (9)3.4 The output of running the program (11)4 The design of GUI analysis system based on MATLAB (14)4.1 Introducton to GUI (14)4.2 The interface design of GUI (14)4.3 Write the GUI code (15)4.3.1 Write the Edit Text code (15)4.3.2 Write the Pop-up Menu code (15)4.4 The running effect of the GUI analysis system (16)5 Conclusion (19)References (20)Acknowledgement (21)Appendix (22)Appendix I The main function code (22)Appendix II The popupmenu4_Callback function code (25)基于MATLAB的平面四杆机构运动分析摘要:建立以平面四杆机构为研究对象的数学模型,以MATLAB软件为载体,利用MATLAB矩阵数据分析处理功能,设计了平面四杆机构运动分析程序。
(完整版)在MATLAB环境下开发平面连杆机构运动分析系统毕业设计
在MATLAB环境下开发平面连杆机构运动分析系统摘要建立了铰链四杆机构运动分析的数学模型 ,以MATLAB程序设计语言为平台 ,将参数化设计与交互式相结合 ,设计了铰链四杆机构分析软件 ,该软件具有方便用户的良好界面 ,并给出界面设计程序 ,从而使机构分析更加方便、快捷、直观和形象.设计者只需输入参数就可得到分析结果 ,再将运行结果与设计要求相比较 ,对怎样修改设计做出决策.它为四杆机构设计提供了一种实用的软件与方法.关键词:平面四杆机构,MATLAB软件,运动分析,分析THE DEVELOPMENT OF SYSTEM FOR ANALYSIS OF MOTION IN PLANE FOUR BAR MECHANISM BASED ONMATLAB SOFTWAREAbstractA mathematical model of motion analysis was established in planefour - linkage , and analytical software was developed. The software adopted Matlab as a design language. It combined parametric design with interactive design and as input parameters was imported and the devisers can make decision - making of modification by the comparing analytical result with design demand. It provides an applied software and method for linkage.Key words:Plane Four Bar Mechanism, MATLAB, Analysis of Motion, Analyze目录1 绪论 (1)2 平面连杆机构的设计分析 (4)2.1平面四连杆机构的运动分析 (4)2.2 机构的数学模型的建立 (4)2.2.1 建立机构的闭环矢量位臵方程 (5)2.2.2 求解方法 (7)3 基于MATLAB程序设计 (8)3.1 程序流程 (8)3.2M文件编写 (8)3.3程序运行结果输出 (12)4 基于MATLAB图形界面设计 (23)4.1界面设计 (23)4.2代码设计 (24)5 结论.......................................................................................... 错误!未定义书签。
基于MATLAB Simulink的平面四连杆机构仿真(优选.)
基于MATLAB/Simulink的平面四连杆机构仿真一、题目及自由度分析如图1所示,该平面四杆机构中有三根运动的均质钢杆,其中有两根钢杆的一端与接地点连接,第三根杆就与这两根杆剩下的端点连接起来,两个接地点就可认为是第四杆,机构中相关尺寸如图2所示。
计算结构自由度,三个运动杆被限制到平面内运动,因此每个杆都有两个移动和一个转动,即在考虑约束之前,自由度为:3×(2+1)=9但是由于每个杆都受到约束,所以并不是每个自由度都是独立的。
在二维状态下,刚体间的连接或者刚体与接地点的连接就会增加两个约束。
这样就会使得刚体其中一端不能够作为独立的自由运动点,而是要受到邻近刚体的约束。
该题中有四个刚体--刚体或刚体—接地点的连接,这就隐含8个约束。
那么最后的自由度为9-8=1.虽然有四个转动自由度,但是,其中三个都是非独立的,只要确定其中一个,就可确定其余三个。
二、模型建立及参数设置1应用MATLAB/Simulink建立初始模型2在初始模型的基础上添加Joint Sensor模块3依题意设置相关参数⑴配置Ground模块由图2可得系统的基本尺寸为:①固定构件长86.7厘米②Ground_1表示接地点,在World CS坐标轴原点右边43.3cm处③Ground_2表示接地点,在World CS坐标轴原点左边43.4cm处④最下端的铰处于X-Z平面内原点以上4cm图5Ground_1模块参数设置图6Ground_2模块参数设置4配置Joint模块三个没有接地的联杆都是在X-Y平面内的,所以Revolute轴必须是Z轴。
⑴依次打开Revolute参数对话框,保持默认值,即Axis of rotation[x y z]默认设置为[001],Reference csys都是WORLD。
图7Revolute坐标设置⑵根据连接情况依次设置Revolute参数对话框中的Connection parameters参数图8Revolute模块参数对话框Connection parameters参数图9Revolute模块参数对话框Connection parameters参数图10Revolute模块参数对话框Connection parameters参数图11Revolute模块参数对话框Connection parameters参数5配置Body模块本题中Body模块(即Bar)定位方式不是直接相对于WORLD坐标系统,而是采用相对坐标形式,Bar1的CS1相对于Ground_1,Bar2的CS1相对于Bar1,以此类推。
基于MATLAB的平面四连杆机构运动学分析
一、课程设计容及要求:1.对连杆机构运动工作原理及运动参数有一定理解2.掌握MATLAB基本命令3.了解MATLAB编程的基本知识,并能编写简单M文件4.了解MATLAB图形界面设计的基本知识5.课程设计说明书:应阐述整个课程设计容,要突出重点和特色,图文并茂,文字通畅。
应有目录、摘要及关键词、正文、参考文献等容,字数一般不少于6000字。
二、主要参考资料有关复杂刀具参数计算及结构设计、机械制造工艺与设备的手册与图册。
三、课程设计进度安排指导教师(签名):时间:教研室主任(签名):时间:院长(签名):时间:目录1平面连杆机构的运动分析 (1)1.1 机构运动分析的任务、目的和方法 (1)1.2 机构的工作原理 (1)1.3 机构的数学模型的建立 (1)1.3.1建立机构的闭环矢量位置方程 (1)1.3.2求解方法 (2)2 基于MATLAB程序设计 (4)2.1 程序流程图 (4)2.2 M文件编写 (6)2.3 程序运行结果输出 (7)3 基于MATLAB图形界面设计 (11)3.1界面设计 (11)3.2代码设计 (12)4 小结 (17)参考文献 (18)1平面连杆机构的运动分析1.1 机构运动分析的任务、目的和方法曲柄摇杆机构是平面连杆机构中最基本的由转动副组成的四杆机构,它可以用来实现转动和摆动之间运动形式的转换或传递动力。
对四杆机构进行运动分析的意义是:在机构尺寸参数已知的情况下,假定主动件(曲柄)做匀速转动,撇开力的作用,仅从运动几何关系上分析从动件(连杆、摇杆)的角位移、角速度、角加速度等运动参数的变化情况。
还可以根据机构闭环矢量方程计算从动件的位移偏差。
上述这些容,无论是设计新的机械,还是为了了解现有机械的运动性能,都是十分必要的,而且它还是研究机械运动性能和动力性能提供必要的依据。
机构运动分析的方法很多,主要有图解法和解析法。
当需要简捷直观地了解机构的某个或某几个位置的运动特性时,采用图解法比较方便,而且精度也能满足实际问题的要求。
基于matlab GUI的平面四杆机构的运动分析
基于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的主窗口中,选择File>New>GUI命令,就会显示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的距离)做分析,正确表达出角速度系数和速度系数,便可以求出质点的速度。
机械原理-MATLAB基于四杆机构运动分析的运用
MATLAB软件由美国MathWorks公司于1982年推出,经过十几年的发展和竞争,现已成为国际公认的最优秀的科技应用软件之一。
MATLAB提供了强大的矩阵处理和绘图功能。
它主要包括两部分内容:核心函数和工具箱。
Matlab编程代码接近数学推导公式,简洁直观,与科技人员的思维方式和书写习惯相适应,操作简易,人机交互性能好,且可以方便迅速地用三维图形、图像、声音、动画等表达计算结果,拓展思路。
编制相应的M函数文件。
Pos.m用于求解位置、角度和角加速度。
th1为初始角度,w1为杆1角速度,其余为杆长。
将课本P35(i)、(ii)、(iii)式用MATLAB语言表述,即可编制为四杆机构求解函数文件pos.m。
function f=pos(th1,w1,l1,l2,l3,l4)syms x21 x31 x22 x32x1=th1*pi/180;x11=cos(x1);x12=sin(x1);eq1=l1*x11+l2*x21-l3*x31-l4;eq2=l1*x12+l2*x22-l3*x32;eq3=x21^2+x22^2-1;eq4=x31^2+x32^2-1;s=solve(eq1,eq2,eq3,eq4,x21,x22,x31,x32);s1=double(s.x21); s2=double(s.x22);s3=double(s.x31); s4=double(s.x32);x2=(acos(s1(1,1)))/pi*180;x3=(acos(s3(1,1)))/pi*180;A=[l2*s2(1,1),-l3*s4(1,1);l2*s1(1,1),-l3*s3(1,1)];B=[-l1*x12;-l1*x11];w=A\(w1*B);w2=w(1,1);w3=w(2,1);C=[-l2*w(1,1)*s1(1,1),l3*w(2,1)*s3(1,1);l2*w(1,1)*s2(1,1),-l3*w(2,1)*s4(1,1)];D=[w(1,1);w(2,1)];E=[-l1*w1*x11;l1*w1*x12];F=[l2*s2(1,1),-l3*s4(1,1);l2*s1(1,1),-l3*s3(1,1)];t=F\(C*D+w1*E);a2=t(1,1);a3=t(2,1);l1=cat(1,th1,w1,0);l2=cat(1,x2,w2,a2);l3=cat(1,x3,w3,a3);f=(cat(2,l1,l2,l3))';subplot(2,2,1);plot(th1,w2,'r-');hold on;title('连杆2角速度分析');subplot(2,2,2);plot(th1,a2,'b-');hold on;title('连杆2角加速度分析');subplot(2,2,3);plot(th1,w3,'r-');hold on;title('连杆3角速度分析');subplot(2,2,4);plot(th1,a3,'b-');hold on;title('连杆3角加速度分析');return在MA TLAB命令窗口输入命令:>> th1=60;w1=pi/3;l1=20;l2=30;l3=40;l4=45;>> function f=pos(th1,w1,l1,l2,l3,l4)60°,ω=pi/3时的值即可得到theta=采用实时动画的方法编写draw.m文件:function dw = draw(l1,l2,l3,l4,x1,x2,x3)figure(2);th1=x1*pi/180;th2=x2*pi/180;th3=x3*pi/180;x=0:0.001:l4;plot(x,0,'r-');axis([-25,70,-25,60]);hold onfor i=0:0.1:l1;s=i*cos(th1); c=i*sin(th1);plot(s,c,'b-');hold on;end;for x=0:0.1:l3;s2=x*cos(th3)+l4;c2=x*sin(th3);plot(s2,c2);hold on;endfor x=0:0.1:l2;s3=l1*cos(th1)+x*cos(th2); c3=l1*sin(th1)+x*sin(th2);plot(s3,c3);hold on;endreturn代入pos.m中所得的结果,输入命令:>>draw(l1,l2,l3,l4,y(1,1),y(2,1),y(3,1))即可得到当前位置下的四杆图形。
基于MATLAB实现平面四杆机构运动仿真
文章编号:1002-6886(2005)04-0050-03基于M AT LAB 实现平面四杆机构运动仿真王静文,刘舜尧,莫江涛(中南大学机电工程学院,湖南 长沙 410083) 作者简介:王静文(1977—),女,中南大学机电工程学院硕士研究生。
收稿日期:2005-3-18摘要:本文利用MAT LAB 软件实现平面四杆机构及其演化形式的运动仿真,为平面四杆机构的设计与分析提供一条便捷的途径。
关键词:平面四杆机构 运动仿真 MAT LABK i n e ma ti c S i m ul a ti on of Pl anar Four 2bar M echan is m Ba sed on M AT LABW ANG J i n g 2wen,L I U Shun 2rao,MO J i a ng 2t aoAbstract:This paper focus on the kine matic si m ulati on of p lanar four 2bar mechanis m and its evoluti ons with s oft w are MAT LAB ,which give another efficaci ous way f or the design and analysis of p lanar f our 2bar mechanis m.Key words:p lanar four 2bar mechanis m;kine matic si m ulati on;MAT LAB1 前言平面四杆机构是一类工程中广泛使用的典型运动机构,它的运动分析是机构学中典型的机构运动分析之一。
如果设计平面四杆机构时能及时图示其运动轨迹,从而将图示结果与设计要求相比较,可以使设计者及时修改设计中的偏差,提高设计效率。
目前,MAT LAB 已成为国际上最流行的科学与工程计算软件,它在国内外高校和科研部门正扮演着越来越重要的角色,功能也越来越强大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间: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的主窗口中,选择File>New>GUI命令,就会显示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 EDITgui_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});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before sgjg is made visible.function sgjg_OpeningFcn(hObject, eventdata, handles, varargin)% Choose default command line output for sgjghandles.output = hObject;handles.gx=[];handles.gy=[];axis(handles.motion);imshow('tt.bmp'); % 机构示意图% Update handles structureguidata(hObject, handles);% --- Outputs from this function are returned to the command line. function varargout = sgjg_OutputFcn(hObject, eventdata, handles) % Get default command line output from handles structurevarargout{1} = handles.output;function a1_Callback(hObject, eventdata, handles)function a1_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction a2_Callback(hObject, eventdata, handles)function a2_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction a3_Callback(hObject, eventdata, handles)function a3_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction a4_Callback(hObject, eventdata, handles)function a4_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction q0_Callback(hObject, eventdata, handles)function q0_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction ftol_Callback(hObject, eventdata, handles)function ftol_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction r1_Callback(hObject, eventdata, handles)function r1_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction r2_Callback(hObject, eventdata, handles)function r2_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction t_Callback(hObject, eventdata, handles)function t_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction lx_Callback(hObject, eventdata, handles)function lx_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction lx2_Callback(hObject, eventdata, handles)function lx2_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction lx3_Callback(hObject, eventdata, handles)function lx3_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction H_Callback(hObject, eventdata, handles)function H_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction V_Callback(hObject, eventdata, handles)function V_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction Calculation_Callback(hObject, eventdata, handles)% hObject handle to Calculation (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)a1=str2num(get(handles.a1,'String'));a2=str2num(get(handles.a2,'String'));a3=str2num(get(handles.a3,'String'));a4=str2num(get(handles.a4,'String'));q0=str2num(get(handles.q0,'String'));ftol=str2num(get(handles.ftol,'String'));r1=str2num(get(handles.r1,'String'));r2=str2num(get(handles.r2,'String'));V=str2num(get(handles.V,'String'));H=str2num(get(handles.H,'String'));q0=q0*pi/180;r1=r1*pi/180;r2=r2*pi/180;ly1=0;ly2=0;ly3=0;%局部坐标系的第二坐标为0lx1=a1;lx2=a2;lx3=a3;%局部坐标系的第一坐标设一初始值lx=str2num(get(handles.lx,'String'));%杆上选择一个数据分析的质点if (lx<=a1)lx1=lx;elseif (lx>=a1+a2)lx3=lx;elselx2=lx;endgr1=[];gr2=[];gdx1=[];gdx2=[];gdx3=[];gdy1=[];gdy2=[];gdy3=[];gddx1=[];gddx2=[];gddx3=[];gddy1=[];gddy2=[];gddy3=[];k=[a1 a2 a3 a4];lmin=min(k);lmax=max(k);if((lmin+lmax)>(a1+a2+a3+a4)-lmin-lmax)errordlg('不符合杆长条件!','Tip')elsefor t=0:0.05:10k=0;q=pi/50*t^2+q0;f=[a1*cos(q)+a2*cos(r1)+a3*cos(r2)-a4a1*sin(q)+a2*sin(r1)+a3*sin(r2)]';while(norm(f)>ftol)A=[-a2*sin(r1) -a3*sin(r2);a2*cos(r1) a3*cos(r2)]; dr=-A\f;r1=r1+dr(1);r2=r2+dr(2);f=[a1*cos(q)+a2*cos(r1)+a3*cos(r2)-a4a1*sin(q)+a2*sin(r1)+a3*sin(r2)]';k=k+1;%记录迭代次数endxa=0;ya=0;xb=a1*cos(q);yb=a1*sin(q);xc=a1*cos(q)+a2*cos(r1);yc=a1*sin(q)+a2*sin(r1);xd=a1*cos(q)+a2*cos(r1)+a3*cos(r2);yd=a1*sin(q)+a2*sin(r1)+a3*sin(r2);x=[xa xb xc xd]';y=[ya yb yc yd]';handles.gx=[handles.gx x];%记录机构每一时刻的位置,用于动画演示handles.gy=[handles.gy y];%------------------速度分析----------------dq=pi/25*t;w1=1;w2=a1*sin(r2-q)/(a2*sin(r1-r2));w3=a1*sin(r1-q)/(a3*sin(r2-r1));u1=(-lx1*sin(q)-ly1*cos(q))*w1;v1=(lx1*cos(q)-ly1*sin(q))*w1;u2=-a1*sin(q)-(lx2*sin(r1)+ly2*cos(r1))*w2;v2=a1*cos(q)+(lx2*cos(r1)-ly2*sin(r1))*w2;u3=(-lx3*sin(r2)-ly3*cos(r2)+a3*sin(r2))*w3;v3=(lx3*cos(r2)-ly3*sin(r2)-a3*cos(r2))*w3;dx1=u1*dq;dy1=v1*dq; %¹¹¼þ1ÉÏÖʵãµÄËÙ¶Èdx2=u2*dq;dy2=v2*dq;dx3=u3*dq;dy3=v3*dq;%-------------------加速度分析-----------------------ddq=pi/25;dw1=0;dw2=w2*((w3-1)*atan(r2-q)-(w2-w3)*atan(r1-r2));dw3=w3*((w2-1)*atan(r1-q)-(w3-w2)*atan(r2-r1));du1=(-lx1*sin(q)-ly1*cos(q))*dw1+(-lx1*cos(q)+ly1*sin(q))*w1^2;dv1=(lx1*cos(q)-ly1*sin(q))*dw1+(-lx1*sin(q)-ly1*cos(q))*w1^2;du2=-a1*sin(q)*dw1-a1*cos(q)*w1^2-(lx2*sin(r1)+ly2*cos(r1))*dw2-(lx2*cos(r1)-ly2*sin(r1))*w2^2;dv2=a1*cos(q)*dw1-a1*sin(q)*w1^2+(lx2*cos(r1)-ly2*sin(r1))*dw2-(lx2*sin(r1)+ly2*cos(r1))*w2^2;du3=-(lx3*sin(r2)+ly3*cos(r2)-a3*sin(r2))*dw3-(lx3*cos(r2)-ly3*sin(r2)-a3*cos(r2))*w3^2;dv3=(lx3*cos(r2)-ly3*sin(r2)-a3*cos(r2))*dw3-(lx3*sin(r2)+ly3*cos(r2)-a3*sin(r2))*w3^2;ddx1=u1*ddq+du1*dq^2;ddy1=v1*ddq+dv1*dq^2; %杆1上质点的加速度ddx2=u2*ddq+du2*dq^2;ddy2=v2*ddq+dv2*dq^2;ddx3=u3*ddq+du3*dq^2;ddy3=v3*ddq+dv3*dq^2;%--------------------静力学分析----------------------------- Q=a1*(V*cos(q)+H*sin(r2)*sin(q-r1)/sin(r1-r2));if Q<ftolqe=q;re1=r1;re2=r2;endgr1=[gr1 r1];gr2=[gr2 r2];%记录机构每一时刻的位置、速度、加速度 gdx1=[gdx1 dx1];gdx2=[gdx2 dx2];gdx3=[gdx3 dx3];gdy1=[gdy1 dy1];gdy2=[gdy2 dy2];gdy3=[gdy3 dy3];gddx1=[gddx1 ddx1];gddx2=[gddx2 ddx2];gddx3=[gddx3 ddx3]; gddy1=[gddy1 ddy1];gddy2=[gddy2 ddy2];gddy3=[gddy3 ddy3];endt=str2num(get(handles.t,'String'));n=20*t+1;r1=gr1(n);r2=gr2(n);r1=r1*180/pi;r2=r2*180/pi;qe=qe*180/pi;re1=re1*180/pi;re2=re2*180/pi;dx1=gdx1(n);dx2=gdx2(n);dx3=gdx3(n);dy1=gdy1(n);dy2=gdy2(n);dy3=gdy3(n);ddx1=gddx1(n);ddx2=gddx2(n);ddx3=gddx3(n);ddy1=gddy1(n);ddy2=gddy2(n);ddy3=gddy3(n);set(handles.dispr1,'String',num2str(r1));set(handles.dispr2,'String',num2str(r2));if (lx<=a1)set(handles.dispdx,'String',num2str(dx1));set(handles.dispdy,'String',num2str(dy1));set(handles.dispddx,'String',num2str(ddx1));set(handles.dispddy,'String',num2str(ddy1));elseif (lx>=a1+a2)set(handles.dispdx,'String',num2str(dx3));set(handles.dispdy,'String',num2str(dy3));set(handles.dispddx,'String',num2str(ddx3));set(handles.dispddy,'String',num2str(ddy3));elseset(handles.dispdx,'String',num2str(dx2));set(handles.dispdy,'String',num2str(dy2));set(handles.dispddx,'String',num2str(ddx2));set(handles.dispddy,'String',num2str(ddy2));endset(handles.dispre1,'String',num2str(qe));set(handles.dispqe,'String',num2str(re1));set(handles.dispre2,'String',num2str(re2));endguidata(hObject, handles);% --- Executes on button press in Show.function Show_Callback(hObject, eventdata, handles)i=1;n=length(handles.gx);while 1h=plot(handles.motion,handles.gx(:,i),handles.gy(:,i)); a1=str2num(get(handles.a1,'String'));a2=str2num(get(handles.a2,'String'));a3=str2num(get(handles.a3,'String'));a4=str2num(get(handles.a4,'String'));axis([-a1-2 a1+a4 -a1-2 a3+2]);set(h,'EraseMode','normal','LineWidth',5)set(gcf,'DoubleBuffer','on')drawnow;i=i+1;if i>ni=1;endend% --- Executes on button press in close.function close_Callback(hObject, eventdata, handles)close。