当前位置:首页 >> 机械/仪表 >>

基于Matlab的机构运动仿真方法及其比较


   21 卷   8 期 第 第
文章编号 :1006 - 9348 (2004) 08 - 0081 - 04

计        算 机 仿 真

2004 年 8 月   

基于 Matlab 的机构运动仿真方法及其比较
王永超
( 广东技术师范学院 ,广东 广州 510665)<

br />
摘要 : 在机构学研究中机构运动仿真非常重要 。该文根据仿真活动生命周期 ,研究总结出三类机构运动仿真方法 , 深入分析 了各类方法的特点 。第一类方法基于模型解算 ,以提高模型求解效率为核心 ; 第二类方法基于辅助建模 , 以提高建模效率为 核心 ; 第三类方法基于虚拟现实技术 ,属于虚拟仿真范畴 ,它以提高仿真结果理解效率 ( 以可视化与交互性) 为核心 。三类方 法的发展变化体现了仿真活动 “以人为本” 的指导思想 ,指出虚拟仿真是机构运动仿真的主要趋势 。在 MatLab 平台上以曲柄 摆杆机构为例详细探讨了三类方法的实现过程 。该文对于如何有效利用仿真方法和选择仿真工具 ,从而提高机构设计效率 与质量有积极促进作用 。 关键词 : 机构运动仿真 ; 仿真方法 ; 仿真效率 ; 模型解算 ; 辅助建模 ; 虚拟仿真 中图分类号 :TP391. 9    文献标识码 :A

MatLab - based Simulation Solutions and Their Comparison for Machinery Kinematics
WANG Y - chao ong
( Guangdong Polytechnic Normal University , Guangzhou Guangdong 10665 China) ABSTRACT :K inematical simulation is important in the field of machinery research. According to the life cycle of simula2 KEYWORDS :K inematical simulation ;Simulation solution ; Simulation efficiency ;Model evaluation ;Assistant modeling ;Vir2

tion activities , three MatLab - based methods of kinematical simulation for machinery are addressed in this paper. The first shortening time for model building , so as to improve simulation efficiency. The third one , based on the technology of virtual

one is based on numeric evaluation that is focused on improving the efficiency of model evaluation. The second is based on reality , belongs to virtual simulation. It is aiming to improve the efficiency of understanding simulation results by visualiza2 simulation methods and select software packages.

tion and interaction. The characteristics of the three methods are studied. It is put forward that the evolution of the methods embodies the philosophy of ” man and Not for Machine” that virtual simulation will play more important role in future. For , As an example , a crank - swing bar machinery is studied using three methods above. This paper will help to make use of

tual simulation

1  引言

上的实现过程 。与此同时 , 详细分析三类方法的核心问题 , 深入探讨各类方法的特点 。指出运动仿真越来越以人为中 心 ,指出虚拟仿真是主要发展趋势 。这对于机构运动仿真无 疑具有重要意义 。

运动学仿真对于机构设计 、 分析 、 优化以及综合诸问题 的研究起着重要的作用 ,它可以把人们从大量复杂繁琐和重 复的计算工作中解脱出来 ,并且用一种直观的方式表达运动 握仿真方法的发展趋势 ,从而充分选择和利用不同仿真平台 作用 。  

过程 。在机构运动仿真中 , 明确不同仿真方法及其特点 , 把

2  机构运动仿真

的功能 , 对于节约仿真费用 , 提高研究效率 等 方 面 有 积极 本文根据仿真活动生命周期 ,研究总结出运动学仿真的 三类方法 。以曲柄摆杆机构为例 ,介绍它们在 MatLab
[1 ]

机构仿真周期主要由建立模型 ,求解模型 ,展现结果 ,观

察结果和调整模型等五部分构成 ,如图 1 所示 。建立模型即 列出相关构件或关键点 模型解算出相关点的位 的运动方程 , 通过求解 姿数据 , 基于这些数据

平台

收稿日期 :2004 - 01 - 07

图1  机构仿真活动周期

— 81



建立直观的人机界面 ,将运动过程动态展现给用户 。通常仿 真与优化配合使用 , 由于人机界面的直观性 , 通过观察常常 可以获得优化方面的新信息 ,利用优化后的新参数调整仿真 模型 ,开始一个新的仿真活动周期 ,直到获得满意结果为止 。 根据对机构仿真中各 阶段的侧重不同 ,可以将机 构运动仿真方法基本归为 三个大的类别 。第一类的 核心是 ,对仿真模型进行数 值求解 ,称之为基于模型解 算的仿真方法 。第二类以 提供建模支持手段为核心 ,利用一些辅助工具来提高建模效 率 ,称之为基于辅助建模的仿真方法 。第三类方法中引进了 虚拟现实技术 ,称之为基于虚拟现实的仿真方法 。以下以图
2 所示的曲柄摆杆机构为例 ,说明三种仿真方法的实现过程 。
图2  一个曲柄摆杆机构

解 ,S 返回的是求解过程中的一些信息 。等式右边为输入参 数 ,func- c 为运动方程 , 此处是一个 MatLab 函数 , [ 1000 ,200 ] 为自变量的起始搜索点 ,OPT 是优化工具箱的选项设定 。这 样可解得 C 点坐标为 X = (1309. 5 ,202. 0) ,函数值即误差为 Y
= ( - 0. 2328 , - 0. 0582) × - 9 。 10

于是 ,通过赋予α不同的值 ,不断调用 fsolve () 函数 ,就可 以求得所有 C 点的坐标 ,从而得到 C 点运动轨迹 。 这种传统的机构仿真方法的另一个特点是 ,对仿真结果 即运动轨迹的展现 , 除非用户满意字符界面 , 一般要用户本 人利用图形函数绘制相关构件或关键点的轨迹 。对于图 2 所示机构 ,如果要在基于 OpenG 的环境下 ,以图形方式展现 L 运动轨迹 , 开发人员必须调用多个 G 函数 。但在 MatLab DI 下 ,对于 C 点的位姿数据 , 只要调用 plot 函数即可获得运动 图线 。
3. 2   基于辅助建模的运动仿真

该机构的相关参数分别为 l1 = 370 , l2 = 1049 . 6 , l3 = 524 . 7 ,
( x d , y d ) = ( 1080 . 3 , - 270) 。其中 AB 为曲柄 , 是原动件 , 以 ω

这种方法是以提高建模效率来提高仿真效率的 ,MatLab/
Simulink 就是以框图作为建立仿真模型的主要支持手段 ,框图

作匀速圆周运动 , DC 为摆杆 。

成为描述模型的基本元素 。而且 ,MatLab 还提供了一个机构 系统仿真工具 SimMechanics ,它可以在 Simulink 环境下直接使 用 ,使得仿真建模更为便捷 。对于图 2 的机构 , 利用 SimMe2 图 3 为绘制的仿真模型 , 包含的模块有 : ① 刚体模块组 组 Joints 中的转动副 Revolute 模块 。 ③检测与驱动模块组
( Sensors & Actuators) 中的运动副驱动模块 Joint Actuator 和检

3  运动仿真方法
3. 1   基于模型解算的运动仿真

chanics 可以建立仿真模型主要包括以下三个步骤 [2 ] 。 3. 2. 1   绘制仿真框图 。

基于模型解算的运动仿真方法属于传统的仿真方法 ,它 以求解模型为核心 , 重点研究模型的求解方法 , 以及如何提 高求解的效率 。也就是说 ,仿真效率的提高主要体现为模型 求解效率的提高 。在 MatLab 中 ,具体表现为提供了大量的功 能强大的函数 ,供求解模型时调用 。 图 2 中 , C 点运动方程由 B 点和 D 点确定 :
( xc - l1 cos ) 2 + ( yc - l1 sinα 2 = l2 α ) 2 ( xc - x d ) 2 + ( yc - y d ) 2 = l 2 3 ( 1)

Bodies 中的机架 Ground 模块和刚体 Body 模块 , ② 运动副模块

测模块 Joint Sensor 。 ④Simulink 中信号源模块组 Source 中的 阶跃信号发生模块 step 和信号宿模块组 sink 中的示波器模 块 scope 。

以上方程组通过消元法求解并不困难 , 但是比较繁杂 。 如果在更为底层的开发环境 ( 如 SDK) 下对算法进行编程实 现 ,并且还要求出杆 BC 上除两端点以外的其它点的运动轨 迹 ,那么工作量还是不小的 。如果不同性质的机构 ( 如四杆 机构和凸轮机构) 进行综合 , 那么工作量就比较大了 。此时 可以调用 MatLab 优化工具箱中的多元方程求解函数 fsolve
() 。例如 , 当α = 45° , 首先将 C 点运动方程写为如下的 M 时

函数 :
function c = func- c (p ) c = zeros (2 ,1) ; xb = 370 3 cos (pi/ 4) ; yb = 370 3 sin (pi/ 4) ;

图3  基于框图的仿真模型

c (1) = (p (1) - xb) ^2 + (p (2) - yb) ^2 - 1049. 6^2 ; c (2) = (p (1) - 1080. 3) ^2 + (p (2) + 270) ^2 - 524. 7^2 ;

3. 2. 2   设置模块参数

然后调用 fsolve () 函数 :
[ X , Y, key , S] = fsolve ( @ func- c ,[100 ;200 ] ,OPT)

模块分为三类 : ① 对转动副模块 , 参数包括坐标系及其

转动向量 ,四个坐标系均取为世界坐标系 ,转动向量均为绕 z 轴正向旋转 ,其方向向量取为 [ 0 ,0 ,1 ] 。 ② 对机架模块 ,参数 仅为坐标 ,取图 2 所示坐标系 ,则 A 点参数为 (0 ,0 ,0) ,D 点参

等式左边中括号内为函数返回值 ,其中 X 为返回的解 , Y 为运动方程在 X 处的值 ,key 表示是否成功求得运动方程的

— 82



数为 (1080. 3 , - 270) 。 ③ 连杆构件模块必须设置的参数包括 连杆长度 ,质量 ,坐标系和质心位置 。必须注意的是 ,刚体参 数中并不显含长度 , 而是包含在惯量矩阵 ( inertia tensor ) 中 , 假设各杆均为密度均匀的圆柱体 ,且单位长度上的质量和圆 柱半径均取为单位值 。这样 ,三个连杆构件惯量矩阵分别为 对角阵 T1 = [0 ,2. 5326 ,0. 4221 ] × ,T2 = [ 0 ,5. 7815 ,0. 9636 ] 10 × ,T3 = [0 ,7. 2228 ,1. 2038 ] × ,这样 ,三个杆件的坐标系 10 10 参数通常采用相对坐标系 ( 如以 AB 的从动端 CS2 为原点 ) , 而连杆质心位置也可以在相对坐标系下方便地设置 。以上 参数取值如表 1 所示 。
表1  构件初始位置参数( 当α= 45° = 1 , mr2 = 1 时) ,r
CG L1 L2 L3 [ 130. 8 130. 8 0 ] [ 785. 6 231. 8 0 ] [ 1194. 9 - 34 0 ] [0 0 0 ] [ 261. 6 261. 6 0 ] [ 1309. 5 202. 0 0 ] CS1 CS2 [ 261. 6 261. 6 0 ] [ 1309. 5 202. 0 0 ] [ 1080. 3 - 270 0 ]
8 7 7

这包含三个方面的工作 :
3. 3. 1   建立机构的三维几何场景

构建杆件三维几何模型可以采用多种 CAD 建模平台 ,
MatLab 包 含 一 个 编 辑 VRML 模 型 的 实 用 工 具 V - realm Builder 。在构建几何模型时 ,为简单起见 ,铰接点 A ,B ,C 和 D

均用球体表示 ,同时为了增加可视效果 , 对各杆直径作了适 当放大 。并原动件以 AB 转角α = 45° 时构建几何场景 , 即设 置此时各构件的位姿 。
3. 3. 2   设置虚拟现实输入模块和检测模块

将 VR 工具箱中的 VR 输入模块 VR- Sink 添加到仿真中 , 并将该模块的关联文件 ( associated file ) 指定为构建好的三维
tion 和平移属性 Translation ,这样 , 该模块就有六个输入端子 ,

3. 3. 3   设置转换函数模块

3. 2. 3   设置仿真环境参数

包括仿真控制参数和机械环境参数 。前者包括仿真起 止时间 ,选择仿真步长选项等 , 后者则包括重力加速度及其 单位的设置 ,分析方法的设置 ,以及显示方式的设置等 。
3. 2. 4   机构仿真的结果展现

启动仿真过程后 ,仿真结果的显示有多种方式 , 图 4 ( a ) 是利用示波器获得的 C 点的角位移图线 。图 4 ( b) 是设置机 械环境参数中的可视化选项后 ,得到的动画显示快照 。
3. 3   基于虚拟现实的仿真方法

虽然在 SimMechanics 下也可采用 VR 的显示方式 ,对图 4
( b) 进行操作 ,从而以不同的视角图 4 ( b) 进行浏览 ,问题是由

于构件模型不是三维的 ,不能得到虚拟环境下的效果 。尤其 是对于空间机构 ,这种缺陷更为明显 。如果能够从不同的空 间位置 ,观察机构的构件基于三维实体模型的动态运动过 程 ,则可以得到更为逼真的仿真效果 , 这有助于人们对机构 的直观理解 ,对于发现设计缺陷是非常重要的 。这可以利用
MatLab 中的 VR 工具箱 [ 6 ] 来实现 。以虚拟现实的方式展现

仿真结果数据时 ,必须将仿真模型的数据实时传送到虚拟场 景中 ,用仿真模型驱动三维场景 。用图 2 所示机构来说明 ,

(a) C 点角位移图线      (b) 机构运动的动画快照

图4  仿真结果展现

几何场景文件 ,在 VRML Tree 中选择各杆件的旋转属性 Rota2 用以驱动杆件 AB ,BC 和 CD 的运动 。 另外 ,还要给转动副 A ,B 和 C 添加检测模块 ,以便将检 测到的角位移传送到 VR-Link 模块中 。 由于在场景设置中 , 杆件是围绕其几何中心旋 转的 ,而在仿真模型中 ,检 测的 是 杆 件 端 点 的 角 位 移 ,所以必须将其转换为 围绕杆件中心的平移和转
图5  从几何中心到铰点的转换

动[3 ] ,如图 5 所示 , 围绕 A
l

点的转动 α转化为一个围绕 O 点的转动 α和一个平动 h =
2

sinα。为此必须在仿真模型中添加完成这一工件的模块 ,

利用给 MatLab Func 模块编制 M 函数来实现 [4 ] 。

经过以上步骤后 , 得到的仿真模型如图 6 所示 , 图 7 为

虚拟场景中的机构运动仿真 。利用 MatLab 提供的 VRML 浏 览器 ,可以对整个场景以不同方式进行浏览和观察 。

图6  利用虚拟现实技术的仿真模型

— 83



实技术 ,以三维动态的可视化形式 , 在一个虚拟场景中实时 展现了运动过程 , 并且可以以多种交互 形式从不同视角对 场景进行浏览和观察 , 所以更适合于对空间机构进行运动 仿真 。   虚拟仿真方法的一个主要缺点是必须对各构件进行三 维几何建模 ,但是由于工程实际中积累了大量可供利用的三 维 CAD 模型 ,所以 ,三维几何建模不再成为虚拟仿真的主要
Lab 提供了功能强大的诸多仿真模块 , 所以虚拟仿真技术必

图7  虚拟场景下的机构仿真

4  方法比较
在 MatLab 平台上 ,利用传统仿真方法 , 辅助仿真方法和 虚拟仿真方法 ,可以对机构运动进行不同层次的仿真 , 三种 方法有其各自特点 。
4. 1   模型解算方法

5  结论

这类方法强调仿真模型的求解 ,以提高求解仿真模型的 效率为核心 。主要优点是对软件平台的要求不高 , 比较灵 活 ,不受制于仿真软件供应商 。可以在多个较为通用平台上 开发 ,如选择 Visual C + + 或 Borland C + + ,可以开发自主知 识产权的仿真软件 。 这类方法主要缺点是 , 通用性相对较差 , 当面临每一个 具体机构时 ,都要开发一个单独的仿真引擎 , 因此工作量较 大 。当要以图形方式展现仿真结果时 ,也必须进行额外的编 程工作 。这类方法的另外一个缺点是 ,要求技术人员掌握较 多的编程知识和仿真领域的知识 , 增加了他们的负担 , 不能 充分发挥他们在机构学领域的优势 。第三 , 解算的结果数 据 ,与运动轨迹的展现是相对独立的两个部分 , 这两个部分 没有集成起来 。另外 ,这种方法只适合于展现作平面运动的 构件的轨迹 。
4. 2   辅助建模方法

辅助仿真方法以提高建模效率为核心 ,以框图的形式提 供通用的仿真模块 , 通过对仿真模块进行组装 , 建立框图之 间的连接关系 ,来表达实际机构各杆件之间的逻辑关系 。由 于仿真模型的表达更为直观 , 并且显著减少了编程工作量 , 所以 ,辅助仿真方法极大地扩大了仿真技术的应用领域 , 是 仿真技术的一个飞跃 ,它使机构学研究人员可以轻易地对机 构系统进行运动仿真分析 。仿真结果的实时动画展现 ,也是 用 MatLab 辅助仿真方法的特点之一 ,这对于理解特别是平面 机构是非常有利的 。
4. 3   虚拟仿真方法

虚拟仿真技术以仿真结果的展现为核心 ,它采用虚拟现

— 84



制约因素 。由于虚拟场景比平面示意更为直观 ,也由于 Mat2 将成为机构运动仿真的主要技术之一 。 三类仿真方法从 “模型求解” “辅助建模” “结果展 到 再到 现” 的发展过程 ,实际上是从 “人围着机器转” “机器围着人 到 转” 的发展过程 ,它体现了仿真活动 “以人为本” 的思想 ,这也 是仿真将来发展的趋势之一 。 提出了在 MatLab 平台上对机构进行运动仿真的传统仿 真方法 ,辅助仿真方法和虚拟仿真方法 。以曲柄摆杆机构为 例 ,详细说明了详细探讨了三种方法的实现过程 。探讨了三 种仿真方法的特点 ,指出传统仿真方法以提高模型求解效率 方法则以提高仿真结果理解效率为核心的 ,指出虚拟仿真方 法是机构运动仿真的主要趋势 。 参考文献 :
2001.

为核心 ,辅助仿真方法以提高建模效率为核心 , 而虚拟仿真

[1 ]   王沫然 . MatLab6. 0 与科学计算 [ M] . 北京 . 电子工业出版社 ,

[2 ]   薛定宇 , 陈阳泉 . 基于 MAT LAB/ Simulink 的系统仿真技术与应

用 [M] . 北京 : 清华大学出版社 ,2002.

[3 ]   王永超 ,孙健 ,陈新度 ,何汉武 . 基于 WTK 的灌装线主机运动建

模 [J ] . 系统仿真学报 . 2003 ,15 (3) : 375 - 378. 交通大学出版社 , 2002 - 4.

[ 4 ]   F Gardner 著 , 周进雄 ,张陵译 . 机构动态仿真 [M] . 西安 : 西安 J [5 ]   王维平 ,朱一凡 ,华雪倩 . 离散事件系统建模与仿真 [ M] . 长沙 :

国防科技大学出版社 ,1998.

[6 ]   施样阳 ,李俊 . MAT LAB 语言工具箱 - TOOLBOX 实用指南 [ M] .

西安 : 西北工业大学出版社 ,1998.

[ 作者简介 ]

王永超 (1970. 7 - ) , 男 ( 汉族) , 陕西周至人 , 工学

博士 ,讲师 ,主要研究方向为虚拟现实与可视化 。


相关文章:
MATLAB机构运动仿真
MATLAB机构运动仿真_理学_高等教育_教育专区。关于机械原理的曲柄摇杆机构的运动分析...导杆机构的MATLAB运动仿... 3页 1下载券 基于Matlab和ADMAS四杆... 3页...
基于MATLAB的四杆机构运动分析
i 基于 MATLAB 的四杆机构运动分析与 动画模拟系统要] 本文介绍MATLAB开发机构运动分析和动画模拟系统的方法,并且利用 [摘 MATLAB软件实现平面四杆机构的运动仿真。...
基于matlab的四杆机构运动分析
1 平面连杆机构运动分析 1.1 机构运动分析的任务、目的和方法 机构运动分析...MATLAB 的可 视化手段,把各点的计算值拟合成曲线,得到四连杆机构的运动仿真...
基于MATLAB的曲柄滑块机构运动的仿真
曲柄滑块机构 机构运动的仿真 基于 MATLAB 的曲柄滑块机构运动的仿真姓名:夏小品 学号:2100110114 班级:机械研 10 摘要: 本文在曲柄滑块机构运动简图的基础上, 对其...
基于MATLAB的机构运动学分析
基于MATLAB的机构运动学分析_经济/市场_经管营销_专业资料。文献检索综合报告 基于 MATLAB 的机构运动学分析 系、专业:信息系.通信工程 学生姓名: 学 彭艳林 号:...
基于MATLAB的双摇杆机构运动分析与仿真
本科生毕业设计 基于 MATLAB 的双摇杆机构运动分析与仿真 Based on the MATLAB double rocker organization movement analysis and simulation 基于 MATLAB/SIMULINK 的...
平面连杆机构优化设计及运动仿真
同时该方法也为多杆机构和其他机构的优化仿真设计提供了借鉴。 关键词:平面连杆机构 matlab 优化设计 运动仿真 引言 连杆机构由于能有效地实现给定的运动规律或...
基于MATLAB曲柄滑块机构运动仿真报告
基于MATLAB曲柄滑块机构运动仿真报告_表格类模板_表格/模板_实用文档。??? 计算机...进行仿真,并用动画的方式显示 曲柄滑块机构的运动过程,位移曲线、速度曲线和加...
基于matlab冲压机构的运动仿真
基于MATLAB_SIMULINK的简易冲压机构运动和动力学分析摘要本文以冲压机为研究对象,以造价低、结构简单为基础,通过方案对比及分析, 从而设计出合适冲压机。本文...
更多相关标签:
matlab运动学仿真 | matlab运动学仿真代码 | matlab机器人运动仿真 | matlab机构仿真 | matlab运动学仿真教程 | matlab 小车运动仿真 | matlab运动仿真 | matlab 仿真车辆运动 |