You are on page 1of 469

RecurDyn多体系统优化仿真技术

焦晓娟 张溹 渭 彭斌彬 编著

湧厰妉寈剜犪禠
即 伈
内 容 简 介

枈仂凍剢亖 10 笼,垄瑢谖酄剢伧缩仢 RecurDyn 盠塖枈篳洱;垄廰疄酄剢,絗缻、凄鞾垌伧缩仢塖仪


RecurDyn 逷袨枖椌絗缻剢柬盠琋壟、彖橽觝絼否佛睻涝穧,谎訿仢剶栰湓呤絗缻盠彖橽昕洱,豐晪仢塖仪
RecurDyn 逷袨枖椌-搃劒絗缻肰呤佛睻盠奶稩遰忠否寺琌涝穧,陬遌仢 RecurDyn 盠奶寂稭佴卲剢柬勻腙,廒
佁寺俧篜厱伧缩仢 RecurDyn 盠仨歽彜吭廰疄。
枈仂垄凡尕署揮书浄鈩寺疄悃哨呋攩侸悃,聟蚭呠了岞歽豗聡盠搁吳穧异,遞呤仪廛妃拜枋伖咴哨鬴桽
寂畻寂亼、吞聟。

枎仈屣韄趖杫湧厰妉寈剜犪禠隔侌桩篠﹦時桩篠聧乯忹镢喐ザ
犪枥抢杫﹦倗枥性竘ザ倗枥亠指疗谿ⅹ010-62782989 13701121933

坠仈垊犪罸睐﹢CIP﹣旒提

RecurDyn 奶侯絗缻佴卲佛睻拜枋/熂暯婻,彼溹溉,忉旨忈署蒳.…即伈:湡厪妃寂剖犤禚,2010.12

ISBN 978-7-302-24157-7

I. ①R… II. ① 熂… ⒎彼Ⅱ ⒏忉Ⅱ III. ① 枖椌絗缻-絗缻佛睻-廰疄迋佒,RecurDyn IV. ① TH-39

争坙犤枈坚仂駢 CIP 旌揊梔害(2010)箈 217251 呓

超佝罸迳ⅹ谔宴枟 缆旣逸
屣韄谠调ⅹ剴 跡
犪影谠调ⅹ個啎茈 柄 浧
超佝梃屛ⅹ娸 忂 彼必剀
超佝叒劘ⅹ
剜犪吳袮ⅹ湡厪妃寂剖犤禚 垒 垢ⅹ即伈湡厪妃寂寂硰妃吂 A 弃
http://www.tup.com.cn 鄐 罸ⅹ100084
禠 悝 果ⅹ010-62770175 鄐 趏ⅹ010-62786544
拷窡买豝聧杯匃ⅹ010-62776969,c-service@tup.tsinghua.edu.cn
越鈱启駪ⅹ010-62772015,zhiliang@tup.tsinghua.edu.cn
叒 劙 聧ⅹ
褧 谄 聧ⅹ
缱 镢ⅹ凄坙昌厪仂廳
形 枎ⅹ185×260 叒 徂ⅹ29.5 容 旒ⅹ682 原害
犪 殃ⅹ2010 廐 12 杤箈 1 犤 叒 殃ⅹ2010 廐 12 杤箈 1 歽双劓
叒 旒ⅹ1~4000
导 余ⅹ60.00 冟

伃唝署呓:039209-01

机械产品在国内外市场中竞争力的强弱,在很大程度上取决于产品的质量。产品的设
计可赋予产品“先天性优劣”的本质特性,它对产品的质量有着显著的直接影响。力学的
发展与应用,已解决了产品设计中的诸多重大实际问题,对推动科学和工程技术的进步正
在发挥着重要的作用;计算技术和力学理论的融合,为计算力学服务于产品的设计开辟了
一条新的十分有效的途径。
本书介绍了基于递归算法的 RecurDyn 多体系统仿真软件,它是以多体动力学为基础,
以提高机械产品技术性能为目标,为产品设计所涉及的机构和结构、液压系统和控制系统
的优化,以及机器零部件疲劳失效分析及寿命预估等问题提供一个数字化仿真的平台,可
以克服目前产品设计中存在着的抽象的和孤立的对产品设计优劣进行评价的弊端,能够更
加方便地对机械产品设计各个阶段进行自我评判与改进。特别是 RecurDyn 所提供的专业化
的工具包,可更加方便地在相关行业中进行具体应用。RecurDyn 软件由 A. A. Shabana 博
士的弟子所开创,本书作者是想通过对 RecurDyn 软件的介绍,使他们所传承的多体动力学
理论与技术得以发扬广大,这自然是一项具有重要意义的工作,它一定会让更多的人从使
用中获益。
焦晓娟同志主持编写本书,是基于一种新的、独特的理念和坚定的信念,通过她的勤
奋学习和不懈努力的工作,创作出了这一具有创造性的和实际意义的产品,它一定能够让
更多的人学会运用这一先进的仿真技术,进而服务于我国的经济发展,我期待本书为我国
新时期产品设计的自主创新带来重大的实际应用价值。
最后,我祝愿工程力学今后的发展更加朝气蓬勃,愿力学在工程中的应用更加丰富
多彩。

闻邦椿
2010 年 11 月 5 日
༄ ዔ

适值中国正处于工业化和信息化“两化”融合的时代,需要大批的具备数字化分析能
力的技术人才融入产品的研发进程。作为驱动工业化研发能力发展的 CAE 仿真工具,为产
品性能的综合分析、设计优化方案的选择、创新设计的有效评估等更高层次的产品设计行
为提供了方便。作为集成的多学科优化仿真工具,RecurDyn 在国内外产业界的应用业已获
得了长足的进步。这款享有国际声誉、备受用户信赖的软件,凝聚着全球 7 所大学和 10 个
实验室的共同努力,基于最新多体技术的发展,为机-电-液-控耦合领域多体系统的统一建
模及分析优化搭建了行之有效的数字化仿真平台。
非常感谢越来越多的中国技术人员和高校学生关注 RecurDyn 的发展。基于越来越多使
用者对指导教材的呼吁声,我们怀着极其喜悦的心情,迎来了第一本关于 RecurDyn 的简体
中文教程在中国大陆的面世。感谢曾经为 RecurDyn 广泛应用而努力过的所有 FunctionBay
China 技术人员及参与者,感谢 Michael Jang、Inho Song 等 FunctionBay 公司的大力协助,
感谢清华大学出版社第六事业部为第一本 RecurDyn 中文简体书的出版而提供的帮助,感谢
南京理工大学机械工程学院所做的部分翻译工作,尤其要感谢默默支持该书编写工作的家
人及亲友们。
特别要感谢的是东北大学的两院院士闻老师和他的助理任朝晖老师,闻老师并没有看
到该书的内容,也不了解该书的作者。闻老师为该书题序是出于对作者的鼓励,对勤奋学
习和努力工作的倡导,我们期待闻老师的严谨态度和做人原则指引更多的人努力往前走。
RecurDyn简体中文书的出版,承载着FunctionBay China的希望。我们期待,RecurDyn
以强大的仿真性能和卓越的分析效率更加广泛地服务于工业界和学术界,在中国“两化”
融合时代的应用更加深入,在仿真驱动设计中所起到的作用更加积极。渴望探索RecurDyn
功能的读者可登录RecurDyn官方网站www.recurdyn.cn申请试用,欢迎广大读者和使用者提
出宝贵意见及建议。时间仓促,错误难免,如果读者需要最新信息,请将您的联系方式发
至xiaojuan.jiao@pro-lambda.com信箱,我们会将更新信息及时通知您。

编 者
2010-11-5
Preface

It is always very delightful and joyful experience to meet a new product or goods. Whenever
I encounter a new product, some unknown expectation make my heart beat, like which function
do they have? what can I do with this one? etc. I don’t know what other people do when they
meet a new product, but in my case, my first thing to do is reading a manual or related documents.
I don’t want to ruin my feeling of some expectation and excitement by abusing the product due to
my lack of knowledge. So, I try to fully understand the product before operating through the
documents. However, some product doesn’t provide the manual or related documents which are
written in my mother language. Then, I have to spend much longer time on reading and
understanding the content. Sometimes, it makes me tired and finally my exciting feeling for that
product has been disappeared even before I started to use it. As a manufacturer, FunctionBay
always have some uncomfortable feeling due to a similar reason when we have started to enter
the Chinese market. Language is very difficult problem to me even though I am very proud of
our product. I really wanted to provide good materials to our Chinese users with Chinese
language, but it was not easy work. But timely and finally, I heard that the book is published
which is written in Chinese language. As a CEO of headquarter, I was very happy because we
can explain the various and nice function of RecurDyn with more efficient and fast method to
Chinese users through this book. And also, I can get some relief feeling that this book will
decrease my burden about the feeling of sorry toward Chinese users.
So, I really appreciate xiaojuan Jiao and FunctionBay China’s valuable work, publishing
this book instead of headquarter. I hope that this book can give more deep understanding about
RecurDyn and help Chinese users to handle RecurDyn more easily.
Please contact us when you have any request or feedback. FunctionBay headquarter and
FunctionBay China will do our best to improve it and provide better materials to Chinese users
continuously.

Michael Jang.
CEO of FunctionBay, Inc.
෹ ഺ

2.6 大变形问题的相对节点法........39
第1章 多体仿真的沿革趋势与 2.6.1 相对变形运动 ......................... 40
RecurDyn................................. 1 2.6.2 平衡方程................................. 42
1.1 多体动力学仿真时期.................. 1 2.6.3 数值算法................................. 45
1.2 多体系统的仿真时期.................. 2 2.6.4 数值算例................................. 45
1.3 多体产品仿真时期...................... 3 2.7 一种有效的接触搜索算法........47
1.4 小结.............................................. 3 2.7.1 接触对的运动学表示 ............. 47
2.7.2 接触区域划分 ......................... 48
第 2 章 RecurDyn 基本算法.................. 4 2.7.3 预搜索..................................... 48
2.1 计算多体动力学基本概念.......... 4 2.7.4 后搜索和柔性接触力 ............. 49
2.2 广义递归算法.............................. 4 2.7.5 递归算法的运动学和
2.2.1 相对运动学坐标....................... 5 运动方程................................. 50
2.2.2 速度递归算法........................... 7 2.7.6 数值积分策略 ......................... 52
2.2.3 力递归算法............................... 8 2.8 闭环多体系统的线性运动
2.2.4 机械系统的图形表示法 ........... 9 方程............................................52
2.2.5 运动方程和 DAE 的解法......... 9 2.8.1 相对坐标运动学 ..................... 53
2.2.6 广义的递归算法..................... 11 2.8.2 运动方程................................. 55
2.2.7 广义递归算法的应用 ............. 15 2.8.3 拉格朗日乘子的消元和运动
2.3 隐式数值积分的解耦算法........ 16 方程的线性化 ......................... 55
2.3.1 代数微分方程的隐式 2.9 小结............................................56
数值积分................................. 16
2.3.2 隐式数值积分的解耦算法 ..... 17 第3章 RecurDyn 软件简介 ............... 57
2.3.3 数值算法................................. 19 3.1 RecurDyn 概述 ..........................57
2.4 采用虚拟构件和铰的柔性 3.2 RecurDyn 产品线 ......................58
多体动力学................................ 20 3.3 RecurDyn 组成模块 ..................59
2.4.1 相邻柔性体的运动学 ............. 21 3.4 RecurDyn 产品应用领域 ..........60
2.4.2 运动方程................................. 25 3.5 安装 RecurDyn 软件 .................60
2.4.3 计算过程与讨论..................... 27 3.5.1 Windows 系统安装
2.5 柔性多体动力学的广义 RecurDyn ................................ 61
递归算法.................................... 29 3.5.2 Linux 系统安装 RecurDyn
2.5.1 两相邻柔性体的相对 软件......................................... 64
坐标运动................................. 30 3.6 RecurDyn 的文件结构 ..............65
2.5.2 正向递归算法......................... 34 3.7 RecurDyn 建模环境介绍 ..........67
2.5.3 反向递归算法......................... 36 3.7.1 启动 RecurDyn/Modeler ......... 67
2.5.4 求解控制方程......................... 37 3.7.2 RecurDyn/Modeler 建模
VI RecurDyn 多体系统优化仿真技术

环境......................................... 69 4.8.4 Pre Analysis 预分析.............. 145


3.7.3 单摆动力学分析实例 ............. 79 4.8.5 Direct Frequency Response
3.7.4 RecurDyn 后处理功能介绍.... 85 Analysis 直接频率响应
3.7.5 RecurDyn 后处理实例............ 99 分析....................................... 146
3.7.6 RecurDyn 操作技巧 ............. 104 4.9 RecurDyn 测量工具 ................146
3.8 小结.......................................... 107 4.9.1 RecurDyn/Request................. 146
4.9.2 RecurDyn/Scope.................... 149
第4章 基于 RecurDyn 的机械系统 4.9.3 RecurDyn/Measure................ 151
分析...................................... 108 4.10 RecurDyn/Extract 萃取
4.1 基于 RecurDyn 仿真分析 中间状态................................154
的步骤...................................... 108 4.11 曲柄滑块机构分析实例........156
4.2 模型方案分析.......................... 109 4.11.1 建立部件几何体 ................. 157
4.2.1 刚体和柔性体的选择 ........... 109 4.11.2 建立约束和驱动 ................. 165
4.2.2 子系统的选择....................... 110 4.11.3 提交分析任务 ..................... 167
4.3 建模环境设置.......................... 110 4.11.4 分析结果研究 ..................... 168
4.3.1 重力场设置........................... 110 4.12 4 质量弹簧系统分析实例 .....171
4.3.2 工作平面及其他建模设置 ... 111 4.12.1 建立质量块 ......................... 172
4.4 RecurDyn 的编辑模式 ............ 112 4.12.2 建立连接弹簧 ..................... 173
4.5 刚体部件建模.......................... 112 4.12.3 建立质量块和大地之间
4.5.1 几何体创建........................... 112 的平动副............................. 174
4.5.2 几何形状的修改................... 115 4.12.4 进行特征值分析 ................. 174
4.5.3 部件属性的修改................... 115 4.12.5 结果分析............................. 174
4.5.4 部件质心 Marker 的修改 ..... 117 4.13 小结........................................175
4.5.5 部件几何体位置调整 ........... 117
4.6 Joint 约束建模......................... 120 第 5 章 RecurDyn 高级建模技术 .......176
4.6.1 约束种类............................... 120 5.1 接触建模..................................176
4.6.2 创建约束............................... 121 5.1.1 RecurDyn 接触类型.............. 176
4.6.3 定义驱动............................... 122 5.1.2 RecurDyn 接触算法.............. 177
4.6.4 定义摩擦............................... 123 5.1.3 RecurDyn 常用接触类型...... 180
4.6.5 约束力显示........................... 128 5.1.4 同时创建多个接触 ............... 189
4.6.6 约束建模注意事项............... 129 5.1.5 曲柄滑块机构实体接触
分析实例............................... 189
4.7 外力载荷建模.......................... 129
4.7.1 RecurDyn 载荷种类 ............. 129 5.2 RecurDyn 参数化建模 ............191
4.7.2 直接外力............................... 130 5.3 弹球接触仿真实例..................194
4.7.3 特殊力................................... 130 5.3.1 建立几何模型 ....................... 195
4.7.4 RecurDyn 柔性连接力.......... 133 5.3.2 建立弹簧力 ........................... 196
4.7.5 力的显示............................... 140 5.3.3 建立接触............................... 197
4.8 RecurDyn 分析类型 ................ 141 5.3.4 初步仿真............................... 198
4.8.1 动力学/运动学分析.............. 142 5.3.5 参数化弹簧自由长度 ........... 198
4.8.2 Static 静态分析..................... 143 5.3.6 参数化控制仿真分析 ........... 199
4.8.3 Eigenvalue 特征值分析 ........ 145 5.4 RecurDyn 函数表达式 ............200
目 录 VII

5.4.1 创建函数............................... 200 第6章 刚柔混合系统仿真.................239


5.4.2 在函数表达式中引用参数 6.1 RecurDyn 柔性体建模 ............239
化点分量............................... 201
6.2 RecurDyn/RFlex 概述..............240
5.4.3 在函数表达式中使用
6.3 RecurDyn/RFlex 建模..............241
变量....................................... 201
6.3.1 RecurDyn 的 RFI 文件.......... 241
5.4.4 引用函数............................... 202
6.3.2 RFlex 建模环境 .................... 244
5.5 RecurDyn 函数类型 ................ 202
6.4 RecurDyn/RFlex 应用实例......253
5.5.1 数学函数............................... 202
6.4.1 基于 Ansys 创建*.rfi 文件 ... 254
5.5.2 IF 函数 .................................. 203
6.4.2 基于 RFlex 进行刚柔混合
5.5.3 插值函数............................... 204
系统仿真............................... 257
5.5.4 变量方程和微分方程 ........... 206
6.5 RecurDyn/FFlex 功能 ..............260
5.5.5 时间函数 Time ..................... 207
6.5.1 FFlex 单元............................. 261
5.5.6 一般函数............................... 207
6.5.2 FFlex 的材料......................... 264
5.5.7 位移函数............................... 210
6.5.3 FFlex 与有限元属性相应
5.5.8 速度函数............................... 212
关系....................................... 267
5.5.9 加速度函数........................... 213
6.5.4 RecurDyn/FFlex 建模环境 ... 268
5.5.10 力函数................................. 213
5.5.11 应力、应变函数 Stress/ 6.6 基于 RecurDyn/FFlex 建模 .....269
Strain ................................... 215 6.6.1 FFlex 的选择模式................. 271
6.6.2 FFlex 的编辑功能................. 272
5.6 RecurDyn 输出请求 ................ 216
6.6.3 FFlex 的接触......................... 276
5.6.1 RecurDyn 输出请求类型...... 216
6.6.4 FFlex 的载荷......................... 282
5.6.2 输出请求举例....................... 217
6.6.5 FFlex 输出节点位置............. 283
5.6.3 特定力的输出简例............... 219
6.6.6 FFlex 的仿真结果及显示..... 284
5.7 RecurDyn 子系统建模技术 .... 220
6.7 FFlex 的力连接 .......................285
5.7.1 创建子系统........................... 221
5.7.2 子系统间的操作................... 221 6.8 RecurDyn/Mesh Interface
5.7.3 子系统的导出、导入及 网格界面..................................287
编辑....................................... 221 6.9 RecurDyn/FFlex 应用实例 ......287
5.8 基于子系统建模技术的汽车 6.10 RecurDyn/DFRA 直接频率
高位自卸机构实例.................. 222 响应........................................296
5.8.1 建立举升机构子系统 ........... 223 6.11 小结........................................297
5.8.2 建立液压缸子系统............... 226
5.8.3 建立举升机构....................... 229 第 7 章 机械-控制系统联合仿真........298
5.8.4 建立卸货机构....................... 230 7.1 RecurDyn 机械-控制联合
5.8.5 总装汽车高位自卸机构 ....... 232 仿真方法概述..........................298
5.9 RecurDyn 求解器类型及 7.2 RecurDyn/Control 功能 ...........299
并行计算.................................. 234 7.3 基于 RecurDyn/Control 进行
5.10 RecurDyn 批处理仿真 .......... 235 联合仿真..................................299
5.11 Linux 求解器 ......................... 237 7.3.1 建立 PIN 和 POUT ............... 300
5.12 小结........................................ 238 7.3.2 建立 M 文件 ......................... 301
VIII RecurDyn 多体系统优化仿真技术

7.3.3 以 Simulink 为主程序的 Design Optimization).......... 375


联合仿真............................... 301 9.2.4 RecurDyn 的试验设计方法... 376
7.3.4 以 RecurDyn 为主程序进行 9.2.5 元模型................................... 377
联合仿真............................... 303 9.2.6 RecurDyn 的数值优化方法... 379
7.4 RecurDyn/Control 应用实例 ... 304 9.3 基于 RecurDyn/Professional
7.5 RecurDyn/CoLink 功能 ........... 309 进行设计优化..........................379
7.5.1 CoLink 模块库...................... 309 9.3.1 进行参数化研究的步骤 ....... 379
7.5.2 伯德工具............................... 313 9.3.2 设计研究的结果 ................... 382
7.6 基于 RecurDyn/CoLink 进行 9.3.3 What-if-Study 假设分析 ....... 383
机械−控制联合仿真 ............... 314 9.4 基于 Professional 进行优化
7.6.1 基于 RecurDyn/CoLink 实例..........................................383
分析流程............................... 314 9.4.1 定义设计变量—弹簧自由
7.6.2 CoLink 系统界面及操作 长度....................................... 384
方式....................................... 314 9.4.2 定义性能指标 ....................... 384
7.6.3 建模要点............................... 315 9.4.3 运行优化分析 ....................... 385
7.7 RecurDyn/CoLink 操作实例 ... 315 9.5 RecurDyn/AutoDesign 功能
7.8 RecurDyn/Hydraulic 简介 ....... 318 简介..........................................386
7.8.1 AMESim 接口设置............... 319 9.5.1 RecurDyn/AutoDesign 优化
7.8.2 RecurDyn/AMESim 联合 分析流程............................... 386
仿真步骤............................... 319 9.5.2 定义设计变量 ....................... 387
7.9 小结.......................................... 319 9.5.3 定义性能指标 ....................... 388
9.5.4 进行设计研究 ....................... 389
第 8 章 RecurDyn 行业应用子系统 ... 320 9.5.5 进行优化分析 ....................... 391
8.1 带传动仿真实例...................... 325 9.5.6 进行鲁棒性优化分析 ........... 391
8.2 链传动仿真实例...................... 335 9.6 弹射机构优化分析实例..........392
8.3 齿轮增速机构仿真实例.......... 346 9.7 机械-控制联合系统优化
8.4 Track LM 低机动履带系统 实例..........................................400
建模实例.................................. 349 9.7.1 定义设计变量 ....................... 402
8.5 媒介传送机构仿真实例.......... 362 9.7.2 定义分析响应 ....................... 403
9.7.3 运行设计优化 ....................... 405
8.6 发动机建模仿真实例.............. 368
9.7.4 结果比较............................... 408
8.7 小结.......................................... 372
9.8 鲁棒性优化及 6σ 优化实例 ....408
第 9 章 RecurDyn 设计优化仿真 ...... 373 9.8.1 定义设计变量 ....................... 409

9.1 优化分析概述.......................... 373 9.8.2 定义性能指标 ....................... 410


9.8.3 鲁棒性优化 ........................... 411
9.1.1 优化分析技术的发展 ........... 373
9.8.4 六西格玛设计优化 ............... 415
9.1.2 优化三要素........................... 373
9.8.5 结果比较............................... 418
9.2 RecurDyn 优化设计功能 ........ 374
9.9 小结..........................................418
9.2.1 设计研究(Design Study) .. 375
9.2.2 设计优化(Design
第 10 章 RecurDyn 二次开发 ............419
Optimization)...................... 375
10.1 RecurDyn 二次开发概述 ......419
9.2.3 鲁棒性设计优化(Robust
目 录 IX

10.2 RecurDyn 用户子程序 .......... 419 10.6 RecurDyn/ProcessNet 简介 ...441


10.2.1 用户子程序的使用............. 419 10.6.1 RecurDyn/ProcessNet IDE
10.2.2 用户子程序简介................. 419 环境..................................... 441
10.2.3 常用辅助子程序................. 420 10.6.2 运行 RecurDyn/
10.2.4 用户自定义子程序简介 ..... 424 ProcessNet ........................... 442
10.2.5 在 RecurDyn 模型中 10.7 RecurDyn/PressNet 二次
调用用户子程序................. 425 开发实例................................443
10.2.6 Source 文件和 Header 10.7.1 开发自动化创建接触
文件..................................... 425 功能..................................... 443
10.3 用户自定义子程序电机 10.7.2 开发对话框和消息输出 ..... 447
驱动实例................................ 425 10.7.3 开发后处理自动绘制曲线
10.4 用户自定义子程序轴向力 功能..................................... 451
驱动实例................................ 431 10.8 小结........................................457
10.5 用户自定义子程序运动
驱动实例................................ 436
࢒ 1 ᐺ ࣶᄏशᑞࡼዘুཋဴᎧRecurDyn

多体仿真技术的发展进程可以分为 3 个阶段:前期是以现代计算力学为基础的“多体
动力学仿真”阶段,近期扩展到与结构、控制和优化结合的“多体系统仿真”阶段,目前
正走向结合机-电-控与多物理场的“多体产品仿真”阶段。RecurDyn 诞生于第一阶段的后
期,随着第二阶段的发展而快速成长,目前正跟随市场的脚步和技术的导向步入了方兴未
艾的第三阶段。

1.1 多体动力学仿真时期

这一时期是多体仿真的萌芽期,从事多体仿真的多是机构动力学学者。20 世纪 70 年代,
随着电脑应用的逐渐普及,以美国为主的许多大学的应用力学学者开始以牛顿的运动定律对
机械构造组成(如图 1-1 所示,包括构件和连接)建立可数字化的数学模型(Mathematical
Models),这就是今天多体仿真的前身。70 年代中期至 90 年代中期是多体动力学的蓬勃
发展期,许多重要的数学模型和算法、有效的数值解法,甚至几何模型与数学模型关系的
建立都是发生在此期间,其中影响较大的包括密西根大学的以 Euler Angles 为旋转自由度
的三维数模,爱荷华大学的 Euler Parameters 旋转自由度、相对自由度和递归算法(Recursive
Formulation),伊利诺大学 Dr. Shabana 的模态柔性体算法等。到了 90 年代中期这些技术
都已成熟,RecurDyn 的研发团队因此集成了以上的学术成果,并且引入同时期发展成熟的
有限元算法作为可承受大变形和接触的柔性体数模,于 90 年代末,在微软的视窗操作系统
上发布了第一版的 RecurDyn,这也算是“多体动力学仿真”纪元的一个总成。

图 1-1 多体系统
2 RecurDyn 多体系统优化仿真技术

1.2 多体系统的仿真时期

这一时期是多体仿真的成长期,市场主导了多体仿真的内涵。在 RecurDyn 第一版发布


的 20 世纪 90 年代末,电脑的容量和速度又达到了一个新境界,新的多体仿真技术要求和
挑战也随之浮现,由此迎来了“多体系统仿真”的新纪元。
多体系统由“多体动力学”引申而来,一般泛指包括机械构造、结构材料和控制(软、
硬)元件的整体系统。多体系统仿真则是以电脑辅助的方法对多体系统进行数字化模拟的
技术。
多体系统仿真所面临的挑战大致可分为 5 类:大型模型的运算、滑动和碰撞接触、运
动中的柔性体、控制-机构集成,以及系统的设计与优化。在 21 世纪的第一个 10 年中,
RecurDyn 的研发总部集成了美、德、日、韩研发团队的技术专长,针对以上 5 个挑战提出
了解答。
 大型模型的运算
除了原有的针对大型多刚体模型所提供的递归算法(Recursive Formulation),RecurDyn
增加了针对大型有限元多柔体(MFBD)模型的 SMP 并行求解,这两种方法对提高大型模
型的计算效率起到了重要的作用。
 滑动和碰撞接触
除了改良原有的面接触算法(Surface Contact Algorithms)以外,RecurDyn 还提供了快
速的解析解接触算法(Primitive Contact Algorithms)、稳定性更高的实体接触算法(Solid
Contact Algorithms),以及支持柔性体的接触算法,这些算法大幅提高了接触计算的速度、
稳定性和精确性。
 运动中的柔性体
除了原有的以运动中的振动为仿真目的的 RFLEX 模态法柔性体算法,RecurDyn 强化
了以运动中的接触、大变形和其他非线性为仿真目的的 FFLEX 有限元柔性体算法。计算精
度因此得到了较大的提升。
 控制-机构集成
除了原有的与 MATLAB/Simulink 联合仿真的功能外,RecurDyn 的研发部门直接将控
制系统的建模界面和算法集成到 RecurDyn 中,其求解器已可以实现机械和控制两种算法的
耦合求解,两者在这一时期真正融合成了一个单一的数字化系统。
 系统的设计与优化
为了达到以仿真驱动设计的目的,RecurDyn 针对不同的产业,推出了各种专业建模工
具包,包括发动机的各个子系统、工具机、履带、进纸机构、链、带、滑轮、齿轮、轴承、
弹簧等,这些工具包的出现大幅缩短了工程师建立(并修改)数字化仿真系统所需的时间。
接着 RecurDyn 提供了全面的参数化几何建模和优化功能,帮助工程师以数字方法寻找更优
化的设计方案。更重要的是 RecurDyn 推出了 ProcessNet 二次开发工具包,客户可以依据各
第1章 多体仿真的沿革趋势与 RecurDyn 3

自的产品特性和设计需求,开发出专用的参数化系统和设计优化的开发平台。此时仿真本
身已不再是目的,设计的优化才是多体系统仿真的真正目的。
如图 1-2 所示,目前已发行的 RecurDyn 版本正是因应这一时期的市场需求和技术挑战
而开发的。有关利用 RecurDyn 进行多体系统仿真所需要的理论基础和应用教程将在后文中
详细介绍。

图 1-2 多学科集成的多体分析系统

1.3 多体产品仿真时期

这一时期将是多体仿真的成熟期,多体仿真将成为“数字化产品开发”的核心技术。
多体产品仿真是指在“多体系统仿真”技术的基础上,加上“多物理场仿真”、“芯片-
轫体仿真”、“软-硬件联合仿真”等功能,以进一步达成数字化产品开发的目的。当前正
处于这一新时期的开端,RecurDyn 的研发部门正集中全球的开发资源,计划将 RecurDyn
开发成一个“多学科集成的优化平台”和一个“机-电-控集成的产品开发平台”,让我们
拭目以待它的精彩表现吧!

1.4 小 结

本章概括了多体动力学的发展历程、多体系统的仿真时期以及多体产品的仿真时期,
并指明 RecurDyn 未来的发展方向。
࢒ 2 ᐺ RecurDyn૥‫۾‬Ⴏज

2.1 计算多体动力学基本概念

计算多体动力学分析涵盖建模和求解两个阶段,其中建模包括从几何模型形成物理模
型的物理建模、由物理模型形成数学模型的数学建模两个过程,求解阶段需要根据求解类
型(运动学/动力学、静平衡、特征值分析等)选择相应的求解器进行数值运算和求解。
几何模型是指构成多体系统的几何体构件,可在多体分析软件中建立,亦可从外部导
入 CAD 模型。
物理模型即力学模型,是指在赋予物理属性(质量、惯量、质心位置等)的几何模型
基础上,通过施加运动学约束、驱动约束、力载荷、初始条件计算等装配形成的表达多体
系统力学关系的模型。赋予物理属性的构件统称为 Body,亦可称为部件,是机构零件的模
型化。部件可分为刚体和柔性体,刚体上质点间距离保持不变,柔性体则需要考虑质点间
距离的变化。物理模型是由部件、铰接约束、力、接触关系等要素组成的具有一定构型的
系统。约束是指对多体系统中部件之间相对运动所进行的限制,包括运动学约束和驱动约
束;铰接即运动副 Joint,是指部件之间的运动学约束;多体系统中的力包括部件间的相互
作用内力和多体系统外的物体施加在系统部件上的外力载荷。
数学模型是指物理模型通过数学建模,组装运动方程组中的系数矩阵而形成的用于数
值求解的分析模型。包括静力学模型、运动学/动力学模型等,是相应条件下多体系统力学
模型的数学描述。静平衡是在与时间无关的力作用下系统的平衡,静平衡分析用于确定系
统的静平衡位置;运动学/动力学分析用于确定多体系统中部件的响应,包括位置、速度、
加速度及运动过程的约束反力、接触碰撞力。
连体坐标系是指固定在刚体上并随其运动的坐标系,用于确定刚体的运动,刚体上任
一质点的位置都可以通过连体坐标系的不变矢量来确定。
广义坐标是指唯一确定多体系统中所有部件位置和方位的一组变量,对于运动系统而
言,广义坐标是时变量。
系统自由度是指确定系统的位置所需要的最小的广义坐标数。

2.2 广义递归算法

J. Wittenburg 将约束机械系统在笛卡儿坐标系下的运动方程通过速度变换法转化到相
第2章 RecurDyn 基本算法 5

对坐标系,从而得到更紧凑的方程。但这些方程不能显式地表达相对运动的递归特性,仍
然不具备高效的运算效率。Hooker 在进行树形拓扑结构的卫星动力学分析时提出了递归计
算方法,其计算成本随构件的数量而线性增加。Featherstone 应用螺旋理论提出了机器人手
臂加速度的递归算法。这些方法被 D. S. Bae 和 Edward J. Haug 广泛应用于约束机械系统的
变量微积分运算。
约束机械系统可表示为代数微分方程(DAE)。求解 DAE 方程有多种向后差分法(BDF)
可供选择,尤其是参数化方法可将 DAE 方程表示为关于系统多个运动约束的常微分方程
(ODE),该方法的稳定性、收敛性等数值稳健性已得到证实。Lin, T. C.和 Yae, K. H.在运
动方程线性时通过递归方法获得雅克比矩阵,应用状态矢量,直接得到运动方程各项的递
归算法。Ming-Gong Lee 和 Edward J. Haug 采用类似的方法进行相对坐标的隐式 BDF 积分,
由于逐项推导递归算法,结果方程和运算将变得异常复杂。为了避免这种情况的发生,可
采用速度变换法将运动方程转变为紧凑矩阵,仔细分析约束铰空间运动方程的算法结构,
将所有能够在同一递归方式下进行的计算操作分类,而后逐类开发广义递归算法并应用于
各种计算中。在运动方程中可观测到逐项推导中不易观察到的公共因素,而且矩阵形式的
方程更易于调试及理解,其计算过程更有效率。RecurDyn 程序通过开发广义递归算法库,
采用 BDF 方法和相对坐标进行动力学分析。

2.2.1 相对运动学坐标

1.坐标系统

刚体在空间中的一般运动,是以刚体中某一点 O 为原点建立刚体的连体坐标系,刚体
中的任意点 P 相对于 O 点进行数学描述。如图 2-1 所示,刚体的姿态可表示为:
 a11a12 a13 
 
A=  a21a22 a23  =  f g h (2-1)
 a31a32 a33 
其中 f、g 和 h 分别是沿 x' 、y' 、z' 轴的单位矢量。该 x' - y' - z' 是刚体连体坐标系,X - Y - Z
是惯性参考坐标系。

P
Z s' y'
rp x'

r z'
O

Y
X
图 2-1 坐标系和刚体

定义 X - Y - Z 坐标系下 O 点的速度和虚位移分别为:
6 RecurDyn 多体系统优化仿真技术

.
r  (2-2(a))
 w 
δr 
δπ  (2-2(b))
 
在 x' - y' - z' 坐标系中其对应量被定义为
 r'   AT r 
Y   '   T  (2-3(a))
 w   A w 
δr '   AT δr 
δZ   '    T  (2-3(b))
δπ   A  

2.相邻构件的相对运动

如图 2-2 所示,有一对相邻构件,设构件(i-1)是连接构件(i)的前一个构件,且点
Oi 的位置表示为:
ri = r(i -1) + s(i -1)i + d (i -1)i  si(i -1)
(2-4)
T
定义 A(i -1)i = A(i -1) Ai ,通过式(2-3(a))可得构件 i 在其自身参考坐标系中的角速度:
w'i = A(Ti -1)i w'(i -1) + A(Ti -1)i H (i -1)i q(i -1)i
(2-5)
其中 H ' 由旋转轴来确定。

图 2-2 两个相邻构件的运动学关系

对式(2-4)求导,通过式(2-3(a))可得:
Ai ri = A(i -1) r(i -1)  A(i -1) s(i -1)i(i -1)
 A(i -1) d(i -1)i(i -1) + Ai si(i -1)i (2-6)
+ A(i -1)(d(i -1)i)q (i -1)i q(i -1)i
其中带波浪符号的变量表示由矢量叉积中矢量元素组成的斜对称矩阵,q(i -1)i 表示相对
坐标矢量。将式(2-5)中 i 代入,并在式(2-6)两边同乘上 AiT ,
第2章 RecurDyn 基本算法 7

ri = AT (i -1)i r(i -1)


 AT (i -1)i(s(i -1)i + d(i -1)i  A(i -1) si(i -1) AT (i -1)i )ω(i -1) (2-7)
+A T
((d(i -1)i )q(i -1) + A(i -1)i s(i -1)i A
( i -1) i
T
( i -1) i H (i -1)i )q(i -1)i
其中 A i  Ai i 。联立式(2-5)和式(2-7)得到相邻构件运动副间的速度递归方程:
Yi = B(i -1)i1Y(i -1) + B(i -1)i 2 q(i -1)i (2-8)
其中:
 AT (i -1)i 0   I  ( s(i -1)i + d(i -1)i  A(i -1)i si(i -1) AT (i -1)i ) 
B(i -1)i1 =   
 0 AT (i -1)i  0 I 
(2-9)
 AT (i -1)i 0  (d(i -1)i )q(i -1) + A(i -1) si(i -1) AT (i -1) i H (i -1)i)
B (i -1)i 2 =   
 0 AT (i -1)i   H (i -1)i 
需要注意的是,矩阵 B(i -1)i1 和 B(i -1)i 2 是仅关于连接构件(i-1)和(i)的铰相对坐标的
函数。因此,对式(2-9)中矩阵 B(i -1)i1 和 B(i -1)i 2 求导,除 q(i 1)i 以外的项进一步求导均为零。
后面的简化递归算法中将利用这个重要特性。
同样的,虚位移的递归关系如下。
δZi = B(i -1)i1δZ (i -1) + B(i -1)i 2 δq(i -1)i (2-10)

2.2.2 速度递归算法

在归纳速度递归算法之前,先以图 2-3 所示串联机构证明递归方法和速度变换法之间


的计算等价性。

图 2-3 串联机构

将式(2-8)中的 i 替换为 m 可得到笛卡儿坐标系下的速度 Ym。


Ym = B( m -1) m1Y( m -1) + B( m -1) m 2 q( m -1) m (2-11)

将 Y( m -1) 、 Y( m -2) 、…、 Y0 代入式(2-8)得到:


8 RecurDyn 多体系统优化仿真技术

m
Ym =  B(- k + m )(- k + m -1)1Y0
k =1
m -1  m - j 
 
   B(- k + m )(- k + m -1)1  B( j -1) j 2 q( j -1) j  (2-12)
 k =1
j -1   
 B( m -1) m 2 q( m -1) m
因此,可以得到所有构件在笛卡儿坐标系下的速度 Y 为
Y = Bq (2-13)
其中,B 是 q(i 1)i 的系数集合矩阵,且
T
Y  Y0T,Y1T,Y2T,...,YnT  (2-14)
nc1
T
q  Y0T,q01
T T
,q12,...,q(Tn -1) n  (2-15)
nr1

其中 nc 和 nr 分别表示笛卡儿坐标和相对坐标的数量。
给定 q  R nr ,用递归数值替代 Yi,可以通过式(2-13)或在式(2-8)中来估算笛卡儿
速度 Y  R nc 。由于二者获得的结论一致,且研究表明递归数值替代法的效率更高,因此对
给定的 q 可以采用式(2-8)的相乘矩阵 Bq 进行计算。
由于式(2-13)中的 q 是 R nr 里的一个任意矢量,因此对于在计算上等效的式(2-8)
和式(2-13)而言,给定任意 x  R nr 都有:
X = Bx (2-16)

X i = B(i -1)i1 X (i -1) + B(i -1)i 2 x(i -1)i (2-17)
其中 X  R nc 是 B 和 x 相乘得到的。用式(2.17)进行迭代将 X  R nr 转化为 Bx  R nc ,
有更高的计算效率。

2.2.3 力递归算法

通常,需要将 R nc 中的矢量 G 转化为 R nr 中的一个新的矢量 g = B T G 。这种变换常用


于将给定笛卡儿坐标系下的已知力,变换为铰空间中的广义力。笛卡儿坐标系下的力
Q  R nc 所做的虚功为:
δW = δZ T Q (2-18)
其中 δZ 必须对图 2-3 中的所有铰都适用。将 δZ  Bδq 代入式(2-18),得:
δW = δq T B T Q = δq T Q* (2-19)
其中 Q  B Q 。将式(2-19)写成求和形式:
* T

n -1
δW =  δqiT(i +1) Qi*(i +1) (2-20)
i =0

另一方面,图 2-3 中从第 n 个构件开始向内侧构件方向,将式(2-10)中的递归虚位


移关系的符号表达式代入到式(2-18)中,得到
第2章 RecurDyn 基本算法 9

n 1

δW   δqiT(i +1) BiT(i +1)2  Qi +1 + Si +1   (2-21)
i 0

其中:
S0 = 0
(2-22)
Si +1  B(Ti +1)(i +2)1  Qi +2 + Si +2 
令式(2-20)和式(2-21)的右侧相等,得到 Q* 的递归算法为:
Qi*(i +1)  BiT(i +1)2  Qi +1 + Si +1 , i = n  1,
....,
0 (2-23)
其中 Si 1 由式(2-22)确定。
由于 Q 是 R nc 中的一个任意矢量,式(2-22)和式(2-23)对于 R nc 中的任何矢量 G
都适用。因此,为获得更高的计算效率, B T G 可通过下列各式进行计算:
gi (i +1) = BiT(i +1)2  Gi +1 + Si +1 
Sn = 0 (2-24)
Si  B T
i ( i +1)1  Qi +1 + Si +1  i = n  1,,
... 0
其中 g 是 B T G 的计算结果。

2.2.4 机械系统的图形表示法

通常,机械系统有不同的拓扑结构,为了处理这种问题,需要一个采用相对坐标方法
的通用性自动前处理,该前处理需要识别出约束机械系统的拓扑结构并具有较高的效率。
J. Wittenburg、D. S. Bae 和 Edward J. Haug 提出了用图形来描述机械系统构件和铰的理论,
用节点和连线表示构件和铰接。基于图论的前处理产生自动决定执行顺序的通路矩阵和距
离矩阵。如图 2-4 和图 2-5 所示分别为调速机构及其图形表示。

图 2-4 调速机构 图 2-5 调速机构的图形描述

2.2.5 运动方程和DAE的解法

约束机构的牛顿—欧拉运动方程的变分形式为:
Z T MY + ΦZT λ  Q = 0   (2-25)
10 RecurDyn 多体系统优化仿真技术

其中 Z 必须适用于切断铰以外的所有铰。在方程式中, 和 λ 分别表示切断铰约束及
相应的拉格朗日乘子。质量矩阵 M 和力矢量 Q 定义为:
M  diag  M1,M 2,...,M nbd  (2-26)
 mi I 0 
Mi    (2-27)
 0 J i 
Q  Q1T,Q2T,Q3T,...,Qnbd
T


(2-28)
 f   mω r
Qi =   (2-29)
 n  ω J ω 
其中 nbd 表示机构的编号,I 表示单位矩阵, J  表示转动惯量, f  表示外力,而 n 表
示外力矩。将虚位移的关系代入到式(2-25),得:
 
q T B T MY + Φ T λ  Q Z   0 (2-30)
由于 q 是任意的,因此得到以下方程:

F = B T MY + ΦZT λ  Q  0  (2-31)
由运动方程,约束方程、 q = v 和 v = a 组成以下代数微分方程:
 F  q,v,a,λ,t  
 
 Φ  q,t  
 
 Φ  q,v,t 

0 (2-32)
 Φ  q,v,a,t  
 
 q  v 
 
 v  a 
采用 Jeng Yen、Edward J. Haug 和 Florian A. Potra 的文献 Numerical Method for
Constrained Equations of Motion in Mechanical Systems Dynamics 中的切空间法得到如下非
线性系统,该非线性系统必须在每个时间步长上求解。
 F  qn,vn,an,λn,tn  
 
 Φ  qn,tn  
 
 Φ  qn,vn,tn 


H  pn   0 (2-33)
 Φ  qn,vn,an,tn  

 U T q   v  β  
 0 n 0 n 1

 U 0  v n   0 a n  β2  
T
 
T
其中 pn  qnT,vnT,anT,nT,
 ,  0 、 1 和  2 由 BDF 的系数决定,而 U 0 是一个

U T 
nr   nr  ncut  阶矩阵,则其增广矩阵  0  是非奇异矩阵。
 Φq 
在式(2-33)中应用牛顿法解非线性系统得:
第2章 RecurDyn 基本算法 11

H p Δp = - H (2-34)
i +1 i
p n  p  p,
n i  1,
2,3,
... (2-35)
其中
 Fq Fv Fa Fλ 
 
Φq 0 0 0 
  
Φq Φv 0 0 
(2-36)
Hp = 
Φ Φ 
Φ 0
 q v a 
U T β U T 0 0 
 0 0 0

 0 U 0T β0U 0T 0 
由于 F 和  是关于 q、v、a 和  的高度非线性的函数,因此在推导 H p 中的非零表达
式时必须非常小心。

2.2.6 广义的递归算法
 、
对残留项 H 和雅克比矩阵 H p 进行分析,不难发现递归算法可以分为 Bx 、B T G 、Bx
 Bx q 、 B TG q 、 Bx
  、 Bx
q
  ,其中 x  R nr 到 G  R nc 是任意常矢量,而 q 是相对坐标。
v

Bx 和 B T G 的公式在前面已推导过,后面推导其他类型的公式。由于采用局部参考坐标系
下的相对运动学来替代全局坐标系,所以这些递归算法都很简单。
为了系统地推导公式,将用图形描述的构件拆分为 4 个不相交的部分(与广义笛卡儿
坐标 qk 有关)。
I  qk  ={广义坐标为 qk 的节点外构件}
II  qk  ={ I  qk  的所有外侧的构件}
III  qk  ={ 基体构件和 I  qk  的内构件之间的所有构件,包括基体构件和 I  qk  的内
构件}
IV  qk  ={ I  qk   II  qk   III  qk  的补集}
例如,图 2-5 中的机构关于 q24 (构件 2 和 4 之间的相对坐标)的划分情况如下。
I  q24  ={构件 4}
II  q24  ={构件 6 和 7}
III  q24  ={构件 1 和 2}
IV  q24  ={构件 3,5 和 8}

1.递归算法 X = Bx

对式(2-17)求导,很容易得到 Bx   R nc 的递归算法:
X i = B(i -1)i1 X i -1 + B(i -1)i1 X i -1 + B(i -1)i 2 X(i -1)i
(2-37)
在已知相对速度和加速度的情况下,这种递归算法可以用来计算笛卡儿加速度 Y 。
12 RecurDyn 多体系统优化仿真技术

2.递归算法 X q =  Bx q

为获得  Bx q 的递归算法,对式(2-17)求关于 qk,k  1, nr 的偏微分。


...,
 X i q =  B(i -1)i1 q X i -1 + B(i -1)i1  X i -1 q +  B(i -1)i 2 q X(i -1)i (2-38)
k k k k

由于矩阵 B(i -1)i1 和 B(i -1)i 2 仅取决于铰(i-1)i 的相对坐标,除关于 q(i -1)i1 的偏导数之外,其
他项对广义坐标的偏导数均为零。换言之,如果 qk 不属于 I  qk  ,则其偏微分为零。因此,
如果构件 i 是包含在 II  qk  中,则式(2-38)可改写为
 X i q = B(i -1)i1  X i -1 q
k
(2-39)
k

如果构件 i 属于 III  qk   IV  qk  的并集,则 X i 将不受 qk 的影响。因此,式(2-39)


将进一步简化为
 X i q k
=0 (2-40)
如果构件 i 包含在 I  qk  中,构件(i-1)自然就是它的内构件且属于 III  qk  。根据式
(2-40),式(2-38)可以写成
 X i q   B(i -1)i1  X i -1   B(i -1)i 2  x(i -1) i (2-41)
k qk qk

该递归算法可用于计算关于相对坐标 Yq 的笛卡儿速度的偏微分,例如,图 2-5 所示调


速机构中 qk  q24 ,那么 Yq24 如图 2-6 所示。

(Y1)q24
=0

(B121)q24=0
(B122)q24=0

(Y2)q24
=0
(B241)q24, (B231)q24=0
(B242)q24 (B232)q24=0

(B281)q24=0 (Y3)q24
(Y4)q24
(B282)q24=0 =0
=(B241)q24Y2
+(B242)q24 q24 (B351)q24=0
(Y8)q24 (B352)q24=0
(B461)q24=0 =0
(Y5)q24
(B462)q24=0
=0

(Y6)q24
=B461(Y4)q24

(B671)q24=0
(B672)q24=0

(Y7)q24
=B671(Y6)q24

图 2-6 Yq24 的计算顺序


第2章 RecurDyn 基本算法 13

T
3.递归算法 gq = B G   q

B G
T
q
的递归算法是通过式(2-24)的递归算法获得的。通过将 i 替换为(i-1),式

(2-24)可以写成
g(i -1)i = B(Ti -1)i 2  Gi + Si 
(2-42)
Si -1 = B(Ti -1)i1  Gi + Si 
对式(2-42)求关于 qk 的偏导数得
g  ( i -1) i q
k

= B(Ti -1)i 2  qk
Gi + Si  +  B(Ti -1)i 2  Gi + Si q k
(2-43)
 Si -1 q k
= B  T

( i -1) i1 q
k
Gi + Si  +  B T
( i -1) i1  G + S 
i i qk

由于 G  R 是一个常矢量,因此 Gqk  0 。如果 i  II  qk   III  qk   IV  qk  ,则 B(i -1)i1


nc

和 B(i -1)i 2 不是关于 qk 的函数,对 qk 的偏导数为零。因此,式(2-43)可简化为:

g  ( i -1) i q =  B(Ti -1) i 2   Si q


k k
(2-44)
 Si-1 q = B T
 S 
( i -1) i1 q i qk
k k

由于用图形树描述的末端构件  Si q  0 ,当 i  II  qk   IV  qk  时,由式(2-44)的
k

第二个方程可得  Si -1 q  0 。由于 i  II  qk   IV  qk  ,式(2-44)可变为


k

g  ( i -1) i q
k
=0 (2-45)
如果 i  I  qk  ,则构件(i+1)属于 II  qk  ,且  Si q  0 。因此,式(2-43)可写成:
k

g  ( i -1) i q
k
= B  T

( i -1) i 2 q
k
 Si 
(2-46)
 Si -1 q k

= B(Ti -1)i1  qk
 Si 
在图 2-5 中,如果 qk  q24 ,则 B G 的计算流程如图 2-7 所示。 T
q24

4.递归算法 X q =  Bx
  和X
q
 =  Bx
v
 
v

为获得  Bx
  和  Bx
  的递归算法,将式(2-37)对 q 和 v 求偏导数,其中 k=1,…,
k k
q v

nr。
 X 
i q =  B (i -1)i1  Xi -1 +  B(i -1)i1  X i -1
k qk qk
(2-47)
+ B (i -1)i1  X i -1 q + B(i -1)i1  X i -1  +  B (i -1)i 2  X (i -1)i
k qk qk

 X i  =  B (i -1)i1  X i -1 + B (i -1)i1  X i -1 v
vk vk k
(2-48)
+ B(i -1)i 2  X i -1  +  B (i -1)i 2  X (i -1)i
vk vk
14 RecurDyn 多体系统优化仿真技术

(g12)q24=(B122)(S2)q24
(S12)q24=(B121)(S2)q24

(g24)q24=(B242)q24S4 (g23)q24=0
(S2)q24=(B241)q24S4 (S2)q24=0

4
(g28)q24=0 3
(g46)q24=0 (S2)q24=0
(g35)q24=0
(S4)q24=0
(S3)q24=0
8
6
5
(g67)q24=0
(S6)q24=0

图 2-7 BqT G = gq 的计算顺序


24 24

5.递归算法表

按照同样的方法,其他项推导之后得到的详细结果如表 2-1 所示。

表 2-1 递归算法表

递 归 公 式 i  I  qk  i  II  qk 
 X i q =  B(i -1)i1  Xi -1
k qk

+  B(i -1)2  X (i -1)i


qk  X i q k
= B(i -1)i1  X i -1 q
k

g  =  B(i -1)i 2  Si g 
T
( i -1) i q qk ( i -1) i q =0
k
X q =  Bx q
k

S  =  B(i -1)i1  S i  Si -1 q
T
( i -1) q
=0
qk k
gq = ( B T G ) q k

 X  =  B (i -1)i1  Xi -1  X  = B (i -1)i1  X i -1 q
X q =  B x 
i q
i q k k
qk
+ B(i -1)i1  X i -1 
k
q

X v =  Bx
  +  B(i -1)i1  X i -1 qk
qk
v
+  B (i -1)i 2  X ( i -1) i  X i  vk
= B ( i -1)i1  X i -1 v
k
qk
+ B(i -1) i 2  X i -1 
 X 
i v =  B ( i -1)i1  Xi -1 vk
k vk

+  B (i -1) i 2  X (i -1) i
vk
第2章 RecurDyn 基本算法 15

续表

递 归 公 式 i  III  qk  i  IV  qk 

 X i qk =0  X i q k
=0
X q =  Bx q
T
g ( i -1) i q
k
= B(Ti -1) i 2 ( Si )qk g  ( i -1) i q
k
=0
gq = ( B G )q
 Si -1 q = B(Ti -1)i1 ( Si )qk  Si -1 q =0
X q =  Bx
  k k
q
 X  =0  X  =0
X v =  Bx
 
i q i q
k k
v
 X i v k
=0  X  i v
k
=0

递 归 公 式 i  I  qk  或 i  II  qk  或 i  III  qk  或 i  IV  qk 
X i = B( i -1) i1 X i -1 + B( i -1) i 2 X ( i -1) i

X = Bx gi (i +1) = Bi(Ti +1)2 (Gi +1  Si +1 )


g = BTG Sn = 0
Si = Bi(Ti +1)1 (Gi +1  Si +1 )
X = Bx

X i = B (i -1)i1 X i -1 + B(i -1)i1 X i -1 + B (i -1)i 2 X (i -1)i

2.2.7 广义递归算法的应用

下面介绍如何利用广义递归算法库来计算式(2-33)和式(2-36)中的 H 和 H p 项。
通过分析 H 和 H p ,可知需要对残余项 F 及 Fq 、 Fv 、 Fa 、 Φq 、 Φ q 、 Φ
 的偏导数重新进
q

行计算。为简化起见,在此仅讨论 F 和 Fq ,其余各项可采用相同方法进行。

1.残余项F的计算

为求得式(2-31)中的 F ,需要先计算广义力 Q 、 ΦΖΤ λ 和笛卡儿加速度 Y 。 Y 是通过


递归式(2-37)得到的,因为 G 是 R nr 中的矢量,G = MY + Φ T λ  Q ,故可利用式(2-24)  Z 
中的递归算法 B T G 求解 R nr 中的 F 。

2.雅克比矩阵 Fq 的计算

在式(2-31)中,将矩阵 B 对矢量 q 求导得到一个三维列阵。为了避免复杂性,将式


(2-31)对一典型的广义坐标 qk 求导,得到

 
Fqk = BqTk MY + ΦZT λ  Q + B T MY + ΦZT λ  Q   qk
, k = 1, ... nr
2,, (2-49)

 
由于 ΦZT λ  Q 很容易在笛卡儿坐标系下表达,因此通过链式法即可得到 ΦZT λ  Q   qk

的以下形式
Φ
T
Z λQ  qk

= ΦZT λ  Q  Z
Bk (2-50)
16 RecurDyn 多体系统优化仿真技术

Z
上式推导中用到了  B ,其中 Bk 表示矩阵 Β 的第 k 列。则 Fqk 变成
q
 
Fqk = BqTk MY + ΦZT λ  Q + B T MYqk + ΦZT λ  Q    z

Bk , k = 1, ... nr (2-51)
2,,

 
已知 G = MY + ΦZT λ  Q ,通过递归方程 BqTk G 可以得到式(2-51)中的第一项。将所

 
有 k 值对应的 ΦZT λ  Q Bk 合并构成 ΦZT λ  Q
z
  z
B ,该合并项与 B T ((ΦZT λ  QZ )T )T 等价。
矩阵 (ΦZT λ  Q )TZ 由 nc 个 R nc 中的列矢量组成。因此,通过 BqTk G 可以得到 B T (ΦZT λ  Q )TZ 的
数值解,其中 G 是矩阵 (ΦZT λ  Q )TZ 的各列矢量。最终,式(2-51)中的第二项也可以通过 B T G

 
得到,其中 G = MY + ΦZT λ  Q Bk 。  z

2.3 隐式数值积分的解耦算法

多数情况下,ODEs 相对于 DAEs 的求解更加麻烦。C. W. Gear 提出了求解 DAEs 的


直接离散法,但该方法不满足速度约 束条件,不能得到一致的初始条件,而初始条件不
一致会导致差的局部误差,因而相继 出现了一系列使用拉格朗日算子或约束惩罚的稳定
算法。
近年来,出现了多种将微分方程投影到扩大约束流形上的求解方法。这些方法可分为
两类:
 第一类方法,先进行数值积分,修正积分变量,以满足位移约束、速度约束和加
速度约束等约束要求。由于修正是逐级有序进行的,待求的系统方程保持小规模,
但当出现由显式解法稳定区间窄而导致的高度非线性或刚性问题时,积分步长可
能变得极度小。
 为了克服第一类方法 的 弊端,在第二类 方法中将同时解决数 值积分算法、运动
学方程 、运 动约束及其微分。该 类方法虽然解决了积分步长过度小的问题,但
需求解的方程组规模变得更加庞大。对于离散系统而言,除了庞大规模矩阵方
程外,随着 步 长变小, 矩阵条件将变差,进而会导致矩阵方程的求解存在较大
误差。
下面介绍一种隐式数值积分的解耦算法,该方法将避免矩阵条件差、积分步长过小及
矩阵规模过大的问题。通过对迭代方程组的解耦,使雅克比矩阵维数显著减少,很好地解
决了隐式数值积分的病态问题,同时得到更少的方程数,有更高的稳定性。

2.3.1 代数微分方程的隐式数值积分

约束机械系统的运动方程可隐式地描述为:
第2章 RecurDyn 基本算法 17

v q = 0 (2-52(a))
F ( q, v , a , λ ) = 0 (2-52(b))
Φ(q ) = 0 (2-52(c))
其中 q 为欧氏空间 Rn 的广义坐标矢量,λ 为 Rn 中的拉格朗日乘子约束矢量,Φ 为 Rn
中的位置约束矢量,其对应的雅克比矩阵表示为 Φq( Φq  R mn ),矩阵 Φq 假定为行满秩
矩阵。对式(2-52(c))进行连续求导,得到速度和加速度约束方程为:
Φ (q, v ) = Φq v  υ = 0 (2-53(a))
Φ (q, v , a ) = Φq a  γ = 0 (2-53(b))
式(2-52)和式(2-53)组成超定代数微分方程组(ODAE)。J. Yen 的文献《Constrained
Equations of Motion in Multibody Dynamics as ODE's on Manifolds》给出了基于 BDF 求解
ODAE 的具体算法,具体表达式如下:
 F ( x )   F (q, v , a , λ) 
 Φ   Φq a  γ 
   
 Φ   Φq v  υ 
   
 Φ   Φ(q ) 
H ( x)    0 (2-54)
T h   T  h 
U1  R1    U1  a  v  ξ1  
  b0    b0 
   
 T h   T  h 
U1  R1   U1  b v  q  ξ 2  
  b0    0 
k k
1 1
上式中 1 
b0
 bi vn 1 , 2   bi qn 1 ,k 为积分的阶次,bi 为 BDF 公式的相应系数。
b i
1
i 0 1

x   λ q  ,ui  R
T
a T
v T T n ( n  m )
(i=1,2)的各列矢量为位置和速度约束参数空间的基。
Φ 
引入 ui 的主要目的是使矩阵  Tq  存在逆矩阵,因此,由 ui 的列所形成的参数空间与 ΦqT 的
 ui 
列所形成的子空间组成了完整的 n 维空间。
式(2-54)中方程的个数与未知数的个数相等,可以利用牛顿法对 x 进行求解。
H xi Δx i =  H i (2-55(a))
x i +1 = x i + Δx i (2-55(b))
i
当 h 趋近于零时,对 H x 的 LU 分解不仅会增加计算时间,同时会分解出病态矩阵。为
了消除这些问题,在后面的内容中,式(2-55(a))将被分为若干分块矩阵,对 Δq 、Δv 、
Δa 、 Δλ 分别进行求解。

2.3.2 隐式数值积分的解耦算法

方程(2-55(a))可改写为:
18 RecurDyn 多体系统优化仿真技术

Fq Δq + Fv Δv + Fa Δa + Fλ Δλ + F ( x ) = 0 (2-56(a))
 Δv + Φ
Φq Δa + Φ  Δq + Φ
 ( x ) = 0 (2-56(b))
v q

Φq Δq + Φ( x ) = 0 (2-56(c))
Φq Δv  Φ q Δq  Φ ( x )  0 (2-56(d))

 
U1T h' Δa  Δv  h' R1 ( x )  0 (2-56(e))
U 2T  h Δv  Δq  h R ( x )  0
' '
2 (2-56(f))
h
其中 h'  ,通过选择矩阵 u1 ,使其满足 U1T Fa-1ΦqT  0 ,式(2-56(e))可等
b0
效为:
h' Δa  Δv  h' R i ( x )  h' U1T Fa-1ΦqT τ1  0 (2-57)
上式中, Fa 为质量矩阵,该矩阵一般为非奇异矩阵。如果 Fa 中元素用参数方程描述,
Fa 方程为奇异矩阵。如果 Fa 为奇异矩阵,通过方程组(2.56)可同时求得 Δq 、 Δv 、 Δa 、
Δλ 的值。矢量 τ1  R m 是新未知变量,由式(2.57)知 Δa 可以用 Δv 表示为:
1
Δa  ' Δv  R1 ( x )  Fa-1ΦqT τ1 (2-58)
h
将式(2-58)代入式(2-56(a))得
 F 
Fq Δq   Fv  a'  Δv  Φq  Δλ  τ1    F ( x )  Fa R1  x 
T
(2-59)
 h 
1
T Fa 
通过选择 U 2 ,使 U 2  Fv  '  Φq  0 ,式(2.56(f))可等效为:
T

 h 
-1
 F 
h' Δv  Δq  h' R 2 ( x )  h'  Fv  'a  ΦqT τ 2  0 (2-60)
 h 
Fa F
其中矩阵 Fv 
'
假定为非奇异矩阵, τ 2  R m 为新的未知变量。 Fv  a' 为奇异矩阵
h h
的情况将在后面进行说明。通过式(2-60), Δv 可通过 Δq 表示为:
1
1  F 
Δv  '
Δq  R 2 ( x )   Fv  a'  ΦqT τ 2 (2-61)
h  h 
将式(2-61)代入式(2-59),并且在式(2-59)两边同时乘上 h'2 ,可得:
k * Δq + h' 2ΦqT β = R 3 (2-62)
其中:
k *  h' 2 Fq + h' Fv + Fa (2-63(a))
β  Δλ  τ 1  τ 2 (2-63(b))
'2 '

R 3   h F ( x ) + h Fa R1 ( x ) + h h Fv + Fa R 2 ( x )
' '
 (2-63(c))
第2章 RecurDyn 基本算法 19

将式(2-62)与式(2-56(c))联立可得
 k* ΦqT   Δq   R 3 
  = (2-64)
Φq 0   h' 2 β   Φ( x ) 
通过式(2-64)可求得 Δq 和 β 。注意到式(2-64)中 β 前面有一个乘子 h'2 ,该乘子
可以避免式(2-64)中出现病态条件系数矩阵,甚至当 h 趋于零时,式(2-64)中也不会
出现病态条件系数矩阵。
Fa
式(2-60)两边同时乘以 Fv  ,可得
h'
 Fa  1  Fa 
 Δq  R 2 ( x )
T
 Fv + '  Δv + Φq τ 2 = '  Fv + ' (2-65)
 h  h  h 
将式(2-65)和式(2-56(d))联立可得
 Fa  1  F  
 Fv + h ' ΦqT   Δv   '  Fv + a'  Δq  R 2 ( x ) 
 h
  τ 2   
h   (2-66)

 Φq 0   Φ ( x )  Φq Δq 

上式中, Δq 可由式(2-64)求得,通过式(2-66)可以求得 Δv 和 τ 2 。对式(2-58)


两边同时乘以 Fa ,可得
 1 
Fa Δa  ΦqT τ1   Fa  R1 ( x )  ' Δv  (2-67)
 h 
将式(2-67)与式(2-56(b))联立可得
  1  
 Fa ΦqT  Δa    Fa  R1 ( x )  ' Δv  
  =  h  
Φq 0   τ1     Δv  Φ
 Δq 
(2-68)
 Φ ( x )  Φ v q 
通过式(2-68)可以求得 Δa 和 τ1 。一旦 β 、 τ1 和 τ 2 确定后,通过式(2-63(b))可
求得 Δλ 值为:
Δλ = β + τ1 + τ 2 (2-69)
由于 Fa 为质量矩阵, Fv 为接触阻尼矩阵,因此 Fa  h Fv 一般为非病态矩阵。如果该矩 '

阵出现病态情况,通过式(2-56)必定可以同时求得 Δq 、 Δv 、 Δa 、 Δλ 。然而,由于矩
阵 Fa 和 Fa  h' Fv 很少为奇异矩阵,因此 Δq 、 Δv 、 Δa 、 Δλ 的求解常常通过式(2-64)、
式(2-66)、式(2-68)和式(2-69)获得。

2.3.3 数值算法

采用 DASSAL 子程序计算系统变量,DAE 求解方法计算流程图如图 2-8 所示。


20 RecurDyn 多体系统优化仿真技术

读入初始条件

由方程(2-52(b))和(2-53(b))计算初始加速度和拉格朗日乘子

t=t+h

预测 q、v、a、

N Y
Fa
Fv + 或 Fa 奇异?
h'

计算方程(2-64)中的 Δq 和 β 计算方程(2-56)中的
Δq、Δv、Δa 和 Δ

计算方程(2-66)中的 Δv 和 τ2

计算方程(2-68)中的 Δa 和 τ1

计算方程(2-69)中的 Δ

修正 q、v、a、

N
收敛?
Y
N
t>tout?
Y

结束

图 2-8 DAE 求解方法计算流程图

2.4 采用虚拟构件和铰的柔性多体动力学

空间刚体的位形可用惯性参考坐标系中的广义位置和姿态坐标来表示。相对于刚体动
力学分析软件,柔性体动力学算法程序更为复杂,这是因为柔性体动力学算法要处理附加
的广义坐标。柔性体动力学的建模过程中最繁琐的便是一系列的铰和力建模,当刚体动力
学中开发新的力或铰模块时,柔性体动力学中必须重新处理相应的模块。为了避免这种重
复,引入了虚拟构件和铰。
第2章 RecurDyn 基本算法 21

Shabana 提出了多体系统坐标缩减的方法,柔性体的局部变形用节点坐标表示,进而
跨至一组模态振型表示。Yoo 和 Haug 通过在节点(动态分析的大载荷位置)上施加单位载
荷或单位位移而获得的一组静态修正模态来考虑这个变形。Mani 通过柔性体上空间分布的
惯量和铰约束力产生的里茨矢量考虑局部变形。Gartia 和 Jalon 等提出多刚体动力学的完全
笛卡儿坐标算法,Vukasovic 等把该算法扩展至柔性体动力学,通过将运动方程和约束方程
中所有必要矢量定义为广义坐标,减小姿态转换矩阵相关的非线性。
近年来,相继出现了一些关于大变形柔性体系统的动力学算法。Simo 基于惯性参考系,
提出了柔性梁的运动方程算法。由于梁上一点的位移可以直接由惯性坐标系测量,所以这
些惯性项是线性非耦合的,而与惯性项相关的应变能却是非线性的。Yoo 和 Ryan 针对转动
梁提出了惯性和浮动参考系的混合算法,轴向形变由转动梁的变形状态测量,而其他形变
由非变形状态测量。Shabana 提出了非增量绝对坐标算法,将全局位置坐标和斜率定义为广
义坐标,由于有限转动坐标不被作为广义坐标,从而解决了与有限转动相关的困难。
下面介绍一种在笛卡儿直角坐标系下的刚柔多体动力学的求解方法。通过引进虚拟构
件和虚拟铰概念,使柔性构件不受除虚拟柔性体铰之外的所有运动条件限制,减少了附加
的柔性体编程工作。采用稀疏求解算法,计算量适中,但大大提高了计算的便利性。

2.4.1 相邻柔性体的运动学

1.坐标系和虚拟构件

如图 2-9 所示为铰相连的两个柔性体, X i 、Y i 、 Z i 是柔性体 i 的参考坐标系的 3 个坐


标轴,X、Y、Z 是惯性坐标系的 3 个坐标轴。假设 X 1i 、 Y1i 、 Z1i 和 X 1j 、 Y1 j 、 Z1j 坐标系之
间存在一个连接铰,在 X 2i 、 Y2i 、 Z 2i 坐标系的原点施加一个力 F。参考系中运动容许条件
可以分为两类:一类是两个铰参考系间的容许条件,另一类是同一柔性体内坐标系间的容
许条件。在以往的研究中,这两类容许性条件在运动铰约束和广义力算法中混在一起,其
结果是分别开发刚体和柔性体的每个约束和力模块,这将导致更多的执行时间,而且更易
出现编码错误。尤其因柔性体广义坐标的复杂性,使柔性体编程比刚体编程更麻烦、工作
量更大。为了减少工作量,在此引入虚拟构件的概念,在每一个铰和力的参考系中引入一
个质量和转动惯量均为零的虚拟构件。
如图 2-10 所示,在两个相邻变形体之间引入 3 个虚拟刚体,这样柔性体上没有铰或外
力作用,仅仅承受构件坐标系和虚拟构件系的运动容许条件制约。因而,仅需开发刚体的
铰和力模块,在铰模块中再增加一个柔性体铰。

2.两个刚体间的铰约束

通过在两相邻刚体的矢量上施加平行或正交强制条件表示铰。刚体铰接库已经很完善,
多铰系统的建立非常容易。定义两个铰参考系中或铰参考系间的几何矢量来表示这些强制
条件。通常铰参考坐标系与刚体坐标系不一致,虚拟构件的构件参考体坐标系可作为铰参
考坐标系,因而简化了连接虚拟构件的铰运动容许条件,减少了整个雅可比矩阵的非零数。
22 RecurDyn 多体系统优化仿真技术

图 2-9 两个相邻柔性体

图 2-10 两个相邻柔性体和 3 个虚拟构件

3.柔性构件和虚拟构件间的柔性体铰约束

图 2-11 中的虚拟构件坐标系的原点位置可表示为:


 
r i+1 = R i + Ai ui = R i + Ai u0i + uif  (2-70)
i i
其中,u0 和 u f 分别是刚体上一点相对刚体参考坐标系的未变形矢量和变形矢量;Ai 是

刚体参考坐标系的姿态矩阵;节点位置的变形矢量 uif 可表示为一组振型的线性组合:

uif = ΦRi pif (2-71)
i
其中 ΦR 是模态矩阵,该矩阵的列由平动模态振型组成; pif 是一个模态坐标矢量。
第2章 RecurDyn 基本算法 23

图 2-11 柔性体和虚拟构件间的柔性铰约束

虚拟构件 i  1 的姿态可由以下方法得到:
Ai 1  Ai Aif Ai ,i 1 (2-72)
i i ,i 1
其中, A 是由转动变形而引起的相对姿态矩阵; A
f 是未变形状态柔性体 i 的参考坐
标系和虚拟构件 i  1 间的姿态矩阵。如果采用布里恩角(1-2-3),那么 Aif 可表示为:
 cos  iy cos  zi  cos  iy sin  zi sin  iy 
 i 
Aif  cos  xi sin  zi  sin  xi sin  yi cos  zi cos  xi cos  zi  sin  xi sin  yi sin  zi  sin  x cos  y  (2-73)
i

 cos  xi cos  yi 
sin  x sin  z  cos  x sin  y cos  z sin  xi sin  zi  cos  xi sin  yi sin  zi
i i i i i

T
如果 ε i   xi
 yi  zi  无穷小,那么 Aif 可以近似表示为:
 1  zi  iy 
 
Aif    zi 1  xi  (2-74)
  yi  xi 1 

旋转的变形矢量 ε i 可以用构件 i 的转动振型的线性组合表示:
ε i  Φi pif (2-75)
i
其中, Φ 是模态矩阵,该矩阵的列由转动模态振型组成; pif 是模态坐标矢量。
最后,联立方程(2-70)、方程(2-72),可得到柔性体坐标系和虚拟构件坐标系间
的运动约束如下:

C Ri  r i 1  Ri  Ai u0i  u if  0  (2-76)
 f T Ai Ai 1 g  f T Ai Ai ,i 1 g 
T

 f

C   g A A h  g A f Ai ,i 1h   0
T
i T i i 1 T i
(2-77)
 
 f T Ai Ai1h  f T Aif Ai ,i 1h 
T

 
其中,
24 RecurDyn 多体系统优化仿真技术

1 0 0 
 f g h  0 1 0 (2-78)
0 0 1 
在推导姿态约束中用到了正交条件。然而,在此为简化采用了方程(2-77)中的 Ci 。
方程(2-76)和(2-77)可用于描述柔性体 i 和虚拟构件 i  1 间的柔性铰。对方程(2-76)
和(2-77)进行变形得到:
(C Ri )q 
Cq i
flex
i
 
δq   i  q  0
 C q 
(2-79)
 
 
其中
 T T
q i  δR i r i 1 πi 1 
T T T T
δπ i pif (2-80)
 
雅可比约束矩阵 C qi   flex
可由以下方法得到:

C 
i
R q    I Bi  Ai ΦRi I 0 

0 f T Bgi f T Bgf Φi 0  f T Bgi 1 


 
C  i
 q  0 g T Bni g T Bhf Φi 0 g T Bhi 1  (2-81)
0 f T Bhi f T Bhf Φi 0  f T Bhi 1 

其中,
B i  Ai skew ui  

Bki  A skew  A k  A 
iT i 1 i

 , k  g, h (2-82)
Bkf  skew  A k   i ,i 1


Bki 1  Ai Ai 1skew  k  
T

    
矢量 skew u i , skew Ai 1k , skew Ai ,i 1k 分别是矢量 u i , Ai 1k 和 k 的斜对称矢量矩 
阵,方程(2-76)和(2-77)对时间求两次导数,可得到加速度约束方程。
C 
i
q flex   q  q  Q 
qi   Cqi
flex
i
q
i i
c flex

   
 A skew  u  ω  ω  2 A skew  Φ p  ω 
i i i i i
 R f
(2-83)
 f T H 1g  2 f T H g2  f T H g3  f T H g4 
 
 g T H h1  2 g T H h2  g T H h3  g T H h4 
 
 f T H h1  2 f T H h2  f T H h3  f T H n4 
其中, ω 是相对基准参考坐标系的角速度,广义速度矢量 q 为
T
q i   R
 iT ωi 1 
T T T
ωi p if T ri 1 (2-84)
 
以及
第2章 RecurDyn 基本算法 25

     T
H k1  skew ωi skew ωi Ai Ai+1k

 skew  ω  A A skew  k  skew  ω  
iT 
H k2 i i+1 i+1

, k  g, h (2-85)
H k3  A A skew  ω  skew  ω  k
iT i+1 i+1
 i+1


H k4   skew  Φ p  A A k    Φ p 
i i i i,i+1  i i
θ f f
 θ f

2.4.2 运动方程

如图 2-12(a)所示是一个含柔性构件的曲柄滑块机构,如图 2-12(b)所示为虚拟构
件的等效机构。应用 A. A. Shabana 的 Dynamics of Multibody Systems 中运动方程的一般形
式,可得到该机构的增广运动方程:
 M CqT  q Qe  Qv  Qs 
      (2-86)
Cq 0   λ   Qc 
其中, M 是系统的质量矩阵,矢量 q 包括了刚体和柔性体的平移加速度、角加速度和
柔性体的模态加速度。

(a)两个刚体和一个柔性体

(b)两个刚体、一个柔性体和两个虚拟构件
图 2-12 含柔性体的曲柄滑块机构

矢量 λ 是拉格朗日乘子, Qs 、 Qv 、 Qc 分别是应变能、力引起的速度、外力,矢量 Qc
包括了速度的平方项。

1.常规增广算法的系数矩阵

如图 2-12(a)所示系统的质量矩阵为:
26 RecurDyn 多体系统优化仿真技术

0   M 1f
 
M  M  2
r (2-87)
M r3   0

其中 M f 和 M r 分别为柔性构件和刚性构件的质量矩阵,表示为:
 mrr symmetric 
 
M   m r
1
f m 
 m fr m f m ff 
   6  nf  6  nf  (2-88)
m k 0 
M rk   rr k 
,  k  2,3
 0 m  66
其中, nf 为模态坐标的个数,柔性曲柄的曲柄滑块机构的雅可比约束矩阵  C q  为:
c



C 01

q flex, c



 C 12
q  
flex,c 
C    (2-89)
C 
q c 23
 q joint

 


C 30
q  
joint 

其中,  C q  是柔性铰的雅可比约束矩阵。
flex,c

2.虚拟构件增广算法的系数矩阵

如图 2-12(b)所示系统的质量矩阵为
 M v1 
 2 
 Mf 0 
M  M v3  (2-90)
 4

 0 Mr 
 5
Mr 

其中,虚拟构件的质量矩阵 M v 、柔性构件的质量矩阵 M f 、刚性构件的质量矩阵 M r 分
别为:
M v   066 , k  1,3
 mrr symmetric 
 
M   m r
2
f m  (2-91)
 m fr m f m ff 
   6  nf  6  nf 
m k 0 
M rk   rr k 
,  k  4,5 
 0 m  66
带有柔性曲柄的曲柄滑块机构的雅可比约束矩阵  C q  为
p
第2章 RecurDyn 基本算法 27



C 01
 
q joint


 C12
 
q flex, p 
 
 C23

q flex, p 
C    (2-92)
C 
q p
 34
q

 joint 

 C 45
q  
joint 
 
 C 50
q  
joint 

其中,  C q  是柔性铰的雅可比约束矩阵。如方程(2-92)所示,通过引进虚拟构
flex, p

件,雅可比约束矩阵可明确地分为柔性铰和刚性铰模块。

3.非奇异增广质量矩阵
如果雅可比约束 Cq 是行满秩矩阵,那么方程(2-86)的系数矩阵就是非奇异的。基于
同样的假设,下列方程只有平凡解,可证明方程(2-86)矩阵是非奇异的。
  y 0 M N y1  CqT
N 3 (2-93)

C  y  0 T
q V 3 (2-94)

C  y  C  y  0 q N 1 q V 2 (2-95)
其中, M N 是非虚拟构件的质量矩阵,  C  和  C  q N q V 分别是非虚拟构件和虚拟构件的
雅可比约束矩阵。方程(2-93)左乘 y1T 和方程(2-94)左乘 y2T 后,再联立方程(2-95)对
其求和得到方程(2-96)。

y1T M N y1  y3T  C q  y1   Cq  y2  y1T M N y1  0
N V
 (2-96)
从方程(2-96)中得到 y1  0 。再从方程(2-93)和方程(2-94)中推导出:
CqT y3  0 (2-97)
既然矩阵 Cq 是行满秩的, y3 必定为零。把 y1  0 代入方程(2-95)得到:

C  q V y2  0 (2-98)
因为矩阵  C q  的秩与 y2 相同,那么 y2 必定为零。既然 y1  0 , y2  0 , y3  0 是方程
V

(2-93)、(2-24)、(2-95)的唯一解,因而系数矩阵是非奇异的。

2.4.3 计算过程与讨论

1.数值算法

在图 2-13 描述了柔性多体动力学的程序结构。原有铰模块和力模块仅适用于刚体,通
过在铰库中增加一个柔性铰,可以处理由刚体和柔性体组成的系统。
28 RecurDyn 多体系统优化仿真技术

MAIN PROGRAM MODULE LIBRARY

Start

位置分析 生成铰方程

速度分析
铰模块
T=T+STEPSIZE 力分析
刚体铰模块
加速度分析
柔性体铰
N
T=T_end ?

Y 刚体力模块
End

图 2-13 柔性多体动力学的程序结构

2.方法比较

一旦需要特殊类型的铰或力,就必须扩展铰和力模块。由于程序重用了刚体铰和力模
块,在刚体动力学代码中增加的必要模块仅仅是柔性体铰和柔性体运动方程,所以该方法
不仅易于实现而且便于维护,当需要扩展铰和力库时,避免了柔性体模块的额外耗费;但
该方法由于引入额外构件和铰会导致相应的计算量增加。
笛卡儿坐标算法数值试验研究表明,超过总计算时间 70%的消耗用在各种方程矩阵的高
斯消元上。方程(2-86)直接高斯消元大约需要正比于矩阵规模 3 次方的计算量。若采用非
零项结构,那么像 Harwell Library 这样的稀疏算法算术运算量仅随非零项的线性增加。稀疏
求解器使得注入元数量最小化,仅仅对非零项和注入元进行高斯消元,从而减少运算量。所
以,重要的是增加新的非零项而不扰乱结果矩阵总体非零结构,并且适合于极小化注入元数
量。方程(2-90)和(2-91)分别显示了非零结构。由于虚拟构件的质量和惯量矩为零,质
量矩阵中不增加非零项。方程(2-86)中的非零项总数如表 2-2 所示。注意到消除了过约束,
利用虚拟构件和铰参考系重合而减少了非零项数目。由于方程(2-86)中新增加的非零项
分散在原有的非零项周围,不干扰非零项的总体结构,因此可以采用与原始线性稀疏求解
器类似的稀疏高斯消元重排序列。曲柄滑块机构使用该稀疏解法的计算时间将缩减 50%。

表 2-2 曲柄滑块机构中的非零项
实 验 方 法 非零项的数目
常规的方法 122  10  n mod e
虚拟构件法 188  12  n mod e
*n mod e:模态的数目。
第2章 RecurDyn 基本算法 29

表 2-3 列出了常用铰(转动副、球铰和平动副)的非零项数量,从中可清楚地看出,
系统中的柔性体数量越少,计算时间就越短。然而,有很多铰和力单元的柔性体系统,由
于庞大的虚拟构件数,其计算时间将显著增加。

表 2-3 常用铰的非零项
铰 增加的非零项
转动副  33  n mod e   n virtua lr
球铰  33  3  n mod e   n virtua ls
平动副  33  n mod e   n virtua lt
n virtua lr:由转动副连接的虚拟构件数量。
n virtua ls:由球铰连接的虚拟构件数量。
n virtua lt:由平动副连接的虚拟构件数量。

另一种考虑虚拟构件理念的方法是混合使用上述增广方法与传统计算方法。传统常规
方法用于常用铰和力单元(如旋转副、平动副及某点的作用力),虚拟构件法用于非常规
铰和力单元(如万向节、平面副)。该混合法顾及了计算成本和编程便利,如果已经开发
了一组基本铰和力模块,需要添加更多的柔性体模块时,这种混合法将非常有效。

2.5 柔性多体动力学的广义递归算法

在 Shabana 的柔性多体系统坐标缩减法中,柔性体的局部变形采用节点坐标和模态振
型表示。Vukasovic 和 Celigueta 将 Jalon 的多刚体动力学完全笛卡儿坐标算法扩展至柔性体
动力学领域,通过将运动方程和约束方程的必要矢量定义为广义坐标,减少姿态变换矩阵
相关的非线性。S. S. Kim 和 E. J. Haug 推导了柔性多体系统的变分方程,该变分技术从多
刚体系统拓展至柔性多体系统。Lai 和 Haug 采用扩展的运动图论开发出适用于柔性多体系
统动力分析的递归算法。Cardona 和 Geradin 研究了柔性体系统动力分析的子结构方法。
Nikravesh 在柔性系统动力学分析中采用了铰坐标和有限元法。Pereira 提出了获得空间柔
性多体系统最少数量运动方程的系统方法。
使用 BDF 法和相对广义坐标可将广义递归算法从多体动力学推广到柔性多体动力学
领域。当相对坐标表示的通用程序中增加新的力或者铰模块时,柔性体时分析不可重复使
用刚体计算模块。为减少庞大的负担,可在每个铰和力参考坐标系中引入虚拟刚性构件。
在虚拟构件和原构件参考坐标系间引入了一个柔性铰,用非常实用而结构紧凑的速度变化
法来推导铰空间的运动方程。将运动方程中变换矩阵的相关项分门别类,每类开发出相应
的递归算法。由于相对坐标表示的方程求解时间与相对坐标的数量近似成正比关系,故由
虚拟构件的虚拟铰引发的计算增加量很小,同时显著提高了程序的计算方便性。
30 RecurDyn 多体系统优化仿真技术

2.5.1 两相邻柔性体的相对坐标运动

1.坐标系和虚拟构件

图 2-14 两个相邻的柔性体

图 2-14 中 X -Y -Z 坐标系为惯性参考系, x-y -z  坐标系为构件坐标系。 X -Y -Z 坐标系


中 O 点的速度和虚位移分别为:
r 
ω (2-99)
 

δr 
  (2-100)
δω 
在 x-y -z  坐标系中的对应量分别为:
 r   A r 
T
Y= = T  (2-101)
ω  A ω 

 δr    A δr 
T
δΖ =   =  T  (2-102)
δπ    A δπ 
其中 A 为 x-y -z  坐标系相对于 X -Y -Z 坐标系的姿态矩阵。两个柔性体通过一个铰连
接,其参考系如图 2-14 所示。
假设在 xi1 -yi1 -zi1 坐标系和 xj1 -y j1 -z j1 坐标系之间存在一个铰,在 xj 2 -y j 2 -z j 2 坐标系的原点
有一个力作用。参考系间的运动容许条件可分为两类,一类为两铰参考系间的容许条件,
另一类为柔性体内参考系间的容许条件。在运动铰约束和广义力算法中混合使用这两类条
件。那些将柔性体和刚体的铰模块和力模块分别编程的柔性体计算程序,如 ADAMS 和
DAMS,则需要计算机较长的计算时间,而且编码易于出错,尤其是柔性体复杂的广义坐
标和应变能,柔性体程序比刚体需要更多耗费。
第2章 RecurDyn 基本算法 31

为了减小程序量,在此引入虚拟构件。在每个铰和力参考系,引入质量和转动惯量为
零的虚拟构件,通过虚拟铰将虚拟构件和柔性体连接起来。如图 2-15 所示,在两相邻柔性
体间引入 3 个虚拟构件,除表示柔性体参考系和虚拟构件参考系间的运动学容许条件的虚
拟铰外柔性体上没有其他铰和作用力,因而仅仅需要开发刚体的铰和力模块,在铰模块中
再增加一个柔性体铰。

图 2-15 两相邻柔性体和 3 个虚拟构件

2.柔性体铰的相对运动

虚拟构件往往通过虚拟铰与原有柔性体相连。图 2-16 中虚拟构件参考系的原点为:


ri =ri-1 +Ai-1 ( 0 s(i-1)i +u(i-1)i ) (2-103)
其中, 0 s(i -1)i 和 u(i-1)i 分别是虚拟构件原点相对于柔性体参考系的未变形位置矢量和变
形矢量,Ai 1 是柔性体参考系的姿态矩阵。变形矢量 u(i -1)i 可表示为一组模态振型的线性组合:
u(i -1)i =ΦiR-1q(fi -1)i (2-104)
其中, ΦiR-1 是模态矩阵,该矩阵的列由平移模态振型构成。 q(fi -1)i 的上标 f 为模态坐标
矢量,下标 i 和 i -1 为构件 i 和 i -1 参考系间的广义坐标。

图 2-16 柔性体和虚拟构件之间的柔性铰链
32 RecurDyn 多体系统优化仿真技术

局部坐标系的角速度为:
ωi =A(Ti-1)i ωi- 1 +A(Ti-1)i Φi-θ1q(fi-1)i (2-105)
T T T
在此根据 A ( i-1) i =A
( i-1) i Ai ,对方程(2-103)求导并乘以 A 得: i

ri' = A(Ti-1)i ri-1' - A(Ti-1)i s'(i-1)i ωi-1' + A(Ti-1)i Φi-θ1q(fi-1)i (2-106)


其中, s (i-1)i = 0 s(i-1)i +u(i-1)i ,波浪符号表示斜对称矩阵。联立方程(2-105)、(2-106)
可得柔性铰的速度递归方程:
Yi =B(fi-1)i1Yi -1 +B(fi -1)i 2 q(fi-1)i (2-107)
其中,
 T 
A -A(Ti -1)i s (i -1)i 
B(fi-1)i1 =  (i -1)i
0 A(Ti -1)i 
  (2-108)
 A(Ti -1)i ΦiR-1 
B(fi-1)i 2 =  T 
 A(i -1)i Φiθ-1 
需要注意的是,矩阵 B(fi -1)i1 和 B(fi -1)i 2 仅是柔性体 i-1 模态坐标的函数。
方程(2-107)定义了一个内侧柔性体和一个外侧刚体的运动学关系,内侧刚体和外侧柔
性体的运动学关系也可类似推导。同样,一个柔性体和一个虚拟构件间的虚拟位移递归关系为:
Yi =B(fi-1)i1Yi-1 +B(fi-1)i 2 q(fi-1)i (2-109)
其中,
 T 
A s i (i-1) A(Ti-1) i 
B(ri-1)i1 =  (i-1) i
0 A(Ti-1) i 
  (2-110)
  
-s Φ θ -Φ R
B(ri-1)i 2 =  i (i-1) i-1 i-1 
 -Φ θ 
 i-1 

3.刚性铰的相对运动

两刚体间的刚性铰速度递归关系可通过方程(2-103)~(2-107)类似推导步骤得出:
Yi =B(ri-1)i1Yi-1 +B(ri-1)i 2 q(ri-1)i (2-111)
其中,上标 r 是刚性铰的广义坐标。方程中
 T 
A -A(Ti-1)i ( s (i-1)i  d (i-1)i -A(i-1)i s (i-1)i A(Ti-1) i ) 
B(ri-1)i1 =  (i-1)i
0 A(Ti -1)i 
 
(2-112)
 T 
A ((d  ) +A s (i-1)i A(Ti-1)i H (i-1)i 
B(ri-1)i 2 =  (i-1)i (i-1)i q (i-1)i (i-1)i
 AT H  
 (i-1) i ( i-1) i 
其中, H (i -1)i 由转动轴确定。矩阵 B 仅仅是 q(ri-1)i 的函数。
第2章 RecurDyn 基本算法 33

4.机械系统的图形描述

通过节点和连线表示构件和铰,基于图形理论的前处理过程可获得确定计算顺序的通
路矩阵和距离矩阵。一般计算程序中需要两种顺序:一种是从起始端构件向终端构件的正
向顺序,另一种是从终端构件向起始端构件的反向顺序。
为系统地推导递归算法,将图中构件分成 4 个不相交部分(与广义坐标 qk 相关):
I(qk ) ={广义坐标为 qk 的铰外侧相邻构件}
II(qk )= { I(qk ) 的所有外侧构件,但不包括 I(qk ) 中所有构件}
III(qk )= {起始端构件和 I(qk ) 内侧构件间的所有构件,包括起始构件和内侧构件,但
不包括 I(qk ) 中所有构件}
IV(qk )= { I(qk )  II(qk )  III(qk ) 之外的所有构件}
图 2-17 所示系统的图形描述和计算顺序如图 2-18 所示。如果 qk 属于构件 3、4 之间的
铰链点,则图 2-18 所示系统的 4 个不相交部分为:

图 2-17 柔性曲柄滑块机构

Ground
:正向顺序 R1
:反向顺序 1

:柔性体 F1
Crank
:虚刚体 F5 2 F2

:刚体 R4 8 3 R2
F :柔性体铰
F6 9 4 F3
R :刚体铰
Coupler
F7 10 5
Coupler F4

R5 11
6
R3
12
7
CUT
CUT
Ground
Ground

图 2-18 图形表示和计算顺序
34 RecurDyn 多体系统优化仿真技术

I( q34 )={构件 4}
II( q34 )={构件 5、6、7}
III( q34 )={构件 1、2、3}
IV( q34 )={构件 8、9、10、11、12}

2.5.2 正向递归算法

1.速度递归算法

系统中所有构件的速度 Y 通过方程(2-107)、(2-109)和(2-113)重复递归替换获
得。依据铰的类型,沿图形中正向顺序,通过附加 q r =q f 进而得到:
Y   Βzr Βzf  q r 
Y= f =    =Bq (2-113)
q  0 Ι  q f 
其中, q r 和 q f 分别是系统的相对坐标矢量和模态坐标矢量。令 Y 、 q r 和 q f 的维数分
别为 nc 、 nr 和 nf ,在给定的 q  R nr+nf 下,可由式(2-113)通过符号替换或(2-107)、
(2-109)和(2-111)的 Yi,s 数值递归替换来计算速度 Y  R nc+nf 。两种方法虽然结果相同,
但数值递归替换法更加有效,可由式(2-107)、(2-109)和(2-111)计算给定 q 的矩阵
乘法 Bq 。因为式(2-113)中的 q 是一个 R nr+nf 任意矢量,所以式(2-107)、(2-109)、
(2-111)和(2-113)实际上适用于任何矢量 x  R nr+nf :
X 
X    =Bx (2-114)
x 

X = Bx + Bx (2-115)
其中,矢量 X  R 是 B 和 x 的积,矩阵 B 取决于铰类型。Y  R
nc+nf nc+nf
到 Bx  R nc + nf
的变换实际上是应用式(2-115)进行递归计算,提高了效率。
2. ( X )q = ( Bx )q 的递归算法

对于 k =1...
, ,(nr + nf ),方程(2-115)求关于 qk 的偏微分,得到 (Bx ) q 的递归算法:
(X i ) qk =(B(i -1)i1 )qk X i -1 +B(i -1)i1 (X i -1 )qk +(B(i -1)i 2 )qk X (i -1) i (2-116)
因为矩阵 B 仅取决于铰 (i -1)i 的广义坐标,故对除 q(i -1)i 外的广义坐标偏导数都为零,
即如果 qk 不属于构件 I(qk ) ,偏导数为零。如果构件 i 是 II(qk ) 的一个元素,则式(2-116)
变为:
(X i )qk =B(i -1)i1 (X i -1 )qk (2-117)
如果构件 i 属于 III(qk )  IV(qk ) , X i 不受 qk 的影响。式(2-116)简化为:
(X i ) qk =0 (2-118)
当构件 i  I(qk ) 时有两种递归算法:若构件 i 属于 I(qk ) ,则构件 i-1 自然是其内侧构件,
第2章 RecurDyn 基本算法 35

属于 III(qk ) ,则式(2-116)将简化为:
(X i )qk =(B(i -1)i1 )qk X i -1 +(B(i -1)i 2 )qk X (i -1)i (2-119)
如果构件 i 和 i-1 属于 I(qk ) ,式(2-116)的递归算法将简化为:
(X i )qk =(B(i -1)i1 )qk X i -1 +B(i -1)(
i1 X ( i -1))qk
+(B(i -1)i 2 ) X (i -1)i (2-120)
qk

式(2-117)~(2-120)用于计算图 2-18 所示系统的 Y q34 ,计算过程如图 2-19 所示。BX


和 (BX )q 的递归算法可类似求得,在此不再赘述。
Ground

(B011 )q34 =0
(B012 )q34 =0

(Y1 )q34
=0

(B121 )q34 =0
(B122 )q34 =0

(B891 )q34 =0 (Y8 )q34 (B281 )q34 =0 (Y2 )q34 (B231 )q34 =0 (Y3 )q34 (B341 )q34
(B892 )q34 =0 =0 (B282 )q34 =0 =0 (B232 )q34 =0 =0 (B342 )q34

(Y9 )q34
(Y3 )q34
=0
=(B341 ) q34 Y3

(B9101 )q34 =0 +(B342 ) q34 q34

(B9102 )q34 =0
(B451 )q34 =0
(Y10 )q34
(B452 )q34 =0
=0

(Y5 )q34
(B10111 )q34 =0
=B451 (Y4 )q34
(B10112 )q34 =0

(Y11 )q34 (B561 )q34 =0


=0 (B562 )q34 =0

(B11121 )q34 =0 (Y6 )q34


(B11122 )q34 =0 =B561 (Y5 )q34

(Y12 )q34 (B671 )q34 =0


=0 (B672 )q34 =0

(Y7 )q34
=B671 (Y6 )q34

图 2-19 Yqii 计算过程


36 RecurDyn 多体系统优化仿真技术

2.5.3 反向递归算法

1.力递归算法
多数情况下,需要将 R nc+nf 中的矢量 G 变换到 R nr+nf 中的新矢量 g =B T G 。这样的变换
可用于笛卡儿空间的已知力求解铰空间的广义力。 Q  R nc+nf 的虚功为:
T Q c 
W = Z Q  Z T q fT   f  (2-121)
Q 
其中,Z 是系统所有铰的运动容许;Q c 和 Q f 是分别为笛卡儿力和模态力。用虚位移
关系代入式(2-121)可得:
* *
W =q rT BzrT Q c +q fT (BzrT Q c +Q f )=q rT Q r +q fT Q f (2-122)
* *
其中, Q r =BzrT Q c , Q f =BzfT Q c +Q f 。式(2-122)可写成如下两项之和:
rT r* fT f*
W = Σ qi (i+1)Qi (i +1) +i (i +1)Σfjtsqi (i +1)Qi (i +1)
i ( i +1)rjts
(2-123)

其中 rjts 和 fjts 分别代表所有刚体铰和柔性体铰。


另一方面,从终端构件往内侧构件方向对式(2-121)进行递归虚位移关系符号替换,
并对方程关于相对虚位移和模态位移进行重组,得到
 
 
rT
W = Σ qi (i +1)  Σ Bir(Ti+1)2 Qic+1 +Si +1 
i (i +1)rjts lI(qi ( i +1) ) 
(2-124)
 f 
 
fT
+ Σ qi (i +1) Qi (i +1) Σ Bi ( i +1) 2 Qi +1 +Si +1  fT c

i ( i+1)fjts  lI(qi ( i+1) ) 


此处,若 i+1 为终端构件, Si +1  0
S i +1 
lI(q
Σ 
B (Ti+1)( i + 2) Qic+2 +S i +2  (2-125)
(i +1)( i+2 ) )
* *
Q f 和 Q r 的递归算法可由式(2-123)和(2-124)两式联立得到:
Qi*(i +1) =Qi (i +1) + Σ
lI(qi ( i +1) )

BiT( i +1)2 Qic+1 +Si +1  (2-126)

其中,对于刚性铰及连接内侧柔性体和外侧虚拟构件的柔性铰, Qi (i +1) =0 ;对于连接


内侧虚拟构件和外侧柔性体的柔性铰, Qi (i +1) =Qi f(i +1) 。
因为 Q 是 R nc+nf 中的一个任意矢量,式(2-121)和(2-126)适用于 R nc+nf 的任意矢量
G 。计算矩阵乘积 B T G 以提高计算效率:
gi (i +1) =Gi (i 1) + Σ
lI(q

BiT( i+1)2 Gic+1 +Si +1  (2-127)
i ( i +1) )

其中, g 由 B T G 得到, Gi (i +1) 可定义为式(2-126)中的 Qi (i +1) ,


Si +1  0 (2-128)
第2章 RecurDyn 基本算法 37

如果 i+1 为终端构件,则
Si +1 
lI(q
Σ 
B(Ti +1)( i +2)1 Qic+2 +Si +2  (2-129)
( i +1)( i +2) )

反向求解获得 g =B T G ( G 是 R nc +nf 的常矢量)时,式(2-127)必须应用于所有铰。

2. gqk =(B T G )qk 的递归算法

通过在式(2-127)中用 i-1 替换 i 、在式(2-129)中用 i-1 替换 i +1 ,并关于 qk 求偏导


可得到 (B T G )qk 的递归算法:

g  (i -1)i q
k
=  G(i -1)i  +
qk Σ
lI(q (i -1)i )
 B  G +S 
T
(i -1)i 2 qk
c
i i

(2-130)
+ Σ
lI(q

B(Ti -1)i 2 Gic +Si  qk
(i -1)i )

S 
(i -1) q
k
= Σ
lI(q(i -1)i )
 B  G +S  + Σ
T
(i -1)i1 qk
c
i i
lI(q(i -1)i )

B(Ti -1)i1 Gic +Si  qk
(2-131)

因为 G  R nc +nf 是常矢量,故 Gqk =0 。如果 i  II(qk )  III(qk )  IV(qk ) ,则 B 不是 qk 的


函数,关于 qk 的偏导数为零。所以,式(2-130)和(2-131)可简化为:
g  (i -1)i q
k
=  B(Ti -1)i 2  Si 
qk
(2-132)
lI(q (i -1)i )

 Si -1 q k
=  B(Ti -1)i  Si q
k
(2-133)
lI(q (i -1)i )

对 于 终 端 构 件 ,  Si q =0 。 因 此 对 于 i  II(qk) IV(qk ) ,  Si q =0 。 所 以 , 对 于
k k

i  II(qk) IV(qk ) ,式(2-132)变为:


(g(i -1)i )qk =0 (2-134)
在构件 i  I(qk)的情况下有两种递归算法。如果构件 i  I(qk)和构件 i +1  II(qk),且
 Si q =0 ,则式(2-130)和(2-131)可变为:
k

g  (i -1)i q
k
= 
lI(q
 B   G +S 
(i -1)i )
T
(i -1)i 2 qk
c
i i (2-135)

 Si-1 qk    B   G +S 
T c
(i -1)i1 i i (2-136)
lI(q(i -1)i ) qk

当计算 B T G 时,需要保存 Si 。该递归算法可用来计算 (B TG )q 。例如求解图 2-17 所示


系统的 (g )q =(B TG )q ,图 2-20 显示了 qk =q34 的情况。注意到, (g )q34 要么为零,要么很容
34 34

易计算。

2.5.4 求解控制方程

1.运动方程的隐式积分

通过速度变换法获得铰空间的约束机械系统动力学运动方程:
38 RecurDyn 多体系统优化仿真技术

F =B T (MY +Φ TZ λ  Q ) (2-137)

Ground

(g01 )q34 =B012 (S1 )q34

(S1 ) q34 = B121(S 2 ) q34

(g12 )q34 =B122 (S2 )q34

(S 2 ) q34 = B231 (S 3 ) q34

(g28 )q34 =0 (g23 )q34 =B232 (S3 )q34

(S 8 ) q34 =0 (S 3 ) q34 =( B341 ) q34 (G4c +S 4 )

(g89 )q34 =0
(g3 )q34 =(B342 )q34 (G 4c + S4 )
(S9 )q34 =0
(S 4 ) q34 =0

(g910 )q 34 =0
(g45 ) q34 =0

(S10 )q34 =0
(S5 )q34 =0

(g1011 )q34 =0
(g 56 )q34 =0

(S11 ) q34 =0
(S 6 ) q34 =0

( g1112 ) q34 =0
(g 67 )q34 =0

(S1 2 )q34 =0
( S7 )q34 =0

图 2-20 (g )q34 =(B TG )q34 的计算过程

其中,Φ 和  分别表示剪断铰和相应的拉格朗日乘子;M 是质量矩阵,Q 是力矢量(包


括外力、应变能产生的力和速度引起的力)。
运动方程、约束方程、 q =v 和 v =a 构成了微分代数方程(DAE)。对于微分代数方程,
应用“切空间法”可得到如下非线性方程系统:
U 0T (qn +β0 vn +β1 ) 
 T 
U 0 (vn +β0 an +β2 ) 
 F (q ,v ,a ,λ ,t ) 
H (pn )=  n n n n n 
=0 (2-138)
 (qn ,t n ) 
 
 (qn ,vn ,tn ) 
  
 (q ,v ,
n n n nz ,t ) 
第2章 RecurDyn 基本算法 39

T
其中, pnT = qnT ,vnT ,anT ,λnT  , β0 , β1 和 β2 由 BDF 法的系数决定。选择 U0 以保证增广
U T 
矩阵  0  是非奇异阵。用牛顿法求解方程(2-138)所示非线性系统:
q 
H (pn )Δp =-H (2-139)
(i +1) (i )
pn =p +Δp,i =1,,,
n 2 3 ... (2-140)
U β0U T
0 0 0 
T
0
 T

0 U 0 β0U 0T 0 
F F Fa Fλ 
H (pn )= 
q v
其中, (2-141)
q 0 0 0 
 
q v 0 0 
 
q v a 0 
因为 F q 和 q 是 q、v、a、  的高度非线性函数,所以在推导矩阵 H p 的非零表达式
时应谨慎,以便能有效计算。

2.广义递归算法的应用

观察 H p 可知,需要计算 F q 、 Fv 、 Fa 、q 、q 、q 的偏导数。在此只讨论 F q ,


其余参数可依此类推。
在方程(2-137)中,矩阵 B 关于矢量 p 求导得到三维矩阵。为了避免三维矩阵的符号
变复杂,将方程(2-137)对于每个广义坐标 qk 逐个求导,因而
Fqk =BqTk (MY +ZT λ-Q )
(2-142)
+B T (M (Y )qk +(ZT λ-Q )qk ),k =1,2,3,...,nr + nf
( ΦZT λ-Q )项很容易用笛卡儿坐标表示,所以应用链路原则可得到:
(ZT λ-Q )qk =(ZT λ-Q ) Z Bk ,k =1,2,3,...,nr + nf (2-143)
利用 Z / q =B,Bk 表示矩阵 B 中的第 k 列。利用 BqTk G ( G =(MY +ZT λ-Q ) )的递归算
法可求出式(2-142)的第一项。所有 k 的 (ΦZT λ-Q ) 集构造了 (ΦZT λ-Q ) 阵。矩阵 (ΦZT λ-Q )TZ 由
nr+nf 列 R nc+nr 矢量构成。因此,通过 BqTk G (其中 G 是矩阵 (ΦZT λ-Q )TZ 的每列矢量)可求解
( ΦZT λ-Q )的数值结果。最终,通过 BqTk G (其中 G =(MY +ΦZT λ-Q ) 和 Y qk 递归获得)可得
到方程(2-142)的第二项。

2.6 大变形问题的相对节点法

很多几何非线性分析的平衡方程基于总体拉格朗日算法或修正拉格朗日算法。由于在
40 RecurDyn 多体系统优化仿真技术

总体拉格朗日算法中所有的位移量都与初始构形有关,平衡方程的结果相对较为简单。然
而当结构经历大位移时,将面临转动相关的非线性所带来的麻烦。而在修正拉格朗日算法
中,所有的位移量都与前一次计算出的构形有关,若载荷增量较小,转动相关的非线性程
度相对较低。但若载荷增量较大,也会碰到与总体拉格朗日算法同样的问题。
Avello 根据相对于初始构形的运动变量,在动坐标系中表示应变,所以有限刚体变形
的应变是不变量。Shabana 提出柔性多体动力学的绝对节点坐标算法,重新表示所有有限单
元。Shimiz 考虑了转动惯量的影响,该方法也是基于绝对节点坐标。此外,许多学者提出
了动参考系法,动参考系用于描述一个有限刚体的运动,柔性体点的变形叠加于刚体运动
之上。

2.6.1 相对变形运动

1.结构的图论表示

在建立平衡方程时采用相对节点位移法。通过沿通路所有节点的相对变形量叠加获得
节点的绝对变形量,故在建立总体系统平衡方程之前,必须先确定单元间的连接信息。因
此,对于有限元离散化系统结构必须进行拓扑分析。

(a)5 节点的悬臂梁 (b)悬臂梁的图形表示


图 2-21 悬臂梁

离散系统可用图形表示,每一节点和单元分别用相应的点和线表示,如图 2-21(b)所
示为图 2-21(a)所示系统的图形表示。若一个结构的图形表示中有一个回路,则称为闭环
系统。否则,称为开环系统。
一个展开树可以描述一个不含闭环的结构,没有子节点的节点称为终节点,没有父节
点的节点称为基节点。如图 2-21(b)中的节点 4 和节点 0 分别是终节点和基节点。在相对
位移算法中必须定义两个计算顺序,一个是从基节点至终节点的正向顺序,另一个是从终
节点至基节点的反向顺序。图 2-21(b)表示了图 2-21(a)的两个顺序。

2.运动学定义

考虑一个由两个有限梁单元组成的系统,如图 2-22 所示。设节点 i  1 和 i 分别为节点 i


和 i  1 的内节点, X - Y - Z 是惯性参考系,而 xk -yk -zk (k  i, j ) 为节点 k 的节点坐标系,rk 是
节点 k 的位置矢量, x(i 1)i -y(i 1)i -z(i 1)i 是节点 i 的参考坐标系,第一个下标 i  1 表示第二个下
标 i 所代表的节点的内节点号。在未变形状态下, x(i 1)i -y(i 1)i -z(i 1)i 坐标轴的方向与 xk -yk -zk
一致。传统的有限元法可计算出 X -Y -Z 坐标系中节点的绝对位移。不同于传统方法,下面
将求解节点在其内节点坐标系中的相对节点位移。
第2章 RecurDyn 基本算法 41

(a)两个有限梁单元 (b)梁单元的图形表示
图 2-22 由两个梁单元组成的系统

节点的相对位置和方向位移的广义坐标分别表示为 u(' i 1)i 和  ('i 1)i 。节点 i 在 X -Y -Z 坐


标系下的位置和姿态可通过节点 i  1 的相应量和相对节点位移表示:

ri  r(i 1)  A(i 1) s(' i 1)i 0  u(' i 1)i  (2-144)

 
Ai  Ai 1 D(i 1)i  ('i 1) i C(i 1)i (2-145)
其中:
T
 ('i 1)i   ('i 1)i1 ('i 1) i 2 ('i 1) i 3  (2-146)
在式(2-144)和(2-145)中, A( k k  i  1,i) 表示节点参考系 k 的转换矩阵, C(i 1)i 表
示由 xi - yi - zi 转换到 x(i 1)i - y(i 1)i - z(i 1)i 的常转换矩阵, s(' i 1)i 0 表示未变形状态下节点 i 在
x(i 1) - y(i 1) - z(i 1) 下的位置矢量,u(' i 1)i 表示节点 i 相对于节点坐标系 i  1 的变形矢量。D(i 1)i
表示因 x(i 1)i - y(i 1)i - z(i 1)i 相对于节点坐标系 i  1 的转动位移的转换矩阵,用欧拉角 1-2-3 表
示为:
D(i 1)i  D1 ( ('i 1)i1 ) D2 ( ('i 1)i 2 ) D3 ( ('i 1)i 3 ) (2-147)
将式(2-144)变形后得到
 
ri'  A(Ti 1) r('i 1) - A(Ti 1)i s(' i 1)i 0  u (' i 1)i '(i 1)  A(Ti 1)i u(' i 1) (2-148)
其中,带波浪符号的变量表示由矢量元素组成的斜对称阵,且 A(i 1)i 定义为
A(i 1)i  A(Ti 1) Ai (2-149)
节点 i 与 i  1 之间的虚转动关系为:
δπi'  A(Ti 1)i (' i 1)  A(Ti 1)i H (i 1)i  ('i 1)i (2-150)
其中:
1 0 sin( ('i 1)i 2 ) 
 
H (i 1)i  0 cos( (i 1)i1 )  sin( (i 1)i1 ) cos( (i 1)i 2 ) 
' ' '
(2-151)
0 sin( ('i 1)i1 ) cos( ('i 1)i1 ) cos( ('i 1)i 2 ) 
 
联立式(2-148)和(2-150)得到一对相邻单元间的递归虚位移方程:
42 RecurDyn 多体系统优化仿真技术

Zi  B(i 1)i1Z (i 1)  B(i 1)i 2 q(i 1)i (2-152)


其中:
T
Z k  rkT 'T
k 
 (k  i  1, i) (2-153)
T
q(i 1)i  u('Ti 1)i  ('Ti 1)i  (2-154)
 AT 0   I ( s(' i 1)i 0  u (' i 1)i ) 
B(i 1)i1   (i 1)i   (2-155)
 0 A(Ti 1)i   0 I 
 AT 0  I 
B(i 1)i 2   (i 1)i 
T  (2-156)
 0 A   H (i 1)i 
( i 1) i

需要注意的是,矩阵 B(i 1)i1 和 B(i 1)i 2 表示的仅仅是节点 i  1 和 i 间的相对位移函数


q(i-1)i 。
沿着图中链路多次应用式(2-152),可得到整个系统的绝对和相对节点坐标系间的虚
位移关系。图 2-21 所示结构的笛卡儿坐标和相对坐标虚位移关系如下:
Z  Bδq (2-157)
其中:
T
Z  Z1T Z 2T δZ 3T δZ 4T  (2-158)
T
q  q01
T T
q12 T
q23 T
q34 
 (2-159)
T
 B012 0 0 0 
 B121 B012 B122 0 0 
B (2-160)
 B231 B121 B012 B231 B122 B232 0 
 
 B341 B231 B121 B012 B341 B231 B122 B341 B232 B342 

2.6.2 平衡方程

1.应变能

多节点有限单元的应变能只受相对于单元内节点坐标系的相对位移的影响,与刚体运
动无关。所以,系统的应变能变化可表示为:
n
W   q(Tk 1) k K ( k 1) k q( k 1) k  q T Kq (2-161)
k 1

q 须容许所有运动学约束。由于刚度矩阵在节点坐标系产生,故在式(2-161)中没
有出现因刚体运动而导致的节点应变能。单元的刚度矩阵 K ( k 1) k 由线性部分和非线性部分
组成:
K ( k 1) k  K (Lk 1) k  K (nkL1) k (2-162)
第2章 RecurDyn 基本算法 43

其中:
l( k 1) k
K (Lk 1) k   *( Tk 1) k  (Lk 1) k *( k 1) k dx (2-163)
0
li ( i 1)
K (nLk 1) k   *( Tk 1) k  (nLk 1) k *( k 1) k dx (2-164)
0

式(2-161)~(2-163)中,K (Lk 1) k 表示线性刚度矩阵,K (nLk1) k 表示非线性刚度矩阵,l( k 1) k


表示未变形状态节点 k  1 与 k 间的单元长度。

注意: K (nLk1) k 的重要程度取决于 q( k 1) k 的幅值。当 q( k 1) k 很小时 K (nLk1) k 可忽略不计,符


合小尺寸单元的实际情况。用解析方法证明 K (nLk1) k 重要性非常困难。

2.外力
由绝对坐标系的节点力 Q 和相对节点坐标系的节点力 R 所做的虚功为:
W  Z T Q  q T R (2-165)
Z 须容许 Z 和 q 间的运动关系。将 Z  Bq 代入式(2-165),得到:
W  q T ( B T Q  R)  q T Q* (2-166)
其中:
Q*  B T Q  R (2-167)

3.约束

上述方法中节点位移是相对内节点参考系测量的,相对节点位移仅仅能在树形拓扑结
构中定义。因此,闭环系统必须展开成树状拓扑结构。通常可用剪断铰方法处理闭环系统。
移除闭环系统的一个节点,引入相应的剪开约束方程以补偿移除节点。图 2-23 所示闭环系
统的图形表示如图 2-24 所示。

图 2-23 闭环系统 图 2-24 图 2-23 所示闭环系统的图形表示

例如,在节点 5 处剪开,从而形成树形系统如图 2-25 所示。根据几何一致性可得到剪


断处的约束方程。根据式(2-144)和(2-145),沿正向顺序节点 5 的位置和姿态矩阵为:
5

r5   A( k 1) s(' k 1) k 0  u(' k 1) k  r5*  (2-168)
k 1
44 RecurDyn 多体系统优化仿真技术

5
A5  A0  D( k 1) k C( k 1) k  A5* (2-169)
k 1

图 2-25 图 2-23 系统响应的树形结构

r5* 和 A5* 由节点 5 的边界条件给出。式(2-169)由 9 个相关方程组成,其中只有 3 个


是独立方程,通过施加参考系轴间的正交关系求出 3 个独立约束方程,所以可以给出 6 个
独立约束方程:
 r5  r5* 
 T * 
a a51 
   53 (2-170)
 a53
T * 
a52
 T * 
 a51a52 
式中:
A5  a51 a52 a53  (2-171)
A5*  a51
* *
a52 *
a53 
 (2-172)
* *
上面两式中, a5i 和 a5i 分别表示 A5 和 A5 的第 i 个列矢量。

4.平衡方程
对于闭环系统,相对变形 q 是非独立的, q 须满足式(2-170),从式(2-170)可得:
  q q = 0 (2-173)
对约束系统,可应用拉格朗日乘子定理获得以下平衡方程:

q T Kq  Q*  qT   0  (2-174)
其中 q 是任意的,正由于 q 是任意的,其系数必须为零,因此得到
F  q,    Kq  qT   Q*  0 (2-175)
式(2-175)的方程数少于未知量数,无法确定出未知量。因此,补充约束方程(2-170)
以求解 q 和  。同时求解式(2-170)和(2-175)可获得变形 q 。由于方程中的  、q 和 Q*
均为 q 的非线性函数, q 可以通过牛顿-拉夫逊方法求解:
 Fq qT   q  F 
      (2-176)
q 0      
式中:
Fq  K  (qT   Q* )q (2-177)
求解式(2-176),可获得下一步迭代的修正解:
q = q + q (2-178)
利用式(2-176)和(2-178),持续迭代直至将误差控制在给定的容许范围。在求解
式(2-176)之前,须先计算 Fq ,但 Fq 的数值计算非常困难、繁琐。为节省式(2-176)的
计算时间,可采用多种近似数值方法。例如,当有限单元长度很小时,q 的变化也很小,
第2章 RecurDyn 基本算法 45

式(2-176)的系数矩阵可近似视为常数。在这种情况下,在牛顿-拉夫逊迭代过程中,式
(2-176)的系数矩阵保持不变,这大大减少了计算时间。然而,对于 q 变化很大的系统,
近似方法可能导致不收敛。为解决这些数值问题,可联合使用增量和迭代法。

2.6.3 数值算法

为求解结构的相对和绝对节点位移,闭环系统的数值算法如下。
(1)图论前处理,确定出计算顺序。
(2)形成刚度矩阵 K。
(3)为反向次序中的 q k 计算  、 q 和 Q* 。
(4)求解 q 和  。
(5)若 F 和 q 在给定的误差容许范围内,则继续进行步骤(6);否则,用式(2-178)
修正解,进行步骤(3)。
(6)用式(2-144)和(2-145)计算正向顺序的笛卡儿变形。

2.6.4 数值算例

如图 2-26 所示,分析自由端施加转矩 M 的悬臂梁的静力变形。


图中已知杨氏模量 E 、泊松比 、梁的长度 L 、横截面积 A 和横截面二次矩 I 。在自
由端施加 M  6.545  10(
6
N  m)的力矩。图 2-27 显示了结果比较,其中 Proposed 是前面介
绍的大变形的相对节点法,ANSYS:nolinear 和 ANSYS:linear 分别是 ANSYS 的非线性和线
性分析结果。从中可以看出大变形的相对节点法和 ANSYS 非线性分析结果几乎相同,但
ANSYS 线性分析的结果却有很大的差异。

图 2-26 末端施加转矩的悬臂梁 图 2-27 梁的变形情况

图 2-28 显示了自由端节点的轴向变形 ue 的收敛情况。当单元数较少时,ANSYS 静力


的结果比用大变形的相对节点法精确,但随着单元数量的增加,大变形的相对节点法求解 ue
的收敛速度迅速提高。如图 2-28 所示,当单元数量大于 6 时,两种方法的结果几乎相同。
可以看出,当单元数量增加时,非线性刚度矩阵的影响迅速降低。
46 RecurDyn 多体系统优化仿真技术

图 2-28 不同单元数量下末端节点轴变形量的收敛情况比较

如图 2-29 所示是在 P 点施加了集中力 F 和力矩 M 的闭环系统,如图 2-30 所示为在 P


T
点处施加载荷 F  3  104 1  104  (N), M  0.0(N  m)时的系统变形。从中可以看出,
大变形的相对节点法和 ANSYS 分析的结果几乎相同。

图 2-29 在闭环系统上施加集中力和力矩 图 2-30 闭环系统的变形形状比较


T
如图 2-31 所示为在 P 点处施加载荷 F  3  104 1  104  (N), M  3.0  10(
4
N  m)
时的系统变形。采用大变形的相对节点法进行数值求解在第 7 次迭代后收敛,而用 ANSYS
分析则无法收敛。图 2-32 显示了在每一载荷步的系统变形。

图 2-31 闭环系统变形前后情况 图 2-32 各载荷阶段下的闭环系统变形情况


第2章 RecurDyn 基本算法 47

2.7 一种有效的接触搜索算法

下面介绍一种采用相对坐标系的多体动力学接触分析算法,即位形空间法与边界盒法
的混合接触检测算法。一个接触对的两个体从逻辑上分为定义接触参考系的防御体和相对
防御体运动的撞击体。防御体外形近似为许多三角形碎片,投射至接触参考系轴,包含基
面的边界盒内部划分成在接触参考系轴上索引的若干块。接触对的接触搜索过程分为广义
和狭义阶段,撞击体与防御体的相对位置矢量投影于接触参考系轴上,在广义阶段选择即
将进入接触的候选特征,这将大大减少搜索工作。搜索过程包括预搜索和后搜索。在预搜
索阶段,采用边界盒技术寻找近似的接触状态。一旦在预搜索阶段检测到接触,将在后搜
索阶段进一步检测详细的接触情况。采用相对坐标算法生成运动方程,采用局部参数法解
决微分代数方程。当接触即将发生时,积分步长会自动减小。

2.7.1 接触对的运动学表示

如图 2-33 所示的接触对,撞击体和防御体的外形分别称为撞击边界和目标边界。
X-Y-Z 坐标系是惯性参考系,而 X '- Y '- Z ' 基本坐标系是构件参考系。构件参考系的方
向和位置分别表示为 A 和 r。
两个基本坐标系分别是撞击体的节点参考系和防御体的面和接触参考系。防御体的所
有几何变量基于面参考系测量。接触对的接触参考系定义在防御体边界盒的左角,撞击体
相对防御体的相对位置和方向定义为广义坐标 d ch " 和 Ach ,如图 2-34 所示。因此,广义坐
标系可直接用于检测接触对的接触。

图 2-33 接触副的运动学表示 图 2-34 接触参考系和广义坐标


48 RecurDyn 多体系统优化仿真技术

2.7.2 接触区域划分

面-面接触问题可用多个球-面接触替代。下面重点讨论球-面接触问题。
在许多 CAD 软件中,光滑形状物体的轮廓采用 3D NURBS(非均匀有理 B 样条)表
示。寻找两个面的交线或交点的计算量非常大,一般将防御体表面近似为三角形碎片,撞
击体的边界用一组球表示,如图 2-35 所示。碎片和球的数量由计算精度决定。
如图 2-36 所示是将空间防御面的边界盒划分成许多处于块内或块上的碎片,以有效地
进行接触检测。由于块的位置依据防御体上的接触参考系而列表,故是常量,因而不需要
在每个时间步长上计算位置,大大减少了接触搜索的计算时间。

图 2-35 近似的防御体和撞击体 图 2-36 碎片和块的关系:碎片 p 位于块 b

2.7.3 预搜索

必须检查接触对中撞击体的边界节点和防御体的碎片以检测彼此间的接触,计算量非
常大。为降低计算量,可对撞击体的每个节点进行搜索以寻找预搜索阶段的接触域块,如
图 2-37 所示。

图 2-37 在预搜索阶段的节点和块

撞击体参考系相对接触参考系的位置和方向可直接从广义坐标 d ch " 和 Ach 中获得,因此


第2章 RecurDyn 基本算法 49

撞击体相对接触参考系的节点位置可由下式得到
d cn "  d ch " Ach sn ' (2-179)
其中,sn ' 是撞击体相对接触参考系的节点位置。接触状态通过 d ch " 和防御体块位置的
直接比较得出。
如果一个节点与一个块处于接触状态,则将进行后搜索。后搜索仅仅针对在预搜索中
发现的块中的碎片进行。

2.7.4 后搜索和柔性接触力

在预搜索阶段筛选了用于后搜索的候选防御体碎片,对于候选的碎片,需要计算穿深
量,进而计算接触力,如图 2-38 所示。

图 2-38 后搜索阶段的节点和碎片

碎片参考系中节点相对位置 d pn " 为:
d pn "  d cn " s p1 '' (2-180)
将矢量 d pn ''' 投影至碎片参考系:
d pn "'  C Tp d pn '' (2-181)
其中, C p 是碎片参考系相对于接触参考系的方向矩阵。
后搜索的第一步是通过检测 d pn ''' 来检查节点与碎片是否接触。若不接触,跳过后续步
骤。若接触,计算节点与碎片的穿深量:
  r  n p '''T d pn ''' (2-182)
其中,  始终为正; n p ''' 是碎片的法向矢量,是关于碎片参考系的常矢量。
法向接触力为:
δ  m 2 m 3
f n  k m1  c δ  (2-183)
δ
其中,k 和 c 分别是由试验决定的刚度系数和阻尼系数; δ 是  的时间导数; m1 和 m2
是非线性接触力指数;指数 m3 产生凹痕阻尼效应,当穿深非常小时,由于负的阻尼力可能
导致接触力为负,这不符合实际,通过 m3 大于 1 克服这种不合理现象。
摩擦力为:
50 RecurDyn 多体系统优化仿真技术

f f   fn (2-184)
其中,  是摩擦系数,其符号和数值由接触位置接触对的相对速度决定。

2.7.5 递归算法的运动学和运动方程

前面介绍的接触搜索算法利用了接触对的相对位置和方向矩阵。下面介绍接触对及连
接铰的相对坐标运动学。
x - y - z 坐标系中 x '- y '- z ' 坐标系的平动速度和角速度为:
 r 
w  (2-185)
 
x '- y '- z ' 参考系的相应量为:
 r '   A r 
T
Y   T  (2-186)
 w '  A w 
其中,Y 是平移速度和旋转速度的组合。临近构件对间的虚速度递归关系为:
Yi  B(i 1)i1Y(i 1)  B(i 1)i 2 q(i 1) i (2-187)
其中, q(i 1)i 表示相对坐标矢量。值得注意的是,矩阵 B(i 1)i1 和 B(i 1)i 2 仅仅是 q(i 1)i 的函
数。虚位移递归关系为:
Zi  B(i 1)i1Z (i 1)  B(i 1)i 2 q(i 1)i (2-188)
将式(2-187)分别应用于各个铰,可得到笛卡儿坐标和相对坐标的广义速度关系:
Y  Bq (2-189)
其中,B 是 q(i 1)i 的系数集,且
T
Y  Y0T , Y1T , Y2T ,, YnT  (2-190)
nc1
T
q  Y0T , q01
T T
, q12 , , q(Tn 1) n  (2-191)
nr 1

其中,nc 和 nr 分别表示笛卡儿坐标数和相对坐标数。由于方程(2-189)中的 q 是 R nr
的任意矢量,因此方程(2-187)和(2-189)适用于任何矢量 x  R nr 。
X  Bx (2-192)

X i  B(i 1)i1 X (i 1)  B(i 1)i 2 x(i 1)i (2-193)
其中,结果矢量 X  R nr 是 B 和 x 的乘积。因此,通过递归地应用式(2-193)进行 x  R nr
到 Bx  R nc 的转换计算可提高计算效率。
相反,通常需要将 R nc 的矢量 G 转换到 R nc 的矢量 g  B T G ,在笛卡儿空间已知力的
铰空间计算广义力的过程中可找到这样的转换。笛卡儿力 Q  R nc 的虚功为:
W  Z T Q (2-194)
Z 须对系统所有铰运动容许。将 Z  Bq 代入方程(2-194)得
W  q T B T Q  q T Q* (2-195)
第2章 RecurDyn 基本算法 51

其中, Q*  B T Q 。
约束系统的运动方程为:

F  B T ( MY ZT   Q )  0 (2-196)


其中,  是 R 剪断铰的拉格朗日乘子矢量;  表示 R 的位置约束矢量;M 和 Q 分
m m

别是质量矩阵和包含接触力的笛卡儿空间力矢量。
通过引入 q  v ,运动方程和位移方程隐式表示为:
F (q , v , a ,  )  0 (2-197)
 (q )  0 (2-198)
位移约束连续微分得到:
 (q, v )  q v  v  0 (2-199)
 (q, v ,v )  q v    0 (2-200)
方程(2-197)和所有约束组成了朝定微分代数系统(ODAS)。一种解决 ODAS 的后
差法(BDF)为:
 F (q, v , v,  ) 
Φ (q) 
 
Φ (q, v ) 
H ( x)    0 (2-201)
Φ (q, v , v ) 
 T 
U 0 (q   0 v +1 ) 
 T 
U 0 (v   0 v + 2 ) 
T
其中,x  q T ,v T , v T ,  T  ; 0 ,1 和  2 取决于隐式积分系数;U 0 是一个 nr (nr-m)
U T 
矩阵,所以增广矩阵  0  是非奇异的。
q 
式(2-201)中方程数和未知数相同,所以可以解出 xn 。可用牛顿法求解 xn 。
H x x   H (2-202)
i 1
x  x  x ,
i
i =1,2,3, (2-203)
 Fq Fq Fq Fq 
 
 q 0 0 0 
  v 0 0 
Hx   q 0 (2-204)
 q
 v a 0 
 UT  0U 0T 0 0 
 0 
 0 U 0T  0U 0T 0 
推导式(2-202)中 H x 和 H 的递归算法以有效地进行计算。
52 RecurDyn 多体系统优化仿真技术

2.7.6 数值积分策略

成功数值积分步的充分条件是满足无接触系统状态变量的精度和稳定性。假设子弹与
目标相撞,如果目标很薄,子弹无声息就穿过目标;如果目标很厚,中等大小的步长满足
精度和稳定性,子弹在接触的第一步穿透太深,由较大穿深引起的大的骤加接触力往往引
起状态变量的大数值误差,从而导致积分步的失败。因此,在决定积分步时必须考虑接触
条件。为了使系统从非接触状态尽可能光滑地过渡到接触状态,必须精确地预测接触时间。
接触对双方距离很远,必须通过大量的搜索计算准确预测接触时间。解决该问题简单而实
用的方法是回溯法。

图 2-39 节点的缓冲半径

在此采用图 2-39 所示的缓冲半径概念。在后搜索阶段,如果撞击体中半径节点没有与


防御体的候选线接触,而缓冲半径的节点处于接触状态,那么将缩小积分步。

2.8 闭环多体系统的线性运动方程

线性化是了解非线性系统在某一状态下系统特性的重要工具。
多体系统的运动方程是关于相对位置、相对速度和相对加速度的高度非线性化方程。
摄动运动方程以获得线性化。鉴于运动方程的高度非线性,对于一个由多个构件和铰组成
的多体系统,摄动涉及到大量的算术运算。对于无约束开环系统,运动方程为常微分方程,
其关于相对坐标、相对速度和相对加速度的偏导数可通过多种方法求得。而对于有约束的
闭环系统,由于约束和相应的拉格朗日乘子,不再能直接使用与无约束开环系统相同的方
法。一种直观处理约束的方法是仅仅用独立的相对坐标、相对速度和相对加速度表示运动
方程。为了达到这个目标,相对坐标必须分成独立的和非独立的坐标,且非独立坐标、速
度和加速度直接以独立的变量表示。然而,由于位置、速度和加速度约束,且运动方程是
坐标、速度和加速度的隐式函数,独立和非独立坐标、速度和加速度紧密相关且非线性耦
合。因此,非独立的坐标、速度和加速度以独立变量直接表示,进而仅用独立坐标、速度
和加速度表示运动方程是非常困难的。
第2章 RecurDyn 基本算法 53

运动方程左乘约束雅克比矩阵零空间,消去拉格朗日乘子,将运动方程变成了常微分
方程的最小形式,所求得的微分方程仍然是关于所有相对坐标、相对速度和相对加速度的
函数。由于位置、速度和加速度约束,坐标、速度和加速度高度耦合,所以直接代入变量
间的关系,将产生非常复杂的方程。缩减的运动方程关于所有被约束耦合的坐标、速度和
加速度摄动。同时摄动位置、速度、加速度约束以获得所有坐标、速度、加速度变分间的
关系及独立量的变分,同时求解摄动方程,获得仅仅关于独立坐标、速度、加速度变分的
所有坐标、速度、加速度变分。最后将所有坐标、速度、加速度变分的关系以及独立变量
代入运动变分方程以获得仅仅关于独立坐标、速度、加速度变分的线性化运动方程。

2.8.1 相对坐标运动学

图 2-40 坐标系和刚体

图 2-40 显示了固定在刚体构件上的坐标系。在图中, xi - yi - zi 坐标系是构件参考系,


X - Y - Z 坐标系是惯性参考坐标系, O 是 X - Y - Z 坐标系的原点, Oi 点是 xi - yi - zi 坐标系
的原点, ri 是从 O 到 Oi 的位置矢量, f i 、 gi 和 hi 分别是沿着 xi 、 yi 和 zi 轴的单位矢量。
构件的方向矩阵为:
Ai =  f i gi hi  (2-205)
Oi 点在 X - Y - Z 坐标系的速度和虚位移定义如下:
 ri 
Yi =   (2-206)
ωi 
δri 
δZ =   (2-207)
δπi 
在 xi - yi - zi 坐标系的相应量:
 ri   Ai ri 
T
Yi =     T  (2-208)
ωi   Ai ωi 
δr    Ai T δri 
δZ =  i    T  (2-209)
δπi   Ai δπi 
图 2-41 显示了一对邻近构件,假定构件 i  1 是构件 i 的内侧构件, Oi 点位置为:
54 RecurDyn 多体系统优化仿真技术

ri = ri -1 + s(i -1)i + d (i -1)i - s(i -1)i (2-210)

图 2-41 两个相邻刚体的运动学关系

通过式(2-209),构件 i 在局部坐标系下的角度虚位移是
δπi = A(Ti- 1)i δπ(i- 1) + A(Ti- 1)i H(i- 1)i δq(i- 1) (2-211)
式中, H(i- 1)i 是由转动轴决定的, A(i- 1)i 定义如下:
A(i- 1)i = A(Ti- 1)i Ai (2-212)
由式(2-210)可得
δri=A(Ti- 1)i δr(i- 1)

 
 A(Ti- 1)i s(i- 1)i + d(i- 1)i - A(i- 1)i s(i- 1)i A(Ti- 1)i δπ(i- 1) (2-213)

+ A(Ti- 1)i  d  
( i- 1)i q
( i- 1)i

+ A(i- 1)i si(i- 1)A(Ti- 1)i H(i- 1)i δq(i- 1)i
带波浪号的符号是由矢量乘积操作的矢量元素组成的斜对称矩阵,q(i 1)i 是相对坐标矢
量。联合式(2-211)和(2-213)得到相邻构件对的递归虚位移方程:
δZi = B(i -1)i δZ (i -1) + B(i -1)i 2 δq(i -1)i (2-214)
式中:
 A(Ti -1)i 0   I s(i -1)i + d(i -1) - A(i -1)i s(i -1)i A(Ti -1)i 
B(i -1)i1 =    (2-215)
0 A(Ti -1)i  0 I 
 A(Ti -1)i 0   d (i -1)i  + A(i -1)i s i (i -1) A(Ti -1)i H (i -1) i 
B(i -1)i 2 =   q( i -1)i  (2-216)
0 A(Ti -1)i   H  
 ( i -1) i 
值得注意的是,矩阵 B(i -1)i1 和 B(i -1)i 2 仅是构件 (i - 1) 和 i 间铰的相对坐标的函数。因此,
式(2-215)和(2-216)中矩阵 B(i -1)i1 和 B(i -1)i 2 进一步关于其他项的微分为 0。整个系统绝
对坐标和相对坐标间的虚位移关系通过重复应用式(2-214)得到
δZ  = Bδq (2-217)
其中,矩阵 B 是笛卡儿坐标和相对坐标间的速度转换矩阵。采用同样的方法,可推导
出笛卡儿坐标速度 Y  和相对速度 q 间的关系:
第2章 RecurDyn 基本算法 55

Y  = Bq (2-218)

2.8.2 运动方程

约束多体系统的牛顿-欧拉运动方程的变分形式为:

δZ T MY +ΦZT λ - Q = 0  (2-219)
式中, M 和 Q 分别为质量矩阵和笛卡儿坐标的力矢量。除剪断铰外, δZ  必须对所有
铰运动容许。 Φ 和 λ 分别表示约束方程和相应的 R m 拉格朗日乘子,其中 m 是约束方程数。
将虚位移和加速度关系 Y  = Bq + Bq
  代入式(2-219)中得到:
F = M *q + ΦqT λ - Q* = 0 F  Rn (2-220)
其中, n 是广义坐标的数量,质量矩阵 M * 和力矢量 Q* 定义为:
M * = B T MB (2-221)
Q =B  Q - MBq
* T  (2-222)
式(2-221)和(2-222)可通过 Bae DS、Han JM、Yoo HH 的 A Generalized Recursive
Formulation for Constrained Mechanical System Dynamics 中的递归算法计算。

2.8.3 拉格朗日乘子的消元和运动方程的线性化

相对坐标 q 可分解成非独立的坐标 qD 和独立的坐标 q I ,从而 sub-Jacobian 矩阵 ΦqD 良


态。剪断铰方程的变分形式为:
δΦ = ΦqD δqD + ΦqI δqI = 0 (2-223)
从而
δqD = -Φq-D1ΦqI δqI (2-224)
利用(2-224)的关系, δqD = -Φq-D1ΦqI δqI 表述为:
δq = NδqI (2-225)
式中:
-Φ -1 Φ 
N =  qD qI  (2-226)
 I 
T T
直接计算 N Φq ,显示 N 是 Φq 的零空间。
ΦqTD 
N T ΦqT = -ΦqTI Φq-D1  Ι T  = 0
T
(2-227)
  Φ 
 qI 
所以,式(2-220)左乘 N T ,得
F * = N T M *q - N T Q * = 0 (2-228)
式中,因为 N 是 Φq 的零空间,所以消去了拉格朗日乘子 λ 。然而,运动方程的 F * 不
仅取决于非独立变量 qD 、 q D 和 qD 的影响,还取决于独立变量 qI 、 q I 和 qI 。由式(2-228)
56 RecurDyn 多体系统优化仿真技术

可得,
δF * = Fq*δq + Fq*δq + Fq*δq = 0 (2-229)
式(2-229)可以表述成矩阵的形式:
δq 
 F F F  δq  = 0
* * *
(2-230)
 q 
q q
δq
 
位置、速度和加速度约束的变分为:
Φq δq = 0
Φ q δq + Φq δq = 0 (2-231)
 δq + Φ δq + Φ δq = 0
Φ q q q

在式(2-223)中附加独立坐标、速度和加速度的变分关系,得
Φq 0 0  0 0 0
  δq    δqI 
Φq Φq 0    0 0 0   
    δq  = 0 0 0  δq I  (2-232)
Φq Φq Φq  δq   
 δqI 
 Ι   Ι 
 
求解方程(2-232)可解出 δq δq δq ,代入线性运动方程(2-230),得到仅仅关
T

于独立坐标、速度和加速度变分的线性运动方程:
-1
Φq 0 0  0 0 0
  δqI 
*  q
Φ Φq 0  0 0 0   
 Fq Fq Fq  
* *  δq I  = 0 (2-233)
    
Φq Φq Φq  0 0 0  
  δq
 I   I  I 
 
直接比较式(2-233)和下面的线性运动方程,可得出 M̂ 、 Ĉ 和 K̂ 矩阵。
ˆ δq + Cˆ δq + Kˆ δq = 0
δF * |q* = M (2-234)
I I I

2.9 小 结

本章简要介绍了 RecurDyn 的基本算法,包括递归算法、柔性多体动力学算法以及数值


计算方法等,是了解 RecurDyn 程序建模和求解内核的基础。
࢒ 3 ᐺ RecurDynྟୈ଼஑

本章将介绍 RecurDyn 的基本框架,包括 RecurDyn 的产品线、主要组成功能模块、文


件结构形式及建模操作方法。

3.1 RecurDyn概述

RecurDyn(Recursive Dynamic)是由韩国 FunctionBay 公司基于递归算法开发出的最


新一代多体系统仿真优化软件。它采用相对坐标系运动方程理论和完全递归算法,非常适
合于求解大规模及复杂接触的多体动力学问题。 借助于其特有的 MFBD(Multi Flexible Body
Dynamics)多柔体动力学分析技术,RecurDyn 可以更加真实地仿真柔性体的非线性问题,
如大变形、柔性体间的接触、柔性体和刚性体间的接触等。RecurDyn 基于参数化的各种专
业工具包极大地提高了工程师建模速度及分析效率,其子系统建模理念使得多级系统复杂
机构的虚拟样机模型能够按照独立能力单元分而治之。
以多体动力学起步的 RecurDyn 正在走向完全的多学科集成的仿真,将机构、结构、控制、
液压、润滑、摩擦、疲劳、可靠性等方面的问题通过其所搭建的平台实现耦合计算联合仿真。
从技术而言,RecurDyn 主要具有如下特色。
 柔性体接触、大变形、非线性的 MFBD 有限元柔性体技术。
 基于模态综合法的 FMBD 技术。
 基于递归算法的快速、高效、可靠仿真能力。
 利用其业工具包可以快速自动建模,如链、齿轮、履带、皮带、传送等。
 丰富、强大的接触建模功能,高效而稳定的接触计算能力。
 支持 64bits 处理超大模型,支持 SMP 并行计算。
 基于 VB、C#的 ProcessNet 二次开发、基于 VB 和 C++的用户子程序功能。
 独特的系统/子系统结构模式,具有强大的子系统建模管理功能。
 图层结构管理,便于仿真模型的管理。
 仿真模型的树状管理方式,便于查看模型细节。
 独特的萃取仿真中间状态的 Extract 功能。
 强大的多学科优化分析功能,参数化建模模式,方便建立适用于优化的参数化模型。
RecurDyn 基于 Windows 开发,完全 Windows 风格的 GUI 操作界面,操作方便;以
Parasolid 格式为几何核心,支持 Parasolid、IGES、STEP、ACIS、SHL 等格式的几何模型
文件;有较强的类 CAD 三维建模能力,可对各种图形显示及灯光投影设置进行控制;提供
轮廓线、剪影轮廓线、去隐藏线、以灰阶方式去隐藏线和彩显等 5 种显示模式,可通过图
58 RecurDyn 多体系统优化仿真技术

表、报告和动画方式再现仿真结果。多窗口显示及照相机聚焦显示功能,为计算结果的动
画、曲线、动态应力应变云图的显示提供了方便;具有丰富的数据后处理功能,提供各种
数学计算工具及多种信号处理技术,如 FFT 变换、滤波等;用户可以自定义界面;通过
RecurDyn,可输入多种格式的文件,如 AVI 动画文件、多种格式的图像文件、HTML 格式
文件以及表格文件等。

3.2 RecurDyn产品线

作为 CAE 分析软件,RecurDyn 在专注于多体动力学仿真的同时,还提供了强大的多物


理场耦合计算能力。RecurDyn 采用递归算法,具有无与伦比的快速求解效率。作为其核心的
MFBD 技术体现了多体动力学求解和非线性有限元方法的巧妙集成,使得 RecurDyn 在同类软
件中独占鳌头。此外,RecurDyn 还支持其他多学科 CAE 技术,如控制系统建模、非线性系
统级优化以及 CFD 计算、疲劳计算、可靠性分析等。RecurDyn 荟萃各行业特点,提供种类
多样的工具包帮助用户便捷地完成自动化建模及仿真过程,实现过程专业化与高速度、高精
度并重。在 ProcessNet 环境中用户可以尽其所能进行丰富全面的、切实适用的客户化功能定制。
如图 3-1 所示,RecurDyn 的产品线分为 4 类,即核心产品 Professional,多学科解决方
案产品 Interdisciplinary Toolkit、接口模块 Communicators 和面向行业的专业产品 Application
Toolkit。核心产品 Professional 是 RecurDyn 的基础模块,包括前/后处理 Modeler、求解器
Solver 以及二次开发平台 ProcessNet。多学科解决方案产品 Interdisciplinary Toolkit 提供了
可以解决柔性体接触及大变形的有限元柔体技术 Fflex、基于模态柔性技术的 RFlex 分析模
块,以及进行机构与控制系统联合仿真的 CoLink,另外还增加了系统振动性能分析功能。
此外 RecurDyn 正在增加疲劳计算、可靠性分析以及网格划分的功能。Communicators 提供
各种与 CAD 以及 CAE 软件的交互数据接口,另外还包含与控制、液压软件的接口。面向
行业的专业产品 Application Toolkit 是专门为履带车辆、媒体传送、汽车、发动机等行业开
发的分析工具,提供模板化、参数化的一体化建模,使用专业化模块,可以很方便地建立
系统级别的模型。

图 3-1 RecurDyn 产品线


第3章 RecurDyn 软件简介 59

3.3 RecurDyn组成模块

根据 RecurDyn 的产品线,可将 RecurDyn V7R4 版本划分为如下几个模块。


 基础核心 Professional。
 Modeler:前/后处理器。
 Solver:求解器。
 ProcessNet:二次开发平台。
 多学科解决方案 Interdisciplinary Toolkit。
 Fflex:有限元柔体。
 Rflex:模态柔体。
 CoLink:控制模块。
 Linear:线性化工具。
 AutoDesign:优化工具包。
 接口模块 Communicators。
 Control:控制接口模块。
 Hydraulic:液压接口模块。
 Mesh Interface:网格界面。
 CAD Exchange:图形接口模块。
 行业应用子系统工具包 Application Toolkits。
 Bearing:轴承模块。
 Spring(MMS):多质量弹簧。
 Tire:轮胎。
 Belt:带传动。
 Chain:链传动。
 Gear:齿轮传动。
 Crank:曲柄连杆机构。
 Piston:活塞连杆机构。
 Valve:配气机构。
 HAT:液力挺柱。
 TimingChain:正时链。
 Engine:发动机集成。
 MTT 2D:媒介传输 2D。
 MTT 3D:媒介传输 3D。
 Track HM:高速履带。
 TrackLM:低速履带。
60 RecurDyn 多体系统优化仿真技术

3.4 RecurDyn产品应用领域

RecurDyn 的应用领域非常广泛,举凡有机构研发的领域,RecurDyn 都可有所作为。


 通用机械领域
履带/轮式车辆稳定性;推土机、挖掘机、压路机、破碎机、吊车、矿产机械等;操控
人员视野研究;电机及其他驱动装置功率预测;振动机冲击效应;工具机;丝杠螺纹等。
 传送机械
送纸设备如打印机、复印机、传真机传送效率及卡纸预测与改进;各种制造工厂(如
水泥厂、钢铁厂、玻璃厂等)的传送系统机构;包装设备、银行 ATM 自动取款机和点钞
机等传送系统;医疗器械如 X-光、CT 机等传送机构等。
 汽车
整车 R&H;悬架 K&C;传动系统动力学;转向机构接触;制动系统;齿轮变速器;离
合器振动;车辆停车装置;车椅设计;变速器、分动器、差速器冲击仿真;其他附属设施的
动力学仿真;配气机构;曲柄连杆机构;弹性流体润滑轴承;正时链;活塞;非线性弹簧等。
 航天航空
卫星姿态、轨迹动力学;太阳能帆板伸展及锁定过程;帆板机构伸展轨迹优化;捆绑
火箭分离;卫星整流罩抛罩;分离、解锁机构;飞行器空间交会对接机构控制;机械手臂
的控制一体化;航天着陆器机构;绳系卫星动力学;起落架落震/收放仿真;整机着陆/地面
行走/制动;飞控系统可靠性;运动机构载荷;弹射座椅设计;螺旋桨振动等。
 电器/电子设备
洗衣机的振动;高/低压电器开关;电机/风扇动平衡;磁盘/光盘驱动机构;压缩机等。
 兵器行业
发射动力学;武器装填系统设计;附属机构动力学仿真;空降/空投仿真等。

3.5 安装RecurDyn软件

要正确地安装并运行 RecurDyn,必须满足其硬件需求和操作系统版本要求,并准备好
RecurDyn 的安装介质和许可授权 License
(可通过 FunctionBay China 获取中国用户的授权)。
硬件需求的最低配置如表 3-1 所示。

表 3-1 硬件最低配置
最 低 配 置 推荐配置的最低性能
CPU 奔腾 II,300MHz 奔腾 4,1.7GHz
内存(RAM) 256MB 512MB
第3章 RecurDyn 软件简介 61

续表
最 低 配 置 推荐配置的最低性能
硬盘空间 700MB 1.5GB
分辨率 1024×768 像素 1152×864 像素

RecurDyn V7R5 之前的版本支持的操作系统为 Microsoft Windows XP(32 位、64 位),


从 RecurDyn V7R5 开始,RecurDyn 支持 Windows XP 和 Windows 7。32 位的 RecynDyn 可
以在 64 位的 Windows 操作系统中运行。为了保证 RecurDyn 能够正常运行,所有安装
RecurDyn 的操作系统都至少需要 IE 6.0 或之上的浏览器版本。
RecurDyn License 分为浮动型、节点锁定型及快捷授权型。无论哪种方式的授权许可
类型,都需要安装 RecurDyn 软件。

3.5.1 Windows系统安装RecurDyn

安装时需要以管理员的身份登录。具体步骤如下:
(1)插入 RecurDyn 安装光盘后将自动启动,选择 Setup RecurDyn,进入安装界面,
选择安装时所采用的语言(仅仅是安装过程的语言,下面的介绍基于中文(简体)安装),
然后单击“下一步”按钮,安装向导会自动安装所需文件。
(2)当安装向导自动完成后,单击“下一步”按钮。
(3)进入提醒阅读相关许可证协议的界面,阅读之后,选择“我接受许可证协议中的
条款”。这时“下一步”按钮将变为可用状态,单击该按钮继续安装。
(4)在弹出的安装 RecurDyn 系统需求界面中,单击“下一步”按钮。
(5)打开用户名和公司名称设置界面,在相应文本框中输入用户名和公司名称,然后
单击“下一步”按钮。
(6)打开安装目录设置界面,选择 RecurDyn 的安装目录,可保持默认设置 C:\Program
Files\FunctionBay, Inc\RecurDyn VxRy(VxRy 为版本号,例如 V7R3 等)不变,也可通过
单击“浏览”按钮选择安装目录。
(7)单击“下一步”按钮,在弹出的界面中选择所需安装的类型,然后单击“下一步”
按钮。
(8)在打开的选择程序文件夹界面中,单击“下一步”按钮。
(9)开始安装 RecurDyn。如果计算机中之前没有安装 Microsoft Visual Studio Version
6.0,安装程序将会提醒用户。这个警告可以忽略,单击 OK 按钮继续安装,此时界面中将
显示安装的进度。
(10)安装完成后,在弹出的报告安装完成的界面中,单击“完成”退出。

1.节点锁定型许可证

该类型的 License 许可证只允许锁定在一台计算机上使用。其安装步骤如下:


(1)在 RecurDyn 安装光盘中选择运行 RecurDyn License Manager,或者从计算机中
62 RecurDyn 多体系统优化仿真技术

选择“开始(Start)>>程序(All Programs)>>FunctionBay, Inc>> RecurDyn VxRy(如 V7R3


版本)>>License>>RecurDyn 授权管理者”命令,如图 3-2 所示,运行 RecurDyn 许可证管
理器。

图 3-2 RecurDyn 授权管理入口

(2)在打开的 RecurDyn License Manager 对话框中单击 Setup License Information 按


钮,如图 3-3 所示。

图 3-3 RecurDyn License Manager 对话框 图 3-4 License setup 对话框

(3)在打开的 License setup 对话框中单击 Add 按钮,在 Type 栏的下拉列表中选择


File,选择已经获得的授权 License 文件,然后单击 OK 按钮;弹出 Licmgr 对话框,提示许
可证安装成功,单击 OK 按钮完成。

2.RecurDyn许可证服务器

RecurDyn 许可证服务器(License Server)可以通过网络为任何一台在这个网络内的电


脑提供 RecurDyn 的许可证和 RecurDyn 模块。当用户登入 RecurDyn 的时候将按照 RecurDyn
工具包的设置,检查许可证当退出 RecurDyn 时将再次检查许可证文件。RecurDyn 许可证
服务器可安装在专用的服务器上,也可安装在一台兼作 RecurDyn 客户端的电脑上。
安装许可证服务器的步骤如下:
如图 3-5 所示,在 RecurDyn 安装光盘中选择 Setup License Server 选项;弹出安装向导
界面,从中选择 RecurDyn 许可证服务器的安装目录,然后单击 Next 按钮;选择获得的
RecurDyn 许可证(License)文件,单击 Open 按钮确认,然后继续安装直至完成。
运行许可证服务器的步骤如下:
如图 3-6 所示,选择“开始(Start)>>程序(All Programs)>>FunctionBay,Inc>> RecurDyn
第3章 RecurDyn 软件简介 63

License Server>>FLEXlm Utility”命令,运行许可证服务器,检查许可证服务器运行的状态


(可启动或停止 License 服务等多种 License 管理工作)。

图 3-5 安装 License 服务器

图 3-6 运行 License 服务器

3.网络浮动型RecurDyn许可证

网络浮动型许可证是指通过网络中许可证服务器的管理,实现客户端 RecurDyn 的正常


运行。根据浮动节点的个数,可保证该网络中多个客户端同时正常运行 RecurDyn。网络客
户端应用程序寻找网络中的许可证服务器来获得运行许可证。
在作为 RecurDyn 服务器的计算机上安装 RecurDyn 程序及 RecurDyn 许可证服务器之
后,可在客户端按照前述步骤安装 RecurDyn;也可在客户端通过安装光盘中的 Setup
RecurDyn Network 来快捷安装网络版 RecurDyn,网络版的 RecurDyn 只需要最少的文件就
能驱动 RecurDyn,因为可以共享任何一台在该网络内已经安装好 RecurDyn 软件。网络
版安装方式快捷、方便,但对网速要求比较高,在网络节点较多的情况下,不建议采取
该方式。
在保证 RecurDyn 服务器正常运行及服务器和客户端 RecurDyn 程序已安装的前提下,
进行客户端的配置。在客户端运行 RecurDyn License Mananger(方法同节点锁定型),在
打开的 RecurDyn License Mananger 对话框中单击 Setup License Information 按钮;在弹出的
License Setup 对话框中单击 Add 按钮,在 Type 栏的下拉列表中选择 Server Name,在 License
栏中输入安装 RecurDyn 许可证服务器的计算机名(HostName),单击 OK 按钮,如图 3-7
所示;弹出 LicMgr 对话框,提示许可证信息已经注册成功。
64 RecurDyn 多体系统优化仿真技术

图 3-7 调用 License 服务器

3.5.2 Linux系统安装RecurDyn软件

RecurDyn 求解器支持 Linux 系统,RecurDyn Linux 求解器可在 64 位的 Intel 或 AMD


上运行。

1.安装软件过程

建立一个临时文件夹放置安装文件(.rpm),安装之后,将文件放在/opt/functionbay。
(1)建立临时文件夹
以管理员身份登录,在 Linux console 中输入如下命令。
cd /tmp/
mkdir rdsolver
(2)安装 RecurDyn 求解器
将 RecurDyn 安装文件复制到临时文件夹:
cp rdsolver-7r4.0.0-2.x86_64.rpm /tmp/rdsolver/
改变至临时文件夹,开始安装。
cd /tmp/rdsolver/
rpm -ivh rdsolver-7r4.0.0-2.x86_64.rpm

2.安装许可证License

以管理员身份登录,将 License 文件放置在临时文件夹中。调用命令为:


cp License.dat /opt/functionbay

3.设置路径

在 Licensing Utility(FLEXnet)调用文件(*.flexlmrc)中设置环境变量,该文件放置
在 Home 文件夹中。
使用编辑器建立*.flexlmrc 文件。在 Linux console 中输入:
vi /home/userName/.flexlmrc
其中 userName 为用户名。
对于节点锁定型许可证,需要定义环境变量如下。
FBLMD_LICENSE_FILE = /opt/functionbay/License.dat
第3章 RecurDyn 软件简介 65

运行 License:./home./userName/.flexlmrc。

3.6 RecurDyn的文件结构

RecurDyn 的文件结构如图 3-8 所示,主要包括模型数据文件、仿真控制文件及仿真结


果文件。

图 3-8 RecurDyn 文件结构

1.模型数据文件

(1)RecurDyn Solver Data File (*.rmd)


.rmd 文件是 ASCII 格式的模型数据文件,可用任意的文本编辑器打开查看。在.rmd 文
件中包含了模型所有的信息,如 Bodies、Joints、Force、Expression 等。
(2)RecurDyn 数据库文件(*.rdyn)
.rdyn 文件是 RecurDyn 模型数据及结果数据库文件,需要用 RecurDyn 打开,其中包括
模型信息及求解后的结果数据。
(3)RecurDyn 子系统文件(*.rdsb)
.rdsb 文件是 RecurDyn 的子系统文件,可通过 RecurDyn 导出或导入,实现模型模块的
重复使用及分级建模。

2.仿真控制文件

RecurDyn 的.rss 文件是仿真控制文件,包含了控制命令的脚本语言,用于仿真过程的


控制。
66 RecurDyn 多体系统优化仿真技术

3.仿真结果文件

RecurDyn 的仿真结果文件包括信息文件 msg、输出文件(.Out)、动画文件(.Rad)、


输出请求文件(.Req)、设计参量文件(.Rdp)、性能指标文件(.Rpi)、绘图数据文件(.Rplt)
以及柔性体结果文件(.edr、.rfa、.srd)等。
可以导入 RecurDyn 的文件类型包括:
 RecurDyn Subsystem Files,子系统文件(*.rdsb),由 RecurDyn 导出。多次导入
同一个子系统文件,可以生成多个相同的子系统。
 RecurDyn Solver-Generated Animation File(*.ran),导入由 RecurDyn 求解器产生
的*.ran 文件(在 RecurDyn V7 中,只有 Linux 版本的 RecurDyn 求解器产生*.ran
文件)。
 Design Parameter File,设计参数文件(.rdf)。
 Parasolid File,以 Parasolid 格式导入文本形式(*.x_t, *.xmt_txt)或二进制形式(*.x_b,
*.xmt_bin)的几何图形文件。
 STEP File,导入 step 文件中的几何和质量参数(*.step, *.stp)。
 Parasolid Binary File(*.x_b),RecurDyn 使用 Parasolid 图形内核,可以将 RecurDyn
的几何模型导出为*.x_b 文件(二进制文件)。
 IGES File(*.igs),将模型几何文件导出为 IGES 文件(*.igs),支持 IGES 元素
(100 - Circular Arc(Circle)圆弧、102 - Composite Curve 复合曲线(只适用于直
线或圆弧)、110 - Line 直线、124 - Transformation Matrix 变换矩阵等)。
 RecurDyn Animation Data File(*.rad),动画结果文件。分析之后才可以导出动画
结果文件。
 RecurDyn Body File(*.rdbd),在实体编辑模式下可以导出或导入 Body。
 RecurDyn Profile File(*.rdpf),在轮廓线编辑模式下,可以将轮廓线以*.rdpf 文
件导出。
 Text File、Data File 及 CSV File(*.txt, *.dat, *.csv),在 Plot 窗口中,将曲线以文
本文件(*.txt)、数据文件(*.dat)或 CSV 文件(*.csv)格式导出或导入,这些
文件的内容以矩阵的形式显示。
 CATIA File(*.CATPart,*CATProduct),导出 CATIA 文件。不支持非 ASCII 的
文件夹名,不支持包含非英文字符的文件名,不支持读写以非英文字符命名的
CATIA V5 文件。CATIA V5 文件基于 ISO 646 标准,不支持 8bit 字符码,不支持
包含非 ASCII 字符的文件名,不支持以非 ASCII 字符命名文件,不支持多字节字
符码。
 Shell Data File,壳体数据文件(*.shl)。
 Stereolithography Data File,Stereolithography 数据文件(*.shp)。
 CAD Generated ADAMS Command File,导入 ADAMS 命令文件(*.cmd),其中
包含 ASCII 格式的模型(几何体、约束、力等元素)。
 ADAMS ADM File,打开 ADAMS 生成的*.adm 文件。
第3章 RecurDyn 软件简介 67

 SDK File,打开 NX 生成的*.sdk 文件,包括 Filename.sdk、Filename.rbx 及


Filename.xmt_txt。其中导入过程完成以后,一些表达式会把无效的 id 当作参量,
因此还需要对表达式进行修正。可以参考文件 Filenems.rbx_ID_Info.txt,其中包含
了 ID 所 对 应 的 元 素 名 信 息 。 生 成 的 文 件 Filenems.rbx_ID_Info.txt 与 文 件
Filename.sdk 在同一个目录下。
 RecurDyn Plot DataBase File,绘图数据文件(*.rplt),其中包含仿真以后的绘图
结果。此文件在仿真运行完毕之后会自动生成。导入前要先进入绘图窗口(Plot)。如
果要删除已经导入的绘图数据文件,只需在 Plot 窗口的数据窗口中单击模型文件
名称,然后按 Delete 键即可。

3.7 RecurDyn建模环境介绍

RecurDyn/Modeler 是 RecurDyn 的前/后处理可视化环境,所有的手动建模都需要依托


该环境进行。Modeler 提供了丰富的几何图形库,并采用类 CAD 软件的建模方法满足用户
创建复杂三维模型的需求,基于 Modeler 提供的各种建模元素,可建立机械-控制系统的数
字化样机模型,定义运动、约束、施加外力等。以 Modeler 为基础的各种工具包,可提供
更为丰富的建模功能,如创建柔性体、构建控制参数、参数化自动装配等。基于 Modeler
创建的仿真模型,可提交 RecurDyn/Solver 求解器进行运动学、动力学、静平衡、特征值等
各种分析。

3.7.1 启动RecurDyn/Modeler

RecurDyn 的启动文件为 RecurDyn.exe,正确安装 RecurDyn 后,在“安装目录\Bin”


文 件 夹 中 找 到 该 文 件 。 启 动 方 法 为 : 在 Windows 桌 面 上 选 择 “ 开 始 >> 程 序
>>FunctionBay,Inc>>RecurDyn VxRy>>RecurDyn VxRy”命令,其中 RecurDyn VxRy 代表
RecurDyn 的版本号,如 RecurDyn V7R4。在一台计算机上允许多个 RecurDyn 版本同时存
在,也允许同时多个 RecurDyn 版本处于启动状态。通常情况下,安装好 RecurDyn 之后,
在计算机桌面上会有其快捷方式图标,可双击该图标,进入启动界面。

1.创建新的模型

如图 3-9 所示,New Model(创建新模型)对话框中主要包括 5 项内容:模型命名、单


位制设置、重力方向设置、用户材料库和创建命令的执行驱动。
 Model Name:模型名,可以使用中文汉字、英文字母、数字或下划线命名,但不
支持中划线、空格键等其他特殊字符。
 Unit:设置单位制,可通过既定单位制快速选择,亦可通过手动设置。可选单位制
如表 3-2 所示。
68 RecurDyn 多体系统优化仿真技术

模型名

单位制

重力场

用户材料库

图 3-9 RecurDyn 新建模型界面

表 3-2 单位制
名 称 长 度 单 位 质 量 单 位 力 单 位 时 间 单 位
MKS 米/m 千克/kg 牛顿/N 秒/s
MMKS 毫米/mm 千克/kg 牛顿/N 秒/s
CGS 厘米/cm 克/g 达因/dyne 秒/s
IPS 英寸/inch 磅/Pound_Mass 磅/Pound_force 秒/s
FPS 英尺/foot 磅/Pound_Mass 磅/Pound_force 秒/s

当然,用户也可以从长度、质量、力、时间等量中选择适合的量纲进行组合。对于每
一个量,RecurDyn 都支持多种单位类型,如表 3-3 所示。

表 3-3 单位类型
长 度 单 位 质 量 单 位 力 单 位 时 间 单 位
毫米 克 达因 小时
厘米 千克 千克力 毫秒
米 斯勒格 千牛 分钟
英寸 盎司 千磅 秒
英尺 磅 牛顿
微米 千磅 盎司
吨 磅

 Gravity:设置系统重力,用户可以在此处选择重力的方向和大小,也可以在
RecurDyn 主界面中设置。
 User Material Library:用户材料库,导入事先已有的*.bin 文件以创建用户自定义
的材料参数。
 OK 和 Cancel:OK 按钮用于执行创建新模型命令,Cancel 按钮用于退出创建新模
型模式。
第3章 RecurDyn 软件简介 69

2.打开已有模型

退出创建新模型模式之后,可通过选择 File>>Open 命令打开已有的 RecurDyn 模型,


也可通过选择 File>>Import 命令导入已有的 ADAMS CMD 文件、ADAMS ADM 文件或
RecurDyn SDK 文件,如图 3-10 所示。

图 3-10 打开模型

3.7.2 RecurDyn/Modeler建模环境

1.操作界面介绍

RecurDyn/Modeler 的主界面如图 3-11 所示,其组成部分分别介绍如下。


 标题栏:位于窗口顶部,显示当前模型名称。
 菜单栏:位于标题栏下方。每一菜单项都代表一类用途,其下分别置有下拉菜单。
 工具栏:以图标的形式呈现菜单命令的快捷方式。
 图形工作窗口:亦称工作窗口,在其中建立并显示系统模型,显示仿真动画。
 工具包:分为 4 大类,Professional 包含建立模型的基本模块,如几何部件、约束
副、力、接触、子系统等;Interdisciplinary Toolkit 包含优化、控制系统、DFRA、
FFLEX 和 RFLEX 模块;Communicators 包含控制单元、液压系统和网格接口;
Application Toolkit 中包含各种工程专业工具包,如轴承、轮胎、履带、发动机、
媒介传输等专业工具包子系统。
 数据库窗口:以模型树的形式显示模型的各种信息,并允许用户进行增删、修改、
激活等操作。
 输出区:输出过程及结果等各种数据信息。
 选项区:控制建模过程的选项设置。
 输入区:与选项区配合使用,用于数据的输入,主要输入点的坐标、尺寸等,并
确认执行。
 状态栏:显示坐标系、模型单位制和帮助信息等。
2.主要菜单及工具栏

(1)File
“文件”菜单,主要执行文件方面的操作,主要功能如下。
 New (Ctrl+N):新建一个模型和工作窗口,允许多个工作窗口同时并存。
 Open (Ctrl+O):在当前工作窗口下,打开一个已有模型文件(*.rdyn)或者图
70 RecurDyn 多体系统优化仿真技术

形文件(*.plot)。
标题栏
菜单栏
工具栏

工具包
数据库窗口

图形工作
窗口

输出区

选项区 输入区
状态栏

图 3-11 RecurDyn 主界面

 Save (Ctrl+S):保存当前模型和最新的仿真动画到*.rdyn 文件(二进制文件)。


当前模型会被自动地保存到一个临时文件夹,当 RecurDyn 出现非正常关闭并重启
时,模型会自动恢复。可采用 Option 命令来设定自动保存的间隔时间。
 Import:可将多种类型的文件导入到 RecurDyn 中。其中包括:
 RecurDyn 子系统文件(*.rdsb)。
 实体文件(*.rdbd)。
 RecurDyn 求解器产生的文件(*.ran)。
 动画文件(*.rad)。
 设计参数文件(*.rdp)。
 Parasolid 格式几何图形文件(*.x_t, *.xmt_txt、*.x_b、*.xmt_bin)。
 Step 文件(*.step、*.stp)。
 IGES 文件(*.igs)。
 ACIS 文件(*.sat)。
 CATIA 文件
 Shell 数据文件(*.shl)。
 STL 文件(*.slp、*.stl)。
 ADAMS 文件(*.cmd、*.adm)。
 RecurDyn 的 DYN 文件(*.dyn)。
第3章 RecurDyn 软件简介 71

 RecurDyn 的 SDK 文件(由 NX 生成)(*.sdk)。


 Export:用于导出各种类型的文件。主要包括:
 RecurDyn 求解数据文件(*.rmd)。
 RecurDyn RPLT 头文件(*.rplh)。
 RecurDyn 子系统文件(*.rdsb)。
 RecurDyn 设计参数文件(*.rdp)。
 Parasolid 文件(*.x_t、*.x_b)。
 RecurDyn 动画文件(*.rad)。
 RecurDyn 几何体文件(*.rdbd)。
 IGES 文件(*.igs)。
 ACIS 文件(*.sat)。
 CATIA 文件
 Step 文件(*.step, *.stp)。
 屏幕截图文件(*.bmp)。
 Extract:将任何时刻的仿真结果作为一个新的文件萃取出来。例如,从共 5 秒的仿
真运动中萃取出 2 秒钟的状态,将仿真结果保存为新文件。
(2)Edit
“编辑”菜单,针对选中的对象进行各种操作。RecurDyn基于Windows开发,具备强
大的复制、粘贴、取消、重复、移动等功能。在进行操作之前,必须选中要进行操作的具
体对象。可同时选择多个对象进行操作。在工作窗口中用鼠标左键单击或者在数据库窗口
中单击可选中一个对象,拖拽鼠标则可以同时选中多个对象。主要的编辑操作分别介绍如
下。
 Undo :撤销上一次操作,可进行多次撤销。
 Redo :重现已经撤销的操作,可进行多次重现操作。
 Clear Undo History:清除已撤销的历史。
 Cut (Ctrl+X):剪切至剪切板。
 Copy (Ctrl+C):复制至剪切板。
 Paste (Ctrl+V):从剪切板粘贴至当前工作窗口,可在几个工作窗口间进行。
新粘贴的单元命名为“C_原名称”。注意,与地面连接的约束副或力、与一个没
有被选中的 Body 相连的约束副或者力不能使用“粘贴”命令。
 Delete (Del):删除所选中的对象。
 Basic Control :对所选对象进行基本的移动和旋转。
 Advance Control :对所选对象进行高级移动和旋转控制操作,以更加精确地控
制方位。
 Mirror :将选定的对象复制或移动到相对于指定平面的镜像位置。镜像平面可以
用 Pl 按钮在屏幕上直接选取。
(3)View
“视图”菜单,主要用于控制操作界面的显示状态及其他设置。
72 RecurDyn 多体系统优化仿真技术

 Toolbars:通过其子菜单中的相应命令,可设置工具栏或其他区域的状态。例如,
通过 Reset Toolkit Bar 可恢复至默认状态;通过 Customize 可以由用户自定义视图
模式,自定义的内容包括总体外观、文件路径、文件夹路径、视图操作、菜单、
快捷键、工具栏显示等。
 Status Bar:状态栏是否显示。
 View Control:各种视图控制。
 :平移(T)。
 :旋转(R)。
 :缩放(Z)。
 :自动调整到最适合(F)。
 :移动视角中心(C)。
 :放大选定区域(S)。
 :由点、矢量及比例系数定义视图。
 :前视图。
 :后视图。
 :左视图。
 :右视图。
 :顶视图。
 :俯视图。
 :正等侧视图。
 Rendering Mode:设定显示模式。
 :线框显示。
 :轮廓线显示。
 :去除隐藏线。
 :隐藏线灰显。
 :着色。
 :逐个指定渲染模式,在该模式下实现隐藏(Hide)功能。
 Working Plane:设定工作平面。工作平面设定好之后可对其进行更改。
 设置工作平面(Shift+W)。
 :将工作平面设为模型前面。
 :将工作平面设为模型后面。
 :将工作平面设为模型左面。
 :将工作平面设为模型右面。
 :将工作平面设为模型顶面。
 :将工作平面设为模型底面。
 :改变工作平面为 XY 平面(Shift+X)。
 :改变工作平面为 YX 平面。
 :改变工作平面为 YZ 平面(Shift+Y)。
第3章 RecurDyn 软件简介 73

 :改变工作平面为 ZY 平面。
 :改变工作平面为 ZX 平面(Shift+Z)。
 :改变工作平面为 XZ 平面。
 Grid:图形工作窗口的网格控制。
 :设置是否显示网格。
 :设置在建模时是否采用网格捕捉。
 Light:模型灯光设置,包括环境光、太阳光及反射光等。
 Icon On/Off :控制力、约束副、接触、传感器、参数化点、初始速度、Marker
点、惯量坐标系、灯光图标的显示与否。
 Icon Size :设置图标的显示大小尺寸,可根据模型几何尺寸的大小来调整。
 Windows:工作窗口设置,可新建窗口,可层叠式、分割多窗口。
(4)Subentity
此菜单主要用于参数化点、参数化值、设计变量、参数化值联接、参数化点联接、变
量方程、微分方程、表达式、样条曲线、请求、用户子程序、性能指标、用户材料属性的
创建。
(5)Analysis
“分析”菜单,用于选择分析类型并提交分析任务,可在仿真分析中中断或终止。
 Analysis :运行分析。
 Pause Analysis :暂停分析。在该状态下可查看结果,避免对仿真结果的盲目期待。
 Resume Analysis :在中断状态下启动分析。
 Stop Analysis :彻底终止分析。
(6)Tools
“工具”菜单,提供针对模型进行操作的工具。
 Auto Operations (A):连续执行当前操作。
 Select (E):终止当前操作。
 Exit :退出当前编辑状态。
 Trace Curve:可根据仿真过程中某个 Marker 点的轨迹绘制曲线,还可以将轨迹曲
线输出到一个文件。
 Merge Body:将多个几何实体合并成一个几何体,合并后的质量将根据新几何体
的体积计算。
 Delete Unused markers:删除无用的 Marker 点。
 Measure:测量工具,可测量的项目包括质量属性、距离、半径和角度。
 Close All Dialogs:关闭所有对话框。
 Reload Files:如果用文档编辑器直接修改了样条曲线的数据文件,可以用此命令
将修改好的数据重新加载到模型中去。
 Settings:总体设置。其中包括:
 重力设置(大小、方向)。
74 RecurDyn 多体系统优化仿真技术

 求解器优先级设置,分为高、正常、低 3 个等级。
 模型设置,包括图形质量、背景色、力和力矩显示、模型名等字体、时间 Offset
和 If 误差、FFLEX 选项等设置。
 程序设置,包括求解器类型、SMP 设置、保存设置、生成的文件设置、提示
信息设置等。
 工具包设置,设置在 RecurDyn 界面中显示的具体工具包。
(7)Post
“后处理”菜单,提供在RecurDyn/Modeler界面中对结果进行后处理的功能,包括仿
真结果动画控制、数据测量、力的显示、Maker轨迹线、状态矩阵等。同时提供Plot 及Plot
(Auto Import) 作为进入RecurDyn/Plot后处理环境的入口。
①Animation Control(动画控制)
在运行仿真动画时,用于控制动画的播放形式。

提示:工具栏中有相应的快捷按钮。
 :跳到第一帧。
 :播放/暂停。
 :前进一帧。
 :反向播放/暂停。
 :后退一帧。
 :快放/暂停。
 :至最后一帧。
 :快速反放/暂停。
 :停止。
 :动画控制配置。
 :摄像机设置。
 :录制动画。
 :动画比例缩放。

 Animation Control Configuration(动画、控制配置) :如图 3-12 所示,主要用于


仿真结果动画控制配置,控制动画的起止时间、帧数间隔步、重复次数及在动画
过程中 Marker 点的显示状态。
 Animation Scaling(动画缩放) :将相对变形放大一定的比例,凸现变化趋势,
呈现视觉功能。如汽车跑了 10m,观察悬架与轮胎间的相对位移可通过该功能对焦所
关心的局部。执行动画缩放之前必须创建动画缩放列表,如图 3-13 所示,在选定
的 Body 属性对话框中选中 Create Animation Scaling Info.复选框,并输入相对参考
坐标系及比例因子。可以在动画缩放列表中修改各个方向的比例因子。
 Record :录制动画,用于将动画过程录下来保存成 AVI 文件,支持多种编解码
格式。在录制 AVI 文件前,首先要将模型设定为初始状态。录制步骤为:仿真之
后单击 按钮,设置相应参数,然后单击 Save 按钮,设定保存的文件名,在弹出
第3章 RecurDyn 软件简介 75

的图像压缩对话框中选择压缩器及相关的设置,然后单击 OK 按钮,开始录制 AVI


文件。

起始和结束帧数

播放帧数间隔,即每隔几帧显示一次
重播次数
Merker 点显示控制

动画显示速度控制

图 3-12 仿真动画控制

图 3-13 仿真动画缩放

 Camera :如图 3-14 所示,用于控制观察视角,可选标准照相机、跟踪照相机、


骑马照相机等:

图 3-14 观察视角控制
76 RecurDyn 多体系统优化仿真技术

 Standard Camera:标准照相机,按照当前工作平面显示动画。
 Following Camera:跟踪随动照相机以参考 Marker 点作为观察视角显示动画,参考
Marker 点固定在画面中心。
 Riding Camera:骑马照相机,以选定的 Marker 点的某个轴向作为观察视角。
 Reference Marker:摄像视角的参考 Marker 点。
 Axis:轴向(只适用于 Riding Camera)。
 Zoom Effect:缩放效果。
 Multi Camera List:允许指定多个摄像视角,在播放一个动画时,将轮流从多个观
察视角来显示动画。其步骤为:选中 Multi Camera List 单选按钮,单击 Multi Camera
Create 按钮,打开如图 3-15 所示的 Multi Camera 对话框;根据需要单击 Add 按钮
添加多个 Camera,设定起、止帧数,设置摄像 Marker 点及目标位置(注意,后一
个 Camera 的起始帧数要高于前一个 Camera 的结束帧数),然后单击 Close 按钮
关闭该对话框;返回 Camera 对话框后,单击 OK 按钮确认。

图 3-15 多相机控制

②Scope(测量仪)
如图 3-16 所示,Scope 用于以单独的窗口来显示数据曲线,该窗口可与动画共存于工
作窗口中。Scope 包含角度(Angle)、表达式(Expression)、点-点(Point-to-Point)及
对象(Entity)等测量方式。当播放动画时,曲线显示窗口中会出现一条移动的竖线,与动
画保持时间一致。当保存 AVI 文件时,波形显示窗口并不包括在内。经过 Scope 建立的曲
线测量,在数据库窗口中将显示曲线列表,右击某一曲线名称,可设置其属性并控制是否
显示曲线。

图 3-16 测量仪显示

测量仪曲线显示窗口中的功能分别介绍如下。
第3章 RecurDyn 软件简介 77

 :导入/导出。
 :复制到剪贴板,支持 BMP 格式、图元文件、文本格式(只对数据有效)。
 :显示风格,包括线、曲线、星号等。
 :缩放功能。
 :自动调整至充满画面。
 :3D/2D 画面视角转换。
 :旋转视角。
 :沿 Y 轴旋转。
 :沿 X 轴旋转。
 :群集(Z 轴),在 Z 方向将曲线分散开显示。
 :删除所选中的曲线。
 :坐标轴设置,双击某个坐标轴可以看到详细的设置(以对话框形式显示)
 :图例设置,包括标题、风格等。
 :图表参数。
 :保留之前绘图结果。
在 Scope 下拉菜单中,各命令功能介绍如下。
 Angle(角度):3 点定义的 2 个向量之间即时的角度,默认单位是度(°)。如
图 3-17 所示,单击 M 按钮,可从图形工作窗口中选取所要显示角度对应的 3 个点。

图 3-17 测量角度

 Point to Point(点到点):显示任意两个标架 Marker 点之间的相对位置、速度或


加速度。无须使用请求(Request)函数。可显示的量包括 translational displacement
(相对位置)、Rotational Displacement(转动角位移)、Translational Velocity(平
动速度)、Rotational Velocity(相对角速度)、Translational Acceleration(平动加
速度)及 Rotational Acceleration(转动角加速度)。其创建步骤为:选择 Point-to-Point
命令,在弹出的 Point-to-Point Scope 对话框中选择显示量的类型,选择幅值或各个
方向上的分量,依次定义两个标架点 Marker,指定参考坐标系,选中 Display 复选
框之后单击 OK 按钮确认。
 Expression(表达式):绘制自定义函数表达式的结果,而不需要进入绘图模式。
选择 Scope>>Expression 命令,在弹出的 Scope Expression 对话框输入名称,单击
EL 按钮,选择已经创建的表达式,选中 Display 复选框后,单击 OK 按钮确认,
如图 3-18 所示。
78 RecurDyn 多体系统优化仿真技术

图 3-18 测量表达式和测量对象

Entity(对象):显示包括约束副、力、Body 等对象的位移、速度和加速度分析结
果,包括在各个方向上的分量。通过指定 Reference Frame 参考坐标系确定各个方
向,默认为质心 Marker 标架。当选择显示幅值时,参考坐标系处于非激活状态。
利用该功能可以在任意坐标系下测量一般力或接触力。通过 Et 按钮,可选择具体
对象。
③Force Display(力的显示)
该命令用于控制力的显示方式。选择 Post>>Force Display 命令,打开 Force Display 对
话框,通过 Et 按钮选择对象,从 Type 下拉列表中选择类型后,单击 OK 按钮,显示效果
如图 3-19 所示。
④Marker Trace(Marker 点轨迹)
在播放动画的过程中,显示轨迹线。选择 Post>>Marker Trace 命令,打开 Marker Trace
对话框,选择拟显示轨迹的 Marker 点,指定线宽和颜色,然后单击 OK 按钮,效果如图 3-20
所示。

图 3-19 力的显示 图 3-20 Marker 点轨迹

⑤State Matrix(状态矩阵)
只有在预分析、静态分析或动力学分析设置中选择了 Include State Matrix(包含状态矩
阵)选项后,才会有状态矩阵产生。状态矩阵支持 M 文件,可以将矩阵导入 MATLAB 中。
(8)ProcessNet
“二次开发”菜单,用于进入二次开发环境和调用二次开发的功能。
(9)Help
“帮助”菜单,提供帮助文档。
第3章 RecurDyn 软件简介 79

3.7.3 单摆动力学分析实例

下面通过一个简单的单摆动力学分析实例来介绍 RecurDyn 的界面操作。


问题:如图 3-21 所示,两段匀质圆柱组成的 2 级单摆,每段长度为 400mm,截面半径
均为 10mm,材料是钢。两段圆柱通过 B 点的转动副连接,并在 A 点通过转动副与大地连接,
在重力场作用下释放(重力加速度为 9.86m/s2),初始状态为水平方向。考察单摆释放后 3s
的运动情况,包括自由端圆柱质心的轨迹线、速度和位移曲线,以及两根圆柱铰接出的力。

图 3-21 单摆模型

分析步骤如下:
(1)启动 RecurDyn,在弹出的如图 3-22 所示 New Model 对话框中设置模型名为“单
摆模型”,选择 MMKS 单位制,单击 OK 按钮,进入 RecurDyn 工作界面。

图 3-22 建立单摆模型

(2)选择 Tools>>Settings>>Gravity 命令,在弹出的 Gravity 对话框中设置 Y 向加速度


为-9860,单击 Load 按钮加载,然后单击 OK 按钮确认,如图 3-23 所示。

图 3-23 重力场设置
80 RecurDyn 多体系统优化仿真技术

(3)在 RecurDyn 工具包区选择 Professional>>Body,右击,在弹出的快捷菜单中选择


Button+Text 命令,如图 3-24 所示。

图 3-24 选择 Button+Text 命令

(4)确认工具栏中网格设置为高 100,宽 100;在工具栏中单击 Icon Size 按钮 ,在


弹出的对话框中设置 Icon Size=5,Marker Size=5,然后单击 OK 按钮确认;确认为 XY 工
作平面,否则从 下拉菜单中将工作平面改为 XY 平面,如图 3-25 所示。

设置网格尺寸

图 3-25 设置工作平面

(5)选择 Professional>>Body>>Cylinder,在选项区设置为(Point,Point,Radius),在
图形工作窗口中用鼠标捕捉并单击(0,0,0)和(400,0,0),在输入区输入 10,单击 Execute
按钮(或按 Enter 键确认),完成创建第一个圆柱几何体。具体操作如图 3-26 所示,结果
如图 3-27 所示。

图 3-26 创建圆柱体

图 3-27 圆柱体

(6)在工具包区选择 Body>>Cylinder,在选项区设置为(Point,Point,Radius),在图
第3章 RecurDyn 软件简介 81

形工作窗口中用鼠标捕捉并单击(400,0,0)和(800,0,0),在输入区输入 10,按 Enter 键


确认,完成创建第二个圆柱几何体。
(7)在工具包区选择 Professional>>Joint>>Revolute,在选项区设置为(Body,Body,
Point),在图形工作窗口用鼠标先后捕捉并单击前面创建的第一个圆柱和圆柱区域外的任
一点(代表大地),在图形工作窗口中选择(0,0,0)并单击,如图 3-28 所示,完成第一个
转动副的创建。

图 3-28 建立转动副

(8)在工具包区选择 Joint>>Revolute,在选项区设置为(Body,Body,Point),在图形
工作窗口中用鼠标先后捕捉并单击前面创建的第一个圆柱和第二个圆柱,在图形工作窗口
中选择(400,0,0)并单击,完成第二个转动副的创建。
(9)此时在数据库窗口的模型树中将显示已经创建的两个圆柱和两个转动副。右击数
据库窗口中的 Bodies>>Body1,在弹出的快捷菜单中选择 Rename 命令,更改名称为“单摆
1”;以同样方法,将 Body2 更改为“单摆 2”,如图 3-29 所示。

图 3-29 更改部件名称

(10)在数据库窗口中选择 Bodies>>“单摆 1”,右击,在弹出的快捷菜单中选择


Property 命令,弹出“Properties of 单摆 1”对话框,确认 Material Type 为 Steel,如图 3-30
所示;以同样方法,确认“单摆 2”的材料为 Steel。
(11)在工具栏中单击 Translate 按钮 ,按住鼠标左键在图形工作窗口中拖动视图至
合适位置;在工具栏中单击 Shade 按钮 ,改变图形显示模式,如图 3-31 所示。
(12)选择 Post>>Marker Trace 命令,在弹出的 Marker Trace 对话框中单击 Add 按钮,
单击 Trace Marker 栏中的 M,选择“单摆 2”的质心 Marker 点,单击 OK 按钮确认显示轨
迹线,如图 3-22 所示。
(13)选择 Tool>>Settings>>Model Settings 命令,在弹出的 Model Settings 对话框中设
置 Background Color,取消选中 Use Gradation 复选框,设置 Top 颜色为灰色,然后单击 OK
按钮确认,如图 3-33 所示。
82 RecurDyn 多体系统优化仿真技术

图 3-30 选择材料

图 3-31 改变显示模式

图 3-32 设置显示轨迹线

图 3-33 设置背景色
第3章 RecurDyn 软件简介 83

(14)选择 Analysis>>Dynamic/Kinematic Analysis 命令,在弹出的对话框中,设置 End


Time 为 3,Step 为 1000,单击 Simulate 按钮,系统提示保存模型,确认开始计算,如图 3-34
所示。

图 3-34 提交计算

(15)在输出区中显示成功结束仿真(如图 3-35 所示),完成分析。

图 3-35 完成仿真

(16)选择 Post>>Scope>>Entity 命令,在弹出的 Scope Entity 对话框中,将 Name 设


置为“单摆 2 的质心位移”;单击 Et 按钮,在图形工作窗口选择“单摆 2”;在 Component
下拉列表中选择 Pos_TM;然后单击 OK 按钮确认,完成测量单摆 2 的质心位置的设置,如
图 3-36 所示。

图 3-36 设置测量单摆 2 的质心位置


(17)选择 Post>>Scope>>Entity 命令,在弹出的如图 3-37 所示 Scope Entity 对话框
中,设置 Name 为“单摆 2 的质心速度”;单击 Et 按钮,在图形工作窗口中选择“单摆 2”;
在 Component 下拉列表中选择 Vel_TM;然后单击 OK 按钮确认。
(18)选择 Post>>Scope>>Entity 命令,在弹出的 Scope Entity 对话框中,设置 Name
为“连接反力”;单击 Et 按钮,在图形工作窗口中“单摆 2”和“单摆 1”的连接转动副
84 RecurDyn 多体系统优化仿真技术

附近右击,在弹出的快捷菜单中选择 Select List 命令,在弹出的 Select List 对话框中选择


RevJoint2,单击 OK 按钮;返回 Scope Entity 对话框后,在 Component 下拉列表中选择
FM_Reaction_Force;然后单击 OK 按钮确认,如图 3-38 所示。

图 3-37 设置测量单摆 2 的质心速度

图 3-38 设置测量连接反力

(19)单击工具栏中的“播放动画”按钮 ,在图形工作窗口中将显示圆柱 2 的轨迹,


如图 3-39 所示。

图 3-39 轨迹线

(20)在数据库窗口中选择 Scope>>“单摆 2 的质心位移”,右击,在弹出的快捷菜


单中选择 Display 命令,显示第二根圆柱的质心位移曲线。
(21)在数据库窗口中选择 Scope>>“单摆 2 的质心速度”,右击,在弹出的快捷菜
单中选择 Display 命令,显示第二根圆柱的质心速度曲线;选择 Scope>>“连接反力”,右
击,在弹出的快捷菜单中选择 Display 命令,显示两根圆柱的连接反力曲线。测量结果如
第3章 RecurDyn 软件简介 85

图 3-40 所示。

图 3-40 显示测量结果

3.7.4 RecurDyn后处理功能介绍

通过 RecurDyn/Solver 求解之后,需要借助 RecurDyn 后处理来分析求解的结果。最直


观的查看结果的方法是运行动画、显示轨迹,而数据、曲线以及对结果数据的进一步处理
是更精确地分析仿真必不可少的手段。所有这些对结果进行后处理的方式都需要基于一个
后处理的环境进行。
RecurDyn 后处理是一个综合性的绘图和动画环境,在该环境中可快速查看 RecurDyn
的仿真计算结果,方便地了解模型的运动模式。可以动画或曲线的形式直接查看,亦可导
入外部数据(如试验数据)进行比较,还可对结果数据进行多种处理(如滤波、傅里叶变
换等)。
选择 Post>>Plot 命令或者在工具栏中单击 按钮,即可进入 RecurDyn 的后处理
环境。
RecurDyn/Modeler 建模环境与 RecurDyn/Plot 后处理之间的切换方式为:在图形工作窗
口下方的标签 上单击,即可实现两者的切换;也可单击 Plot 窗口控制按
钮 中的“最小化”按钮,实现从 Plot 后处理到 Modeler 前处理的切换。

1.后处理界面

RecurDyn/Plot 后处理界面如图 3-41 所示,主要由菜单栏、标准工具栏、绘图控制工具


86 RecurDyn 多体系统优化仿真技术

栏、二次开发 Pnet 工具栏、动画控制工具栏、视图/工作平面控制工具栏、图表工具栏、数


据库窗口、I/O 窗口以及图形窗口等部分组成。
视图/工作平面
标准工具栏 绘图控制工具栏 Pnet 工具栏 动画控制工具栏 控制工具栏

数据库窗口
图形工具栏

图形窗口

I/O 窗口

图 3-41 后处理界面

(1)标准工具栏
 :保存。
 :导入最后一次的*.rplt 文件。
 :复制曲线。
 :将动画加载至所选窗口。
 :增加页面。
 :移除页面。
 :改变所选页面的名称。
 :将窗口分为多窗口。
 :进入帮助页面。
(2)绘图控制工具栏
 :在数据库窗口中选择的数据项,通过单击该按钮在图形窗口绘图。
 :当导入多个相同格式的.rplt 文件后,单击该按钮可将各个.rplt 文件中的曲线
画出。
 :更新曲线。
 :曲线追踪,可显示曲线上任一点的最大值(Max)、最小值(Min)、平均
值(Average)以及均方根值(RMS)。
第3章 RecurDyn 软件简介 87

 :删除所选曲线。
 :清除所有曲线。
 :局部放大。
 :自动调整至充满曲线所在的窗口。
(3)图表工具栏
 :复制到剪贴板。
 :图表样式,包括直线、曲线、散点图、直方图等。
 :反锯齿显示。
 :曲线的色系调色板设置。
 :3D 和 2D 图切换。
 :旋转视角。
 :绕 Y 轴旋转视角。
 :绕 X 轴旋转视角。
 :在 Z 方向将曲线分散开显示。
 :曲线轴设置。鼠标双击打开设置对话框,包括网格、背景色、标签等。
 :曲线中显示每个点的数值,可设置字体、颜色、位置和角度。
 :数据编辑。单击该按钮,在曲线的下方显示数据表,可修改数据。
 :图例显示控制。
 :属性设置。

2.导入(Import)

后处理可导入的文件格式包括 *.rplt、*.rplx、*.txt 及*.dat。导入文件之后,数据添加


至数据库窗口和 I/O 窗口中。导入数据文件的方法为:选择 File>>Import 命令,选择文件,
单击 Open 按钮确定导入。

3.导出(Export)

可将后处理数据库中的数据和画出的曲线数据导出。
(1)导出数据
选择 File>>Export>>Export Data 命令,在数据库窗口中选择需要的数据项,拖拽到
Export Data 对话框的 Export List 列表框中(若要去除某个数据,选择其名称,然后单击
Remove 按钮即可),单击 Export 按钮导出文件,如图 3-42 所示。
(2)导出曲线数据
选择 File>>Export>>Export Curve Data 命令,打开如图 3-43 所示 Export Curve Data 对
话框,激活窗口中所有曲线都已自动添加到 Source List 中(如果没有,应确定激活窗口中
是否存在曲线),从 Source List 中选择数据,单击 Add 按钮添加到 Export List 中,可设置
Export Options 中的内容,单击 Export 按钮,导出数据文件。
(3)导出图像文件
选择 File>>Export>>Export Image File 命令,可将激活窗口导出为.bmp 文件。
88 RecurDyn 多体系统优化仿真技术

选择 File>>Export->Export Plot Template 命令,导出.rplx 文件。


也可以直接在数据库窗口中导出数据。如图 3-44 所示,从数据库窗口中选择数据项,
右击,在弹出的快捷菜单中选择 Export Data 命令,在弹出的 Export Data 对话框中可一次
导出若干数据项。

图 3-42 导出数据

图 3-43 导出曲线

图 3-44 导出图像文件

4.后处理数据库

在数据库窗口中 Plot 列出了多种分析结果。


第3章 RecurDyn 软件简介 89

(1)Body
其中包括位移、速度及加速度等,如图 3-45 所示。

图 3-45 Body 的组成

(2)Force
其中包含除了轮胎力之外的所有力数据。
 FM_ForceType:作用在 Action Marker 点上的平移力幅值。
 FX_ForceType、FY_ForceType、FZ_ForceType:对于平动力、旋转力和螺旋力,
表示作用在 Action Marker 点上的平移力在 RM 参考坐标系中 x、y、z 方向上的分
量;对于其他力,表示作用在 Action Marker 上的平移力相对于 Base Marker 的 x、
y、z 方向上的分量。
 TM_ForceType:作用在 Action Marker 点上的扭矩幅值。
 TX_ForceType、TY_ForceType、TZ_ForceType:对于平动力、旋转力和螺旋力,
表示作用在 Action Marker 点上的扭矩在 RM 参考坐标系中 x、y、z 方向上的分量,
对于其他力,表示作用在 Action Marker 上的扭矩相对于 Base Marker 的 x、y、z
方向上的分量。
 DEFL_TSDA:Force 的两个 Marker 点之间的距离与原始长度之间的差值。
 DEFRZ_RSDA:Force 的两个 Marker 点之间相对角度与原始角度之间的差值。
(3)Contact
其中各项含义分别介绍如下。
 FM_ContactType:接触力作用在 Action Body 质心 Marker 点上的平移力幅值。
 FX_ContactType,FY_ContactType,FZ_ContactType:接触力作用在 Action Body
质心 Marker 的平移力在质心坐标系的 x、y、z 方向上的分量。
90 RecurDyn 多体系统优化仿真技术

 TM_ContactType:接触力作用在 Action Body 质心 Marker 上的扭矩的幅值。


 TX_ContactType、TY_ContactType、TZ_ContactType:接触力作用在 Action Body
质心 Marker 的扭矩在质心坐标系的 x、y、z 方向上的分量。
 X_ContactPosition、Y_ContactPosition、Z_ContactPosition :接触点的 x、y、z 坐标。
 X_NormalDirection、Y_NormalDirection、Z_NormalDirection:接触的法向向量的 x、
y、z 分量。
 X_TangentDirection、Y_TangentDirection、Z_TangentDirection:接触的切向向量的
x、y、z 分量。如果接触包含摩擦力,这些项是摩擦力的分量。
 Penetration:接触的穿入深度 δ ,总是负值。
 PenetrationVelocity:穿入深度关于时间的一阶导数。
 TangentVelocity:接触点的切向相对速度。
 FrictionCoef:摩擦系数。
 NormalForce:法向力。
 FrictionForce:摩擦力。
 PEN_Contact:Cam2D、CamLine2D 和 Sphere in Sphere 接触的穿透深度。
 DPEN_Contact:Cam2D、CamLine2D 和 Sphere in Sphere 接触的穿透深度关于时间
的导数。
 TVEL_Contact:对于 Cam2D 和 CamLine2D 接触,Action 和 Base 接触点在切向的
相对速度。
 TVEL1_Contact TVEL2_Contact:对于 Sphere in Sphere 接触,接触点在两个切向的
相对速度。
 NF_Contact:Cam2D 和 CamLine2D 接触中,施加在 Action 接触点的法向力。
 FF_Contact:Cam2D 和 CamLine2D 接触中,施加在 Action 接触点的摩擦力。
 FF1_Contact、FF2_Contact:Sphere in Sphere 接触中,Action 接触点的摩擦力。
 DM_FloatBase、DX_FloatBase、DY_FloatBase、DZ_FloatBase:Cam2D、CamLine2D
和 Sphere in Sphere 接触中,Base 接触点相对于 Base 参考系平移的幅值及 x、y、z
分量。
 DM_FloatAction 、 DX_FloatAction 、 DY_FloatAction 、 DZ_FloatAction : Cam2D 、
CamLine2D 和 Sphere in Sphere 接触中,Action 接触点相对于 Action marker 参考系
平移的幅值及 x、y 和 z 分量。
(4)Joint
其中各项含义分别介绍如下。
 Pos_Relative:相对位置,其中各项含义如表 3-4 所示。

表 3-4 相对位置选项
Joint 类型 选 项 含 义
Revolute Pos1 旋转副的旋转角
Translational Pos1 平动副的相对位移
第3章 RecurDyn 软件简介 91

续表
Joint 类型 选 项 含 义
Spherical Pos1、Pos2、Pos3 欧拉角的 Psi 角、Theta 角及 Phi 角
Pos1 沿着圆柱副轴向的相对运动
Cylindrical
Pos2 旋转角
Pos1 Action Marker 点的 x 轴相对 Base Marker 点的 z 轴的旋转角
Universal
Pos2 Base Marker 点的 x 轴相对 Action Marker 点的 z 轴的旋转角
Pos1 在 Base Marker 点的 x 轴方向上的相对位移
Planar Pos2 在 Base Marker 点的 y 轴方向上的相对位移
Pos3 Action Marker 点的 z 轴相对于 Base Marker 点 z 轴的旋转角
Screw Pos1 相对位移
Atpoint Pos1、Pos2、Pos3 欧拉角的 Psi 角、Theta 角及 Phi 角

 Vel_Relative、Acc_Relative:相对速度和相对加速度,其中各项含义如表 3-5 所示。

表 3-5 相对速度和相对加速度选项
Joint 类型 选 项 含 义
Revolute Vel1、Acc1 旋转速度和旋转加速度
Translational Vel1、Acc1 平移速度和平移加速度
Vel1、Acc1 旋转速度和加速度的 x 分量(相对于 Base Marker 点)
Spherical Vel2、Acc2 旋转速度和加速度的 y 分量(相对于 Base Marker 点)
Vel3、Acc3 旋转速度和加速度的 z 分量(相对于 Base Marker 点)
Vel1、Acc1 圆柱副的平移速度和加速度
Cylindrical
Vel2、Acc3 圆柱副的旋转速度和加速度
Vel1、Acc1 Action Marker 点相对 Base Marker 点的旋转速度和加速度
Universal
Vel2、Acc2 Base Marker 点相对 Action Marker 点的旋转速度和加速度
Vel1、Acc1 Base Marker 点 x 轴方向上的平动速度和加速度
Vel2、Acc2 Base Marker 点 y 轴方向上的平动速度和加速度
Planar
Action Marker 点 z 轴相对于 Base Marker 点 z 轴的旋转速度和
Vel3、Acc3
加速度
Screw Vel1、Acc1 沿着 Base Marker 点 z 轴平移的相对速度和相对加速度
Vel1、Acc1 相对旋转速度和加速度的 x 分量(相对于 Base Marker 点)
Atpoint Vel2、Acc2 相对旋转速度和加速度的 y 分量(相对于 Base Marker 点)
Vel3、Acc3 相对旋转速度和加速度的 z 分量(相对于 Base Marker 点)

 反力(Reaction_Force)
其中各项含义如表 3-6 所示。

表 3-6 反力选项
反 力 含 义
FM_Reaction_Force 作用在 Action Marker 点上的平移力的幅值
92 RecurDyn 多体系统优化仿真技术

续表
反 力 含 义
FX_Reaction_Force PTCV、CVCV 平移力关于惯性坐标系的 x、y、z 分量
FY_Reaction_Force
其他类型 平移力在 Base Marker 坐标系 x、y、z 分量
FZ_Reaction_Force
TM_ Reaction_Force 作用在 Action Marker 点的扭矩的幅值
TX_ Reaction_Force PTCV、CVCV 扭矩值为 0
TY_ Reaction_Force
其他类型 扭矩在 Base Marker 坐标系的 x、y、z 分量
TZ_ Reaction_Force
由转动副、平动副、圆柱副、球铰和万向节等约束的指定运
Driving_Force/Torque
动产生的驱动力或力矩
Friction_Force/Torque 由旋转副和平移副生成的摩擦力或力矩
Joint1_Driving_Force/Torque 转动副或平动副的驱动力/力矩(Gear)
Joint2_Driving_Force/Torque 转动副或平动副的从动力/力矩(Gear)
Driver_Driving_Force/Torque 转动副、平动副或圆柱副的驱动力/力矩(Coupler)
Coupled_Driving_Force/Torque 转动副、平动副或圆柱副的从动力/力矩(Coupler)

 DM_FloatBase、DX_FloatBase、DY_FloatBase、DZ_FloatBase:分别表示 PTCV 和
CVCV 的 Base 接触点相对于 Base Body 坐标系的平移幅值,以及 x、y、z 方向的
分量。
 DM_FloatAction、DX_FloatAction、DY_FloatAction、DZ_FloatAction:表示 CVCV
的 Action 接触点相对于 Action marker 坐标系的平移幅值,以及 x、y、z 方向的
分量。
(5)FFlex Contact
RecurDyn/FFlex 中输出的柔性接触力是在指定的 Marker 点生成的接触力。默认的
Marker 点为惯性 Marker 点。如果 Action Body 和 Base Body 都是刚体,则输出的参考 Marker
点自动定义为实体的质心 Marker 点。柔性接触力各项含义如表 3-7 所示。

表 3-7 柔性接触力
选 项 含 义
FM_Contact_Action
FX_Contact_Action 作用在 Action marker 接触点的力等效在参考 Marker 点上的力的幅值以及 x、y、
FY_Contact_Action z 方向的分量
FZ_Contact_Action
TM_Contact_Action
TX_Contact_Action 作用在 Action marker 接触点的力等效在参考 Marker 点的力矩的幅值以及 x、y、
TY_Contact_Action z 方向的分量
TZ_Contact_Action
FM_Contact_Base 作用在 Base Body 接触点上的接触力等效在参考 Marker 点上的力的幅值以及 x、
FX_Contact_Base y、z 方向的分量
第3章 RecurDyn 软件简介 93

续表
选 项 含 义
FY_Contact_Base 作用在 Base Body 接触点上的接触力等效在参考 Marker 点上的力的幅值以及 x、
FZ_Contact_Base y、z 方向的分量
TM_Contact_Base
TX_Contact_Base 作用在 Base Body 接触点上的接触力等效在参考 Marker 点上的力矩的幅值以及
TY_Contact_Base x、y、z 方向的分量
TZ_Contact_Base

(6)Tires
 FM_Tire、FX_Tire、FY_Tire、FZ_Tire:作用在轮胎上的接触力等效在轮毂上的力
的幅值及其相对于轮胎质心坐标系的 x、y、z 方向的分量。
 TM_Tire、TX_Tire、TY_Tire、TZ_Tire:作用在轮胎上的接触力等效在轮毂上的
力矩的幅值及其相对于轮胎质心坐标系的 x、y、z 方向的分量。
(7)Request(输出请求)
如果模型中定义了 Request,那么在 Plot 数据库中就可以找到相应的数据。
(8)Variable Equation(变量方程)
如果模型中定义了 Variable Equation,那么在 Plot 数据库中就可以找到相应的数据。
(9)Differential Equation(微分方程)
如果模型中定义了微分方程 Differential Equation,那么在 Plot 数据库中就可以找到相
应的状态变量及其关于时间的导数值数据。

5.I/O Window

I/O 窗口是自定义曲线的数据选项窗口,其中 Data1~Data 5 表示数据级别从高到低显


示;勾选“Axis X:TIME”表示将 X 轴设置为时间;“X:”显示当前 X 轴表示的数据,
“Y:”显示当前 Y 轴表示的数据。
在界面中不显示 I/O 窗口时,可通过在数据库窗口下部右击,在弹出的快捷菜单中选
择 I/O Window 命令将其调出,如图 3-46 所示。

图 3-46 I/O 窗口切换

在设置 X 轴不表示时间时,需要如图 3-47 所示,取消选中“X:Time”复选框,选中


X 单选按钮,依次从 Data1~Data5 逐级选择出表示 X 轴的数据项;再选中 Y 单选按钮,依
次从 Data1~Data5 逐级选择出表示 Y 轴的数据项;通过单击 Add Curve 按钮添加曲线,选
中 Multi 复选框,实现多条曲线同时绘制。
94 RecurDyn 多体系统优化仿真技术

图 3-47 非时间横轴绘制

6.绘图处理

(1)单条曲线
 在 Plot 数据库窗口中选择需要的数据名称,双击即可画出。
 在 I/O 窗口中层层选择需要的数据(Data1~Data5),单击 Add Curve 按钮,即可
画出曲线。
(2)多条曲线
如果运行了一个脚本文件,就可能会产生多个.rplt 文件。从每个.rplt 文件中分别画出
需要的曲线,往往费时费力。此时 Multi Draw 功能就派上了用场,可以帮助用户方便地将
多条曲线同时画出。
如果需要画出每个.rplt 文件中的 Body1-Pos_TX,在 Plot 数据库窗口中右击名称,在弹
出的快捷菜单中选择 Multi Draw 命令,或者在 I/O 窗口中选中 Multi 复选框即可。
需要注意的是,Multi Draw 的前提是各个.rplt 文件的格式相同。

7.Mode

Mode 菜单下有 3 个命令:


 Trace Mode:光标跟随鼠标移动,并且在浮动框中显示相关数值(最小值,最大值,
均方根等),如图 3-48 所示。

图 3-48 光标随动
第3章 RecurDyn 软件简介 95

 Delete Curve:删除曲线。
 Clear All:删除所有曲线。

8.Splitting Window(分割窗口)

RecurDyn/Plot 可以将主窗口分成 4 个小窗口,同时显示不同的曲线或动画。也可通过


下面的方法,切换窗口显示模式。图 3-49 显示了切换窗口显示模式的工具按钮和菜单命令。

图 3-49 切换窗口显示模式的工具按钮和菜单命令

9.更改曲线标题

在后处理中改变曲线名称和曲线轴名称的方法为:在曲线名称或曲线轴名称附近右击,
在弹出的快捷菜单中选择 Edit Title 命令,即可更改名称。例如,将横轴的标题从 Time 改
为“时间”,如图 3-50 所示。

图 3-50 更改标题

在多条曲线同时存在于一个窗口的情况下,可通过选择 Tools>>Change Legend Title 命


令,在弹出的 Legend Title 对话框中逐条更改每条曲线的标题,然后单击 OK 按钮,如图 3-51
所示。

10.动画处理

(1)加载动画
仿真计算之后,打开一个新的 Plot 文档,此文档就与仿真模型建立了关系。选择
Animation>>Load Animation 命令,即可在当前激活的绘图窗口中加载动画。若加载之前窗
口中有曲线,加载之后这些曲线会被自动删除。
96 RecurDyn 多体系统优化仿真技术

图 3-51 更改多条曲线标题

(2)播放动画
使用动画控制按钮(如图 3-52 所示)进行播放。

图 3-52 动画控制工具栏

(3)录制动画
选择 Animation>>Animation Control>>Recorde Animation 命令或直接单击 按钮,打开
如图 3-53 所示的 Craete AVI file(动画录制)对话框,单击 Start 按钮,即可开始录制动画。
在进程完成之后,单击 Save 按钮保存。

图 3-53 录制动画

11.数据分析

RecurDyn 的后处理提供了数学计算和信号处理功能,可在 Plot 模式中对结果数据或导


入数据进行处理。
(1)Simple Math(简单的数学运算)
Simple Math(简单的数学运算)包括将一条曲线的值与另一条曲线的值进行加、减、
乘、除,对曲线中的值取绝对值,按特定值比例缩放或平移曲线。
如图 3-54 所示,选择 Analysis>>Simple Math 命令,弹出 Data Analysis 对话框,从
Operation Type 下拉列表中选择运算类型,并通过 Source Curve 1(F1)选择参与运算的第
第3章 RecurDyn 软件简介 97

一条曲线,通过 Source Curve 2(F2)选择参与运算的第二条曲线;如果在新的页面中绘制


运算之后的曲线,则需要将 Plot to New Page 设置为 True。

图 3-54 简单的数学运算

在选择按特定值比例缩放或平移曲线时,分别需要设置 Scale Option 和 Translate Option


中的内容。其中各选项含义介绍如下。
 X/Y Scale Factor Type:比例系数类型,包括 User Defined Value(用户自定义)、
Degree -> Radian(角度到弧度)、Radian -> Degree(弧度到角度)、rad/s -> RPM
及 RPM -> rad/s。
 X/Y Scale Factor(Alpha):比例缩放系数值。
 Translate Type:平移方式,包括 Offset(设置曲线在 x、y 轴的偏移量)、Move 1st
Point to(将曲线的第一点移到指定的坐标位置),以及 Align to Curve(将第一点
与另一个曲线的第一点对齐)。在选择 Align to Curve 时需要指定另一条曲线。
(2)Interpolation(插值)
选择 Analysis>>Interpolation 命令,进入插值运算的 Data Analysis 界面,如图 3-55 所示。

图 3-55 插值运算
98 RecurDyn 多体系统优化仿真技术

插值类型包括 Linear 线性插值、Polynomial 多项式插值、Akima Spline 样条插值以及


Cubic Spline 样条插值。默认的点数 Number of Points 为 512,该项必须是正整数。如果准
备对曲线作 FFT 分析,推荐将点数设置为 2 的偶数次幂(如 256、512、1024 等)。通过
Source Curve 选择一条曲线,如果在新的页面绘制插值曲线,需要将 Plot to New Page 设为
True。
可在整个数据范围内插值,亦可选择指定区间插值,指定区间需设置区间的最大值和
最小值。
(3)Calculus(微积分)
选择 Analysis>>Calculus 命令,在弹出的如图 3-56 所示 Data Analysis 对话框中,可对
已有曲线的数据点进行积分和微分运算。

图 3-56 微积分运算

通过 Calculus Type 下拉列表选择 Differential(微分)或 Integral(积分),通过 Source


Curve 选择一条曲线。Option Type 用于设置微积分类型为 Linear(线性)或 Smooth(通过
拟合 Cubic 样条曲线得到光滑的微分和积分曲线)。
(4)FFT(快速傅里叶变换)
FFT 将时域函数映射到正弦分量,是一种有效的数学算法。它将函数转换成频域形式,
分离出以正弦分量表达的频率成分。FFT 只把左半边的频谱曲线画出来,X 轴是频率,Y
轴是幅值/相位/PSD;右半边的频谱是左边频率的镜像曲线。Magnitude 类型的 FFT 将返回
复数值的幅值大小;Phase 类型的 FFT 返回复数值的相位角,在给定频率处给出时域数据
中等效正弦函数表达式的相位角;Power Spectral Density(PSD)类型的 FFT 返回信号在频
率成分上的功率分布,PSD/频率曲线与幅值/频率曲线外形相似,但比例不同。
下面来看看 Window 方法。Window 函数类似于阶跃输入,能保持 FFT 输出的幅值,
但允许微小的不连续。FFT 假定样本为连续无限数据系列的周期性时域数据,起止的条件
能够匹配。Window 方法可以过滤掉起止条件不匹配而引起的不连续,保证 FFT 的周期性。
如图 3-57 所示,RecurDyn 后处理提供的 Window 方法包括 Square、Barlett、Welch、Hanning、
Hamming 及 Blackman。可通过 Auto(自动)或 2^n(2 的 n 次方)设置插值点个数。
X 轴的区域可设置为整个 X 轴,亦可指定最小值和最大值之间的范围。
第3章 RecurDyn 软件简介 99

图 3-57 快速傅里叶变换

(5)Filter(曲线滤波)
曲线滤波的目的是消除时域信号的噪声,或对时域信号中的特定频域分量强调突出。
RecurDyn 后处理提供两种类型的滤波,包括 Butter Worth(滤波器)和 Translator Function
(指定传递函数),如图 3-58 所示。

图 3-58 曲线滤波

Butter Worth 滤波方法包括 Low Pass(低通)、High Pass(高通)、Band Pass(带通)


以及 Band Stop(带阻)等多种类型,需指定滤波阶数 Order 和阻断频率 Cutoff(Hz),通
过 Low Cutoff(Hz)设置下限频率,通过 High Cutoff(Hz)设置上限频率。
传递函数滤波需要指定传递函数分子 Numerator、分母 Denominator 的系数。

3.7.5 RecurDyn后处理实例

根据 3.7.3 节单摆动力学分析实例的仿真结果,求两级单摆质心的 X 向的相对速度、


两级单摆连接部位的约束反力,并将运动动画和曲线分屏表示;同时通过两级单摆 X 向相
100 RecurDyn 多体系统优化仿真技术

对加速度的积分获得新的曲线,对比 X 向相对速度曲线。
(1)单击工具栏上的 Plot Result 按钮 ,如图 3-59 所示,进入后处理界面。单击 Plot
后处理标准工具栏中的 Show all windows 按钮,如图 3-60 所示,将当前窗口平分成 4 个
窗口。

图 3-59 进入后处理 图 3-60 分割窗口

(2)单击左上方窗口,选择 Animation>>Load Animation 命令,在左上窗口中载入仿


真动画,如图 3-61 所示。

图 3-61 加载动画

(3)在右上方窗口中单击,使其处于激活状态。在后处理数据库窗口中选择 Plot>>
“单摆模型”>>Joints>>RevJoint2>>FM_Reaction_Force 并双击,绘制作用反力曲线,如
图 3-62 所示。

图 3-62 绘制作用反力

(4)在左下方窗口中单击,使其处于激活状态。从后处理数据库窗口中选择 Plot>>
“单摆模型”>>Bodies>>“单摆 1”>>Vel_TX,双击“单摆 1”质心 Marker 点 X 向速度,
选择 Bodies>>“单摆 2”>>Vel_TX,添加绘制“单摆 2”质心 Marker 点 X 向速度,结果
如图 3-63 所示。
(5)选择 Analysis>>Simple Math 命令,在弹出的 Data Analysis 对话框中选择操作类
型为 Minus:F1-F2,在源曲线 1 和 2 中分别选择“Vel_TX-单摆 1”和“Vel_TX-单摆 2”,
单击 Execute 按钮,如图 3-64 所示,实现曲线间相减功能。
第3章 RecurDyn 软件简介 101

图 3-63 绘制速度

图 3-64 曲线间相减

(6)确保左下方窗口为当前窗口;选择 Tools>>Change Legend Title 命令,在弹出的


Legend Title 对话框中选择 Legend#3,将其名称改为“x 向的相对速度”,单击 OK 按钮,
如图 3-65 所示。

图 3-65 更改名称
102 RecurDyn 多体系统优化仿真技术

(7)单击右下方窗口,确保其处于当前激活状态;从数据库窗口中选择 Bodies>>“单
摆 1”>>Acc_TX 并双击,选择 Bodies>>“单摆 2”>>Acc_TX 并双击;选择 Analysis>>Simple
Math 命令,在弹出的 Data Analysis 对话框中选择操作类型为 Minus:F1-F2,在源曲线 1
和 2 中分别选择“Acc_TX-单摆 1”和“Acc_TX-单摆 2”,单击 Execute 按钮,完成减法
操作,如图 3-66 所示。

图 3-66 曲线间减法操作

(8)选择 Analysis>>Calculus 命令,在弹出的 Data Analysis 对话框中选择计算类型为


Intergral,在源曲线中选择 3:SUB(Acc_TX-单摆 1(mm/s^2),Acc_TX-单摆 2(mm/s^2)),
将 Option Type 设置为 Smooth,单击 Execute 按钮,完成曲线积分,如图 3-67 所示。

图 3-67 曲线积分

(9)在右下方窗口中,选择 SUB(Acc_TX-单摆 1(mm/s^2),Acc_TX-单摆 2(mm/


s^2)),按 Delete 键,在弹出的提示对话框中单击 Yes 按钮,删除两级单摆的 X 向相对
加速度曲线,如图 3-68 所示;选择“Acc_TX-单摆 1”曲线,按 Delete 键,在弹出的提示
对话框中单击 Yes 按钮,删除“单摆 1”的 X 向加速度曲线;以同样方法,删除“单摆 2”
的 X 向加速度曲线。
(10)如图 3-69 所示,比较右下方窗口中的 X 向相对加速度积分曲线和左下方窗口中
的 X 向相对速度曲线,显然两条曲线结果一致。
(11)在后处理界面中单击动画控制工具栏中的“播放”按钮 ,将显示随时间变化
的数据,如图 3-70 所示。
(12)在后处理界面中单击动画控制工具栏中的“录制”按钮 ,在弹出的如图 3-71
所示的 Create AVI file 对话框中单击 Start 按钮,开始录制;等待录制结束后,在 Dump
completed 对话框中单击 OK 按钮;返回 Create AVI file 对话框后,单击 Save 按钮;在弹出
第3章 RecurDyn 软件简介 103

的 Video Compression 对话框中单击 OK 按钮;在弹出的对话框中为动画命名,此时在工作


目录下将产生同名的 AVI 文件。

图 3-68 删除曲线

图 3-69 曲线比较

图 3-70 实时观测曲线
104 RecurDyn 多体系统优化仿真技术

图 3-71 录制动画

3.7.6 RecurDyn操作技巧

1.导航按钮

在 RecurDyn 中,通过导航按钮可以方便地选择或设置 Body、属性及其他对象。


 :选择点或参数化点。
 :选择表达式。
 :选择参数化值。
 :选择 Body。
 :重新计算。
 :选择作为坐标系的 Body。
 :选择表达式。
 :选择子程序。
 :图形导航,选择样条线、弧线等图形。
 :平面导航,选择 Body 或 Marker 点的平面。
 :选择屏幕中的 Marker 点。
如图 3-72 所示,当光标靠近圆、圆弧及圆柱的一端时将捕捉到点。如图 3-73 所示,
在导航状态,可实现从数据库区中拖拽实现导航。

2.Layer(层)

在 RecurDyn 中,可以通过 Layer(层)实现复杂系统的清晰管理。具体步骤:将同时


关 注 的 重 点 属 性 设 置 为 一 个 层 , 然 后 在 需 要 查 看 时 设 置 图 层 显 示 方 式 为 Current
Layer ,并将需要显示的图层设置为当前图层(Current Layer)。通过 Layer
(层)的管理,可以从极其复杂的结构中清晰地逐级显示。通过 Show All 可显示所有的
图层。
第3章 RecurDyn 软件简介 105

设置图层时,需要选择对象,右击,在弹出的快捷菜单中选择 Property(属性)命令,
在弹出的对话框中选择 General 选项卡,在右下角的 Layer Number 中设置图层号。可以设
置图层的对象包括 Marker、Body、Joint、Force、Contact 等。

图 3-72 捕捉特征实现点导航 图 3-73 从数据库窗口拖拽实现导航

3.重要操作技巧

(1)复制—粘贴错位控制
RecurDyn 支持对象的复制—粘贴。选择 Tools>>Settings>>Program Settings 命令,在弹
出的 Program Settings 对话框中选择 User Settings 选项卡,通过 Shift When Pasting 的选择与
否控制在粘贴时相对于被复制的对象是否有偏置错位,如果不希望粘贴错位,则取消选中
Shift When Pasting 复选框,如图 3-74 所示。

图 3-74 复制粘贴偏置错位

(2)工具包切换
在 RecurDyn 中建模时,往往需要在不同的工具包之间切换。通过单击工具包区下方的
、 、 、 标签,如图 3-75 所示,即可实现工具包
的切换。后处理和前处理之前的切换也可通过该区域切换 Plot 和*.rdyn 进行。

图 3-75 工具包切换
106 RecurDyn 多体系统优化仿真技术

(3)复杂模型的选择
对于复杂模型,尤其是局部细节具有复杂特征的模型,可以通过右击,在弹出的快捷
菜单中选择 Select List 命令,在弹出的 Select List(特征列表)对话框中选择;也可以通过
右击,在弹出的快捷菜单中选择 Select Box 命令,单击 Select Box 框中的箭头选择确定,
如图 3-76 所示。

图 3-76 复杂对象的选择

(4)自动连续操作
如果多次连续操作同样的命令,如连续建立几个转动副,可通过自动连续操作按钮
或快捷键 A 来实现自动连续操作功能。取消自动连续操作,需要单击 按钮以停止自动连
续操作状态。
(5)退出编辑状态
RecurDyn 建模过程提供 4 种编辑状态,退出编辑状态需要选择工具栏的 Exit ,或右
击,从弹出框中选择 Exit 退出当前编辑状态返回上一级。
(6)隐藏功能
只有在 Render Each Object 视图模式下,在数据库窗口中右击,在弹出的快捷菜单中
选择 Hide 命令,才能实现隐藏功能。
(7)终止操作命令
当选择某种命令后,欲终止继续操作,可通过工具栏中的 Select(E) 来实现。
(8)删除无用的 Marker 点
对于模型中无用的 Marker 点,可通过选择 Tools>>Delete Unused Markers 命令,一次
完成删除无用 Marker 点。RecurDyn 删除特征时不自动删除与该特征相关的 Marker 点,删
除无用 Marker 点功能往往在删除了某一特征后进行。
(9)透明显示及贴图
对于复杂的模型,尤其是几何重叠的模型,在需要透明显示时,需要在数据库窗口中
选择拟透明显示的 Body,右击,在弹出的快捷菜单中选择 Edit 命令,进入 Body 的编辑模
式;选择具体特征并右击,在弹出的快捷菜单中选择 Property 命令,在弹出的 Graphic
Property 对话框中通过 Transparency Intensity 滑动条实现透明显示;通过选中 Use Picture,
可选择具体图片进行贴图处理。
(10)自动缩放多条曲线视图
在后处理或 Scope 曲线显示窗口中,如果同一窗口中存在多条函数值悬殊的曲线,或
通过手动放大导致曲线在视图中不能完全显示时,可通过工具栏上的 Fit 按钮实现视图
窗口的自动调整。
第3章 RecurDyn 软件简介 107

(11)建模工具图文对照
对于初学者而言,当不清楚工具包中图标对应的含义时,可将鼠标置于工具包相应区
域,右击,在弹出的快捷菜单中选择 Button+Text 命令,即可显示图标和对应文字。
(12)进入 Body 编辑模式
进入 Body 编辑模式的方法有两种,在图形工作窗口中双击 Body,等效于在数据库区
选择相应 Body,右击,在弹出的快捷菜单中选择 Edit 命令。本书后面章节的双击均指在图
形工作窗口中双击。

3.8 小 结

基于 Windows 视窗的 RecurDyn 操作界面,便于多体系统的建模及分析数据的后处理


操作。界面的构成按照产品线布局,可根据分析的需要配置不同的模块组成。
࢒ 4 ᐺ ૥᎖RecurDynࡼ૦቗ᇹᄻॊᇜ

本章将介绍在 RecurDyn 环境中进行多体机构建模的基本方法。

4.1 基于RecurDyn仿真分析的步骤

基于 RecurDyn 进行多体系统仿真是一个逐步精细化的过程,通常一个完整的仿真分析
过程需要经历等效简化模型→细化模型→优化模型→自动化模型,如图 4-1 所示。

图 4-1 RecurDyn 仿真分析步骤

(1)等效简化模型
从逻辑上将一个完整系统划分为若干个具有独立能力的子系统单元;在 RecurDyn 中针
对各个子系统,创建具有几何、物理属性的组成部件,定义各部件之间的约束关系,定义
作用在部件上的所有力和驱动;运行仿真分析,对于仿真的结果,通过曲线、动画查看并
大体判断是否有误;在各个子系统模型正确的基础上,建立整个系统的仿真模型,运行分
析,查看运动情况;在后处理中导入已有测试数据,和测试数据进行比较分析。
第4章 基于 RecurDyn 的机械系统分析 109

(2)细化模型
添加摩擦、定义柔性体、施加更准确的作用力、添加控制环节。
(3)优化模型
定义设计变量、目标函数和约束条件,进行设计灵敏度分析,确定性优化或非确定性
优化。
(4)自动化过程
通过 ProcessNet 定制用户化界面、定制自动化流程,以实现重复、繁琐建模分析过程
的自动化。
以上大部分过程都需要借助 RecurDyn 操作界面或二次开发环境完成。

4.2 模型方案分析

随着机械产品轻量化、高速化、智能化的发展,一个完整的产品往往包括机械部分、
电子部分、控制部分(或液压部分)等,这些部分间相互区别并相互作用,有机地联结在
一起,为完成同一个功能目的而扮演不同的角色。它们之间并非简单的多学科组合或拼凑,
而是耦合作用、彼此依赖。机电控一体化系统多学科交叉的现实存在带来了不可避免的复
杂性,任何一个系统开发都需基于子系统或更多子系统。为了建立仿真分析模型,就需要
将复杂系统先解耦再耦合。
在产品开发的不同阶段所关注的重点不同,从概念设计的总体方案阶段到详细设计阶
段,帮助设计的 RecurDyn 仿真模型具有不同层次的组织结构。一个多体系统模型至少包含
三大要素,即组成部件、部件间关系和外力载荷。
在建立仿真模型之前,必须明确仿真目的是什么,同时必须明确模型的组成。
 是否需要并可以将复杂系统划分为多个子系统?
 除机械系统外还包括哪些系统?如果包括控制或液压部分,是否需要联合仿真?
 机械系统包括哪些部件?是否存在部件的刚度不可忽略?如果存在,可参照后面
章节的刚柔混合系统建模。
 部件之间的关系如何?是约束关系还是接触关系?
 系统的驱动是什么?系统的载荷是什么?
 需要获得哪些结果量?

4.2.1 刚体和柔性体的选择

在建立多体系统模型时,需要确定作为刚体的部件和作为柔性体的部件。
通常,刚体是指在运动过程中体内任意两点的距离保持不变的物体,变形很小或虽有
变形但不影响整体运动特性的物体都可简化为刚体。在多体系统建模时,往往将工作过程
中变形可以不考虑的部件视为刚体,不必过分考虑其几何形状,尤其是从 CAD 软件中导入
的复杂几何体,一些倒角、细节可忽略,但如果涉及到接触关系,则必须保留接触相关的
110 RecurDyn 多体系统优化仿真技术

几何外形。对于刚体而言,质量、转动惯量及重心代表了刚体的属性。
在工作过程中,结构的变形不能忽视的部件往往需要考虑成柔性体。对于柔性体而言,
其刚度属性、质量属性等都必须考虑。RecurDyn 有两种考虑柔性体的方法,模态柔性体
RFlex 和有限元柔性体 FFlex。除了柔性体模型外,在系统中还可以增加柔性元素,如 Bushing
力、Beam 力等。

4.2.2 子系统的选择

在大型复杂系统中,往往包含多个独立功能的子系统,每个独立功能的系统可以作为
一个子系统单独建立模型,在确保子系统模型无误的情况下,进行装配形成系统。
RecurDyn 的子系统建模方法有助于标准化、系列化产品的仿真分析。
在建立子系统模型之前,需要明确该子系统与其上一级系统的隶属关系,即落实子系
统的母体部件。

4.3 建模环境设置

在创建一个新的 RecurDyn 模型时,需指定单位系统和重力环境。在建模过程中的任何


时候,都可以重新定义重力场,但单位系统一经确定将不能在后面过程中再作修改。一般
情况下,在开始建模时需要根据模型的具体结构及具体问题设置整体建模环境。

4.3.1 重力场设置

选择 Tools>>Settings>>Gravity 命令,弹出如图 4-2 所示 Gravity(重力)对话框,在其


中可以通过 X、Y、Z 的方向设置重力加速度的大小和方向,通过各个方向的重力加速度分
量可设置与 X、Y、Z 方向平行的重力加速度及任意方向的重力加速度;也可借助 Load 按
钮及方向选择,设置 X、Y、Z 方向的重力加速度,默认值根据所选单位制而变化;最后单
击 OK 按钮,设置生效(如果单击 Cancel 按钮,则所作设置无效)。

图 4-2 重力场设置
第4章 基于 RecurDyn 的机械系统分析 111

4.3.2 工作平面及其他建模设置

单击工具栏中的 Setup Working Plane and Grid 按钮 或按 Shift+W 键,即可打开如


图 4-3 所示的 Working Plane 对话框。

Working
Plane change

XY

图 4-3 工作平面设置

在 Grid 栏中,选择网格类型,有笛卡儿和柱坐标两种类型可供选择;根据模型的尺寸,
设置工作平面网格的密度——通过设置网格高度(半径)和宽度(角度)的具体数值控制
网格间矩,通过 No. of Half Horizontal Segments(No. of Radial Segments)来控制网格的数量。
建模过程中,通过工具栏上的 (Working Plane Change 和 XY plane)可实现
工作平面的快速切换。对于复杂的建模,可通过 Working Plane 对话框中 Plane 后面的 PI
按钮来选择具体平面(如图 4-4 所示,Face Plane 或 Marker Plane)作为工作平面,也可通
过 Offset 数值框来指定所选平面偏置一定距离的平面为工作平面。
单击工具栏中的 Icon Size 按钮 ,在弹出的 Icon/Marker Size 对话框中可分别设置各
项图标尺寸,如图 4-5 所示。最后单击 OK 按钮,设置生效;若单击 Cancel 按钮,则保留
之前的效果。
选择 Face Plane 选择 Marker Plane

图 4-4 选择工作平面 图 4-5 图标大小设置


112 RecurDyn 多体系统优化仿真技术

4.4 RecurDyn的编辑模式

在 RecurDyn 中存在 4 种编辑模式,不同的编辑模式有不同的操作权限。


 Model-Editing(模型编辑模式):工作对象为整个模型,可以在模型的最高层次上
进行对象建立、修改等操作。
 Subsystem-Editing(子系统编辑模式):操作对象为子系统中的所有对象。例如,
通过带、链条、履带等工具包建立的子系统中的所有对象,或用户自行创建的子
系统。仅限于子系统层次操作。创建子系统或右击数据库窗口中的子系统,在弹
出的快捷菜单中选择 Edit 命令,即可进入子系统编辑模式。
 Body-Editing(部件编辑模式):对模型中的一个特定对象进行编辑,如地面、连
杆等。限于对部件对象本身进行操作。在数据库窗口或在图形工作窗口中选中具
体对象,右击,在弹出的快捷菜单中选择 Edit 命令,即可进入实体编辑模式。
 Profile-Editing(剖面编辑模式):针对模型中与某个特定对象相关的 Profile 属性
进行操作,属于最下层的编辑模式。单击剖面,右击,在弹出的快捷菜单中选择
Edit 命令,即可进入剖面编辑模式。
返回上层编辑模式的方法为单击工具栏中的 Exit 按钮 。

4.5 刚体部件建模

部件(亦称构件)是机械系统运行的载体,在 RecurDyn 中称之为 Body。一个系统中


往往包括多个 Body,Body 之间通过不同的名称区分。创建一个刚体部件(Body),需要
定义几何属性、物理属性以及初始位置属性。
Marker 是具有方向的点,任意一个 Marker 都有其依附的 Body。RecurDyn 中有 3 类
Marker 点:新建一个模型时,软件自动建立在大地上的惯性 Marker;新建一个 Body 时,
自动建立质心 Marker;可在任何 Body
(包括 Ground)
中建立一般 Marker。Marker 在 RecurDyn
中具有重要的作用。

4.5.1 几何体创建

用户可在 RecurDyn 界面中创建几何体,也可通过导入功能导入外部建立的几何模型。

1.基于RecurDyn创建几何体

利用 ecurDyn 基于 Parasolid 核心的三维实体建模功能,可以自动计算质量、质心、惯


量等参数。RecurDyn/Modeler 提供了若干常用的基本形体图库,利用这些图库,通过调整
第4章 基于 RecurDyn 的机械系统分析 113

参数,可以非常便利地建立几何体。通常的操作步骤如下:
(1)在工具包区 Body toolkit 中选择合适的实体图标(如 cylinder)。
(2)在选项区选择输入方式(如 Point,Point,Radius 表示两点坐标和半径)。
(3)在输入区依次输入具体的数值(RecurDyn 记录了输入历史,可从历史记录中选
择已有的输入),或在图形工作窗口通过鼠标选取。
(4)在输入区中单击 Execute Command 按钮 或按回车键,确认创建执行。此在图
形工作窗口中将显示所创建的几何体。
(5)在数据库窗口中的 Body 树下显示了已经创建的几何体,右击,在弹出的快捷菜
单中选择 Rename 命令,可以为其命名;如果选择 Property 命令,在弹出的属性对话框中
可设置颜色等模式。
RecurDyn 界面 Professional>>Body 中各个工具的作用分别介绍如下。
 Marker :创建 Marker 点,可通过点或点及其方向创建,可指定隶属 Body。
 Cylinder :创建圆柱体,可通过上下截面中心点和半径创建。
 Box :创建长方体,所创建几何体沿工作平面对称。
 Ellipsoid :创建球体。可通过选项区设置,创建椭球体。
 Torus :创建圆环。通过选项区设置,可创建完整圆环和局部圆环。
 Prism :创建棱柱。
 Cone :创建圆台。
 Link :创建连杆。
 General :创建复杂几何体。
 Ground :创建固连与大地的机架的构形。
基于 RecurDyn 可创建复杂的几何体。选择 Professional>>Body>>General ,即可进入
复杂几何体创建界面。RecurDyn 提供的复杂几何体创建功能包括:
(1)Curve and Surface 线和面
 Outline :创建轮廓线(需选择多个点)。
 Spline :创建样条曲线(闭合或开放曲线,通过多个点创建)。
 Circle :创建封闭圆。
 Arc :创建圆弧。
 EdgeCurve :选取已有边生成边线,为后续的建模(如接触定义)做准备。
 OutlineSurf :由轮廓线创建轮廓线面。
 SplineSurf :由已有样条线创建样条曲线面。
 FaceSurf :选取面生成 FaceSurf,为后续建模(如面面接触)做准备。
(2)Profile 剖面
 Profile :创建剖面形状,可通过 来创建不同的剖面。
 Extrude :由剖面的拉伸生成三维几何体。
 Spin :由剖面沿轴线旋转形成几何体。
 Sweep :由剖面扫略形成三维几何体。
 ExtrudeSurf :由剖面线拉伸成复杂面。
114 RecurDyn 多体系统优化仿真技术

 SpinSurf :由剖面线旋转成面。
 SweepSurf :由剖面线扫掠成面。
(3)Boolean 布尔运算
 Unite :布尔加操作,合并 2 个实体。
 Subtract :布尔减,实体 1 切割实体 2,删除实体 2 中与实体 1 相交部分。
 Intersect :求交集运算,取 2 个实体的相交部分。
提示:合并几何体的目的是为了避免重合部分的几何体质量被重复计算。如果重合几
何体没有合并,在计算质量时,两个几何体相交部分的体积所涉及的材质会被重
复计算。

(4)Local 局部操作
 Chamfer :倒角。
 Fillet :倒圆角。
 Shell :抽壳。
下面来看一个建模实例。
建立一个连杆,其中厚度为 10mm,连杆两端圆心分别为(100,300,0)和(-200,0,0)。
从工具包区选择 Professional>>Body>>Link,在选项区选择(Point,Point,Depth),先
后在图形工作窗口中选择(100,300,0)和(-200,0,0),然后在输入区输入 10,按 Enter 键
确认,如图 4-6 所示。

图 4-6 建立连杆的步骤

2.从外部导入几何体

在模型编辑模式下,选择 File>>Import 命令,在弹出的对话框中选择具体的文件类型


及相应文件,单击 OK 按钮,完成导入过程。可导入零部件,亦可导入装配体。
在子系统编辑模式和 Body 编辑模式下,也可导入外部几何体。

3.复制几何体

选中几何体,单击工具栏中的 Copy/Paste 按钮 ,即可实现几何体的复制。在复制


时需要设置复制体与原始几何体之间是否存在偏移量,通过 Tools>>Settings>>Program
Settings>>User Settings 对话框中的 Shift when Pasting 选项控制。
第4章 基于 RecurDyn 的机械系统分析 115

4.5.2 几何形状的修改

在 RecurDyn 中创建的几何体,可以对其形状进行修改。对于外部导入的几何体,也可
以通过 RecurDyn 的建模工具进行修改。
对于简单的几何体,在 RecurDyn 的主界面 Model-Editing 模式下,从数据库窗口中选
中拟修改的 Body,右击,在弹出的快捷菜单中选择 Edit 命令,进入部件编辑(Body-Editing)
模式。在 Body-Editing 模式下的数据库窗口中单击拟修改的特征,右击,在弹出的快捷菜
单中选择 Property 命令(或按 P 键),在弹出的对话框中修改相应的特征参数,然后单击
OK 按钮确认,该特征得到修改。

提示:也可以通过双击 Body,进入部件编辑模式。

如果需要增加其他的特征,可在 Body-Editing 模式下进行创建。所有的修改工作完成


之后,单击工具栏中的 按钮(或右击,在弹出的快捷菜单中选择 Exit 命令),退出部件
编辑模式。
对于通过剖面生成的复杂几何体,需要从 Body-Editing 模式进入 Profile-Editing 模式进
行修改。完成后,可逐次通过工具栏中的 Exit 按钮回到上一层工作模式。
下面来看一个修改模型实例。
对于前面建立的连杆,修改其厚度为 20mm,两端半径均为 40mm。
如图 4-7 所示,双击连杆 Body1,进入连杆的部件编辑模式,选择 Link,右击,在弹
出的快捷菜单中选择 Property 命令;在弹出的属性对话框中设置 First Radius 为 40,Second
Radius 为 40,Depth 为 20,单击 OK 按钮确认。在图形工作窗口中右击,在弹出的快捷菜
单中选择 Exit 命令,退出连杆的部件编辑模式。

图 4-7 修改连杆属性

4.5.3 部件属性的修改

仿真模型中的部件,除了几何形状外,还具有物理特性,其中包括质量、转动惯量、
惯性积、初始速度、质心位置等。在 RecurDyn 建模时,这些特性根据几何形状自动生成,
初始速度默认为 0。如果需要修改物理特性,需在图形工作窗口中选中拟修改特性的 Body
116 RecurDyn 多体系统优化仿真技术

或在数据库窗口中单击拟修改特性的 Body 名称,单击 P(或右击,在弹出的快捷菜单中选


择 Property 命令),进入“Properties of …”属性对话框。
在部件中,往往需要设置有方向的 Marker 点。Marker 点和普通的点 Point 之间的区别
为:Marker 点具有方向性,代表坐标系统有方位的点,可用来定义部件的形状和方向,限
定约束副与运动的方向,很多情況下是伴随部件自动产生的,亦可自动建立,必须隶属于
部件或大地;而 Point 不具有方向性,仅仅代表坐标系统的一个位置。

1.质量、转动惯量

如图 4-8 所示,Material Input Type 有 3 种方式可供选择。

图 4-8 Body 质量属性选项

 User Input(用户输入):自定义质量以及惯性矩的值。
 Library(材料库):在材料库中选择需要的材料类型,用户也可将自定义的材料
属性添加到材料库中。根据所选材料的密度以及几何体的体积,获得质量和惯性
矩。RecurDyn 自带的标准材料库共有 32 种材料,如钢、铝、铜、镍、尼龙等,包
括材料的杨氏模量、密度、波松比等参数。
 Density(密度):根据输入的材料密度和所创建的几何体,计算质量和惯性矩等。
 Center Marker:质心 Marker,如果采用 Library 类型,则不能更改质心位置。
 Inertia Marker:惯性矩中心,仅用于 Library 类型。

2.初始速度

在 RecurDyn 中可以根据需要设置 Body 的初始速度(Initial Velocity),如图 4-9 所示。


 Translational Velocity:相对于参考坐标系的平动速度。
 Reference Marker:平动速度的参考坐标系,默认为地面惯性坐标系。
 Rotational Velocity:相对于参考坐标系的旋转速度。
 Reference Marker:旋转速度的参考坐标系,默认为 Body 的质心。
3.Body色彩特性

如图 4-10 所示,在 Graphic Property 中,用户可以修改 Body 的颜色、视图显示模式、


光影效果、透明度等,也可以在 Body 上贴图。通过 Create Animation Scaling Info.复选框,
用户可以设置动画显示的比例因子。根据参考坐标系和平动转动的比例因子,可以获得预
第4章 基于 RecurDyn 的机械系统分析 117

期的动画缩放效果。

图 4-9 Body 初始速度设置

颜色
视图模式

图像效果

贴图处理

动画缩放

图 4-10 Body 色彩设置

4.5.4 部件质心Marker的修改

选中具体部件(Body),右击,在弹出的快捷菜单中选择 Property 命令,打开其属性


对话框,选择 Body 选项卡,如图 4-11 所示。在 Material Input Type(材料输入类型)处于
User Input 状态时,可以修改部件质心的 Marker(CM)点,包括位置及方向。将 Material Input
Type 设置为 User Input 之后,需先单击 Apply 按钮,然后单击 Center Marker 的 CM 按钮,
进入 Property of CM 对话框,分别设置 Origin 位置和 Orientation 方向。

4.5.5 部件几何体位置调整

对于创建的几何体,在很多时候都需要移动其方位,RecurDyn 提供了两种调整方位的
方法。
118 RecurDyn 多体系统优化仿真技术

图 4-11 质心 Marker 的修改

1.Origin & Orientation方法

通过参考点和方向来调整,该方法仅适用于装配体模式。
选中 Body,右击,在弹出的快捷菜单中选择 Property 命令,从弹出的 Properties of xx
(xx 代表所选的 Body 的名称)对话框中选择 Origin & Orientation 选项卡,如图 4-12 所示。

图 4-12 原点及方向

 Origin:Body 的参考坐标系的原点位置。
 Orientation:实体的参考坐标系的方向。
 Type:方向的类型,可以选择 Angels(角度)或 Coordinate(坐标)。
 Angles:角度类型,RecurDyn 提供 321 和 313 坐标系供用户选用,用户可通过欧
拉角来调整 Body 参考系方向。通过 Euler Angle 的 3 个量实现欧拉角定义。
 Coordinate:坐标类型,用户可以通过主从点来定义 Body 参考系的方向。通过原
点 Origin 和主点 Master Point 坐标来定义+Z 向,通过原点 Origin 和从点 Slave Point
坐标来定义+X 向。
 Master point,Slave Points:主点和从点,当两个坐标轴非正交时,以 Master point
为主,重新设定正交轴方向。

提示:Euler Angle(欧拉角)的参数值是以弧度制为单位的。如果要用度作为角度单
位,则需要在数字后面加上“D”,如 90D 代表 90 度。
第4章 基于 RecurDyn 的机械系统分析 119

欧拉角是刚体动力学习惯使用的广义坐标,采用 3 个独立变量表示刚体的转动自
由度位置。将刚体的有限转动分解为依一定顺序绕连体基的不同基矢量的 3 次有
限转动,每次转过的角度可定义为确定刚体转动前后相对位置的 3 个广义坐标。
Angle313,表示先绕 Z 轴,再绕 X 轴,再绕 Z 轴旋转。同样,Angle321 代表先
绕 Z 轴,再绕 Y 轴,再绕 X 轴旋转。

2.Object Control方法

其中包括 Basic 和 Advance 两种调整几何图形的方式。


(1)Basic(基本)调整方法
首先选中需要的对象(单个或多个),单击工具栏中的 Basic Object Control ,弹出 Basic
对话框,其中包括 Translate(平移)、Rotate(旋转)及 Tra/Rot(移动+旋转)3 个选项卡。
 Translate 和 Rotate 选项卡主要用于在选定的参考系下,通过在某一方向上调整一
定的距离或角度来实现平移或转动。平移支持 Scalar Translate 或 Vector Translate
两种方式,旋转支持 Scalar Rotate 和 Align Marker 两种方式(分别用 Scalar 栏中的
坐标方向按钮和 Apply 按钮实现)。
 Tra/Rot 选项卡用于在笛卡儿坐标系或柱坐标系下,通过调整欧拉角实现方位调整。
可以同时实现平移和旋转,当选中一个旋转轴 Marker 时,系统会自动计算出此
Marker 点与参考 Marker 点的位置和角度关系。使用此命令必须要指定一个旋转轴
Marker 点;参考点默认状态下为地面惯性 Marker 点。每单击一次 Apply 按钮,将
执行一次操作,可多次连续调整方位。

3
3

2 1
2 1

图 4-13 调整方位的基本方法

(2)Advance(高级)调整方法
首先选中需要的对象(单个或多个),单击工具栏中的 按钮,在弹出的下拉菜单中
120 RecurDyn 多体系统优化仿真技术

单击 Advance Object Control 按钮 ,弹出 Advance 对话框,如图 4-14 所示。在该对话框


中,提供了 Translate(平移)、Rotate(Angle)(旋转)及 Rotate(Orientation)3 个选项
卡。高级调整方式可以通过预览或 Copy,进行精确的位置调整。
在 Translate 选项卡中,可通过矢量方式或两点方式进行平移(两点方式可以精确地从
一个位移移至另一位置)。
在 Rotate(Angle)选项卡中,可以通过角度或两个矢量的方式进行转动。
在 Rotate(Orientation)选项卡中,可以把所用 Body 旋转至参考体一致的方向,如
图 4-15 所示。

图 4-14 调整方位的高级方法

图 4-15 方位转动的高级调整方法

4.6 Joint约束建模

在多体系统中,不同的部件之间往往通过约束副关系限制相互运动。在 RecurDyn 中,
约束副关系通过 Joint 来定义。

4.6.1 约束种类

在 RecurDyn 中,Joint 主要用于定义两个部件 Body(记作 Body1 和 Body2)之间相对


运动关系的约束。通过创建约束,可以规定各个 Body 之间的相对运动形式,设定驱动
(Motion)、初始条件(Initial Condition)和摩擦(Friction)等,藉由约束副使得系统中
的各个部件共同组成一个有机的整体。在 RecurDyn 中,共提供 21 种标准约束形式。
第4章 基于 RecurDyn 的机械系统分析 121

1.常用铰

 转动副 :约束 2 个转动和 3 个平动自由度,2 个 Body 之间允许相对转动。


 平动副 :约束 2 个平动和 3 个转动自由度,2 个 Body 之间可以互相平移。
 球铰 :约束 3 个平动自由度,2 个 Body 可在球面内旋转。
 圆柱副 :约束 2 个平动和 2 个转动自由度,2 个 Body 之间可平移、可旋转。
 万向铰 :约束 1 个转动和 3 个平动自由度,2 个 Body 在 2 个方向可相对转动。
 常速铰 :约束 1 个转动和 3 个平动自由度,2 个 Body 各自绕 Z 轴的旋转速度
相同。
 螺旋副 :沿着 Z 轴的平动受到旋转螺纹的约束,提供一个相对运动自由度。
 固定副 :约束所有自由度。
 平面副 :约束 1 个平动和 2 个转动自由度,2 个 Body 可在平面内相对运动。
 耦合副 :通过耦合,间接地连接部件。耦合副能够连接转动副、平动副及圆柱副。
 齿轮副 :定义转动副间的运动关系,提供啮合转动,在啮合点处有相同切向速度。
 距离约束 :约束 2 个 Body 间的距离,约束 1 个自由度。

2.基本约束

 点重合 :约束 3 个平动自由度,2 个点重合。


 共线 :将 Body2 的 Marker 点原点限定在 Body1 的 Marker 点 Z 轴线上。
 共面 :将 Body2 的 Marker 点原点限定在 Body1 的 Marker 点 X-Y 面上。
 方向定位 :2 个 Body 的 Marker 点的方向一致。
 轴平行 :2 个 Body 的 Marker 点 Z 向平行。
 轴垂直 :2 个 Body 的 Marker 点 Z 向垂直。

3.高副约束

 点线约束 :将实体上的点约束在样条曲线上,有 5 个自由度。需事先定义样条


曲线。
 线线约束 :在两条曲线之间建立一个连续的接触模型。
 驱动 :笛卡儿驱动,为某个自由度指定运动函数。单向驱动,转动、平动。

4.6.2 创建约束

各种类型的约束创建方法各不相同,但基本步骤基本相似。
(1)在 RecurDyn 主界面中的 Joint Toolkit 中选择拟创建的约束类型并用鼠标左键
单击。
(2)在选项区选择合适的输入方式。
(3)在图形工作窗口按照选项输入方式逐次选择,或在输入区输入。
(4)在数据库窗口中查看是否创建成功。
122 RecurDyn 多体系统优化仿真技术

(5)选择具体 Joint,右击,在弹出的快捷菜单中选择 Property 命令,弹出如图 4-16


所示对话框,选择 Joint 选项卡,从中进行设置以增加摩擦、初始条件或驱动。

类型
驱动

初始条件

摩擦

反力显示

测量

图 4-16 Joint 选项卡

4.6.3 定义驱动

通过定义驱动,可以约束系统的某些自由度,使系统按照预期的方式运动。在 RecurDyn
中,可以定义铰驱动或力驱动。铰驱动是通过定义转动副、平动副、圆柱副等 Joint 中的移
动或转动,从而通过运动约束一个自由度,使得系统减少一个自由度。驱动可以是和时间
关联的位移、速度、加速度,可以通过函数表达式或者用户自定义子程序为约束预先指定
运动。运动函数只能是时间、变量或微分变量的函数。
 驱动函数为 0,表示没有驱动。
 转动副的驱动单位是弧度或弧度与时间的组合。
 驱动可以使用 RecurDyn 提供的表达式进行定义。
 用户自定义子程序用来定义复杂的驱动。
使用表达式 EL 定义驱动的步骤如图 4-17 所示。
(1)选中 Include Motion 复选框,单击 Motion 按钮。
(2)在弹出的 Motion 对话框中的 Type 下拉列表中选择 Standard Motion。
(3)从驱动类型下拉列表中选择表达式的类型。
 Displacement(time):位移(时间)驱动。
 Velocity(time):速度(时间)驱动。
 Acceleration(time):加速度(时间)驱动。
(4)单击 EL 按钮,在弹出的表达式对话框中选择预先定义的表达式,或新建表达式。
使用子程序 UL 定义驱动的方法如图 4-18 所示。
(1)在 Motion 对话框中的 Type 下拉列表中选择 User Subroutine Motion。
第4章 基于 RecurDyn 的机械系统分析 123

(2)单击 UL 按钮,在弹出的 User Subroutine List 对话框中选择已经创建的子程序。

1
3
4

图 4-17 定义表达式驱动

选择用户子程序类型

选择用户子程序

图 4-18 定义用户子程序驱动

4.6.4 定义摩擦

在 RecurDyn 中,对于不同的约束副,其摩擦模型不同。

1.转动副

提供两类摩擦,包括 Sliding(滑动)摩擦和 Sliding & Static(滑动&静)摩擦。


(1)Sliding Friction(滑动摩擦)
考虑几何和物理参数,其计算方法如图 4-19 所示。
124 RecurDyn 多体系统优化仿真技术

图 4-19 转动副滑动摩擦示意图

1 —内半径 FRN —径向摩擦力  2 —外半径 FAN —轴向摩擦力 N RN —径向压力


N N
μ—摩擦系数 N —轴向压力
A
T —广义摩擦扭矩
f PR —径向预紧力 Tmax—最大摩擦扭矩
PA —轴向预紧力

摩擦系数与角速度之间的关系曲线如图 4-20 所示。

图 4-20 摩擦系数和角速度的关系曲线

 s —静摩擦系数  d —动摩擦系数 wt —绝对门槛角速度

(2)Sliding and Stiction Friction(滑动和静摩擦)


转动副滑动和静摩擦如图 4-21 所示,当转动速度大于门槛速度绝对值时,摩擦系数按
第4章 基于 RecurDyn 的机械系统分析 125

照图 4-22(a)所示的曲线确定;当旋转速度小于门槛速度绝对值时,  1    1  3v ,


其中  、 1 根据图 4-22(b)确定。

图 4-21 转动副滑动和静摩擦示意图

Tfriction—摩擦力矩 Faxialreaction—轴向反作用力 Rbending—弯曲臂 Tpreload—预扭矩


Rarm—摩擦力臂 Rpin—转轴半径 Frotational reaction—旋转反作用力 Tbending—弯矩
μ
Δ 为 Joint creep,v 为 Joint 的速度
β μ1
μs

1 μs
μd

Δv 1.5×Δv v
μ 曲线图 Δv Δmax Δ

(a)转动速度大于门槛速度 (b)转动速度小于门槛速度
图 4-22 摩擦系数图示

μs—静摩擦系数 μd—动摩擦系数 Δ—Joint Creep v—Joint 的速度 Δmax—最大静摩擦变形 Δv—门槛速度绝对值

摩擦力计算公式为:
Tfriction   ( Rarm Faxialreation  Rpin Frotationalreaction  ( Rpin Rbending )Tbending  (1  s )Tpreload )

2.平动副

提供两类摩擦,包括 Sliding(滑动)摩擦和 Sliding & Static(滑动&静)摩擦。


(1)滑动摩擦
如图 4-23 所示为矩形截面和圆截面的平动副参数。
摩擦系数与速度有关,其关系如图 4-24 所示。其中,μs 为静摩擦系数,μd 为动摩擦系
数,vt 为绝对门槛速度。
126 RecurDyn 多体系统优化仿真技术

图 4-23 平动副参数
N
a1—高 Px —x 轴的预紧力 a2—宽 Py —y 轴的预紧力 N xN — x 轴向的压力
 rad —半径 N
N yN — y 轴向的压力 Prad —径向预紧力 μ—摩擦系数

图 4-24 平动副摩擦系数和速度的关系

(2)滑动和静摩擦
平动副滑动和静摩擦如图 4-25 所示,摩擦系数的取值和速度的关系与转动副的滑动和
静摩擦的情况类似。

图 4-25 平动副滑动和静摩擦

μs(Static Friction
Coefficient)—静摩擦系数 Rarm(Reaction Arm)—反作用臂
μd(Dynamic Friction Coefficient)—动摩擦系数 Fpreload(PreForce)—预载荷
XS0(Overlap Delta)—重叠量

摩擦力的表达式为:
第4章 基于 RecurDyn 的机械系统分析 127

Ffriction   ( Freaction  (1 Rarm )Ttorsional  (1 X s )Tbending  (1 s ) Fpreload )


式中:
X s  X s 0 (Constant)
X s  X s 0  dij (Increase)
X s  X s 0  dij (Decrease)

提示: dij 为 Marker 点 i 和 j 之间的距离。

3.圆柱副:滑动和静摩擦

圆柱副滑动和静摩擦如图 4-26 所示,摩擦系数 μ 与速度的关系与转动副的滑动和静摩


擦的情况类似。

图 4-26 圆柱副摩擦力图示

μs(Static Friction
Coefficient)—静摩擦系数 Rpin(Pin Radius)—轴半径
μd(Dynamic Friction Coefficient)—动摩擦系数 Fpreload(PreForce)—预载荷力
XS0(Overlap Delta)—重叠量 Tpreload(PreTorque)—预载荷矩

摩擦力、矩的表达式为:
Ffriction   ( Freaction  (1 X s )Tbending  (1  s ) Fpreload )
Tfriction   ( Rpin Freaction  ( Rpin X s )Tbending  ( Rpin s ) Fpreload  (1  s )Tpreload )
其中:
X s  X s 0 (Constant)
X s  X s 0  dij (Increase)
X s  X s 0  dij (Decrease)

提示: dij 为 Marker 点 i 和 j 之间的距离。

4.球铰:滑动和静摩擦

球铰滑动和静摩擦如图 4-27 所示。


128 RecurDyn 多体系统优化仿真技术

图 4-27 球铰滑动和静摩擦

Tfriction—摩擦力矩 Freaction—反作用力

摩擦力矩计算公式为:
Tfriction   ( Rball Freaction  (1 s )Tpreload )
式中:μs(Static Friction Coefficient)—静摩擦系数;
Rball(Ball Radius)—球半径;
μd(Dynamic Friction Coefficient)—动摩擦系数;
XS0(Overlap Delta)—重叠量;
Tpreload(PreTorque)—预载荷矩;
摩擦系数取值和速度的关系与转动副相同。

5.万向铰

万向铰摩擦的定义方式与转动副相似。

4.6.5 约束力显示

Force Display(力的显示)有 4 种可控状态,即不显示、在 Action 的 Marker 点显示、


在 Base 的 Marker 点显示、同时在 Action 和 Base 的 Marker 点显示。约束力的显示如图 4-28
所示。

图 4-28 约束力显示
第4章 基于 RecurDyn 的机械系统分析 129

 Inactive:不显示力。
 Action:在 Action Body 的 Marker 点(接触位置)显示施加在运动实体上的约束力
和扭力。
对于 PTCV 和 CVCV 约束,力的表达式为:
f 
Qa   a 
0 
对于其他约束,力的表达方式为:
 fa 
Qa   
 a 
 Base:在 Base Body 的 Marker 点(接触位置)显示施加在 Base Body 上的约束力
和扭力。
对于 PTCV 和 CVCV 约束,力的表达方式为:
 f 
Qb   b 
0 
而对于其他约束方式,力的表达式为:
 fb    f a 
Qb      
 b   a  dba f a 

 Both:同时在 Base 和 Action 的 Marker 点显示约束力。

4.6.6 约束建模注意事项

 如果所建立的系统自由度为零,并且速度表达式与速度或加速度相关,则基于该
模型不能进行运动学分析,只能进行动力学分析。
 为了验证建立的约束是否正确,在机械系统非常复杂的情况下,可逐步进行检验,
必要时可通过临时的驱动来辅助分析约束的可行性。
 两个部件之间尽量使用一个约束来完成连接,以尽量避免多个约束添加到两个部
件上可能造成的意外重复,建议去除多余约束。
 创建约束时必须注意正确的方向;定义驱动时要注意部件的选择顺序。
 可以定义一个不随时间变化的零值常速度铰来将 2 个部件连在一起。

4.7 外力载荷建模

4.7.1 RecurDyn载荷种类

施加在模型中的力不会增加或减少系统的自由度。RecurDyn 中包括 4 大类的力,即直


接外力、特殊力、柔性连接力和接触力。一般通过定义在机械系统中部件之间的接触关系
130 RecurDyn 多体系统优化仿真技术

来考虑部件之间的接触力,RecurDyn 提供丰富的接触类型和先进的接触算法,后面章节对
接触将详细介绍。下面详细介绍直接外力、特殊力和柔性连接力。

4.7.2 直接外力

直接外力亦称作用力,可通过常值、函数表达式或用户子程序来表达力或力矩,亦称
作用力。

1.直接外力的种类

RecurDyn 中的作用力包括:
(1)单分量力或力矩:
方向为 Base 的 Marker 点和 Action 的 Marker 点之间的连线方向。力或力矩幅值可以是
位移、速度、力、变量及时间的函数。
 轴向力:
 转动轴向力:
(2)3 分量力或力矩
定义 3 个方向的力或力矩,方向由所选参考坐标系 3 个轴向决定。
 平移力:
 旋转力:
(3)6 分量力
 矩阵力 :同时定义 3 个方向的力和力矩,可定义预载荷。
 螺旋力 :同时定义 3 个方向的力和力矩,方向由所选参考坐标系的 3 个轴
决定。

2.作用力的施加

在施加作用力时,必须注意力的大小、方向和作用位置。操作步骤如下:
(1)在 RecurDyn 主界面 Force 工具包中选择拟施加的力类型,在选项区选择输入方
式(如 Body,Body,Point,Point)。
(2)在图形工作窗口中首先分别选择施力物体和受力物体,然后再分别选择施力点和
受力点,完成力的方向和作用位置定义。
(3)通过修改力的属性,来定义力的大小。在图 4-29 所示的力属性对话框中,可用
直接输入力大小、函数(关于位移、速度、加速度、时间等)、样条曲线插值、用户子程
序等方式表达。

4.7.3 特殊力

RecurDyn 中的特殊力是指重力、轮胎力等。
 重力:重力是一种场力,在分析过程中始终作用在所有 Body 的质心上,建立模型
第4章 基于 RecurDyn 的机械系统分析 131

时可根据模型方位及单位制设置重力的大小和方向。
 轮胎力:RecurDyn 支持的轮胎力包括 UA、Fialia、User 等。在创建轮胎力时必须
注意以下几点:
 生成轮胎力时,重力方向必须要在 Z 轴。
 必须要在 XZ 平面建立轮胎模型。
 轮胎力的 Z 轴是轮胎的旋转轴。
 轮胎模型和轮胎力的方向必须一致。
 轮胎中心点方向必须与轮胎力的运动 Marker 点方向一致。

受力物体及受力点

力的大小

施力物体及施力点

决定力方向

图 4-29 作用力属性

1.创建轮胎力

如图 4-30 所示,其步骤如下。

图 4-30 轮胎力

(1)将重力方向设定为 Z 轴,将工作平面改为 XZ 平面。


(2)创建轮胎的几何模型。
(3)将工作平面改为 XY 平面(为了创建轮胎力)。
(4)单击 Force 工具包中的图标 按钮。
132 RecurDyn 多体系统优化仿真技术

(5)单击两点,轮胎力的 Z 轴方向由此两点确定。
(6)打开轮胎力的属性对话框,将 Connector 选项卡中的欧拉角复制至剪贴板。
(7)打开轮胎几何模型的属性对话框。
(8)将材料输入方式由 Library 改为 User Input,单击 Apply 按钮。
(9)单击 CM 按钮,在弹出的对话框中选择 Origin & Orientation 选项卡,在欧拉角一
栏中粘贴,将轮胎几何模型的质心 Marker 点的方向修改为和轮胎力的 Action Marker 的欧
拉角方向一致。
对于 Fiala 和 UA 轮胎力,通过图 4-31 所示的属性来设置轮胎模型,从而产生相应的
轮胎力;对于 User 类型,用户需要自定义轮胎力,通过用户子程序实现。轮胎的属性分别
介绍如下。
 Unloaded Tire Radius(R1):轮胎自由半径。
 Carcass Radius of Toroidal Tire(R2):环形轮胎胎体半径。
 Vertical Tire Stiffness:轮胎垂直刚度。
 Longitudinal Tire Stiffness:轮胎纵向刚度。
 Lateral Tire Stiffness by Slip Angle:轮胎侧偏刚度。
 Lateral Tire Stiffness by Camber Angle:轮胎外倾刚度。
 Tire Radial Damping Ratio:轮胎径向阻尼率。
 Friction Coefficient at Zero Slip:无滑移摩擦系数。
 Friction Coefficient for the Full Slip:全滑移摩擦系数。

图 4-31 轮胎力属性

通过 Output Channel,用户可以根据需要从.tof 文件或后处理中获得输出的计算信息。


具体信息内容介绍如下。
 Acceleration of Hub:车轮加速度。
 Displacement of Hub:车轮位移。
第4章 基于 RecurDyn 的机械系统分析 133

 Velocity of Hub:车轮速度。
 Tire Contact Properties:轮胎接触属性。
 SAE Corordinate System:SAE 坐标系。
 Friction Ellipse Properties:摩擦椭圆属性。
 Tire Kinematic Properties:轮胎运动属性。
 Tire Force at Contact Patch in SAE C.S:SAE 坐标系触地轮胎力。
 Camber Angle:外倾角。
 Caster Angle:后倾角。

2.路面

轮胎需和路面结合起来进行仿真。RecurDyn 提供了 4 种创建路面的方式:


 Outline Road:轮廓线路面。
 Spline Road:样条曲线路面。
 Face Road:面建模。
 Import Road:导入路面文件(.rdf 文件)。
对于 Outline Road 和 Spline Road,如图 4-32 所示,两者的创建步骤基本类似。

Ground

图 4-32 创建路面

(1)单击 Body 工具包中的 Ground 按钮,进入 Ground 编辑状态。


(2)通过 Curve and Surface 工具包,创建 2 条样条曲线或 2 条轮廓线(注意段数
相同)。
(3)单击 Spline Road 或 Outline Road。
(4)选择样条曲线,右击,在弹出的快捷菜单中选择 Finish Operation 命令,确认生
成路面。
Face Road 的创建需要预先已经存在一个作为路面的(面)Surface,单击 FaceRoad,
然后选择面(Surface)即可。

4.7.4 RecurDyn柔性连接力

柔性连接相对于各种理想的铰接而言,考虑了变形的因素,是非刚性的约束。RecurDyn
提供了多种柔性连接力,包括弹簧阻尼、扭转弹簧阻尼、Bushing 衬套力、Beam 梁力、Plate
力等。
134 RecurDyn 多体系统优化仿真技术

1.弹簧阻尼及扭转弹簧阻尼(Spring & Rotational Spring)

如图 4-33 所示的 RecurDyn 的平移弹簧阻尼(TSDA)及扭转弹簧阻尼(RSDA),包


含弹簧力、阻尼力及预载荷,可以表示线性弹簧,亦可表达非线性弹簧,主要通过弹簧刚
度和阻尼来控制。弹簧刚度和阻尼系数可以是常数,也可以是样条曲线。当弹簧刚度和阻
尼系数是常数时,可以通过刚度指数和阻尼指数来定义非线性弹簧。

图 4-33 弹簧阻尼
n
Ta   K r  i  Cr  l  T
Tb  Ta
m
Fa   K r l m  Cr l n  F
Fb   Fa
其中,K(Spring Coefficient)——刚度系数;K(Spring
t Spline)——刚度曲线;C(Damping
Coefficient)——阻尼系数;Ct(Damping Spline)——阻尼曲线。
图 4-34 显示了弹簧、扭转弹簧的属性设置,其中各项含义如下。
 F(Pre Load)/T(Pre Torque):预载荷。
 M(Stiffness Exponent):刚度指数。
 N(Damping Exponent):阻尼指数。
 Free Length:自然长度。
 Free Angle:自由角度。
 Distance between Two Markers:当前弹簧长度。
 Angle between Two Markers:当前角度。
通过样条曲线来表达弹簧,拉伸产生负力,压缩产生正力,如图 4-35 所示。
创建弹簧阻尼(TSDA)的步骤如下:
(1)在工具包中选择 Professional>>Force>>Spring 。
(2)在图形工作窗口中选择两点作为弹簧力的两个端点;修改这两点位置之后,选择
弹簧力,按 P 键进入弹簧力属性对话框;单击 Distance between Two Markers 文本框后面的
R 按钮,重新计算并确定当前弹簧长度。
可以通过弹簧力属性对话框中的 Graphic 选项卡更改弹簧力图形显示,包括弹簧直径、
第4章 基于 RecurDyn 的机械系统分析 135

弹簧圈数、弹簧的图形长度、截面直径等,如图 4-36 所示。


RecurDyn 中扭转弹簧(以下简称扭簧)是施加在转动副上的。图 4-37 所示的扭簧
(RSDA)创建步骤如下:
(1)从工具包区选择 Professional>>Force>>Rotational Spring 。
(2)单击一个转动副,确定扭转弹簧位置。

图 4-34 弹簧、扭转弹簧属性

图 4-35 弹簧力样条曲线

图 4-36 弹簧图形参数 图 4-37 扭转弹簧


136 RecurDyn 多体系统优化仿真技术

2.Bushing衬套力

Bushing 是一种非常重要的柔性连接形式,连接两个部件,并对这两个部件施加力的作用。
通常,使用 Bushing 来取代 Joint 是一种行之有效的方法。使用 Bushing 不降低系统的自由度,
还可以处理过约束问题。Bushing 通过 3 个方向的力和 3 个方向的力矩来约束和连接部件。
Bushing 在相互作用的两个部件的作用点处进行连接。Bushing 的力学模型为:
 k1  V m1 
 Fax   K11 0 0 0 0 0   x  C11 0 0 0 0 0   x   F1 
   0   yk 2   0 C  Vym 2   
 Fay  K 22 0 0 0 0 0 0 0 0 F
       2
22
F   0 0 K33 0 0 0  zk3   0 0 C33 0 0 0  Vzm3   F3 
   
az
  l1      n1    
 Tax   0 0 0 K 44 0 0   ab1   0 0 0 C44 0 0  ab1   T1 
T   0 0 0 0 K55 0   l 2   0 0 0 0 C55 0   n 2   T2 
 ay     ab 2    ab 2  
 Taz   0 0 0 0 0 K 66  l 3  0 0 0 0 0 C66   n3   T3 
 ab3  ab3 
其中,Kii(i=1~6)为刚度系数;Cii(i=1~6)为阻尼系数;x、y、z、θab1、θab2、θab3 是 Action
Marker 相对于 Base Marker 的平动位移和旋转位移;vx、vy、vz、ωab1、ωab2、ωab3 是相对的
平动和旋转速度;F1、F2、F3、T1、T2、T3 是施加在 Action Marker 上的预载荷;ki、li、mi、
ni(i=1,2,3)为指数。
施加在 Base Action 上的平动和旋转反作用力为:
Fb   Fa
Tb  Ta  L  Fa
通过控制 Bushing 的刚度矩阵和阻尼矩阵,来控制 Bushing 的连接效果。
创建 Bushing 力的步骤如下:
(1)选择 Professional>>Force>>Bushing ,从选项区选择输入方式(如 Body,Body,
Point)。
(2)在图形工作窗口中选择拟连接的 2 个部件(Body1 和 Body2)及位置。
(3)在图 4-38 所示属性对话框中设定刚度和阻尼系数,或定义刚度和阻尼的样条曲
线函数。

图 4-38 Bushing 力属性对话框


第4章 基于 RecurDyn 的机械系统分析 137

 Radial Type:选中此复选框,平移的 X 方向和平移的 Y 方向被组合到一起。


 Static Bushing:选中此复选框,bushing 力只用于静态分析。当进行动态分析时,
bushing 力不起作用。

提示:Bushing 力与约束副的等效介绍如下。

采用 Bushing 力可以等效约束副。如转动副 Revolute 可以采用 3 个方向无限大平动刚


度和 2 个方向无限大、1 个方向为 0 的转动刚度设置;固定副 Fixed 可以 6 个方向的无限大
刚度等效。一般无限大可以用 1010 表示。
如图 4-39 所示的结构,需要通过 RecurDyn 分析出两个轴承位置的支撑力时,有效的
方法是用 Bushing 等效的转动副代替直接建立转动副。因为若直接采用两个转动副,软件
将自动消去过约束而无法获得两个位置全部的支撑力作用。

图 4-39 约束副与 Bushing 等效示例

3.Beam力

RecurDyn 的 Beam 力是根据 Timoshenko 梁理论而产生的力和力矩,连接 2 个物体,


在 Base Marker 的 X 轴向定义一根梁,施加在 Action 上。Beam 力属性如图 4-40 所示。

图 4-40 Beam 力属性框

创建 Beam 力的步骤如下:
(1)选择 Professional>>Force>>Beam 。
(2)在图形工作窗口中选择两个部件(Body1 和 Body2)及两点,两点之间的相对位
138 RecurDyn 多体系统优化仿真技术

置确定了两个 Marker 点的 X 轴方向。


(3)更改属性对话框以确立梁的截面及属性(默认为用户自定义的方式,可以自定义
截面的各个惯性矩,选择特定的截面类型,修改几何参数)。
 Undeformed Length:无变形时长度。
 Young's Modulus:杨氏模量。
 Shear Modulus:剪切模量。
 Damping:结构阻尼。
RecurDyn 提供两种阻尼输入方式:比例阻尼(Ratio)和阻尼矩阵(Matrix)。
如果选择了比例阻尼(Ratio),则阻尼矩阵计算方法为:
C  ratio  K
如果选择了阻尼矩阵(Matrix),根据矩阵的对称性,只需输入阻尼矩阵的上三角阵。

c11 c12 c13 c14 c15 c16 


 c22 c23 c24 c25 c26 

 c33 c34 c35 c36 
 
 c44 c45 c46 
 c55 c56 
 
 c66 
Beam 力模型如图 4-41 所示。

图 4-41 Beam 力模型

 Fax   K11 0 0 0 0 0   x  L   C11 C12 C13 C14 C15 C16  Vx 


     
 Fay 
 0
 K 22 0 0 0 K 26    y  C21 C22 C23 C24 C25 C26  Vy 
F   0 0 K 33 0 K35 0    z  C31 C32 C33 C34 C35 C36  Vz 
 az        
 Tax   0 0 0 K 44 0 0    ab1  C41 C42 C43 C44 C45 C46  ab1 
T   0 0 K 35 0 K55 0    ab 2  C51 C52 C53 C54 C55 C56  ab 2 
 ay       
 Taz   0 K 26 0 0 0 K 66    ab 3  C61 C62 C63 C64 C65 C66  ab3 
其中,δx、δy、δz、δθab1、δθab2、δθab3 是运动 Marker 点相对于 Base Marker 点的平动
位移和旋转位移;vx、vy、vz、ωab1、ωab2、ωab3 是相对的平动和旋转速度;每个 K ij 的公式
第4章 基于 RecurDyn 的机械系统分析 139

如下:
K11  EA / L
K 22  12 EI xx /[ L3 (1  Py )]
K33  12 EI yy /[ L3 (1  Pz )]
K 44  GI xx / L
K55  (4  Pz ) EI yy /[ L(1  Pz )]
K 66  (4  Py ) EI xx /[ L(1  Py )]
K 26  6 EI xx /[ L2 (1  Py )]
K35  6 EI yy /[ L2 (1  Pz )]
其中,
Py  12 EI zz ASY (GAL2 )
Pz  12 EI yy ASZ (GAL2 )

提示:ASY 和 ASZ 是 Timoshenko 梁在 Y 和 Z 方向上的剪切变形的剪切修正因子,剪


切修正因子的常用值如下:
 实心矩形、三角形、梯形(平行边位于上下底面)=6/5。
 菱形截面=31/30。
 实心圆截面=10/9。
 薄壁空心圆截面=2。

4.Plate力

Plate 力通过在 1 个 Base Marker 和 3 个 Action Marker 之间生成梁单元实现连接的目的。


如图 4-42、图 4-43 所示,创建 Plate Force 的步骤如下。
(1)选择 Professional>>Force>>Plate ,并从选项区选择输入方式(如 Body,Body,
Body,Body,Point,Point,Point,Point)。
(2)依次从图形工作窗口中选择 Body 及 Point。
(3)更改属性对话框以建立 Plate 力。
 Young's Modulus:杨氏模量。
 Poisson Ratio:泊松比。
 Thickness:厚度。
 L01:第一个 Action Marker 点相对于 Base Marker 点的位置向量。
 L02:第二个 Action Marker 点相对于 Base Marker 点的位置向量。
 L03:第三个 Action Marker 点相对于 Base Marker 点的位置向量。
 Proportional Ratio for Damping:比例阻尼系数。阻尼矩阵计算公式:
C  ratio  K
140 RecurDyn 多体系统优化仿真技术

图 4-42 Plate 力连接

图 4-43 Plate 力属性对话框

4.7.5 力的显示

RecurDyn 提供 3 种力的显示方式,如图 4-44 所示;通过 Inactive 可控制力的不显示。

图 4-44 力的显示
第4章 基于 RecurDyn 的机械系统分析 141

(1)Action
Action:显示作用在 Action 上的力或力矩。对于 Plate 力:
 f a1   fa2   fa3 
Qa1    Qa 2    Qa 3   
 a1   a 2   a 3 
对于轮胎力:
 fi 
Qa1   
 i  sai f i 
对于其他力:
 f a1 
Qa1   
 a1 
(2)Base
Base:显示作用在 Base 上的力或力矩。对于弹簧阻尼、 轴向力、 平移力、旋转力及
螺旋力:
 fb   f a 
Qb      
 b   a 
对于 Bushing 力、Beam 力及 Matrix 力:
 fb    f a 
Qb      
 b   a  dba f a 
对于 Plate 力:

 
   f an 
 fb   n 1 
Qb       
 b  
 ( an  dban f an ) 
 n 1 
对于轮胎力:Base 方式不显示。
(3)Both
Both:同时显示力与反作用力。

4.8 RecurDyn分析类型

RecurDyn 支持的仿真类型包括:
 Dynamic/Kinematic:动力学/运动学分析,获得系统运动过程中的运动学和动力学量。
 Static:静态分析,通过该类型的分析,获得系统的平衡状态。静态分析只能得到
位移和静态力。速度和加速度假定为 0。
 Eigenvalue:特征值分析,获得系统的各阶特征值。
 Pre Analysis:预分析,通过预分析找出系统中多余的约束,独立的坐标,并且计
142 RecurDyn 多体系统优化仿真技术

算出模型的自由度。
 Direct Frequency Response Analysis:直接频率响应分析,适合于有柔性体的模型。
 Design Study:设计研究,支持动力学/运动学分析和静态分析。
每一类型的分析,需要不同的参数设置进行控制求解。

4.8.1 动力学/运动学分析

在进行动力学/运动学分析时需要明确仿真分析的时间。End Time 用于控制仿真的总时


间(单位与创建模型时所选时间单位一致)。分析过程往往需要很多步的求解过程,并非
RecurDyn 求解器所进行分析的每一步都需要输出,因此用户可以通过 Step 来定义用于动画
的输出步数,即采样数据个数。同时 RecurDyn 还提供了后处理步数因子,和 Step 的乘积
决定了用于后处理的采样数。举例来说,若 Step=100, Plot Multiplier Step Factor=2,则后
处理中的各个输出量的采样数都为 200 个。如果 Step 太大,RecurDyn 求解器的输出数据数
可能小于 Step 数,RecurDyn 求解器无法添加输出数据来满足 Step 采样数。在这种情况下,
可以修改 Maximum Step Size 来获得更多的输出数据。
此外,用户还可以定义结果输出的时间范围。通过 Start & End Times for Output/Start
Time 设定结果输出的起始时间,通过 Start & End Times for Output/End Time 设定结果输出
的结束时间。
RecurDyn 求解结果的输出文件名称可以与当前模型名不同,通过 Output File Name,
可任意命名模型的输出文件名。不选中此项,默认输出为当前模型文件名。
在执行动力学分析之前可进行静态分析、特征值分析、状态矩阵分析和直接频率响应
分析,通过 Include 选项,可以根据需要选择是否有必要在动力学分析之前先进行这些分析。
为了更加快速地执行分析过程,用户可选择 Hide RecurDyn During Simulation(在仿真
运行时隐藏 RecurDyn)。一旦选择该项,在仿真过程中即可通过右击系统托盘(Windows
桌面的任务栏)中的 按钮来暂停仿真或者激活 RecurDyn 窗口。根据需要,亦可选择仿
真过程是否需要动画显示(Display Animation)。Hide RecurDyn During Simulation 和 Display
Animation 这两项功能不可同时实现。
在进行分析之前,还可以更改重力场的设置,分析时所采用的重力场是按照分析前的
最后一次生效设置为准。
动力学/运动学分析的效果可通过一系列仿真参数设置来控制:
 Maximum Order:积分类型中的最大积分阶数,用于控制求解的精度,在 1~5 之间
取值。该值越小,数值阻尼越大,求解精度越低;反之,该值越大,求解的精度
就越高。
 Maximum Step Size:最大步长,控制积分步大小。
 Error Tolerance:误差。
 Integrator Type:积分类型。RecurDyn 支持多种积分类型,包括 DDASSL、广义
Alpha(IMGALPHA 及 TRKGALPHA)及 Hybrid 方法。其中 DDASSL、IMGALPHA
都是隐式积分器,TRKGALPHA 是显式积分器,HYBRID 是混合积分器。
第4章 基于 RecurDyn 的机械系统分析 143

 DDASSL 有较为保守的误差控制机制,具有更多的收敛误差控制算法,可高
效地处理刚性系统动力学问题。该积分器基于 BDF ( Backward Difference
Formulae)及多步积分法。
 广义 Alpha 方法具有更大的稳定区域,但精确度较低。该方法通过减小不希
望的低频耗散来获得高频耗散,可通过参数控制数值耗散。TRKGALPHA 的
积分方程与广义 Alpha 方法类同。
 IMGALPHA 拥有更大的稳定区域,精度较高,可通过参数控制数值积分发散。
从某种意义上看,DDASSL 积分算法更加注重求解速度的快速,IMGALPHA
算法更在乎精度。
 IMGALPHA 是专门为子系统如履带、链条、带等提供的积分算法,因此对于
RecurDyn 的子系统分析不需要选择积分器类型。
 HYBRID 是一种混合积分器,专门针对与 FFLEX 共存的子系统分析。
 Numerical damping:数值阻尼,取值在 0~1 之间,适用于广义 Alpha 方法,以阻
尼比的形式表示,0 表示无阻尼,1 表示最大阻尼。
 Constant step size:固定时间步长,适用于 TRKGALPHA 积分器,步长固定为一个
常数值。
 Initial step size:仿真的初始积分步长。加大初始积分步长可提高计算速度,但可
能损失精度。
 Jocobian evaluation:雅克比计算,适用于 TRKGALPHA 积分器,控制 Jacobian 矩
阵的计算频率。例如,该值设为 100,那么每隔 100 个积分步就计算一次 Jacobian
矩阵。
 Match Solving Stepsize with Report Step:求解步与报告步匹配,即两者一致。
 Save:保存,把仿真结束时的所有状态保存到一个.icf 文件中。可自定义.icf 文件名。
 Import:导入,在仿真过程开始时导入.icf 文件。用户可指定导入的.icf 文件名称。
 Match Simulation End Time with User Input:仿真终止时间与用户输入的仿真时间
一致。
 Stop Condition:通过表达式方程定义的仿真终止条件,在达到用户输入的终止时
间 End Time 之前,如果满足仿真终止条件,将自动终止仿真。

4.8.2 Static静态分析

静态分析用于静平衡位置的求解。分析之后,可以在.out 文件中看到系统的初始信息
以及平衡位置。
静态分析的参数包括:
 End time:仿真时间。
 Step:仿真步数,将仿真时间按照仿真步数等分,反复进行静态分析。
 Error:收敛误差,用于定义收敛准则。
 Maximum iteration:最大迭代次数,定义牛顿法的迭代控制。
144 RecurDyn 多体系统优化仿真技术

Solver type:求解类型。RecurDyn 支持 3 种求解方法求解静态问题,分别介绍如下。


(1)N-R(Newton-Raphson)迭代法
适用于 MBD 和 MFBD 模型,参数为收敛因子(Convergence Factor)。如果系统有随
遇平衡位置,那么牛顿法的 Jacobian 矩阵将是奇异的。该因子加在 Jacobian 矩阵的对角
元素上是为了避免奇异性。一般刚性系统采用大的收敛因子,在系统不能收敛的情况下,
需要采用更大的收敛因子。
(2)Robust N-R 法
Newton-Raphson 迭代法处理动态效应时采用比较稳定的技术,适用于 MBD、MFBD、
皮带、链条和履带。如果系统包含皮带滑轮、链条或者履带系统,那么只能使用 Robust N-R
法。其参数包括:初始步长(Initial step size)、最大步长(Maximum Step Size)和步长因
子(Step size factor)。初始步长控制广义坐标的变化幅值。当初始步长较小时,需要较长
时间才能收敛。通过增加初始步长,可以在较短的时间内到达平衡位置。通过步长因子可
改变步长,当步长因子的值较大时,步长的改变也很大。
(3)Augmented N-R 法
通过线搜索找到最优解,适用于 MBD 和 MFBD 。参数包括仿真步的平移极限
(Translational Move Limit)和旋转极限(Rotational Move Limit),推荐 FFlex 模型该参数
的取值范围为 0.1~1.0。
OUT 文件(*.out)中显示了初始条件和平衡位置,如图 4-45 所示。

初始条件

平衡位置

图 4-45 初始条件和平衡位置
第4章 基于 RecurDyn 的机械系统分析 145

4.8.3 Eigenvalue特征值分析

特征值分析用于获得系统的振动频率。分析之后,可以在.out 文件中看到系统的信息。
RecurDyn 通过线性化求解系统的特征值,提供无阻尼系统和阻尼系统两种求解方法。在特
征值分析完成之后,可通过.out 文件了解系统的特征值,也可以在图 4-46 所示 RecurDyn
界面的工具栏中设定模态阶数及重复次数,通过“播放”按钮查看系统振型动画。
基于 Linear 模块的分析可将系统的非线性运动和动力学方程线性化,快速计算系统的
固有频率特征向量和状态空间矩阵,进而了解系统的固有特性。线性化有助于理解非线性
系统在确定状态下的系统行为。如果设计的机械系统涉及控制系统,可以用 Linear 预测机
械系统的响应,有利于控制系统的设计。用 Linear 得到的系统频域特性也可以和有限元分
析或者模态试验的结果进行对比。其主要功能包括:系统级特征模态的计算,回放各阶模
态的动画,可对非线性系统进行线性化分析、状态空间矩阵(ABCD 矩阵)导出(该矩阵
可与 MATLAB 接口并进行进一步分析)。

动画模态振型中每一循环的帧数
动画模态振型中的幅值因子

在时域中进行特征值分析的起、止时间

最大模态数

特征值分析之前先进行静态分析

“播放”按钮

图 4-46 特征值分析设置及动画后处理

4.8.4 Pre Analysis预分析

实际机构中往往会存在过约束的问题,比如门的转动只需要一个转动副就可以了,但
是基于刚度和稳定性的考量,往往在门和门框之间通过两个合页连接。按照实际机构定义
146 RecurDyn 多体系统优化仿真技术

的仿真模型属于过约束问题模型。
预分析可以找出多余的约束,独立的坐标,并且计算出模型的自由度。在预分析中,
模型满足所有的动力学约束条件。分析之后可以在.msg 文件中看到系统信息。
选择 Analysis>>Pre 命令,在弹出的 Pre Analysis 对话中单击 Simulate 按钮,分析完成
之后如图 4-47 所示。在 Output 栏中右击,在弹出的快捷菜单中选择 Open MSG File 命令,
打开.msg 文件,从中可以查看是否模型中存在过约束,并可以了解模型求解过程中自动去
掉了何种过约束。

图 4-47 预分析结果

4.8.5 Direct Frequency Response Analysis直接频率响应分析

通过直接频率响应分析,找到预先定义位置的简谐响应。通过直接频率响应分析,可
以获得预置位置的幅值和相角的频率响应曲线。该分析适用于 FFlex 模型。

4.9 RecurDyn测量工具

在 RecurDyn 中除了后处理之外,还可通过 Request、Scope 及 Measure 实现测量功能。

4.9.1 RecurDyn/Request
选择 Subentity>>Request 命令,可以按照需要自定义输出的内容,如位移、速度、加
速度和力等。输出请求(Request)功能可将所定义的输出结果数据写到*.rplt 和*.req 文件
中,可通过 Plot(后处理)查看。
选择 Subentity>>Request 命令,弹出 Request List 对话框,其中提供了 Standard 、
Expression、User、RFLEX 选项卡。
 Standard:标准输出请求,定义位移、速度、加速度和力的输出。
 Expression:定义表达式输出,一次可定义 6 个表达式输出。
 User:使用用户子程序定义输出。
 RFLEX:将 RFlex 的位移、速度、加速度及变形作为输出。
第4章 基于 RecurDyn 的机械系统分析 147

1.Standard Request标准输出请求

建立标准输出请求的步骤为:
(1)选择 Subentity>>Request 命令,在弹出对话框中选择 Standard 选项卡,单击 Create
按钮,打开 Standard Request 对话框,如图 4-48 所示。

图 4-48 标准输出请求

(2)在 Standard Request 对话框中分别设置下列各项。


 Name:输出请求的名称。
 Type:选择输出的类别,可选范围包括位移、速度、加速度和力。
 EulerAngle:欧拉角的类型,仅适用于输出请求为位移的情况。
 Action、Base、Reference:分别设置 ActionMarker 点、Base Marker 点及参考 Marker
点。Action Marker 点的方向按照 313 欧拉角表示,与参考 Marker 点无关。如果没
有选择 Base Marker 点和参考 Marker 点,则默认为惯性坐标系。
(3)在输入各部分的内容之后,单击 OK 按钮确认。

2.Expression Request表达式请求

创建表达式请求的步骤为:
(1)选择 Subentity>>Request 命令,在弹出对话框中选择 Expression 选项卡,单击
Create 按钮,打开 Expression Request 对话框,如图 4-49 所示。
(2)在 Expression Request 对话框中,输入表达式输出请求的名称,单击 EL 按钮,
在弹出的 Expression List(表达式列表)对话框中选择作为输出请求的表达式,单击 OK 按
钮确认。
如果定义多个表达式输出请求,可重复步骤(2)。
(3)在 Expression Request 对话框中,单击 OK 按钮确认,完成表达式输出请求定义。

3.User Request用户子程序请求

选择 Subentity>>Request 命令,在弹出对话框中,选择 User 选项卡,单击 Create 按钮,


在弹出的 User Request 对话框中单击 UL 按钮,选择用户子程序,单击 OK 按钮确认,完成
148 RecurDyn 多体系统优化仿真技术

用户子程序输出请求定义。

图 4-49 表达式请求

4.RFLEX Request模态柔体输出请求

建立 RFLEX 请求的步骤为:
(1)选择 Subentity>>Request 命令,在弹出对话框中选择 RFLEX 选项卡,单击 Create
按钮,打开 RFLEX Request 对话框,如图 4-50 所示。

图 4-50 RFLEX 请求

(2)在 RFLEX Request 对话框中,设置下列各项。


 Name:输出请求名称。
 Type:选择输出请求的类型,可选范围包括位移、速度、加速度和变形。
 NodeID、Base、Reference:节点号、Base Marker 点和参考 Marker 点。节点的方
向按照 313 欧拉角显示,与参考 Marker 点无关。当不设置 Base Marker 点或参考
Marker 点时,默认为惯性坐标系。
第4章 基于 RecurDyn 的机械系统分析 149

4.9.2 RecurDyn/Scope
利用 Scope(测量仪),可在显示器窗口绘制所测量的曲线,如图 4-51 所示。该测量曲
线可以和动画同时显示在一个工作窗口中,当播放动画时,波形显示窗口中会出现随时间移
动的标记线。显示器窗口中工具栏各项含义可参见 RecurDyn/Plot 后处理工具栏相应含义。

注意:当保存 AVI 文件时,显示器窗口不包括在其中。

图 4-51 测量仪

RecurDyn 的固有输出量都可通过 Scope 显示器在模型窗口中显示测量结果。启用测量


仪显示器的方法为:选择需要显示的测量对象(如显示部件的位移,则需选择部件),右
击,在弹出的快捷菜单中选择 Property 命令,在弹出的对话框中单击 Scope 按钮,在弹出
的 Scope Entity 对话框中,从 Component 下拉列表中选择要测量的量,如果需要,可自定
义名称,也可以通过 Et 按钮更改所选择的对象,通过 Display 控制是否显示,最后单击 OK
按钮确认,如图 4-52 所示。此时在 RecurDyn 的 Database 栏中的 Scopes 下将显示所创建的
测量显示器。在 Scope 显示器关闭之后,可通过单击 DataBase 栏中的 Scopes 将其展开,再
次打开显示器。

图 4-52 测量仪显示器
150 RecurDyn 多体系统优化仿真技术

通过 Scope 测量仪,还可以自定义测量的量。

1.Angle角度

测量 3 点定义的两个向量之间即时的角度,如图 4-53 所示,默认单位是度(°)。

图 4-53 测量角度

角度的定义为:
 d 21 T
d 23 
  cos 1  
 | d 21 || d 23 | 
其中, d 21  r1  s1  r2  s2 ; d 23  r3  s3  r2  s2 。

2.Point to Point点到点

如图 4-54 所示,通过 Point to Point 的 Scope,可以容易地显示任意两个 Marker 点之间


的相对位置、速度或者加速度。

图 4-54 点间测量

创建点到点波形的步骤为:
(1)打开 Scope Point-to-Point 对话框。
( 2 )设置名称,选择测量的类型(包括: Translational Displacement 、 Translational
Velocity、Translational Acceleration、Rotational Displacement、Rotational Velocity 和 Rotational
第4章 基于 RecurDyn 的机械系统分析 151

Acceleration)。
(3)选择测量的方向或幅值(X,Y,Z,Magnitude)。
(4)依次定义两个 Marker 点,并根据需要指定参考坐标系。
(5)选中 Display 复选框之后,单击 OK 按钮确认。

3.Expression表达式

通过 Post>>Scope>>Expression 命令,可绘制自定义函数表达式的结果,而不需要进入
后处理绘图模式。其方法为:选择 Scope>>Expression 命令,在弹出的 Scope Expression 对
话框中输入名称,单击 EL 按钮,并选择已经定义好的表达式,选中 Display 复选框,单击
OK 按钮确认。

4.Entity实体单元

该功能用于显示 Joint 约束、Force 力、Body 部件的位移、速度和加速度等各元素的分


析结果。可在任意坐标系下测量一般力或接触力。可通过 Component 选择测量类型(位移、
速度等在各个方向上的分量),通过 Reference Frame 选择参考坐标系,默认为质心 Marker。

4.9.3 RecurDyn/Measure
选择 Tools>>Measure 命令,可以测量质量特性、距离、半径和角度等,如图 4-55 所示。

图 4-55 测量工具

1.Mass Property质量特性

该功能用于计算总质量和惯性矩,如图 4-56 所示。如果不指定参考系,那么惯性矩就


按照质心 Marker 计算。计算质量参数的步骤为:
(1)单击 Add 按钮添加部件 Body(或单击 All Body 按钮添加所有实体)。
(2)通过 Use 栏选择测量计算的部件。
(3)选择惯性中心,可以用质心,也可以通过选择 Marker 点自定义惯性中心。
(4)单击 Calculate 按钮进行计算。
计算之后,在 Mass 文本框中将显示总质量,在 Position of Mass Center 文本框中将显
示总质心位置。
下面重点介绍 Inertia Moment(惯性矩)。
152 RecurDyn 多体系统优化仿真技术

图 4-56 质量特性测量

当惯性矩中心移动到部件的质心时,惯性矩计算公式为:
 T
J it  Ci J i ff CiT  mi simf simf I  simf simf
T

其中, Ci 是原惯性中心 Marker 点相对于质心 Marker 点的方向矩阵;I 是单位阵。 simf
是原惯性中心相对于质心的位置向量,以质心坐标系为参考坐标系。
如果惯性矩中心从质心移动到其他 Marker 点,那么新的惯性矩计算如下:
t T

J i ff   At Ct  Ai J i f AiT At Ct  mi dtiff dtiff I  dtiff dtiff
T T

其中, Ai ——第i个Body的质心Marker点的方向矩阵; At ——目标Body的质心Marker点的
方向矩阵; Ct ——目标Marker点的方向矩阵; dtiff ——目标Marker点到第i个Body质心的距
离向量。相对于目标Marker点坐标系,计算方法为 dtiff   At Ct 
T
r  r  A s  。
i t t t
f

如果目标位置就是所选 Body 的质心,那么 At 和 Ct 都是单位阵, stf 是零向量。因此距


离向量可定义为:
dtiff  ri  rcm
最后将惯性矩求和得到总的惯性矩:
n
t
J ff   t J i ff
i 1

2.Distance距离

通过 Tools>>Measure>>Distance 命令,可以测量点与点间的距离,也可以测量边、面、
体之间的距离。
(1)Point Type(点间的距离)
点间的距离测量如图 4-57 所示。计算两点间的距离和方向,如果不指定参考坐标系,
第4章 基于 RecurDyn 的机械系统分析 153

则默认参考系为地面。选中 Point 单选按钮,分别通过 Pt 按钮选择第一点和第二点,如果


需要可指定参考坐标系,然后单击 Calculate 按钮进行计算。

图 4-57 点间距离测量

相对位移计算方法为:
d 21ff   Ar Cr   r2  r1 
T

其中, Ar 和 Cr 分别是 Body 坐标系和 Marker 点坐标系相对于指定参考系的方向矩阵。两


点间距离为: d || d 21ff ||
(2)Edge,Face,Solid Type(边缘、面、实体间距离)
该选项用于计算两个几何体之间的最小距离。如图 4-58 所示,通过 Gr 按钮分别选择
两个 Entity,然后单击 Calculate 按钮,即可进行测量计算。

最小距离

最小距离

图 4-58 特征间距离测量

3.Radius半径

用于测量计算弧线、圆及球面的半径。

4.Angle角度

角度测量如图 4-59 所示,测量 3 个点所定义的两个向量之间的角度。


154 RecurDyn 多体系统优化仿真技术

图 4-59 角度测量

4.10 RecurDyn/Extract萃取中间状态

通过 File>>Extract 命令可以萃取任何仿真状态。该功能有助于建立经历某一过程后的
仿真模型。例如,从总共 5 秒的仿真运动中提取出 2 秒钟的状态,以该状态作为起始点,
开始新的仿真模型。
下面以 3.7.3 节的单摆动力学分析为例,萃取 0.9s 的仿真状态,并在该状态下在一二
级单摆之间增加扭簧(刚度系数 10000,阻尼系数 100),在此基础上运行 3s 的仿真,观
察二级单摆的运动轨迹,并测量扭簧力。
打开 3.7.3 节的模型,如图 4-60 所示,在工具栏中单击“播放”按钮播放动画,在动
画运行至 0.9s 时单击“暂停”按钮。

图 4-60 运行动画

如图 4-61 所示,选择 File>>Extract 命令,并重新命名为“单摆模型_exact.rdyn”之后,


单击 Save 按钮。

图 4-61 萃取状态

打开“单摆模型_exact.rdyn”,选择 Professional>>Force>>Rotational Spring,选择 Joint2


第4章 基于 RecurDyn 的机械系统分析 155

(单摆 1 和单摆 2 之间的 Joint)并确定,完成扭簧定义,如图 4-62 所示。

图 4-62 定义扭簧

从 Database 栏中选择 Force>>RotationalSpring,右击,在弹出的快捷菜单中选择 Property


命令,在弹出的对话框中确认扭簧刚度系数为 10000,阻尼系数为 100,单击 OK 按钮确认,
如图 4-63 所示。

图 4-63 设置扭簧属性

完成运行 3s 的动力学仿真。
从 Database 栏中选择 Force>>RotationalSpring,右击,在弹出的快捷菜单中选择 Property
命令,在弹出的对话框中单击 Scope 按钮,在弹出的 Scope Entity 对话框中选择 TM_RSDA,
选中 Display 复选框,单击 OK 按钮,如图 4-64 所示。

图 4-64 测量扭簧设置

单击工具栏中的播放动画按钮,在 RecurDyn 的工作窗口中将同时显示测量显示器和动


156 RecurDyn 多体系统优化仿真技术

画轨迹线,如图 4-65 所示。

图 4-65 结果后处理

通过 Exact 功能可实现控制一二级单摆之间的扭簧在 0.9s 生效的效果。

4.11 曲柄滑块机构分析实例

建立图 4-66 所示的曲柄滑块机构,曲柄和机架间为转动副,曲柄和连杆之间为球铰,


连杆和滑块间为球铰,滑块和机架之间为平动副。几何模型在 RecurDyn 中建立,在每一环
节之后注意及时保存模型。注意及时调整显示模式以方便建模。

图 4-66 曲柄滑块机构
第4章 基于 RecurDyn 的机械系统分析 157

4.11.1 建立部件几何体

创建名为 Slider_Crank_01 的 RecurDyn 模型,选择单位制为 MMKS,分别将网格高和


宽设置为 10,设置工作平面为 XZ 平面。

1.建立固定在大地上的支架

通过 2 个长方体、2 个圆柱体和 2 个拉伸体来创建支架。支架固定在大地上,进入大


地编辑模式(方法 1:在 Body 工具栏中单击 Ground 按钮 ,进入实体编辑模式。方法 2:
在 DataBase 栏中选择 Body>>Ground,右击,在弹出的快捷菜单中选择 Edit 命令)。单击
工具栏中的“连续自动操作”按钮 。
如图 4-67 所示,选择 Professional>>Solid and Marker>>Box,在选项区选择(Point,Point,
Depth)模式,先后在输入区中输入(100, 0, -50)、(-100, 0, 0)和 200,单击输入区右
侧的 Execute command 按钮(或者按 Enter 键);继续分别在输入区中输入(-150, 0, 200)、
(-100, 0, -50)和 200,按 Enter 键确认。

图 4-67 建立接地机架外廓

选择 Professional>>Solid and Marker>>Cylinder,在选项区选择(Point,Point,Radius)模


式,在输入区中依次输入(-100, 0, 170)、(-80, 0, 170)和 20,单击输入区右侧的 Execute
command 按钮(或者按 Enter 键);继续在输入区中依次输入(-80, 0, 170)、(-40, 0, 170)
和 5,按 Enter 键确认,生成圆柱体,从而建立如图 4-68 所示的细化机架。
如图 4-69 所示,单击工具栏中的 XY Plane 按钮 ,从弹出的下拉菜单中选择 Change
to YZ,将工作平面设置为 YZ 平面。单击工具栏中的“连续自动操作”按钮 ,以退出连
续自动操作模式。

图 4-68 细化机架 图 4-69 改变工作平面


158 RecurDyn 多体系统优化仿真技术

选择 Professional>>Profile>>Profile,进入剖面编辑模式。在剖面编辑模式中,选择 2D
Line,依次在输入区输入(-100,0)、(-100,-50)、(100,-50)、(100,0)、(30,0)、
(30,-20)、(60,-20)、(60,-40)、(-60,-40)、(-60,-20)、(-30,-20)、(-30,0)、
(-100,0)。在图形工作窗口中右击,在弹出的快捷菜单中选择 Finish Operation 命令,完
成剖面线的创建,如图 4-70 所示。单击工具栏中的 Exit 按钮 ,退出剖面编辑模式。
选择 Professional>>Profile>>Extrude,在图形工作窗口中选择刚刚创建的剖面线,在输
入区输入 250(或在图形工作窗口中用鼠标捕捉(0,250,0)),按 Enter 键确认,创建如
图 4-71 所示的拉伸体。

图 4-70 建立剖面 图 4-71 拉伸剖面

单击工具栏中的 XY Plane 按钮 ,从弹出的下拉菜单中选择 Change to XY,将工作平


面设置为 XY 平面。
选择刚刚生成的拉伸体,在工具栏中单击 Object Control 按钮 ,在弹出的 Basic 对话
框选择 Translate 选项卡,设置 Offset Value 的值为 100,单击+X 按钮,然后单击“关闭”
按钮,拉伸体将沿 X 向移动 100mm 至正确位置,如图 4-72 所示。

图 4-72 调整拉伸体位置

单击工具栏中的 Exit 按钮 ,退出大地的实体编辑模式。

2.建立曲柄

单击工具栏中的 XY Plane 按钮 ,从弹出的下拉菜单中选择 Change to YZ,将工作平


面设置为 YZ 平面。选择 Professional>>Body>>Link,在输入区中依次输入(0,0,30)、
(0,0,170),按 Enter 键确认,建立如图 4-73 所示的曲柄。
在图形工作窗口中选择刚刚创建的 Body1,右击,在弹出的快捷菜单中选择 Property
命令,在弹出的对话框选择 General 选项卡,在 Name 文本框中更改 Body1 名称为 Crank,
单击 OK 按钮确认。
第4章 基于 RecurDyn 的机械系统分析 159

图 4-73 建立曲柄

在 Database 栏中选择 Body>>Crank,右击,在弹出的快捷菜单中选择 Edit 命令,进入


Crank 的实体编辑模式。在 Database 栏中选择 Link1,按 P 键,在弹出的 Property 对话框中,
设置 First Radius=20,Second Radius=25,Depth=20,单击 OK 按钮确认。
选择 Professional>>Solid and Marker>>Ellipsoid,在输入区中依次输入(0,0,30)、15,
按 Enter 键确认。图 4-74 显示了曲柄编辑的几个重要步骤。

图 4-74 编辑曲柄外形

选择 Professional>>Boolean>>Unite,在图形工作窗口中依次选择 Link1 和球 Ellipsoid1,


将 Link1 和球合并。图 4-75 显示了布尔加运算。

图 4-75 布尔加运算

选择 Professional>>Solid and Marker>>Ellipsoid,在输入区中依次输入(0,0,30)、15,


按 Enter 键确认,生成 Ellipsoid2。选择 Ellipsoid2,在工具栏中单击 Object Control 按钮 ,
在弹出的 Basic 对话框中选择 Translate 选项卡,设置 Offset Value 值为 5,单击+X 按钮,
然后关闭 Basic 对话框。图 4-76 显示了调整位置操作。
160 RecurDyn 多体系统优化仿真技术

图 4-76 调整位置

选择 Professional>>Boolean>>Subtract,在图形工作窗口中依次选择合并体 Unite1 和球
Ellipsoid2,进行布尔减操作,如图 4-77 所示。
选择工作平面为 XZ 平面。选择 Professional>>Solid and Marker>>Cylinder,在选项区
选择(Point,Point,Radius)模式,在输入区中依次输入(10, 0, 170)、(30, 0, 170)、20,
按 Enter 键确认,生成如图 4-78 所示的曲柄外形。

图 4-77 布尔减运算 图 4-78 曲柄外形

在图形工作窗口中右击,在弹出的快捷菜单中选择 Exit 命令,退出曲柄的实体编辑模式。


在图形工作窗口中选择 Crank 曲柄,单击工具栏中的 Object Control 按钮,在弹出的
Basic 对话框选择 Translate 选项卡,设置 Offset Value=70mm,单击-X 按钮,然后关闭 Basic
对话框,如图 4-79 所示。

图 4-79 调整曲柄位置

3.建立连杆

选择 Professional>>Body>>Cylinder,在选项区选择(Point,Point,Radius)模式,在输入
区中依次输入(-60, 0, 30)、(290, 0, 50)、7,按 Enter 键确认,生成圆柱体。单击该圆
第4章 基于 RecurDyn 的机械系统分析 161

柱体,按 P 键,在弹出的 Property 对话框中选择 General 选项卡,设置 Name=Connecting_Rod,


单击 OK 按钮确认并退出。
在数据库区单击 Connecting_Rod(连杆),右击,在弹出的快捷菜单中选择 Edit 命令,
进入连杆的实体编辑模式。单击工具栏中的“连续自动操作”按钮 。选择 Professional>>
Solid and Marker>>Ellipsoid,在输入区中依次输入(-60,0,30)、13,按 Enter 键确认,生
成 Ellipsoid1。在输入区中依次输入(290,0,50)、13,按 Enter 键确认,生成 Ellipsoid2。
选择 Professional>>Boolean>>Unite,在图形工作窗口中依次选择 Cylinder、Ellipsoid1,
合并成 Unite1;以同样方法,选择 Unite1 和 Ellipsoid2,实现圆柱和两个球的合并,完成
图 4-80 所示的连杆模型。

图 4-80 连杆

单击工具栏的连续自动操作按钮 可取消连续操作。
在图形工作窗口中右击,在弹出的快捷菜单中选择 Exit 命令,退出连杆的实体编辑模式。

4.建立滑块

设置工作平面为 YZ 平面。
选择 Professional>>Body>>Box,在选项区选择(Point,Point,Depth)模式,先后在输入
区中输入(0, -60, -20)、(0, 60, -40)、100,按 Enter 键确认,生成 Box。选择 Box,按
P 键,在弹出的属性对话框中更改 Box 的名称为 Slider。
在数据库区选择 Slider,右击,在弹出的快捷菜单中选择 Edit 命令,进入 Slider 的实
体编辑模式。
选择 Professional>>Solid and Marker>>Box,先后在输入区中输入(0, -30 ,20)、(0, 30,
-20)、100,按 Enter 键确认,生成 Box2。
选择 Professional>>Solid and Marker>>Link,在选项区选择(Point,Point,Depth)模式,
在输入区中依次输入(0,0,50)、(0,0,-10)、20,按 Enter 键确认,生成 Link1。
单击 Link1,右击,在弹出的快捷菜单中选择 Property 命令,在弹出的对话框中设置
First Radius=20,Second Radius=25,单击 OK 按钮确认。
选择 Professional>>Solid and Marker>>Ellipsoid,在输入区中依次输入(0,0,50)、15,
按 Enter 键确认,生成 Ellipsoid1。
选择 Professional>>Boolean>>Unite,在图形工作窗口中依次选择 Link1、Ellipsoid1,
合并成 Unite1。
设置 XZ 为当前工作平面。选择 Professional>>Solid and Marker>>Ellipsoid,在输入区
中依次输入(0,0,50)、15,按 Enter 键确认,生成 Ellipsoid2,并将 Ellipsoid2 沿+X 向平
移 5mm。
选择 Professional>>Boolean>>Subtract,在图形工作窗口中依次选择合并体 Unite1 和球
162 RecurDyn 多体系统优化仿真技术

Ellipsoid2,进行布尔减操作生成 Substract1。滑块几何模型如图 4-81 所示。

图 4-81 滑块

设置当前工作平面为 YZ。选择 Substract1,单击工具栏中的 Object Control 按钮 ,在


弹出的 Basic 对话框中选择 Rotate 选项卡,设置 Degree=180,单击绕 Z 轴逆时针旋转按钮,
最后关闭 Basic 对话框,如图 4-82 所示。

图 4-82 滑块方位调整

如图 4-83 所示,选择 Professional>>Local>>Fillet,在图形工作窗口中选择上方的 Box,


弹出 Fillet Operation 对话框。用鼠标在图形工作窗口中单击选择边 6、11、5、2、4、9、7、
10(分别为上方 Box 的上面边和侧边),设置所有 Radius=10,单击 OK 按钮确认,完成
倒角。

图 4-83 滑块倒角

在图形工作窗口中右击,在弹出的快捷菜单中选择 Exit 命令,退出滑块的实体编辑模


式。选择滑块,单击工具栏中的 Object Control 按钮 ,在弹出的 Basic 对话框中选择 Translate
选项卡,设置 Offset Value=300,单击+X 按钮,然后单击“关闭”按钮。此时拉伸体将沿
X 向移动 300mm 至正确位置,如图 4-84 所示。
第4章 基于 RecurDyn 的机械系统分析 163

图 4-84 滑块位置调整

至此,曲柄滑块机构的部件几何体已全部创建完毕。
选择 File>>Save 命令,保存现有模型至当前工作目录中。
如图 4-85 所示,选择 File>>Export 命令,在弹出的 Export 对话框中,在 File name 框
中输入 Slider_Crank,从 Save as type 下拉列表中选择 ParaSolid Binary File(*.x_t)格式,
单击 Save 按钮,保存为 Slider_Crank.x_t 文件。

图 4-85 几何体导出

下面说明导入外部几何模型的方法。如果不想了解从外部导入几何体的操作,可忽略
下面的描述,直接转入下一节建立约束和驱动的内容。
新建一个名为 Crank_Slider_01 的模型(设置单位制为 MMKS)。选择 File>>Import
命令,在弹出的 Import 对话框中,选择文件类型为 ParaSolid File(*.x_t;*.x_b;…),选
择前面所导出的 Crank_Slider.x_b,单击 Open 按钮,导入几何模型,如图 4-86 所示。

5.合并几何体

在 Database 栏中,同时选择(按住 Shift 键) ImportBody3 和 ImportBody4 ;选择


Tools>>Merge Body 命令,在弹出的 Merge Body 对话框中,单击 B 按钮,在图形工作窗口
中选择连杆;返回 Merge Body 对话框后,单击 OK 按钮确认,如图 4-87 所示。
在 Database 栏中,同时选择(按住 Shift 键) ImportBody5~ImportBody10 ;选择
164 RecurDyn 多体系统优化仿真技术

Tools>>Merge Body 命令,在弹出的 Merge Body 对话框中,单击 B 按钮,在图形工作窗口


中选择 ImportBody9;返回 Merge Body 对话框后,单击 OK 按钮确认。
在 DataBase 栏中,依次选择 Bodies 下除 Ground 之外的其余 Body,右击,在弹出的快
捷 菜 单 中 选 择 Rename 命 令 , 将 其 分 别 重 命 名 为 : ImportBody1=Connecting_Rod 、
ImportBody2=Slider、ImportBody4=Crank、ImportBody9=Bracket,如图 4-88 所示。

图 4-86 几何体导入

图 4-87 合并几何体

图 4-88 命名部件
第4章 基于 RecurDyn 的机械系统分析 165

4.11.2 建立约束和驱动

其中包括:支架和曲柄之间的转动副,曲柄和连杆之间的球铰,连杆和滑块之间的球
铰,滑块和支架之间的平动副,此外还包括曲柄的驱动。如果采用外部导入几何模型的方
式,还需要定义支架 Bracket 和 Ground 之间的固定副。

1.支架和曲柄间的转动副定义

如 图 4-89 所 示 , 从 工具 包 区 选择 Professional>>Joint>>Revolute , 在选 项 区 选 择
(Body,Body,Point,Direction)模式,分别在图形工作窗口中单击 Ground 和 Crank,在屏幕
中捕捉(-70,0,170)和(-20,0,170),然后确认,建立转动副。

图 4-89 定义转动副

2.定义曲柄和连杆间的球铰

选择 Professional>>Joint>>Spherical,在选项区选择(Body,Body,Point)模式,分别在
图形工作窗口中单击 Crank 和 Connecting_Rod,在输入区输入(-60,0,30),然后确认,建
立如图 4-90 所示的球铰。

图 4-90 定义球铰

3.定义连杆和滑块间的球铰

选择 Professional>>Joint>>Spherical,分别在图形工作窗口中单击 Connecting_Rod 和
Slider,在输入区输入( 290,0,50), 然后确认,建立如 图 4-91 所示的连杆和滑块间的
166 RecurDyn 多体系统优化仿真技术

球铰。

图 4-91 定义球铰

4.建立滑块和支架间的平动副

选择 Professional>>Joint>>Translational,在选项区选择(Body,Body,Point,Direction)
模式,分别在图形工作窗口中单击 Ground 和 Slider,在屏幕中捕捉(或者在输入区输入)
(300,0,-20)和(400,0,-20),然后确认,建立如图 4-92 所示滑块与支架间的平动副。

图 4-92 建立平动副

5.定义驱动

如图 4-93 所示,在 DataBase 栏中选择 Joints>>RevJointl,右击,在弹出的快捷菜单中


选择 Property 命令;在弹出的对话框中的 Motion 区选 Include Motion,单击 Motion 按钮;
在弹出的 Motion 对话框中,从左侧下拉列表中选择 Velocity(Time),单击 EL 按钮;打
开 Expression List 对话框,单击 Create 按钮;在弹出的 Expression 对话框中的表达式列表
框中输入 2*PI,单击 OK 按钮确认;在 Expression List 对话框中出现已经定义的驱动表达
式,单击 OK 按钮;返回 Motion 对话框,其中将显示已经定义的驱动,单击 OK 按钮确认,
完成驱动的定义。

6.确认支架固定在大地上

如果想了解机架和大地之间的固定反力,可采用这种方式。
如果采用外部导入几何模型的方式,则进行该步操作,否则略过此步,直接进行后面
的操作。
选择 Professional>>Joint>>Fixed ,在选项区选择(Body,Body,Point)模式,分别在
图形工作窗口中单击 Ground(屏幕中任意没有模型的地方单击)和 Bracket,在屏幕中捕
第4章 基于 RecurDyn 的机械系统分析 167

捉(0,0,0),确定建立支架和大地之间的固定副。

图 4-93 设置驱动

4.11.3 提交分析任务

其中包括:选择分析类型,设置分析参数。
如图 4-94 所示,选择 Analysis>>Dynamic/Kinematic,在弹出的 Dynamic/Kinematic
Analysis 对话框中,设置 End Time=1,Step=200,Plot Multiplier Step Factor=5,单击 Simulate
按钮进行仿真分析。

注意:单击 OK 按钮只是确认该对话框中的仿真设置情况,并不进行分析计算。

当输出区报告 RD/SOLVER-PROCESS IS SUCCESSFULLY FINISHED 时,说明计算过


程顺利完成。
选择 File>>Save 命令,保存 Slider_Crank_01.rdyn(保存该模型以备后面使用)。
168 RecurDyn 多体系统优化仿真技术

图 4-94 提交分析及分析成功报告

4.11.4 分析结果研究

其中包括:曲柄、连杆等的运动轨迹、曲柄转角与滑块位置间的关系曲线。

1.设置轨迹线的显示

如图 4-95 所示,选择 Post>>Marker Trace 命令,在弹出的 Marker Trace 对话框中,连


续 4 次单击 Add 按钮,分别通过 Trace Marker 栏的 M 按钮,在 RecurDyn 的图形工作窗口
中选择 Crank.CM、Crank.Marker2、Connecting_Rod.CM 及 Slider_CM(每一次选择 Marker
点之后,在弹出的 Navigation Target Ar…对话框中都要单击“关闭”按钮退出选择状态,
返回 Marker Trace 对话框),在 Width 栏中分别设置轨迹线线宽,在 Color 栏中分别设置
轨迹线颜色,最后单击 OK 按钮确认。

图 4-95 显示轨迹
第4章 基于 RecurDyn 的机械系统分析 169

2.绘制曲线、显示轨迹线动画

单击工具栏中的 Plot Result 按钮 ,进入后处理。


如图 4-96~图 4-98 所示,单击工具栏中的 Show Upper Windows 按钮,将后处理的图形
工作窗口分为两个窗口,选择 Animation>>Load Animation,在弹出的提示对话框中单击
Yes 按钮确认,载入动画。在工具栏中单击 Rotate(旋转)按钮(或按 R 键),将曲柄滑
块机构模型放置在最合适的视角。在后处理界面的右下角右击,在弹出的快捷菜单中选择
I/O Window 命令,在 Output 区右侧取消 X:Time 的选择,选择 X,从左至右(Data1~Data4)
依次选择 Slider_Crank_01、Joints、RevJoint1、Pos1_Relative。

图 4-96 划分窗口,加载动画

图 4-97 后处理视窗

图 4-98 非时间横轴设置

在 Output 区右侧选择 Y,然后从左至右(Data1~Data4)依次选择 Slider_Crank_01、


Bodies、Slider、Pos_TM,如图 4-99 所示。

图 4-99 绘制曲线
170 RecurDyn 多体系统优化仿真技术

激活右边的窗口,单击 Add Curve 按钮增加曲线。


确保曲线窗口为当前窗口,选择 Tools>>Change Legend Title 命令,在弹出的 Legend
Titles 窗口中,更改 Legend #1 为 Crank angle~Slider distance,单击 OK 按钮确认,如图 4-100
所示。

图 4-100 改变标题

在曲线所在窗口中,将光标放在 Title 上,右击,在弹出的快捷菜单中选择 Edit Title


命令,将 Title 编辑为“曲柄转角~滑块位置曲线”;以同样方法,将光标置于横轴和纵轴
标题上,分别将横轴和纵轴改为 Crank angle(degree)和 Slider distance(mm),如图 4-101
所示。

图 4-101 改变标示

单击动画工具栏中的“播放”按钮 ,可看到如图 4-102 所示的曲柄、连杆、滑块的


运动轨迹线。

图 4-102 后处理结果
第4章 基于 RecurDyn 的机械系统分析 171

3.结果研究

通过运动中的轨迹线可知:
 滑块的运动轨迹显示滑块是一个单自由度的运动。
 曲柄的运动轨迹是一个圆,表明是一个旋转运动。
 连杆的运动轨迹是一个倾斜的圆,表明连杆的运动是一个旋转运动和一个平移运
动的合成。

4.导出结果数据

如图 4-103 所示,确保曲线窗口为当前激活窗口,选择 File>>Export>>Export Curve Data


命令,在弹出的 Export Curve Data 对话框中,从 Source List 栏中依次选择各项,单击 Add
按钮,然后单击 Export 按钮,在弹出的 Save 对话框中,输入保存曲柄转角~滑块位置曲线
数据的文件名,单击 Save 按钮,保存 TXT 格式的数据文件。

图 4-103 导出结果

4.12 4 质量弹簧系统分析实例

本例分析图 4-104 所示的 4 质量弹簧系统振动频率。


其中 k1=k2=k3=360N/m,m1=m2=m3=m4=10kg,4 个质量块之间的距离为 0.1m,且 4 质
量块只能沿水平方向运动。求该系统的固有频率和主振型。

图 4-104 4 质量系统

理论解:
1,2,3,4
2
 0,(2  2) k m , 2 k m ,(2  2) k m
172 RecurDyn 多体系统优化仿真技术

4.12.1 建立质量块

启动 RecurDyn,建立模型名称为 Mass_Linear 的文件,单击 New Model 界面中的 MKS


按钮设置米制单位。
设置工作网格 Grid Hight=0.05,Grid Width=0.05( )。
如图 4-105 所示,选择 Professional>>Body>>Box,用鼠标在图形工作窗口中依次选择
(-0.35,0.1,0)和(-0.25,0,0),创建 Body1;选择 Body1,按 P 键,在弹出的 Properties of
Body1 对话框中,选择 Material Input Type=User Input,更改 Mass=10,单击 OK 按钮确定。

图 4-105 建立质量块

确保工具栏中的 Auto Operation 按钮 处于激活状态。


选择 Body1,单击工具栏中的“复制”按钮 ,连续单击 3 次“粘贴”按钮 。在数
据库窗口中分别选择 Body1~C3_Body1,右击,在弹出的快捷菜单中选择 Rename 命令,将
其分别重命名为 Body1=m1、C1_Body1=m2、C2_Body1=m3 和 C3_Body1=m4。

图 4-106 移动复制的质量块

如图 4-106 所示,选择 m2,选择 Object Control>>Advance,在弹出的 Advance 对话框


第4章 基于 RecurDyn 的机械系统分析 173

中,单击 First Point 右侧的 Pt 按钮,在图形工作窗口中选择 m2 的质心 Marker 点(-0.25,0,0) ;


单击 Second Point 右侧的 Pt 按钮,在图形工作窗口中选择点(-0.1,-0.05,0)。
以同样方法,选择 m3,设置 First Point=(-0.25,0,0),Second Point=(0.1,0.05,0)。
以同样方法,选择 m4,设置 First Point=(-0.25,0,0),Second Point=(0.3,0.05,0)。
单击“关闭”按钮,关闭 Advance 对话框。此时在图形工作窗口中显示出 4 个质量块,
如图 4-107 所示。

图 4-107 质量块位置分布

4.12.2 建立连接弹簧

选择 Professional>>Force>>Spring,在选项区选择(Body,Body,Point,Point)模式,依
次在图形工作窗口中选择 m1、m2、(-0.25,0.05,0)、(-0.15,0.05,0),建立 m1 和 m2 之
间的弹簧连接。先后选择 m2、m3、(-0.05,0.05,0)、(0.05,0.05,0)及 m2、m3、(0.15,0.05,0)、
(0.25,0.05,0),分别建立 m2 和 m3 之间以及 m3 和 m4 之间的弹簧连接力,如图 4-108 所示。

图 4-108 建立质量块间弹簧力

在数据库窗口中选择 Spring1~Spring3(按住 Shift 键选择),右击,在弹出的快捷菜单


中选择 Property 命令,在弹出的如图 4-109 所示 3 entities 对话框中,设置 Spring
Coefficient=360,Damping Coefficient=0,单击 OK 按钮确认。

图 4-109 设置弹簧力属性
174 RecurDyn 多体系统优化仿真技术

4.12.3 建立质量块和大地之间的平动副

选择 Professional>>Joint>>Translational,在选项区选择(Body,Body,Piont,Direction)
模式,分别选择 m1、Ground(在图形工作窗口空白处单击)、(-0.3,0.05,0)、(-0.4,0.05,0),
建立 m1 和大地之间的平动副;同样,先后选择 m2、Ground、(-0.15,0.05,0)、(-0.4,0.05,0),
建立 m2 和大地间的平动副;选择 m3、Ground、(0.15,0.05,0)、(0.1,0.05,0),建立 m3
和大地间的平动副;选择 m4、Ground、(0.3,0.05,0)、(0.2,0.05,0),建立 m4 和大地间
的平动副。质量块和大地间的平动副如图 4-110 所示。

图 4-110 建立质量块与大地间的平动副

4.12.4 进行特征值分析

选择 Analysis>>Eigenvalue 命令,在弹出的 Engine Analysis 对话框中单击 Simulate 按


钮,进行特征值分析。
计算完成之后,可通过拖动输出区的滚动条查看计算结果,如图 4-111 所示。

图 4-111 输出区结果显示

4.12.5 结果分析

通过拖动输出区的滚动条(或在输出区右击,在弹出的快捷菜单中选择 Open Output


File 命令),从结果文件中可以看出系统的振动频率为:
第4章 基于 RecurDyn 的机械系统分析 175

EIGEN VALUES (UNDAMPED SYSTEM)


===================================
MODE UNDAMPED NATURAL
NUMBER FREQUENCY[Hz]
===================================
1 0.000000E+00
2 0.000000E+00
3 7.308715E-01
4 1.350474E+00
5 1.764480E+00
根据理论解 1,2,3,4
2
 0,(2  2) k m , 2 k m ,(2  2) k m ,经过 ω=2πf 变换,可以看出仿
真结果和理论解完全吻合。
如图 4-112 所示,从工具栏中选择 Mode=3,Repeat=3,单击 Play/Pause 按钮 ,可以
看出对应于频率=0.73087Hz 的振型;同样,可以看出其他频率对应的振型。

图 4-112 特征值结果

4.13 小 结

机械系统的仿真分析是一个逐步细化的过程,在不同的设计阶段,可采用不同程度的
仿真模型,仿真模型与实际物理模型的等效是关键,需通过认真分析仿真模型的组成元素
来建立与实物模型吻合的仿真模型,根据分析的目的选择相应的求解类型。
࢒ 5 ᐺ RecurDyn঱଀୐ෝଆၣ

5.1 接 触 建 模

接触问题(如摩擦和碰撞)是诸多领域的一个普遍性问题,接触分析是机械动力学的
重要环节。很多情况下,机械中各零件之间力的传递是通过两零件的接触来实现的。相互
接触的物体,除了共形面(即两相互接触面的几何形态完全相同,处处贴合)相接触(如
平面与平面相接触)的情况外,还存在着大量的异形曲面相接触的情况。异形曲面在未受
外力时的初始状态有线接触、点接触,可以是外接触,也可能是内接触。在机械系统运动
过程中,接触位置在不断地发生变化,在分析机械系统的动力学、运动学行为时,以接触
力计算为核心的接触分析是不可避免的重要一环。
在刚体机械系统中,相互接触的两个刚体不能互相入侵。也就是说,接触属于一种单
边约束。接触和碰撞往往联系在一起。对于接触、碰撞现象,目前一般采取两种方法进行
求解计算。
 恢复系数方法:基于冲量定理认为接触碰撞瞬间完成,有牛顿假设计算恢复系数
和泊松假设计算恢复系数两种方法,牛顿假设利用速度计算恢复系数,而泊松假
设利用冲量计算恢复系数。恢复系数的选取是计算的关键,往往需要借助试验获
得。恢复系数法虽然计算效率高,但无法计算出发生碰撞时的接触碰撞力,速度
为不连续。
 连续接触力法:基于惩罚函数,将接触和碰撞现象按连续的动力学问题处理,可
考虑摩擦、计算出碰撞力,较真实地模拟接触碰撞过程。
在刚柔混合机械系统中,需要考虑柔性体的形变,基于惩罚函数的接触计算方法是一
种广泛采用的方法。

5.1.1 RecurDyn接触类型

在 RecurDyn 中可以建立从简单到复杂、从 RecurDyn 自建到外部导入的几何体之间的


接触。RecurDyn 在处理刚体间接触、刚体与柔性体间、柔性体间接触问题方面具有明显的
优势,其主要特点是类型多、速度快、解决的领域广泛。

1.刚体接触

RecurDyn 提供丰富的接触类型供用户根据具体的问题选择最合适的接触方法,目前所
支持的刚体接触类型包括 3 大类 26 种。
第5章 RecurDyn 高级建模技术 177

(1)面面接触(Surface Contact)
面面接触是采用关键面简化复杂的实体接触,可计算外形复杂、任意的接触问题,是
最初的算法。有 Surface To Surface 和 Extended Surface To Surface 两种方式可供选择,其区
别在于作为 Action 的面的离散方式不同。相比于其他接触类型,面面接触的计算速度较慢。
(2)分析接触(Analysis Contact)
分析接触是在接触面的几何形状已知的情况下,所采用的更快的接触计算方法。通常
对于机械系统中用于接触的面的形状并非全然的随意、不可控,对于特定的几何特性,通
过分析其几何形状,减少在接触计算过程中不必要的计算量,可大幅提高接触计算的速度。
目前,RecurDyn 提供了 23 种分析接触类型(如表 5-1 所示),囊括了内接触、外接触等
各种问题。

表 5-1 接触类型
描 述 名 称 描 述 名 称
Circle To Circle 圆—圆外接触 Circle In Circle 圆—圆内接触
Sphere To Sphere 球—球外接触 Sphere In Sphere 球—球内接触
Sphere To Surface 球—面接触 Cylinder To Surface 圆柱—面接触
Curve To Curve 线—线接触 Circle To Curve 圆—线接触
Sphere To Cylinder 球—圆柱外接触 Sphere In Cylinder 球—圆柱内接触
Sphere To Box 球—块外接触 Sphere In Box 球—块内接触
Sphere To Torus 球—圆环外接触 Sphere In Torus 球—圆环内接触
Sphere To Cone 球—圆锥接触 Sphere Arc Extrude 球—圆弧拉伸体接触
Cam2D 凸轮 2D 接触 CamLine2D 凸轮线 2D 接触
Cone To Cone 圆锥—圆锥外接触 Cone In Cone 圆锥—圆锥内接触
Cylinder To Cylinder 圆柱—圆柱外接触 Cylinder In Cylinder 圆柱—圆柱内接触
Sphere Arc Revolution 球—圆弧旋转体接触

(3)实体接触(Solid Contact)
实体接触是 RecurDyn 在不影响计算速度的前提上,为了提高计算稳定性、提高计算精
度而采用的最新接触分析技术。相比较分析接触而言,实体接触的建模过程简化,计算速
度更快,但在接触参数设置方面需要更多技巧。

2.柔性体接触

RecurDyn 在柔性体接触方面也提供了多种类型,如柔性面—柔性面接触、柔性面—刚
性面接触、球—柔性面接触、柔性线—柔性线接触、柔性线—面接触等,具体内容可参见
后面的刚柔混合建模章节。

5.1.2 RecurDyn接触算法

接触计算是一个不断检测的过程,在每一个增量步,都需要先通过检查几何来判断接
178 RecurDyn 多体系统优化仿真技术

触状态是否存在,在确定接触状态的情况下,根据穿透深度及其变化来计算接触力。

1.几何表示(Geometry Representation)

在 RecurDyn 中,根据接触类型的不同,几何有不同的含义,连续几何可以为参数化的
线、参数化的面或简单几何体;离散几何可以是多段线或多片组成的面。

2.检测方法(Detecting method)

RecurDyn 采用的检测方法包括 Boundary Box Technique(边界盒技术)和 Mapping to


Cell Array(单元阵列映射),如图 5-1 和图 5-2 所示。

图 5-1 Boundary Box Technique(边界盒技术) 图 5-2 Mapping to Cell Array(单元阵列映射)

3.步进算法(Stepping Algorithm)

 Buffer Radius Factor(缓冲半径因子):如图 5-3 所示,在接触物体相互靠近直至


两者间距离小于缓冲半径因子与 Action 物体半径之积时,通过最大步长因子来缩
减数值积分步长。
 Maximum Stepsize Factor(最大步长因子):用于缩减最大步长。

4.计算穿透深度(Compute penetration)

在仿真分析过程中,RecurDyn 需要不断计算接触穿透深度,如图 5-4 所示。

图 5-3 缓冲半径因子 图 5-4 穿透深度计算图示

最大穿透深度的设定是判定接触生效与否的一个重要依据,当计算过程中实际的穿透
第5章 RecurDyn 高级建模技术 179

深度小于最大穿透深度时,计算接触力;一旦检测到的实际穿透深度大于设定的最大穿透
深度,则接触失效,将不再计算接触力。

图 5-5 最大穿透深度

在图 5-5 中,node 在 t=1 时与 Patch 的距离为 d1,此时不处于接触状态;t=2 时,node


的实际穿透深度为 d2,处于接触状态,此时的实际穿透深度小于设定的最大穿透深度
dmax_1,接触生效,计算接触力;t=3 时,node 的实际穿透深度为 d3,大于预设的最大穿
透深度 dmax_1,接触不再生效,不再计算接触力。如果设置最大接触深度为 dmax_2,则
此时 t=3 时刻的接触为生效状态,将计算接触力,但此时由于穿深太大将得到非常大的接
触力。
最大接触深度的设置将影响接触计算的结果,太大的接触穿深将得到不可信的接触力,
太小的最大接触深度也许导致与实际不符的仿真结果。而实际穿透深度受到计算步长、相
对运动速度等的影响,合理设置仿真参数是获得正确结果的关键。

5.计算接触力(Contact force)

Lankarani 提出了基于 Hertz 接触理论的非线性弹簧阻尼模型,其接触力计算公式为:


F  Kδ n  C 
5.333
其中, K  3 1
δ0.5 ; C   δ n ; δ 为穿透深度。
(k3)(h  h )(e)
2 i j 2

RecurDyn 的接触力计算模型如图 5-6 所示,计算公式为:


δ
f n  kδ m1  c | δ |m 2 δ m 3

|δ|

图 5-6 接触力计算模型

其中,k 为接触刚度系数;c 为阻尼系数;m1,m2,m3 分别为刚度指数、阻尼指数及凹痕


180 RecurDyn 多体系统优化仿真技术

指数(当穿入深度很小的时候,接触力会出现负值,可通过采用大于 1 的凹痕指数来避免
这种不符合实际的情况,默认为 0); δ 和 δ 分别表示穿透深度及接触点的相对速度(穿透
深度的导数)。这些参数取决于材料的类型、尺寸等。

6.计算摩擦力(Contact Friction)

RecurDyn 中的接触摩擦力由下面两个方程确定:
f f   (v ) | f n |
f f  sign( f f )  min(| f f | ,f max )
计算摩擦力的关键是确定摩擦系数,摩擦系数和相对速度有关。如图 5-7 所示,当相
对速度绝对值小于静态门槛速度 Vs 时,摩擦系数在-Vs~Vs 之间插值;当相对速度绝对值
介于静态门槛速度 Vs 和动态门槛速度 Vd 之间时,摩擦系数在 Vs~Vd 和-Vs~-Vd 之间插值;
当相对速度绝对值大于动态门槛速度时,采用动态摩擦系数。
如果用户定义了最大摩擦力,那么所采用的摩擦力根据输入的摩擦力和计算出的摩擦
力比较而得。

图 5-7 摩擦系数和相对速度的关系

5.1.3 RecurDyn常用接触类型

接触建模操作中,选择的顺序非常重要。通常情况下,先选择的一方作为 Base(基础
体),后选的一方作为 Action(作用体)。基础体和作用体不可为同一个物体。

1.Surface Contact

(1)Surface to Surface Contact(面面接触)


在 Surface to Surface 接触中,Action(作用面)和 Base(基础面)的离散方式不同,
如图 5-8 所示。基础面离散为三角碎片,运动表面由多点代替,只有这些点可以与基础面
发生接触。接触面的法线方向非常重要,决定着接触是否定义正确。
 Plane Tolerance Factor:曲面近似的容许误差系数,在 0~10 之间取值,值越小,三
角形碎片越多,形成的图形越接近真实曲面。
第5章 RecurDyn 高级建模技术 181

图 5-8 面面接触离散方式

 Minimum Plane Tolerance:最小容许误差(平面容差见图 5-9),当降低容许误差


系数不能够改善三角曲面的逼真度时,则需要降低最小容许误差。尤其适用于尺
寸很小的模型。

图 5-9 平面容差

 UV Precision:如果一个表面由折线或者样条曲线构成,那么接触面的节点数可以
用 UV Precision 控制,从而控制接触的精度。图 5-10 显示了不同 UV Precision 控
制的效果。

U=1,V=1

U=5,V=3

图 5-10 UV Precision 控制
182 RecurDyn 多体系统优化仿真技术

(2)Extended Surface to Surface Contact(广义面面接触)


区别于 Surface to Surface 接触,Extended Surface to Surface Contact(广义面面接触)
如图 5-11 所示,其最大特点是可以采用 2.5D 的接触算法,作用面也离散为三角碎片,此
外还采用了高级检测技术。

图 5-11 广义面面接触

 Surface Type:对于基础面和作用面,都可以从 Patch 或 Surface 中选择用于计算的


面类型。选择 Patch 类型意味着曲面用三角碎片代替;选择 Surface 类型代表着曲
面用参数化曲面表示,能够得到光滑的接触面,但在使用此型前,需先激活
Advanced Detection 高级检测选项。
 No. of Divided Cubic Cell:在每个方向上的离散个数,程序自动计算,用户亦可修改。
 Advanced Detection:分为 Full 和 Sub BB 两种方式。Full 表示计算时检测所有运动
面;Sub BB 意味着运动面被分成若干子区域,先检测子区域,如果预测存在接触,
将检测 Sub 区域的所有碎片。图 5-12 显示了 RecurDyn 的高级检测。

图 5-12 高级检测

 2.5D Contact:如果取消选中此复选框,面方程按照多项式方程计算;选中此复选
框,则意味着采用 Hermitian 厄密共轭多项式计算。
第5章 RecurDyn 高级建模技术 183

2.Solid Contact实体接触

实体接触必须产生于不同 Body 之间,当参与接触的实体为面时,必须保证在整个求


解过程中接触部分的体积始终处于封闭状态,如图 5-13 所示。接触实体离散为三角曲面片。

图 5-13 实体接触封闭状态

 Global Max Penetration(GMP):总体最大穿深,须大于局部最大穿深。


 Local Max Penetration(LMP):局部最大穿深。如果实际穿深介于 0~LMP 之间,
则按照 Patch to Patch 方法计算穿深;如果实际穿深大于 LMP,则采用总体穿深计
算方法。设置如图 5-14 所示。

图 5-14 总体最大穿深、局部最大穿深及边界穿深设置

 Boundary Penetration:边界穿深,如图 5-15 所示。当实际穿深小于边界穿深时,


阻尼系数按照 STEP 函数计算;当实际穿深大于等于边界穿深时,阻尼系数为用户
指定的阻尼系数。
 Rebound Damping Factor(Rdf):回弹阻尼因子。在接触的恢复阶段,通过回弹阻
尼系数控制回弹力,目的是得到真实的迟滞回线。图 5-16 显示了回弹阻尼系数和
迟滞回线。

图 5-15 边界穿深 图 5-16 回弹阻尼系数和迟滞回线

 Max. Facet Size Factor:介于 0~10 之间,用于控制三角形片边长的最大尺寸,如


图 5-17 所示。即使是六面体形状,如果选中此复选框并定义其值,也将采用许多
184 RecurDyn 多体系统优化仿真技术

三角形碎片。
 Bounding Buffer Length:在检测接触碰撞之前,先在定义接触的两者界框间执行预
搜索,界限缓冲长度定义如图 5-18 所示,为相对于实际界框(Real Bounding Box)
的偏置长度。

图 5-17 最大面尺寸因子 图 5-18 边界缓冲长度

(1)Solid to Solid Contact 接触力的计算


采用 Indentation Exponent 的计算公式:
f n  f ns  f nd
f ns  kδ ms
δ
f nd  C | δ |md δ mi

|δ|
采用 Boundary Penetration 的计算方法:
f n  f ns  f nd
f ns  kδ ms
f  C | δ |md
nd

其中,K 和 C 是刚度和阻尼系数,往往通过实验方法求得;ms、md 和 mi 是刚度指数、


阻尼指数及凹痕指数。 δ 和 δ 是穿深和穿深关于时间的微分。
(2)Solid Contact 接触属性的设置规则
为了有效地定义 Solid Contact,需要掌握一些设置规则。
①一般规则
 规则 1:Action/Base 运动体/基础体的选择(如图 5-19 所示)。
 接触双方中若存在固定的实体,可将该固定实体作为基础体 Base,选择固定
的实体作为基础体计算结果更准确。
 接触双方中自由度少的实体作为基础体 Base,基础体位置和方向的改变比作
用体的运动改变小。例如,在实体接触对中选择有运动驱动(或许多限制)
约束的物体作为 Base 基础体,换言之,选择具有更少未约束自由度的物体作
为 Base。当然要注意,如果一个物体被运动所驱动,但运动驱动非常复杂,
将导致该物体不稳定,此时该被运动驱动的物体不适宜作为 Base。
 接触双方中几何体尺寸相对较大的实体作为基础体。
第5章 RecurDyn 高级建模技术 185

转动副,驱动
Base 固定副
Base Base
图 5-19 Base 和 Action 的选择

 规则 2:小平面设定规则(如图 5-20 所示)。


为了提高求解精度,建议降低大几何体的平面容许误差系数;为了加快求解速度,建
议提高小的几何体的平面容许误差系数。
相对较小的几何体,平面容许误差系数推荐采用 4 或者 5;相对较大的几何体,平面
容许误差系数推荐采用 2 或者 1。建议在实体接触中的平面容差系数设为 1~5。

提高球体表面的容
许误差系数;
降低柱体表面的容许误差系数; 降低圆柱面的容许
提高半球体面的容许误差系数。 误差系数。

图 5-20 容差系数设定

 规则 3:接触失效的处理。
当从结果判断接触失效或仿真结果不够好时,建议采用下列措施。
首先检查 Action/Base 的选择是否合理;检查质量属性,如果质量很大(高于 100kg),
建议提高刚度和阻尼。如果质量很小(小于 0.01kg),建议降低刚度和阻尼;检查模型配
置,修改接触参数;修改求解参数,如最大时间步、初始时间步及容许误差等。
②特殊规则
 规则 1:紧贴凹凸接触问题(如图 5-21 所示)。
非紧贴凹凸接触
紧贴凹凸接触 注意:方框部位不能倒角

图 5-21 紧贴凹凸接触
186 RecurDyn 多体系统优化仿真技术

紧贴凹凸接触:在接触区域出现凹面和图面紧紧贴合状态的接触。
Global Max Pen.(GMP)和 Local Max Pen.(LMP)项建议采用“#AUTO”(自动)
设置;在 GMP 和 LMP 自动设置的计算结果不够好的情况下,再手动修改输入值。修改
GMP 和 LMP 可以参考如下方式:
 提高 GMP 或 LMP 的值为原来的 1.5 或者 2 倍。
 降低 GMP 或 LMP 的值为原来的 70%或 50%。
如果手动修改 GMP 和 LMP 并未获得满意的仿真结果,建议在考虑摩擦(摩擦可提高
接触计算的稳定性)的基础上调整 GMP 和 LMP。
如果考虑摩擦未起到真正改善仿真结果的目的,可尝试修改几何模型以避免紧贴凹凸
接触构型。
 规则 2:大面接触问题(Wide Surface Contact Problems)。
大面接触:接触区域的面积很大。可以从 Global Max Pen.和 Local Max Pen.及考虑摩
擦方面着手进行模型调试。

3.Analysis Contact分析接触

分析接触的类型很多,采用哪种形式的分析接触必须依赖于模型所包括的几何。分析
接触的建模过程相对较为简单,在此简单介绍几种分析接触。
(1)Sphere to Arc-Revolution Contact(球-弧线旋转体的接触)
如图 5-22 所示为球-弧线旋转体接触,其中球体为作用实体,弧线旋转体为基础实体。
其创建步骤必须遵循:先选基础体(弧线旋转体),再选择弧线圆心,然后再选择方向(弧
线旋转的轴向),最后选择作用体球。

图 5-22 球-弧线旋转体接触
第5章 RecurDyn 高级建模技术 187

其中,Start Angle of Arc & End Angle of Arc 为圆弧的起始和结束角度,单位是度;


Vertical Offset of Arc Center 为弧线圆心在垂直方向上(假想 Y 轴)的偏移;Horizontal Offset
of Arc Center 为弧线圆心在水平方向上(假想 X 轴)的偏移;Normal Direction 为法线方向,
向内或向外;Synchronize with Geometry 表示与几何体同步,不选中此复选框,可自定义几
何尺寸,也可用参数值代替。
(2)Sphere to Arc-Extrude Contact(球-弧线拉伸体接触)
如图 5-23 所示为球-弧线拉伸体接触,接触对中球体为作用实体,弧线拉伸体为基础
实体。其创建步骤必须遵循:先选基础体(弧线拉伸体),再选择弧线圆心,然后再选择
方向(弧线拉伸方向),最后选择作用体球。
其中,Start Angle of Arc & End Angle of Arc 为圆弧的起始和结束角度,单位为度;
Extrude Length 为弧线拉伸的长度;Open Face 的 Start Face/End Face 便于用户分别使用两侧
壁;Normal Direction 指法向方向,向内或向外;Synchronize with Geometry 表示与几何体
同步,不选中此复选框,可自定义几何尺寸,也可用参数值代替。

图 5-23 球-弧线拉伸体接触

(3)Curve to Curve Contact(线-线接触)


线-线接触如图 5-24 所示。
 Curve Type:有两种曲线类型,即 Line 和 Curve。Line 表示曲线由多段折线近似;
Curve 表示曲线为参数化的曲线。
 在高级检测 Advanced Detection 下拉列表中,选择 Full 表示所有作用体曲线全部被
检测;选择 SUB BB 表示作用体曲线被分成一些子区域,与基础体曲线接触的区
域先被检测。
188 RecurDyn 多体系统优化仿真技术

图 5-24 线-线接触

 Use Total Segment 是指在插点时在曲线的起始点和终点之间进行,不采用 Total


Segment 则意味着在曲线的任意相邻点之间进行。如图 5-25 所示,该项在圆-线接
触类型中具有相同的含义。
 Depth Direction Vector 用于定义从曲线拉伸为面时的方向矢量,法线方向由该方向
决定。
插入
的2点 终点 插入 终点
的2点

起始点
起始点 中间点

图 5-25 Use Total Segment 含义

(4)Circle to Curve Contac(圆-线接触)


在圆-线接触中(如图 5-26 所示),曲线用一系列的线段逼近,线段数越多越接近真
实曲线。

图 5-26 圆-线接触

(5)Cam2D Contact
Cam2D Contact 如图 5-27 所示,用于定义二维空间中圆(或球体)与曲线的光滑接触;
尤其在基础体曲线是凸凹组合曲线时,可获得非常光滑的接触力,不存在因几何的近似而
带来的误差。该类接触只支持一个穿深最大的接触点。
Interpolation Type(插值法类型)可以从三阶和五阶多项式选择。
第5章 RecurDyn 高级建模技术 189

(6)CamLine2D Contact
CamLine2D Contact 如图 5-28 所示,用于定义二维空间中直线与曲线的接触,基础体曲
线是拟和曲线,需要是闭合曲线,类似凸轮的形状。该类接触只支持一个穿深最大的接触点。

图 5-27 Cam2D 接触 图 5-28 CamLine2D 接触

5.1.4 同时创建多个接触

在接触建模过程中,可以通过一次操作定义多个接触。在选择接触类型后,从选项区
选择适合创建多个接触的输入类型,按照顺序逐次选择,完成多个接触的同时创建。多个
接触同时创建的选择方式如下:
 基础体,多个作用体。
 基础体,作用体;基础体,作用体……
 多个基础体,多个作用体。
 多个球体。
 多个圆柱体。
 实体,实体(广义面-面接触)。
 壳,壳(广义面-面接触)。

5.1.5 曲柄滑块机构实体接触分析实例

该例题采用前面章节的曲柄滑块模型,在滑块和机架之间建立接触代替平动副。在该
例题中主要研究滑块与机架在 Z 方向的接触力,所以在滑块和机架之间定义平面副限制 Y
方向的运动。
启动 RecurDyn,选择 File>>Open 命令,选择 4.11 节已经创建的 Slider_Crank_01.rdyn
文件;选择 File>>Save as 命令,另存为 Slider_Crank_Contact.rdyn。

1.滑块和机架间平面副

从数据库窗口中选择平动副 TraJoint1,单击鼠标右键,在弹出的快捷菜单中选择 Inactive


命令,如图 5-29 所示,取消滑块和机架之间的平动副约束。
190 RecurDyn 多体系统优化仿真技术

选择 Professional>>Joint>>Planer,从选项区选择(Body,Body,Pint,Direction),在图形
工作窗口先后选取与滑块接触的机架 Ground 、滑块 Slider ,在图形工作窗口中捕捉点
(300,0,-20),选取点(300,0,-20)处的 Marker 点的 Y 轴,建立平面副,如图 5-29 所示。

图 5-29 取消平动副,建立平面副

2.滑块和机架间的实体接触分析

选择 Professional>>Contact>>Solid,从选项区选择(Solid(Shell),Solid(Shell)),
先后在图形工作窗口中选取与滑块接触的机架 Ground 和滑块 Slider,定义滑块和机架之间
的接触,在数据库窗口中的 Contact 项中增加 SolidContact1,在此保持接触属性的默认设置。
选择 Analysis>>Dynamic/Kinematic Analysis 命令,单击 Simulate 按钮运行仿真。
在输出区显示分析顺利完成之后,单击工具栏中的 Plot Result 按钮 ,进入后处理。
从后处理数据库窗口中选择 Contact>>SolidContact1>>FM_SolidContact 并双击,如图 5-30
所示,从接触力曲线可知接触力在 0.4~0.5s 间振荡太大,需要继续调整模型。

图 5-30 实体接触及接触力曲线
第5章 RecurDyn 高级建模技术 191

3.更改接触属性

在后处理界面中,通过工作窗口左下角的 ,选取该窗口中的
Slider_Crank_contact.rdyn,从后处理切换至模型界面。
从数据库窗口中选择 SolidContact1 ,按 P 键,在弹出的接触属性对话框中选择
Characteristic 选项卡,选中 Local Max Pen.复选框,并将其值改为 3,然后单击 OK 按钮确
认,如图 5-31 所示。

图 5-31 设置局部最大穿深

单击工具栏中的 按钮,运行分析。仿真完成后,重新进入后处理界面,在数据库窗
口中逐级选择 Contact>>SolidContact1>>FM_SolidContact,双击 FM_SolidContact,结果如
图 5-32 所示。显然,接触力曲线较为光滑。

图 5-32 接触力曲线

5.2 RecurDyn参数化建模

参数化建模是通过仿真获得优化设计的基础。在建立仿真模型时,需要根据分析的目
192 RecurDyn 多体系统优化仿真技术

的确定出关键的需要通过仿真确定的变量,将这些量通过参数化表示,只需改变这些量而
不必更动模型中其他细节,即可快速地获得一系列设计方案的虚拟样机模型。RecurDyn 的
参数化建模是通过参数化点及参数化值来实现的,通过参数化点(Parametric Point,PP),
可以控制系统的结构布局;通过参数化值(Parametric Value,PV),可以控制模型的属性
及配置。在 RecurDyn 中,可以创建 PP 及 PV,也可以有效地利用软件所提供的以 PP 或
PV 表示的参数化量。参数化建模是优化的基础,可以人工手动调整参数化量来实现多方案
的设计筛选,亦可以通过参数化量建立优化模型的设计变量,通过性能指标的控制,通过
RecurDyn 优化模块实现自动优化的目的。RecurDyn 专用工具包中提供了诸多特殊参数化
点(SPP)和特殊参数化值(SPV),广泛应用于自动参数化建模。

1.参数化点PP

在创建参数化点(Parametric Point,PP)时,需要指定参考系,参考系一旦改变,与
此参数化点有关的点都相应地改变。
通过参数化点建立的参数化模型,只需改变参数化点的坐标即可快速地改变结构的布
局。例如,汽车的麦弗逊悬架系统包含了一个拓扑结构,不同车型之间悬架结构配置不同,
可以将悬架系统中的硬点定义为参数化点,修改参数化点就可以自动修改其布局位置。
创建参数化点的方法为:
如图 5-33 所示,选择 Subentity>>Parametric Point 命令,在弹出的 Parametric Point List
对话框中,通过单击 Add 按钮添加参数化点,包括参数化点的名称、坐标及相对参考点(默
认为惯性坐标系)。参数化点的坐标可以直接输入或在 RecurDyn 图形工作窗口通过鼠标选
取(通过 Pt 按钮实现);如果需要把参数化点输出至*.rdp 文件中,则需要在 DP 项中勾选。
当然,也可删除已经创建的参数化点或插入新的参数化点。可通过该对话框中的 Import 和
Export 按钮导入和导出参数化点;如果选中 With Relation 复选框,参数化点及其相互之间
的关系也将在导入*.rpp 文件时一并导入。

名称 坐标 参考点

图 5-33 建立参数化点

创建参数化点之后,在 RecurDyn 图形工作窗口和数据库窗口中将分别显示。创建的参


数化点可在定义参数化几何模型、设置 Marker 的坐标等场合使用。
第5章 RecurDyn 高级建模技术 193

2.参数化值PV

参数化值(Parametric Value,PV)用于实现字符串与实数值的关联。例如,可通过参
数化值定义 Body 的质量 M,可以在参数化值对话框中为字符 M 赋实数值。参数化值在使
用前必须先定义。RecurDyn 中凡是界面上有 PV 按钮的参量,均可以用参数化值来表示。
通过单击 PV 按钮,即可选择已经定义的参数化值。
参数化值的定义必须与表达式关联。创建方法为:如图 5-34 所示,选择 Subentity
>>Parametric Value 命令,在弹出的 Parametric Value List 对话框中单击 Add 按钮,添加参
数化的值,包括名称及关联的表达式;通过单击 E 按钮关联参数化值表达式。如果需要把
参数化值输出至*.rdp 文件中,则需要在 DP 项中勾选。当然,也可删除已经创建的参数化
值或插入新的参数化值。可通过该对话框中的 Import 和 Export 按钮导入、导出参数化值;
如果选中 With Relation 复选框,参数化值及其相互之间的关系也将在导入*.rpv 文件时一并
导入。

名称 数值

图 5-34 建立参数化值

创建的 PV 值可以在设置模型的属性时使用,如图 5-35 所示为关联参数化值的一个


例子。

图 5-35 关联参数化值的例子

3.参数化点连接器PPC

RecurDyn 提供参数化点连接器(Parametric Point Connector,PPC),用于各子系统中


的参数化点的控制,如图 5-36 所示。
194 RecurDyn 多体系统优化仿真技术

名称 坐标 参考

图 5-36 参数化点连接器

在创建 PPC 之前,必须确保已经定义了需要连接的子系统参数化点。创建参数化点连


接器(PPC)的方法为:选择 Subentity>>Parametric Point Connector 命令,打开 Parametric Point
Connector List 对话框,通过单击 Add 按钮实现参数化点连接器的添加;单击 Refs 列的按
钮,弹出 Find Parametric Connector References Dialog 对话框(在各个子系统中选择要进行
连接的参数化点),单击>>按钮,(此时该按钮将变为<<,单击可实现关闭搜索参数化点
对话框),弹出 Find Parametric Connector References Search Dialog 对话框,选择其中需要
的参数化点(或通过 Search 按钮左侧的文本框输入参数化点,然后单击 Search 按钮,从而
找到需要的参数化点)后单击 Load 按钮;返回参数化点对话框后,在 Point 下面输入坐标,
或在 RecurDyn 图形工作窗口中单击需要的位置,然后单击 OK 按钮,确定完成 PPC 的创建。

4.参数化值连接器PVC

参数化值连接器(Parametric Value Connector,PVC)用于控制各子系统中的参数化值,


其创建步骤与创建 PPC 基本一致。

5.3 弹球接触仿真实例

该例题描述的是通过仿真进行弹球机设计开发的过程:球 1 在弹簧的作用下获得能量,
第5章 RecurDyn 高级建模技术 195

向前前进推动球 2 沿着弯曲的障碍物垂直运动,球 2 在跨过障碍物之后沿着斜坡向下运动,


撞击桌面上的球 3。仿真的目的是选择一个可以存储足够能量的弹簧,通过压缩弹簧的弹
簧力驱动球 1,球 2 和球 3 的运动来自于球之间的接触以及重力的作用。
该例题中选用弹簧的自由长度作为参数化的变量,通过改变参数化值,可以快速地获
取不同设计的分析结果。在该例题中,由于不考虑轨道随宽度的变化,将其以 2D 的曲线
表达,可以加快仿真速度而不丧失主要的仿真信息。

5.3.1 建立几何模型

创建名为 Pinball 的模型,选择 MMKS 单位制。在工作环境中设置 Icon Size =10;grid


Size =10。默认重力方向为-Y 向。

1.建立固定于大地上的弹球轨道

设置工作平面为 XY 平面;在数据库窗口中选择 Ground,单击鼠标右键,在弹出的快


捷菜单中选择 Edit 命令,进入大地编辑模式;确保连续操作 (Auto Operation)处于激
活状态。
选择 Professional>>Curve and Surface>>Outline ,在图形工作窗口中先后用鼠标捕捉
(0,0,0)和(110,0,0),单击鼠标右键,在弹出的快捷菜单中选择 Finish Operation 命令,
完成创建 Outline1;先后选择(140,30,0)和(140,60,0),右击,在弹出的快捷菜单中选
择 Finish Operation 命令,创建 Outline2;先后选择(230,30,0)和(450,30,0),右击,在弹
出的快捷菜单中选择 Finish Operation 命令,完成 Outline3。建立的 3 条轮廓线如图 5-37 所示。

图 5-37 建立轮廓线

选择 Professional>>Curve and Surface>>Arc ,在选项区选择(Point,Point,Direction,Angle)


模式,选择(110,60,0)为中心点,选择(140,60,0),为确定半径的点,选择(140,50,0),
确定方向为-Y 向,在输入区输入 90(或在屏幕中捕捉到(230,30,0)点),按 Enter 键确
认,建立圆弧 Arc1。
选择(170,60,0)为中心点,选择(140,60,0)为确定半径的点,选择(140,70,0),确
定方向为+Y 向,在输入区输入 180 并按 Enter 键确认,建立圆弧 Arc2。
选择(170,60,0)为中心点,选择(120,60,0)为确定半径的点,选择(120,70,0),确
定方向为+Y 向,在输入区输入 180,按 Enter 键确认,建立圆弧 Arc3。
选择(230,60,0)为中心点,选择(200,60,0)为确定半径的点,选择(200,50,0),确
定方向为-Y 向,在输入区输入 90(或在屏幕中捕捉到(230,30,0)点),建立圆弧 Arc4。
建立 4 条弧线之后,在图形工作窗口空白处单击鼠标右键,选择 Exit,退出大地编辑
模式;选择 File>>Save 命令,将其保存,如图 5-38 所示。
196 RecurDyn 多体系统优化仿真技术

图 5-38 建立弧线并退出大地编辑模式

2.创建球体

选择 Professional>>Body>>Ellipsoid,在选项区设置输入方式为(Point,Distance),
在屏幕中选取(10,10,0)为中心点及(10,20,0)以确定半径为 10,创建小球 1;在屏幕中
选取(40,10,0)为中心点及(40,20,0)以确定半径为 10,创建小球 2;在屏幕中选取(320,40,0)
为中心点及(320,50,0)以确定半径为 10,创建小球 3。
在数据库窗口中选取 Body1,右击,在弹出的快捷菜单中选择 Rename 命令,将名称
改为 Ball_1;同样将 Body2 更改为 Ball_2;将 Bady3 更名为 Ball_3。
建立好图 5-39 所示的球体之后,选择 File>>Save 命令保存。

图 5-39 建立球体

5.3.2 建立弹簧力

选择 Professional>>Force>>Spring,在选项区设置输入模式为(Body,Body,Point,Point),
在图形工作窗口空白处右击,在弹出的快捷菜单中选择 Ground 命令,单击 Ball_1,先后选
择(-20,10,0)及(10,10,0),建立 Ball_1 和大地间的弹簧连接。
单击工具栏中的“选择”按钮 ,选择刚刚创建的弹簧力 Spring1,按 P 键,在弹出的
如图 5-40 所示的对话框中,设置刚度系数 Spring Coefficient=20 ,阻尼系数 Damping
Coefficient=0.05,自由长度 Free Length=45,然后单击 OK 按钮确认。

图 5-40 建立弹簧力
第5章 RecurDyn 高级建模技术 197

5.3.3 建立接触

1.定义球与球间的接触,在此采用Analysis接触

选择 Professional>>Contact>>Sphere To Sphere ,先后选择 Ball_1、Ball_2,建立 Ball_1


和 Ball_2 之间的球与球的接触。
先后选择 Ball_2、Ball_3,建立 Ball_2 与 Ball_3 间的接触。
在数据库窗口中,按住 Shift 键的同时选择 Sphere To Sphere1 和 Sphere To Sphere2,右
击,在弹出的快捷菜单中选择 Property 命令,在弹出的对话框中选择 Characteristic 选项卡,
设置接触刚度系数 Spring Coefficient=100,接触阻尼系数 Damping Coefficient=0.2,摩擦系
数 Friction Coefficient=0.1,然后单击 OK 按钮确认。

2.定义弹球与轨道间的接触

选择 Professional>>Contact>>>Circle To Curve,单击 Ball_1 下面的直线,再选择 Ball_1,


创建 CircleToCurve1。选择 CircleToCurve1,右击,在弹出的快捷菜单中选择 Property 命令,
在弹出的接触属性对话框中选择 CircleToCurve 选项卡,确保 Curve 方向指向 Ball_1,否则
在 Normal Direction 中,通过 Up 和 Down 的选择保证方向正确。选择 Characteristic 选项卡,
设置 Spring Coefficient=100,Damping Coefficient=0.2,Friction Coeffieicient=0.1,单击 OK
按钮确认,如图 5-41 所示。

图 5-41 接触法线方向及接触属性设置

选择 Professional>>Contact>>>Circle To Curve,在选项区选择输入模式为(Multicurve,
Multicircle(sphere)),依次选择依附于大地 Ground 上的所有弧线和直线后,单击工作平
面右上角的 Done1,单击 Ball_2,并单击右上角的 Done2,完成 Ball_2 与轨道的接触定义。
从数据库窗口中分别选取 CircleToCurve2~CircleToCurve8,在打开的如图 5-42 所示接
触属性对话框中选择 CircleToCurve 选项卡,依次检查并确保 Curve 的法向与 Ball_2 相向,
否则在 Normal Direction 中,通过 Up 和 Down 的选择保证方向正确。单击 Base Curve Segment
按钮,在弹出的 Base Curve Segment 对话框中,设置 Curve Segments=20,单击 OK 按钮确
198 RecurDyn 多体系统优化仿真技术

认。返回接触属性对话框后,选择 Characteristic 选项卡,设置 Spring Coefficient=100,Damping


Coefficient=0.2 以及 Friction Coefficient=0.03,单击 OK 按钮确认。

图 5-42 接触属性设置

选择 Professional>>Contact>>>Circle To Curve,在选项区中选择(Curve,Circle(Sphere))
模式,先后选择 Ball_3 下面的曲线和 Ball_3,创建 CircleToCurve9。选择 CircleToCurve9,
右 击 , 在 弹 出 的 快 捷 菜 单 中 选 择 Property 命 令 , 在 弹 出 的 接 触 属 性 对 话 框 中 选 择
CircleToCurve 选项卡,确保 Curve 方向指向 Ball_3,否则在 Normal Direction 中,通过 Up
和 Down 的选择保证方向正确。选择 Characteristic 选项卡,设置 Spring Coefficient=100,
Damping Coefficient=0.2,Firction Coeffieicient=0.1,单击 OK 按钮确认。
选择 File>>Save 命令保存。

5.3.4 初步仿真

选择 Analysis>>Dynamic/Kinematic Analysis 命令 ,在弹出的对话框中设置 End


Time=1,Step=500,Plot Multiplier Step Factor=4,单击 Simulate 按钮提交分析任务。
在输出区显示成功完成仿真后,单击工具栏中的“动画播放”按钮 查看仿真结果。
显然,Ball_2 不能跨过障碍。

5.3.5 参数化弹簧自由长度

从数据库窗口中选择 Spring1,右击,在弹出的快捷菜单中选择 Properties 命令;在弹


出的弹簧属性对话框中,单击 Free Length 右侧的 Pv 按钮;在弹出的 Parametric Value List
对话框中单击 Add 按钮, 在增加的一行中,单击 Value 栏的 E 按钮;在弹出的 Expression List
对话框中,单击 Create 按钮;打开 Expression 对话框,将名称设为 Spring_Free_Length,在
表达式文本框中输入 45,单击 OK 按钮确认;返回 Expression List 对话框,从中可以显示
刚刚定义的 Spring_Free_Length,单击 OK 按钮确认;单击 OK 按钮,在弹簧属性对话框中
第5章 RecurDyn 高级建模技术 199

Free Length(自由长度)栏中出现 PV,单击 OK 按钮,完成弹簧自由长度的参数化定义,


如图 5-43 所示。

图 5-43 参数化弹簧自由长度

5.3.6 参数化控制仿真分析

如图 5-44 所示,在数据库窗口中选择 ParametricValues 中的 PV1,右击,在弹出的快


捷菜单中选择 Property 命令;在弹出的对话框中单击 Value 栏中的 E 按钮;打开 Expression
List 对话框,单击 E 按钮;在弹出的 Expression 对话框中,更改输入区的 45 为 50,连续单
击 OK 按钮,完成参数化修改。

图 5-44 调整参数化值
200 RecurDyn 多体系统优化仿真技术

选择 Analysis>>Dynamic/Kinematic Analysis 命令 ,在弹出的对话框中单击 Simulate


按钮提交分析任务。在输出区显示成功完成仿真后,单击工具栏中的“动画播放”按钮 查
看仿真结果。显然,Ball_2 可以跨过障碍与 Ball_3 碰撞。
选择 File>>Save 保存。

注意:保存模型 Pinball.rdyn,以方便后面优化章节使用。

5.4 RecurDyn函数表达式

函数表达式在多体系统建模仿真时具有非常重要的作用,诸如定义非常复杂的驱动、
通过表达式实现某种控制、测量需要的量、控制输入或输出、优化设计的目标函数或约束
方程等。RecurDyn 中的函数包括系统提供的函数和用户自定义的函数,在此简要介绍软件
系统所提供的函数。
RecurDyn 的有效表达式可通过基本函数组合而成,但表达式不能造成歧义,如 sin
(time)*-5.0 是无效的,正确的表达方式为 sin(time)*(-5.0)。

5.4.1 创建函数

创建函数表达式的方法如图 5-45 所示,具体步骤如下。


(1)选择 Subentity>>Expression 命令,弹出 Expression List 对话框。
(2)单击 Create 按钮,弹出 Expression 对话框。
(3)分别在名称文本框和表达式列表框中输入表达式的名称和具体表达式的内容,
在 Available Functions(可用函数)栏中双击某一函数,即可在表达式列表框中使用该函数。

图 5-45 建立函数表达式
第5章 RecurDyn 高级建模技术 201

名称文本框

表达式列表框

通过 ID 号来对应
可用函数区 具体变量 双击

图 5-45 建立函数表达式(续)

值得说明的是:
 可以将“-”作为表达式的第一个字符。
 函 数 Function(Marker1,Marker2,…) , 自 变 量 是 Marker 点 的 名 称 , 格 式 为
bodyname.markername。如果要用到子系统中的 Marker 点,Marker 的名称格式则
为 bodyname.markername@subsystemname,如 DM(Body1.Marker1,Ground.Marker1)。
 变量可以是参数化点。

5.4.2 在函数表达式中引用参数化点分量

在表达式列表框中,可使用预先定义的参数化点的分量值,如图 5-46 所示。其格式为:


"ParametricPoint_Name.component(x,y,z)"。例如,PP1 的当前坐标为(400,500,0),在表达
式列表框中 PP1.x 的值为 400。

图 5-46 表达式引用参数化点

5.4.3 在函数表达式中使用变量

表达式中的变量可用变量名表示,如 Function(Body1.Maker1,Ground.Marker2);也可以
202 RecurDyn 多体系统优化仿真技术

用变量列表中的 ID 号(变量名称相应的 ID)表示,如表达式 Function(1,2)。采用变量列表


的 ID 号作为变量,需要事先创建变量列表。图 5-47 显示了表达式中的变量。

图 5-47 表达式中的变量

创建变量列表时,可以从 RecurDyn 界面的数据库窗口中选中作为标量的对象,用鼠标


直接拖拽至变量列表中的 Entity 中,也可以在 Entity 列中直接输入变量名称。

5.4.4 引用函数

在 RecurDyn 中,凡是界面上存在 EL 按钮的地方均可引用已经创建的函数表达式,如


运动副的驱动、力、刚度及阻尼等。

5.5 RecurDyn函数类型

5.5.1 数学函数

数学函数用于对标量或矩阵进行数学运算操作,当输入变量为标量时函数返回值为标
量,当输入变量为矩阵时,其返回值就为矩阵。RecurDyn 提供的数学函数包括基本函数、
三角函数以及取整函数。

1.基本函数

基本函数如表 5-2 所示。

表 5-2 基本函数
名 称 功 能
ABS(x) 计算表达式 x 的绝对值
DIM(x,y) 当 x-y>0 时,返回 x-y;当 x-y≤0 时,返回 0
EXP(x) 计算表达式 X 的自然指数值
LOG(x) 计算表达式 X 的自然对数值
LOG10(x) 计算表达式 X 的常用对数(以 10 为底数)
第5章 RecurDyn 高级建模技术 203

续表
名 称 功 能
MAX(A1,A2,{A3}) 求 A1,A2,A3 的最大值,A1,A2,A3 必须为同一类型(整数或实数)
MIN(A1,A2,{A3}) 求 A1,A2,A3 的最小值,其中 A1,A2,A3 必须为同一类型(整数或实数)
MOD(A, P) 求 A 对 P 的余数,正负号与 A 一致
SIGN(A,B) 符号函数,当 B>0 时,返回 ABS(A),当 B<0 时,返回- ABS(A)
SQRT(x) 计算表达式 x 的平方根

2.三角函数(弧度制)

三角函数如表 5-3 所示。

表 5-3 三角函数
函 数 功 能
SIN(x) 计算表达式 x 的正弦值
SINH(x) 计算表达式 x 的双曲正弦值
COS(x) 计算表达式 x 的余弦值
COSH(x) 计算表达式 x 的双曲余弦值
TAN(x) 计算表达式 x 的正切值
TANH(x) 计算表达式 x 的双曲正切值
ASIN(x) 计算表达式 x 的反正弦值
ACOS(x) 计算表达式 x 的反余弦值
ATAN(x) 计算表达式 x 的反正切值
ATAN2(y, x) 计算表达式 y,x 的四象限反正切值

提示:在计算 ATAN2(Y, X)时,遵循下列关系。


当(x, y)在第 1、4 象限时(x>0),ATAN2(y, x)=ATAN(y/x);
当(x, y)在第 3 象限时(x<0, y<0),ATAN2(y, x)=ATAN(y/x)–π;
当(x, y)在第 2 象限时(x<0, y>0),ATAN2(y, x)=ATAN(y/x)+π。

3.取整函数

取整函数如表 5-4 所示。

表 5-4 取整函数
函 数 功 能
AINT(x) 对数值表达式 x 向绝对值小的方向取整
ANINT(x) 对数值表达式 x 向绝对值大的方向取整

5.5.2 IF函数

IF 函数是条件判断函数,根据条件的不同,返回不同的结果。其语法为:
204 RecurDyn 多体系统优化仿真技术

IF(Expression1:Expression2, Expression3, Expression4)


 当 Expresion1 小于 0 时,返回 Exression2 的值。
 当 Expresion1 等于 0 时,返回 Exression3 的值。
 当 Expresion1 大于 0 时,返回 Exression4 的值。
例如,IF(TIME-2.0:-1.0, 0.0, 1.0)如图 5-48 所示,其返回值为:
TIME<2.0 时,返回-1.0;TIME=2.0 时,返回 0.0;TIME>2.0 时,返回 1.0。

图 5-48 IF 函数举例

5.5.3 插值函数

1.样条插值函数

插值函数的语法为:
AKISPL(x,z,modelname.curvename,order)
 x 为 x 轴自变量。
 z:z 轴的插值,但必须设为 0。
 modelname.curvename:样条曲线名称。
 order:可选的微分阶数,通常取 0。
例如,若描述 model1.spline1(y=2+x2)的数据点为:
0 2
0.1 2.01
0.2 2.04
0.3 2.09
0.4 2.16
0.5 2.25
0.6 2.36
0.7 2.49
0.8 2.64
那 么 , 力 的 表 达 式 AKISPL(time,0,model1.spline1,0) 表 示 力 随 时 间 的 关 系 通 过
第5章 RecurDyn 高级建模技术 205

model1.spline1 曲线插值获得,即当 0<time<0.8 时,force=2+time2;time>0.8 时,线性外插。


此时 order 取 0 。若关于 model1.spline1 的一阶微分插值,则 order=1 ;若关于曲线
model1.spline1 的二阶微分插值,则 order=2。
各阶插值曲线如图 5-49 所示。

图 5-49 插值函数(0 阶、1 阶微分、2 阶微分)

2.创建样条曲线

样条曲线在使用之前必须先创建,RecurDyn 支持 Akima 样条曲线拟合方法。样条曲线


可以通过在 RecurDyn 界面中选择 Subentity>>Spline 命令进行创建。创建的样条曲线可以保
存在 Spline 列表中,用户可以在使用时从中选取。 选择 Spline 命令之后,在弹出的 Spline List
对话框中单击 Create 按钮,即可打开 Spline 对话框,如图 5-50 所示。

图 5-50 创建样条函数

在 Spline 对话框中,可在 Name 文本框中为样条曲线命名。单击 Add 按钮,可分别在 X


列和 Y 列中输入样条曲线上的数据点,然后单击 OK 按钮确定。Insert 按钮用于插入,Delete
206 RecurDyn 多体系统优化仿真技术

按钮用于逐行删除,Clear 按钮用于全部清除数据;单击 Function 按钮,通过输入斜率和绝


对值,即可生成系列线性数据; 通过 Import 及 Export 按钮可以导入事先备好的数据文件
(*.mat
文件或*.txt 文件)或把创建的样条曲线数据导出成数据文件;可通过 Draw 按钮显示样条
曲线的形状。X Scale 和 Y Scale 分别用于对给定数据的 X 和 Y 项进行比例缩放,如数据部
分的 X 值为 5,X Scale 为 2,则 X 最终的值为 10。样条曲线的类型及显示如图 5-51 所示。

图 5-51 样条曲线

5.5.4 变量方程和微分方程

RecurDyn 提供的变量方程和微分方程为:
 VARVAL(model name.variable equation name):返回状态变量的值;
 DIF(model name.differential equation name):返回状态变量的值;
 DIF1(model name.Differential equation name):返回状态变量的微分。
注意:VARVAL()和 DIF()函数的自变量不同。

例如,如图 5-52 和图 5-53 所示的曲线,分别表示为:


VARVAL(time*5)=5*time
DIF(time*5)=2.5*time*time
DIF1(time*5)=5*time

图 5-52 变量方程 图 5-53 微分方程


第5章 RecurDyn 高级建模技术 207

5.5.5 时间函数Time

在 RecurDyn 中,时间函数的语法为:
TIME
返回仿真时间的值。
Time Offset:时间偏置。将所有表达式中的时间函数值进行延时,有助于从仿真过程
中萃取丢失时间原点的模型,因提取出的模型都是从 0 时刻开始的,借助 Time Offset 可以
将表达式延时至时间原点。
在批处理过程中,当关键词 TIME 出现时,Time Offset 起作用。例如:
RecurDyn.exe Sample.rdyn/rss Sample.rss/TIME 0.2

5.5.6 一般函数

RecurDyn 提供了下列一般函数及其一阶微分函数和二阶微分函数,如表 5-5 所示。

表 5-5 一般函数及其一阶微分和二阶微分函数
函 数 名 含 义 一 阶 微 分 二 阶 微 分
BISTOP 双侧接触函数 DBISTOP DDBISTOP
CHEBY 计算切比雪夫多项式 DCHEBY DDCHEBY
FORCOS 计算傅里叶余弦级数 DFORCOS DDFORCOS
FORSINE 计算傅里叶正弦级数 DFORSINE DDFORSINE
HAVSIN 定义半正矢阶跃函数 DHAVSIN DDHAVSIN
IMPACT 单侧接触函数 DIMPACT DDIMPACT
POLY 计算标准多项式 DPOLY DDPOLY
SHF 计算简谐函数 DSHF DDSHF
STEP 3 次多项式逼近阶跃函数 DSTEP DDSTEP

1.3 次多项式逼近阶跃函数:STEP(x,x0,h0,x1,h1)

该表达式用于定义一个光滑的阶跃函数,其含义介绍如下。
 当 x≤x0 时,STEP=h0。
 当 x0≤x≤x1 时,STEP  h0  ( h1  h0 )   ( x  x0 ) ( x1  x0 )   3  2   ( x  x0 ) ( x1  x0 ) 。
2

 当 x≥x1 时,STEP=h1。
其中,x 为自变量,可以是时间或时间的任一函数;x0 为自变量的 STEP 函数开始值,
可以是常数、函数表达式或设计变量;x1 为自变量的 STEP 函数结束值,可以是常数、函
数表达式或设计变量;h0 为 STEP 函数的初始值,可以是常数、设计变量或其他函数表达
式;h1 为 STEP 函数的最终值,可以是常数、设计变量或其他函数表达式。
例如,Step(time,0,1,1,6)的曲线如图 5-54 所示。
208 RecurDyn 多体系统优化仿真技术

图 5-54 Step 函数

其中,time=0 时,函数值为 1;time≥1 时,函数值为 6;1<time<6 时,函数值按照 STEP


(Time)=1+(6-1)*(Time)2*(3-2*Time)取值。
2.双侧碰撞接触函数: BISTOP( x, x , x1 , x2 , k , exp, cmax , d )

 当 x≤x1 时, BISTOP  k ( x1  x)exp  STEP( x, x1  d , cmax , x1 ,0) * x 。


 当 x1≤x≤x2 时,BISTOP=0。
 当 x≥x2 时, BISTOP   k ( x  x2 ) exp  STEP( x, x2 , 0, x2 +d ,cmax ) * x 。
其中,x 为距离变量; x 为 x 关于时间的微分;x1 为 x 的取值下限;x2 为 x 的取值上界;
k 为刚度;exp 为指数;cmax 为最大阻尼系数;d 为边界穿深。
BISTOP 的触发是由两个边界条件确定的,即 x1 和 x2。当 x1≤x≤x2 时,函数值为 0;
当 x>x2 或 x<x1 时,有不同的取值。
3.单侧接触函数: IMPACT( x, x , x1 , k ,exp, cmax , d )

 当 x<x1 时, IMPACT  k ( x1  x)exp  STEP( x, x1  d , cmax , x1 , 0)  x 。


 当 x≥x1 时,IMPACT=0。
其中,x 为实时位移变量值,通过 DX、DY、DZ、DM 等函数实时测量;
x 为实时速度变量值,通过 VX、VY、VZ、VM 等函数实时测量;x 为关于时间的导
数;x1 为 x 的自由长度,为激发碰撞力的位移测量值;k 为刚度;exp 为非线性力指数;
cmax 为最大阻尼系数;d 为边界穿深。
4.标准多项式函数: POLY( x, x0 , a0 , a1 , , a30 )
n
P( x)   a j ( x  x0 ) j
j 0

其中,0≤j≤n;x 为自变量;aj 为多项式系数。


5.简谐函数: SHF( x, x0 , a,  ,  , b)

SHF  a  sin(  ( x  x0 )   )  b
其中:x 为自变量;x0 为初始相位角;a 为正弦函数的幅值; 为频率; 为相位偏移;
第5章 RecurDyn 高级建模技术 209

b 为谐函数的平均位移。
例如:
SHF(time,0,1,pi(),0,2)=sin(π*time)+2
6.傅里叶正弦函数: FORSIN( x, x0 ,  , a0 , a1 , , a30 )
n
F ( x)  a0   a j  T j ( x  x0 ) 0≤j≤n
j 1

其中, T j ( x  x0 )  sin( j    ( x  x0 )) .

7.傅里叶余弦级数函数: FORCOS( x, x0 ,  , c0 , c1 , , c30 )


n
F ( x)  c0   c j  T j ( x  x0 ) 0≤j≤n
j 1

其中,x 为自变量;  为傅立叶余弦序列的频率;c0, c1, c2 为傅里叶序列的系数;


T j ( x  x0 )  cos( j    ( x  x0 )) 。
举例:
FORCOS(time,0,360D,1,2,3)表示:F(x)=1+2*cos(1*360D*time)+3*cos(2*360D
*time)
8.切比雪夫多项式函数: CHEBY( x, x0 , c0 , c1 , , c30 )
n
C ( x)   c j  T j ( x  x0 ) 0≤j≤n
j 0

其 中 , x 为 自 变 量 ; c0, c1, c2 为 切 比 雪 夫 多 项 式 的 系 数 ;
T j ( x  x0 )  2  ( x  x0 )  T j 1 ( x  x0 )  T j  2 ( x  x0 ) , T0 ( x  x0 )  1,T1 ( x  x0 )  x  x0 。
例如,CHEBY(time, 1, 1, 1, 1)表示:
C(x)=1*1+1*(time-1)+1*(2*(time-1)2-1)=time+2*time2-4time+2-1 =2*time2-3time+1
9.半正矢阶跃函数: HAVSIN( x, x0 , h0 , x1 , h1 )

该函数所表达的含义为:
 当 x≤x0 时, HAVSIN  h0 。
 当 x0≤x≤x1 时, HAVSIN=  h0 +h1  2   h1 -h0  2 *sin[π * ( x  x0 ) ( x1  x0 )  π 2] 。
 当 x≥x1 时, HAVSIN  h1 。
例如,HAVSIN(time, 1, 1, 3, 2)曲线如图 5-55 所示。
HAVSIN=1 x≤x0
=1.5+0.5*sin[pi*(time-1)/2-pi/2] x0≤x≤x1
=2 x≥x1
210 RecurDyn 多体系统优化仿真技术

图 5-55 半正矢阶跃函数

5.5.7 位移函数

RecurDyn 的位移函数包含三大类:线位移函数、角位移函数和欧拉角分量。
在 RecurDyn 的位移函数中,需要通过 Marker 点(如图 5-56 所示)来指定自变量及参
考方向。通常包括 Action Marker 点、Base Marker 以及参考 Marker,其格式如下。

图 5-56 Marker 点

(m1,m2,{m3})

(bodyname.markername,bodyname.markername,{bodyname.markername})
其中,m1 为 Action Marker;m2 为 Base Marker;m3 为可选项,表示参考 Marker。在
位移函数表达式中,{}中的内容为可选项,如果可选项为空,则表示为惯性参考系。

1.线位移函数DM、DX、DY、DZ

线位移函数如表 5-6 所示。

表 5-6 线位移函数
函 数 含 义 功 能
DM   Rm1  Rm1    Rm1  Rm 2 
1/ 2
DM(m1{,m2}) 返回位移幅值

DX(m1{,m2}{,m3}) DX =  Rm1  Rm2   xm3 返回 X 向位移分量
第5章 RecurDyn 高级建模技术 211

续表
函 数 含 义 功 能

DY(m1{,m2}{,m3}) DY =  Rm1  Rm 2   ym3 返回 Y 向位移分量

DZ(m1{,m2}{,m3}) DZ =  Rm1  Rm2   zm3 返回 Z 向位移分量

2.角位移函数AX、AY、AZ(弧度单位)

函数 AX、AY 和 AZ 是以累计的方式输出角位移,如图 5-57 所示。如果要控制角度的


范围,可使用 MOD 函数来进行控制。

图 5-57 角位移

角位移函数如表 5-7 所示。

表 5-7 角位移函数
函 数 含 义
   
AX(m1{,m2}) AX =ATAN 2  ym1  zm2 , ym1  ym2 
   
AY(m1{,m2}) AY =ATAN 2  zm1  x m2 , zm1  zm1 
   
AZ(m1{,m2}) AZ =ATAN 2  x m1  ym2 , x m1  x m2 

来看一个例子,如图 5-58 所示。

图 5-58 角位移举例

 如果要将角度限定在 0~360 度范围内,函数表达式:


MOD(AZ(m1,m2),360d) (弧度)
MOD(AZ(m1,m2),360d)*RTOD (角度)
212 RecurDyn 多体系统优化仿真技术

 如果要将角度限定在-180~180 度之间,函数表达式:
MOD(AZ(m1,m2)-PI,360d)+PI (弧度)
(MOD(AZ(m1,m2)-PI,360d)+PI)*RTOD (角度)
 如果想达到在转到 3 圈后自动停止计算的效果,可以先定义表达式 AZ(m1,m2)
*RTOD/360>3,然后在 Dynamic/Kinematic Analysis 对话框中的 Stop Condition 仿
真终止条件下拉列表中选择该表达式。

3.欧拉角分量函数

欧拉角分量函数如表 5-8 所示。

表 5-8 欧拉角分量函数
函 数 含 义
Psi(m1{,m2}) 3-1-3 欧拉角的第一个旋转分量 (进动角)
Theta(m1{,m2}) 3-1-3 欧拉角的第二个旋转分量 (章动角)
Phi(m1{,m2}) 3-1-3 欧拉角的第三个旋转分量 (自转角)
Yaw(m1{,m2}) 3-2-1 Yaw-Pitch-Roll 的第一旋转角
Pitch(m1{,m2}) 3-2-1 Yaw-Pitch-Roll 的第二旋转角
Roll(m1{,m2}) 3-2-1 Yaw-Pitch-Roll 的第三旋转角

5.5.8 速度函数

在 RecurDyn 的速度函数中,需要通过 Marker 点来指定自变量及参考方向。其含义可


参考 RecurDyn 的 5.5.7 节。
RecurDyn 的速度函数包括两大类:平动速度、角速度。

1.平动速度

平动速度函数如表 5-9 所示。

表 5-9 平动速度函数
函 数 含 义 功 能
VM = Vm1  Vm 2   Vm1  Vm 2 
1/ 2
VM(m1{,m2}) 相对速度幅值

VR =
Vm1  Vm2    Rm1  Rm2 
VR(m1{,m2}) 相对速度(矢量)
DM  m1, m2 

VX(m1{,m2}{,m3}) VX = Vm1  Vm2   xm3 X 分量

VY(m1{,m2}{,m3}) VY = Vm1  Vm2   ym3 Y 分量

VZ(m1{,m2}{,m3}) VZ = Vm1  Vm2   zm3 Z 分量

2.角速度

角速度函数如表 5-10 所示。


第5章 RecurDyn 高级建模技术 213

表 5-10 角速度函数
函 数 含 义 功 能
WM = m1  m 2   m1  m 2 
1/ 2
WM(m1{,m2}) 角速度幅值

WX(m1{,m2}{,m3}) WX = m1  m2   xm3 绕 X 轴的角速度

WY(m1{,m2}{,m3}) WY = m1  m2   ym3 绕 Y 轴的角速度

WZ(m1[,m2] [,i3]) WZ = m1  m2   zm3 绕 Z 轴的角速度

5.5.9 加速度函数

在 RecurDyn 的加速度函数中,需要通过 Marker 点来指定自变量及参考方向。其含义


可参考 5.5.7 节。RecurDyn 的加速度函数包括两大类:平动加速度、角加速度。

1.平动加速度

平动加速度函数如表 5-11 所示。

表 5-11 平动加速度函数
函 数 含 义 功 能
ACCM =  am1  am 2    am1  am 2 
1/ 2
ACCM(m1{,m2}) 速度幅值

ACCX(m1{,m2}{,m3}) ACCX =  am1  am2   xm3 绕 X 轴的速度

ACCY(m1{,m2}{,m3}) ACCY =  am1  am2   ym3 绕 Y 轴的速度

ACCZ(m1{,m2}{,m3}) ACCZ =  am1  am 2   zm3 绕 Z 轴的速度

2.角加速度

角加速度函数如表 5-12 所示。

表 5-12 角加速度函数
函 数 含 义 功 能
WDTM =  m1   m 2    m1   m 2 
1/ 2
WDTM(m1[,m2]) 角加速度幅值

WDTX(m1{,m2}{,m3}) WDTX = m1  m2   xm3 绕 X 轴的角加速度

WDTY(m1{,m2}{,m3}) WDTY = m1  m2   ym3 绕 Y 轴的角加速度

WDTZ(m1{,m2}{,m3}) WDTZ = m1  m2   zm3 绕 Z 轴的角加速度

5.5.10 力函数

在 RecurDyn 的力函数中,需要通过 Marker 点来指定自变量及参考方向。其含义可参


考 5.5.7 节。
RecurDyn 的力函数包括平动力、力矩、特定力及纸张节点力。函数中的 Marker 必须
属于同一个力。
214 RecurDyn 多体系统优化仿真技术

1.平动力(FM、FX、FY、FZ)

平动力函数如表 5-13 所示。

表 5-13 平动力函数
函 数 含 义 函 数 含 义
FM(m1, m2) 幅值 FY(m1, m2{,m3}) Y 分量
FX(m1, m2 {,m3}) X 分量 FZ(m1, m2 {,m3}) Z 分量

2.力矩(TM、TX、TY、TZ)

力矩函数如表 5-14 所示。

表 5-14 力矩函数
函 数 含 义 函 数 含 义
TM(m1, m2) 幅值 TY(m1, m2{,m3}) Y 分量
TX(m1, m2 {,m3}) X 分量 TZ(m1, m2 {,m3}) Z 分量

3.特定力函数

特定力的使用语法为:
FUNCTION(Name,Flag,Comp, Rm)
 Name:为特定力的名称。
 Flag:当其值为 0 时,力施加在 Action Marker;当值为 1 时,力施加在 Base Marker。
 Comp:其取值在 1~8 之间,1 为 FM,2 为 FX,3 为 FY,4 为 FZ,5 为 TM,6
为 TX,7 为 TY,8 为 TZ。
 Rm:参考 Marker 的名称,力的返回值是以参考系为基准的矢量。
特定力的适用函数包括:
 JOINT:Revolute Joint, Translational Joint, Spherical Joint, Cylindrical Joint, Universal
Joint, Planar Joint, Screw Joint, Fixed Joint, Atpoint Joint, Orientation Joint, Distance
Joint, Inline Joint, Inplane Joint, Parallel Joint, Perpendicular Joint, Constant Velocity
Joint。
 PTCV:PTCV。
 CVCV:CVCV。
 AXIAL:Axial Force, Rotational Axial Force。
 TFORCE:Translational Force。
 RFORCE:Rotational Force。
 SCREWFORCE:Screw Force。
 BEAM:Beam Force。
 BUSH:Bushing Force。
 SPRING:Spring Force, Rotational Spring Force。
第5章 RecurDyn 高级建模技术 215

MATRIXFORCE:Matrix Force。
CONTACT:Contact Force。
MOTION:Driving Force of Motion。
JFRICTION:Friction Force of Joint。
COUPLER:Driving or Driven Force of Coupler(flag 0:Driving Joint;flag 1:1st
Driven Joint;flag 2;2nd Driven Joint)。
 GEAR:Driving or Driven Force of Gear(flag 0:1st Joint;flag 1:2nd Joint)。
例如,Motion(Joint1,0,5,Body1.marker1),表示施加在转动副 Joint1 的 Action Marker 上
的扭矩 TM,其中 Joint1 为转动副。

4.Sheet3D的节点接触力函数

语法:
SHT3D_CF(name,nodeid,flag,comp, rm)
 Name:MTT3D 中的纸张或 sheet shell 的名称。
 Id:节点的 id 号。
 Flag:当值为 0 时,返回施加在节点上的各个接触力的累加值;
 Comp:其取值在 1~8 之间,1 为 FM,2 为 FX,3 为 FY,4 为 FZ,5 为 TM,6
为 TX,7 为 TY,8 为 TZ。
 RM:参考 Marker。

5.5.11 应力、应变函数Stress/Strain

应力、应变函数适用于有柔性体的模型,用于后处理过程。其语法为:
STRESS(node ID, type, Rm):返回应力值。
STRAIN(node ID, type, Rm):返回应变值。
 Node ID 为柔性体节点 ID。
 Rm 为参考坐标系的 Marker 点。
 Type 为应力、应变的类型。对于 Strain,有基本应变(6 个方向)和冯·米塞斯应
变;对于 stress,提供基本应力(6 个方向)、主应力(第 1、2、3 主应力)和冯·米
塞斯应力。
例如,FflexBody1 上节点编号为 6 的节点 X 向(相对于大地坐标系)的应力表示为
STRESS(FflexBody1.Node6,S1,Ground.InertiaMarker);也可通过变量列表和简化的表达式表
示为 STRESS(1,S1,2),其中变量 1 和变量 2 通过变量列表表示,如图 5-59 所示。

图 5-59 应力函数举例
216 RecurDyn 多体系统优化仿真技术

5.6 RecurDyn输出请求

5.6.1 RecurDyn输出请求类型

RecurDyn 的输出请求 Request 在仿真分析时具有非常重要的作用。为了评定仿真分析


是否有效,除了借助程序内置的既定输出项之外,很多情况下还需要借助仿真的过程量。
Request 就是实现输出请求的工具,借助这个工具,可以通过函数表达式直接请求各种复杂
的、简单的输出。例如,可以自定义输出位移、速度、加速度和力以及这些量的各种组合
形式等。输出请求可将请求的输出输至*.rplt 和*.req 文件中,可通过 Plot 来查看。当然,
ADAMS 软件的后处理也可导入*.req 文件中。
选择 Subentity>>Request 命令,在弹出的 Request List(输出请求列表)对话框中,选
择不同的选项卡,通过单击 Create 按钮,即可创建输出请求如图 5-60 所示。其中,Standard
为标准请求输出;Expression 为表达式请求输出,一个 Request 可以同时将 6 个表达式输出;
User 为用户子程序请求;RFLEX 为 RFlex 专有的请求输出,如图 5-61 所示。

图 5-60 建立输出请求

图 5-61 输出请求类型

1.Standard Request(标准请求)

标准请求的类型包括位移、速度、加速度和力;支持 313 坐标系和 321 坐标系,欧拉


第5章 RecurDyn 高级建模技术 217

角仅适用于位移输出请求的显示。
Action、
Base 及 Reference 分别用于指定作用 Marker 点、基础 Marker 点以及参考 Marker
点。作用 Marker 点的方向按照 313 欧拉角表示,与参考点无关。如果没有选择基础 Marker
点或者参考 Marker 点,则采用默认的惯性坐标系。

2.Expression Request(表达式请求)

表达式请求输出与表达式相关,单击 EL 按钮,在弹出的表达式列表对话框中选择已
有的表达式,或根据需要定义表达式。

3.User Request(用户子程序请求)

通过用户子程序输出对话框中的 UL 按钮,可以把用户子程序与输出请求关联起来。

4.RFLEX Request(RFLEX请求)

RFLEX 输出请求适用于 RFlex 工具包,可以建立的输出请求类型包括位移、速度、加


速度及形变。需要指定节点 ID 号、基础 Marker 点及参考 Marker 点,当基础点和参考点未
指定时,则采用默认的惯性坐标系。

5.6.2 输出请求举例

如图 5-62 所示,由两个构件组成的简单系统,两个构件之间通过转动副相连,构件 1
和大地之间通过转动副连接,在重力(-Y 向)的作用下,构件 2 在运动过程中不停地晃动,
通过输出请求了解在运动过程中构件 2 和构件 1 的质心相对距离变化情况。通过力的控制
实现构件 2 保持近似水平状态下,了解构件 2 和构件 1 之间的相对位置。

图 5-62 输出请求举例

为了了解构件 2 质心与构件 1 质心间的距离变化情况,通过输出请求输出两个构件之


间质心相对距离来实现。
选择 Subentity>>Request 命令,在弹出的如图 5-63 所示 Request List 对话框中选择
Standard 选 项 卡 , 单 击 Create 按 钮 ; 在 弹 出 的 Standard Request 对 话 框 中 , 设 置
Type=Displacement,EulerAngle=313,在 Marker 栏中通过 M 按钮设置 Action=Body2.CM,
218 RecurDyn 多体系统优化仿真技术

Base=Body1.CM,Reference=Ground.InertiaMarker,单击 OK 按钮,返回 Request List 对话


框,单击 OK 按钮确认,建立 StRq1 输出请求。

图 5-63 建立输出请求

仿真之后,从后处理可以看到构件 1、2 质心间的相对位置变化情况的曲线。如图 5-64


所示,选择 Post>>Plot 命令,在后处理数据库窗口中选择 Plot>>Request>>Standards>>
StRq1>>Pos_TM,即可显示输出请求结果。

图 5-64 输出请求结果显示

为了保证构件 2 在运动过程中始终保持水平,需要通过控制构件 2 质心的 Marker 点的


方位,保证 Body2.CM 沿 Z 向的转角趋向 0。为此,在构件 1 和构件 2 间的转动副上施加
一个扭矩,但扭矩是随 Body2.CM 的 Z 向转角而变动。通过函数-10e10*AZ(Body2.CM)
实现。
选择 Professional>>Force>>Rotational Axial ,选择输入方式为 Joint,选择构件 2 和构
件 1 之间的转动副,建立 RotationalAxial1;右击 RotationalAxial1,在弹出的快捷菜单中选
择 Property 命令,在弹出的属性对话框中单击 EL 按钮;在弹出的 Expression List 对话框中
单击 Create 按钮;打开 Expression 对话框,在 Argument List 栏中添加变量 1 为 Body2.CM,
在表达式文本框中输入-10e10*AZ(1),连续单击 OK 按钮确认,如图 5-65 所示。
第5章 RecurDyn 高级建模技术 219

图 5-65 建立轴向力

仿真分析后,从后处理中再次查看构件 1、2 质心间的相对位置变化情况的曲线,如


图 5-66 所示。

图 5-66 调整后的输出请求结果

5.6.3 特定力的输出简例

建立如图 5-67 所示的机构,在 Revolute Joint1 转动副 1 上施加角位移运动驱动,其驱


动函数为 90D*Time,弹簧力刚度系数为 100,阻尼系数为 1。
需要求出转动副 1 上的驱动力及弹簧力随时间化的曲线。

图 5-67 特定力简例
220 RecurDyn 多体系统优化仿真技术

具体操作如下:
(1)选择 Subentity>>Expression,在弹出的 Expression List 对话框中单击 Create 按钮,
在弹出的 Expression 对话框中建立函数表达式,在 Name 文本框中输入 CmotionForce,在
函数文本框中输入 Motion(Joint1,0,5,Body1.marker1)。
(2)以同样方法建立弹簧力函数:SpringForce=spring(Spring1,0,1, Ground.InertiaMarker)。
(3)选择 Subentity>>Request,在弹出的 Request List 对话框中选择 Expression 选项
卡,单击 Create 按钮,在打开的 Expression Request 对话框中分别单击 F1 和 F2 行的 EL 按
钮,选择 CmotionForce 和 SpringForce,连续单击 OK 按钮确认。
(4)运行 End Time=5s、Step=100 步的仿真分析,可以获得转动驱动力和弹簧力,如
图 5-68 所示。

图 5-68 特定力输出结果

5.7 RecurDyn子系统建模技术

若干零件(独立加工的单元体)通过运动副构成构件(相对运动的单元体),若干构
件通过连接形成机构,若干机构组合装配成为机械系统。例如,发动机系统由配气机构、
曲柄连杆机构等组成,曲柄连杆系统由活塞连杆、曲轴等组成,活塞连杆由活塞、连杆等
零件组成。对于复杂系统,往往可以解耦成若干相对简单的次级系统。在实际的新产品研
发中,利用子系统的继承性可以降低成本。同样,在建立虚拟样机的分析模型时,也可以
借用子系统的概念将一个完整的系统分成若干个子系统,每个子系统又有次级子系统,且
子系统间可互通关联又保持相对的独立性,这样可以提高模型的利用率,同时通过层次分
明的逻辑关系降低模型的出错率。
RecurDyn 的子系统(Subsystem)概念在复杂机械系统建模分析中具有不可忽视的作
用,对于复杂系统,可根据系统组成及部件之间的连接关系分割成若干独立功能的子系统,
分别建立子系统模型,调试好每个子系统之后再进行组装。
基于 RecurDyn 子系统建模,可以更加有效地分层次、分功能进行复杂系统的建模分析,
尤其对于具有继承性关系的系列化产品,可以最大程度地继承分析模型,通过更改或建立
第5章 RecurDyn 高级建模技术 221

新的子系统,以最小的工作量创建出多种模型,更加方便设计过程的创新优化。
在 RecurDyn 中创建的子系统,是通过导出和导入子系统文件来实现子系统重复利用
的。RecurDyn 的子系统是一个包括各种建模要素的独立的功能模型,可分为多个层级。当
然,也可以在一个系统模型中先后创建若干个子系统,在每个子系统编辑状态下分别调试,
然后再返回系统中组装。这样的模块化建模分析理念有助于复杂系统的分析。

5.7.1 创建子系统

子系统必须依赖于其母体而存在,其原点是母体中的点。创建子系统的步骤为:
(1)在工具包区中选择 Professional>>Subsystem ,在图形工作窗口中单击选择某点
(该点将作为子系统的原点,该点所隶属的实体是子系统的母体),进入子系统编辑模式;
在子系统窗口中创建模型并分析调试。
(2)返回上级系统的方法是右击,在弹出的快捷菜单中选择 Exit 命令,或单击工具
栏中的 Exit 按钮。
(3)在子系统的上一级系统中,单击子系统并右击,可查看子系统的属性;在弹出的
属性对话框中选择 Subsystem 选项卡,通过 Mother Body 可修改其所属的母体,如图 5-69 所示。

图 5-69 子系统的母体

5.7.2 子系统间的操作

不同的子系统进行装配时,需要在不同子系统或子系统与其上级系统之间建立约束、
施加载荷或创建接触等。这时需要在操作的同时按住 Shift 键,按住 Shift 键,子系统中所
有的 Marker 和图标都会被显示出来,很容易找到需要的元素。

注意:不同子系统在建模时需要保证统一的单位制。

5.7.3 子系统的导出、导入及编辑

创建好一个子系统之后,可以将其导出为一个子系统文件;在需要时可多次导入同一
个子系统,从而创建多个相同的副本。

1.导出子系统文件

在导出子系统之前必须创建子系统文件,即通过 RecurDyn 中的 Export 命令导出相应


的*.rdsb 文件。子系统的导出方法为:在子系统编辑模式下选择 File>>Export 命令,在弹出
的对话框中选择文件类型为 RecurDyn Subsystem File(*.rdsb),设定文件名,单击 Save
222 RecurDyn 多体系统优化仿真技术

按钮即可。
当然,非子系统建模而创建的模型也可以导出为子系统文件以供装配使用。其导出方
法为 :在模型编辑模式下选择 File>>Export 命令,在弹出的对话框中选择文件类型为
RecurDyn Subsystem File(*.rdsb),设定文件名,单击 Save 按钮即可。

2.导入子系统

在子系统编辑模式(或 模型编辑模式)下选择 File>>


Import 命令,在弹出的如图 5-70 所示的对话框中选中 Insert in
the Current SubSystem(插入到当前子系统)单选按钮,选择
文件格式为 RecurDyn Subsystem File(*.rdsb),选择已有的
子系统文件,单击 Open 按钮,再单击 OK 按钮确认,即可成 图 5-70 子系统导入选项
功导入。

3.子系统的操作

在子系统模式中剪切、复制、粘贴命令、视角控制、数据库窗口、工作平面管理、Object
Control 等操作和非子系统模式相同,子系统可当作一个单独的元素,进行复制、粘贴、平
移等操作,但不能进行镜像(Mirror)操作。

5.8 基于子系统建模技术的汽车高位自卸机构实例

本实例所涉及的机构以中国矿业大学机械原理课程的主要研究内容为参考。如图 5-71
所示,汽车高位自卸机构能完成货物平面高于车体平面一定高度的卸货功能。在汽车运输
状态下,卸货机构处于收缩状态,便于运输;在卸货状态下,结构展开,完成卸货作业。

图 5-71 汽车高位自卸机构

高位自卸机构主要由相对独立的两大系统构成,即举升机构和卸货机构,而每个机构
中又通过液压系统的液压力来支撑负载。根据系统拓扑结构关系,逐层向上完成高位自卸
第5章 RecurDyn 高级建模技术 223

机构总系统的建立。

5.8.1 建立举升机构子系统

举升机构由液压系统和运动机构组成,先建立运动机构 Extend。
选择 MMKS 单位制,建立 Extend 模型,设置 Grid=100,工作平面设置为 XY 平面。

1.建立Body

选择 Professional>>Body>>Cylinder,选择(Point,Point,Radius)输入模式,先后选择
(900,-200,0)、(-900,200,0),输入 30 作为半径,确认生成 Body1。在数据库窗口中选
择 Body1,右击,在弹出的快捷菜单中选择 Rename 命令,将 Body1 重命名为 Rod1。
选择 Tools>>Settings>>Program Settings,在弹出的如图 5-72 所示 Program Settings 对
话框中选择 User Settings 选项卡,取消选中 Shift When Pasting 复选框,确保复制、粘贴操
作时不产生偏置。

图 5-72 取消选中 Shift When Pasting 复选框

选择 Rod1,选择 Edit>>Mirror 命令 ;在弹出的 Mirror Transformation 对话框中单击


PI 按钮;在 Rod1 中心 Marker 附近右击,在弹出的快捷菜单中选择 Select List 命令;如
图 5-73 所示,在弹出的 Select List 对话框中选中 Rod1.CM.YZ,单击 OK 按钮确认;返回
Mirror Tansformation 对话框,确保 Option=Copy,单击 OK 按钮;在弹出的提示对话框中
单击 OK 按钮确认,生成 Body1;在数据库窗口中选择 Body1,右击,在弹出的快捷菜单
中选择 Rename 命令,将 Body1 重命名为 Rod2。

图 5-73 镜像操作

选择 Professional>>Body>>Box,在选项区选择(Point,Point,Depth)输入模式,先后选
择(-1200,300,0)、(1000,200,0),在输入区输入 1000,确认后生成 Body1;在数据库
窗口中选择 Body1, 右击, 在弹出的快捷菜单中选择 Rename 命令,将其重命名为 Upperplane;
224 RecurDyn 多体系统优化仿真技术

在图形工作区双击 Upperplane,进入 Upperplane 的部件编辑模式;选择 Professional>>Curve


and Surface>>Outline ,然后选择(-1200,200,0)和(1100,200,0),右击,在弹出的快捷
菜单中选择 Finish Operation 命令,完成 Outline1;选择 Outline1,单击工具栏中的 Object
Control >>Basic ,在弹出的 Basic 对话框中的 Translate 选项卡中,设置 Offset Value=300,
单击-Z 按钮,将 Outline1 沿-Z 轴向平移 300。
在数据库窗口中选择 Box1,按 P 键,在弹出的如图 5-74 所示 Properties of Box1 对话
框中选择 Graphic Property 选项卡,拖动 Transparency Intensity 的调整按钮调整为半透明显
示状态,单击 OK 按钮确认。单击工具栏中的 Exit 按钮 ,退出 Upperplane 的部件编辑模式。

图 5-74 设置透明显示模式

选择 Professional>>Body>>Box,在选项区选择(Point,Point,Depth)输入模式,先后选
择(-2000,-200,0)、(1000,-300,0),在输入区输入 1000,确认后生成 Body1;在数据
库窗口中选择 Body1,右击,在弹出的快捷菜单中选择 Rename 命令,将其重命名为
Lowerplane ; 在 图 形 工 作 区 双 击 Lowerplane , 进 入 LowerPlane 的 编 辑 模 式 ; 选 择
Professional>>Curve and Surface>>Outline ,选后选择(-2000,-200,0)和(0,-200,0),
右击,在弹出的快捷菜单中选择 Finish Operation 命令,完成大地上 Outline1 的建立;选择
Outline1,单击工具栏中的 Object Control>>Basic ,在弹出的 Basic 对话框中的 Translate
选项卡中,设置 Offset Value=300,单击-Z 按钮,将 Outline1 沿-Z 轴向平移 300;在图形工
作平面右击,在弹出的快捷菜选择 Exit 命令,返回模型编辑模式。
按住 Ctrl 键, 同时选取 Upperplane 和 Lowerplane,在工具栏中单击 Object Control>>Basic
,在弹出的 Basic 对话框中的 Translate 选项卡中,设置 Offset Value=300,单击+Z 按钮,
将 Upperplane 沿+Z 轴向平移 300;同样操作,将 Rod1 沿+Z 轴平移 600。调整后如图 5-75
所示。

图 5-75 调整位置
第5章 RecurDyn 高级建模技术 225

2.建立Joint

选择 Professional>>Joint>>Revolute,在选项区设置输入模式为(Body,Body,Point);
先后选择 Upperplane、Rod1,在 Rod1 的左端附近右击,在弹出的快捷菜单中选择 Select List
命令,在弹出的如图 5-76 所示 Select List 对话框中选择 Rod1.Cylinder1.Edge1,单击 OK 按
钮,定义转动副 RevJoint1;在数据库窗口中选择 RevJoint1,右击,在弹出的快捷菜单中选
择 Rename 命令,将转动副改名为 RevJoint_Rod1_upper。

图 5-76 通过 Select List 实现复杂选择,建立转动副

以同样方法,先后选择 Lowerplane、Rod1,在 Rod1 的右端附近右击,在弹出的快捷


菜单中选择 Select List 命令,在弹出的 Select List 对话框中选择 Rod1.Cylinder1.Edge2,单
击 OK 按钮,定义转动副 RevJoint1;在数据库窗口中选择 RevJoint1,右击,在弹出的快捷
菜单中选择 Rename 命令,将转动副改名为 RevJoint_Rod1_lower。
以同样方法,先后选择 Rod2、Rod1,在输入区输入(0,0,300),单击 OK 按钮,定义
转动副 RevJoint1,并通过 Rename 命令将转动副改名为 RevJoint_Rod1_Middle。
选择 Professional>>Joint>>PTCV ,选择(Curve,Body,Point)输入模式,先后选择
Lowerplane 上的 Outline1、Rod2,在 Rod2 左端面附近右击,在弹出的快捷菜单中选择 Select
List 命令,在弹出的 Select List 对话框中选择 Rod2.MirrorSolid1.Edge2,如图 5-77 所示,单
击 OK 按钮确认,建立点在线上的约束副 PTCV1;在数据库窗口中选择 PTCV1,右击,在
弹出的快捷菜单中选择 Rename 命令,将其命名为 PTCV_Rod2_Lowerplane。

图 5-77 建立点在线上约束副

以同样方法,先后选择 Upperplane 上的 Outline1、Rod2,在 Rod2 右端面附近右击,在


弹出的快捷菜单中选择 Select List 命令,在弹出的 Select List 对话框中选择 Rod2.MirrorSolid1
.Edge1,单击 OK 按钮确认,建立点在线上的约束副 PTCV1;在数据库窗口中选择 PTCV1,
右击,在弹出的快捷菜单中选择 Rename 命名,重新命名为 PTCV_Rod2_Upperplane。

3.运行仿真测试

单击工具栏中的 Analysis 按钮,在弹出的仿真设置对话框中设置 End time=0.28,


226 RecurDyn 多体系统优化仿真技术

Step=100,单击 Simulate 按钮运行仿真。

4.生成子系统模型

选择 File>>Export 命令,在弹出的对话框中选择 Save as type=RecurDyn Subsyetem File


(*.rdsb),设置 File Name=extend,单击 Save 按钮,保存子系统模型 extend.rdsb,如图 5-78
所示。

图 5-78 导出子系统

5.8.2 建立液压缸子系统

下面建立液压缸系统 Hydraulic_Cylinder,创建参数化模型,如图 5-79 所示。

图 5-79 建立参数化点

1.建立参数化端点

启动 RecurDyn,建立以 MMKS 为单位制的 Hydraulic_Cylinder 模型。


选择 Subentity>>Parametric Point,在弹出的 Parametric Point List 对话框中,单击 Add
按钮两次,在第一行的 Name 列中双击,更改 PP1=PP_Rod_End,在该行的 Point 列中通过
Pt 按钮在屏幕中选取点(-400.,0.,0);在第二行的 Name 列中双击更改 PP2=PP_Cyl_End,
通过 Pt 按钮选择相应的 Point 为点(200,300,0),单击 OK 按钮确认。

2.建立参数化值

选择 Subentity>>Parametric Value,在弹出的 Parametric Value List 对话框中,连续单击


Add 按钮两次,增加两行。
单击 Parametric Value List 对话框中的 Apply 按钮确认生效,定义绝对参数化值。
在第一行的 Name 项中输入 PV_Cyl_Percent,Value 列输入 60;在第二行输入
Name=PV_Rod_Percent,Value=70。
第5章 RecurDyn 高级建模技术 227

定义相对参数化值,连续单击 Parametric Value List 对话框中的 Add 按钮 8 次,增加


8 行。
在第三行中,设置 Name=PV_Rod_In_X;单击该行的 E 按钮,在弹出的 Expression List
对话框中单击 Create 按钮;打开 Expression 对话框,设置表达式 Name=Exp_Rod_In_X,在
表达式输入区输入 PP_Rod_End.X+(PP_Cyl_End.X-PP_Rod_End.X)*.01*PV_Rod_Percent,
单击 OK 按钮;返回 Expression List 对话框,选择 Exp_Rod_In_X,单击 OK 按钮;返回
Parametric Value List 对话框,定义参数化值 PV_Rod_In_X。
以同样方法,按照表 5-15 所示对应关系定义其余参数化值,如图 5-80 所示。

表 5-15 对应关系

Name Value Expression


PV_Cyl_Percent 60
PV_Rod_Percent 70
PV_Rod_In_X Exp_Rod_In_X PP_Rod_End.X+ (PP_Cyl_End.X-PP_Rod_End.X)*.01*PV_Rod_Percent
PV_Rod_In_Y Exp_Rod_In_Y PP_Rod_End.Y+(PP_Cyl_End.Y-PP_Rod_End.Y)*.01*PV_Rod_Percent
PV_Rod_In_Z Exp_Rod_In_Z PP_Rod_End.Z+(PP_Cyl_End.Z-PP_Rod_End.Z)*.01*PV_Rod_Percent
PV_Rod_Radius 10
PV_Cyl_In_X Exp_Cyl_In_X PP_Cyl_End.X+(PP_Rod_End.X-PP_Cyl_End.X)*.01*PV_Cyl_Percent
PV_Cyl_In_Y Exp_Cyl_In_Y PP_Cyl_End.Y+(PP_Rod_End.Y-PP_Cyl_End.Y)*.01*PV_Cyl_Percent
PV_Cyl_In_Z Exp_Cyl_In_Z PP_Cyl_End.Z+(PP_Rod_End.Z-PP_Cyl_End.Z)*.01*PV_Cyl_Percent
PV_Cyl_Radius 20

图 5-80 建立参数化值

3.建立参数化内点

选择 Subentity>>Parametric Point,在弹出的 Parametric Point List 对话框中,单击 Add


按钮两次增加两行。
设置第三行 Name=PP_Rod_In,Point=(PV_Rod_In_X,PV_Rod_In_Y,PV_Rod_In_Z)。
设置第四行 Name=PP_Cyl_In,Point=(PV_Cyl_In_X,PV_Cyl_In_Y,PV_Cyl_In_Z)。
单击 OK 按钮确认。此时在图形工作窗口中出现 4 个参数化点,如图 5-81 所示。
228 RecurDyn 多体系统优化仿真技术

图 5-81 建立参数化内点

4.建立几何部件

选择 Professional>>Body>>Cylinder,从选项区设置输入方式为(Point,Point,Radius),
将鼠标置于 PP_Rod_End 附近,右击,在弹出的快捷菜单中选择 Select List 命令,在弹出的
对 话 框 中 选 中 PP_Rod_End ; 以 同 样 方 法 选 择 PP_Rod_In , 然 后 从 数 据 库 窗 口 中 将
PV_Rod_Radius 拖至输入区,确认生成 Body1;右击,在弹出的快捷菜单中选择 Rename
命令,将 Body1 重命名为 Rod。
选择 Professional>>Body>>Cylinder,从选项区设置输入方式为(Point,Point,Radius),
将鼠标置于 PP_Cyl_End 附近,右击在弹出的快捷菜单中选择 Select List 命令,在弹出的对
话 框 中 选 中 PP_Cyl_End ; 以 同 样 方 法 选 择 PP_Cyl_In , 然 后 从 数 据 库 窗 口 中 将
PV_Cyl_Radius 拖至输入区,确认生成 Body1,如图 5-82 所示;右击在弹出的快捷菜单中
选择 Rename 命令,将 Body1 重命名为 Cylinder。

图 5-82 建立参数化几何体

5.建立Rod和Cylinder间的平动副

选择 Professional>>Joint>>Translational,选项区设置为(Body,Body,Point,Direction),
先后选择 Cylinder、Rod、PP_Rod_In 及沿杆轴线方向,建立平动副。

6.生成子系统

可通过一定边界条件分析确定模型正确后,输出子系统,供后续的系统级建模使用。
第5章 RecurDyn 高级建模技术 229

本章的例子在后面需要使用,因此导出为子系统模型前需删除测试用的边界。
选择 File>>Export 命令,在弹出的对话框中,选择 RecurDyn Subsystem file(*.rdsb)
类型,在 Name 文本框中输入 Hydraulic_Cylinder,单击 Save 按钮,输出 Hydraulic_
Cylinder.rdsb 子系统。

5.8.3 建立举升机构

设置 MMKS 单位制,建立 Lifter.rdyn 模型。

1.子系统装配

选择 File>>Import 命令,在弹出的对话框中选择 Files of type=RecurDyn Subsystem File


(*.rdsb),选择前面已经创建的 extend.rdsb,单击 Open 按钮,在弹出的提示对话框中单
击 OK 按钮,导入运动机构模型,如图 5-83 所示。

图 5-83 导入子系统

选择 File>>Import 命令,选择已经建立的 Hydraulic_Cylinder.rdsb,单击 Open 按钮,


在弹出的 Import SubSystem 对话框中单击 OK 按钮确认,导入液压缸子系统模型,并更名
为 Hydraulic_Cylinder。
选择 Hydraulic_Cylinder 子系统,按 P 键,在弹出的子系统属性对话框中选择 Origin &
Orientation 选项卡,设置 Origin=(-400,0,300),Euler Angle=(180,0,0),单击 OK 按钮
确认,如图 5-84 所示。

图 5-84 设置子系统方位

选择 Professional>>Joint>>Revoulte,选择(Body,Body,Point)输入模式,按住 Shift
键,先后选择 Rod1@extend、rod@Hydraulic_Cylinder,在输入区输入(0,0,300),建立转
动 副 RevJoint1 。 同 样 , 按 住 Shift 键 , 先 后 选 择 Lowerplane@extend 、
Cylinder@Hydraulic_Cylinder,在输入区输入(-400,-200,300),建立转动副 RevJoint2。
选择 Professional>>Joint>>Fixed,选择(Body,Body,Point)输入模式,选择大地 Ground,
230 RecurDyn 多体系统优化仿真技术

按住 Shift 键的同时选择 Lowerplane@extend,在输入区输入(0,-300,0),建立固定副 Fixed。

2.运行仿真测试

单击工具栏中的 Analysis 按钮,在弹出的仿真设置对话框中设置 End time=0.28,Step=


100,单击 Simulate 按钮运行仿真。

3.生成Lifter子系统模型

选择 File>>Export 命令,在弹出的对话框中选择 Save as type=RecurDyn Subsyetem File


(*.rdsb),File Name=Lifter,单击 Save 按钮,保存举升机构子系统模型 Lifter.rdsb。

5.8.4 建立卸货机构

选择 MMKS 单位制,建立 Unloader 模型;设置 Grid=100,工作平面为 XY 平面;选


择 Professional>>SubSystem>>Create New Subsystem ,在图形工作窗口任意位置单击,进
入子系统编辑模式。
选 择 Professional>>Body>>Box , 选 择 ( Point,Point,Depth ) 输 入 模 式 , 先 后 选 择
(-900,200,0)、(900,-100,0),在输入区输入 900,确认生成 Body1,在数据库窗口中
选择 Body1,右击在弹出的快捷菜单中选择 Rename 命令,将 Body1 重命名为 Truck。双击
Truck,进入 Truck 编辑模式,选择 Professional>>Local>>Shell,单击 Box1,在弹出的如
图 5-85 所示 Shell Operation 对话框中,设置 All Other Faces=20,单击 Offset Face List 栏中
的 Add 命令,选择 Face3(Box1 的左侧面),单击 Remove Face List 栏中的 Add 命令,选
择 Face4(Box1 的上侧面),再次单击 Add 命令,选择 Face6(Box1 的右表面),单击
OK 按钮确认。右击,在弹出的快捷菜单中选择 Exit 命令,退出 Truck 编辑模式。

图 5-85 建立 Truck

选择 Truck,单击 Object Control>>Basic,在弹出的 Basic 对话框中选择 Rotate 选项卡,


设置 Degree=30,单击“绕-Z 轴”按钮 。
选择 Professional>>Body>>Cylinder,在选项区设置输入方式为(Point,Point,Radius),
第5章 RecurDyn 高级建模技术 231

选择(-700,-100,0)、(200,-600,0),输入 20,建立 Body1,并更名为 rod1。依照表 5-16


所示对应关系建立其他杆。

表 5-16 对应关系

Point Point Radius Name


-700,-100,0 200,-600,0 20 Rod1
500,-600,0 750,-400,0 10 Rod2
-700,-100,0 -350,0,0 20 Rod3
700,-400,0 1000,-350,0 5 Rod4
800,-200,0 950,0,0 5 Rod5

按住 Ctrl 键的同时选择 Rod2、Rod4、Rod5,在工具栏中单击 Object Control>>Basic,


在弹出的 Basic 对话框中选择 Translate 选项卡,设置 OffsetValue=500,单击“+Z”按钮实
现平移操作。
选择 Professional>>Body>>Link,在选项区中设置输入方式为(Point,Point,Depth),
选择(1000,-350,0)、(950,0,0),输入 900,建立 Body1,并更名为 Door。双击 Door,
进入编辑模式。选择 Link1,按 P 键,在打开的属性对话框中,设置 First Radius=20,Second
Radius=20,单击 OK 按钮确认。右击在弹出的快捷菜单中选择 Exit 命令,退出 Door 的编
辑模式。
选择 Professional>>Joint>>Revolute,在选项区设置输入方式为(Body,Body,Point),
按照表 5-17 所示对应关系建立转动副。

表 5-17 对应关系

Body Body Point


MotherBody(Ground) Rod1 200,-600,0
MotherBody(Ground) Rod2 500,-600,500
MotherBody(Ground) Truck 600,-700,0
Rod1 Rod3 -700,-100,0
Rod2 Rod4 700,-400,500
Truck Rod4 750,-400,500
Truck Rod5 800,-200,500
Rod5 Door 950,0,500
Truck Rod3 -350,0,0
Door Rod4 1000,-350,500

选择 Professional>>Contact>>Solid,先后选择 Truck 和 Door,定义接触副。


单击工具栏中的 Analysis 按钮,在弹出的仿真设置对话框中设置 End time=0.28,
Step=100,单击 Simulate 按钮运行仿真。
选择 File>>Export 命令,在弹出的对话框中选择 Save as type=RecurDyn Subsyetem File
232 RecurDyn 多体系统优化仿真技术

(*.rdsb),设置 File Name=Unloader,单击 Save 按钮,保存卸货机构子系统模型


Unloader.rdsb。

5.8.5 总装汽车高位自卸机构

以 MMKS 单位制建立 Assembly_Unloader.rdyn 模型。

1.载入举升机构

选择 File>>Import 命令,选择已建立的 Lifter.rdsb,单击 Open 按钮,在弹出的 Import


SubSystem 对话框中选择 Make New SubsSystem,单击 OK 按钮确认,导入 Lifter 子系统。
从数据库窗口中选择 Lifter,右击,在弹出的快捷菜单中选择 Edit 命令,进入子系统
编辑模式。

2.载入卸货机构

选择 File>>Import 命令,选择已建立的 Unloader.rdsb,单击 Open 按钮,在弹出的 Import


SubSystem 对话框中选择 Make New SubsSystem,单击 OK 按钮确认,并更改名称为
Unloader.rdsb 子系统。
选择 Subsystems>>Unloader 子系统,按 P 键,在弹出的属性对话框中选择 Origin &
Orientation 选项卡,设置 Origin=(400, 1000, 400),单击 OK 按钮确认。

3.建立子系统间约束副

选择 Professional>>Joint>>Fixed,在选项区设置输入模式为(Body,Body,Point),选择
大地 Ground,按住 Shift 键,选择 Lowerplane@extend,选择(-1700, -300, 0),建立固定副。
从数据库窗口中选择 Subsystems>>Unloader 子系统,右击,在弹出的快捷菜单中选择
Edit 命令,进入 Unloader 子系统编辑模式。从数据库窗口中同时选择 RevJoint1、RevJoint2
及 RevJoint3,右击,在弹出的快捷菜单中选择 Inactive 命令。单击工具栏 Exit 按钮退出
Unloader 子系统模式。
选择 Professional>>Joint>>Revolute,选择(Body,Body,Point)输入方式,按住 Shift
键先后选择 Upperplane@extend、Rod1@Unloder,输入(600, 400, 400),建立转动副。
以同样方法,按住 Shift 键,先后选择 Upperplane@extend、Rod2@Unloder,输入(900,
400, 900 ) , 确 认 之 后 建 立 转 动 副 。 按 住 Shift 键 , 先 后 选 择 Upperplane@extend 、
Truck@Unloder,输入(1000, 300, 400),建立转动副。

4.载入液压缸系统

选择 File>>Import 命令,选择已经建立的 Hydraulic_Cylinder.rdsb,单击 Open 按钮,


在弹出的 Import SubSystem 对话框中选择 Make New SubsSystem,单击 OK 按钮确认,导
入液压缸子系统模型,并更名为 Hydraulic_Cylinder_Upper。
选择 Hydraulic_Cylinder_Upper 子系统,按 P 键,在弹出的子系统属性对话框中选择
Origin & Orientation 选项卡,设置 Origin=(-250, 600, 300),Euler Angle=(260, 0, 0),
第5章 RecurDyn 高级建模技术 233

单击 OK 按钮确认。

5.建立子系统间约束副及驱动

选择 Professional>>Joint>>Revolute,在选项区设置输入方式为(Body,Body,Point),
按住 Shift 键,先后选择 Upperplane@extend、Cylinder@Hydraulic_Cylinder_Upper,输入(10,
350, 300),建立转动副。
以同样方法,按住 Shift 键,先后选择 Rod3@Unloder、Rod@Hydraulic_Cylinder_Upper,
输入(-580, -5, -100),确认之后建立转动副。

提示:在此仅通过简单的表达式表示液压力的作用。液压系统机械尺寸可以通过参数
化值改变,在此不再赘述。

从数据库窗口中选择 SubSystems>>Hydraulic_Cylinder,右击,在弹出的快捷菜单中选
择 Edit 命令,进入子系统编辑模式,选择 TraJoint1,按 P 键,在弹出的平动副属性对话框
中选择 Include Motion,单击 Motion 按钮;在弹出的 Motion 对话框中选择 Displacement
(time),单击 EL 按钮;在弹出的 Expression List 对话框中单击 Create 按钮;打开 Expression
对话框,在表达式列表框中输入 IF(time-0.2:500*time,100,100)之后,连续单击 OK 按钮确
认,完成液压缸行程定义,如图 5-86 所示。

图 5-86 建立驱动

单击工具栏中的 Exit 按钮,退出 Hydraulic_Cylinder 子系统编辑模式。


从数据库窗口中选择 SubSystems>>Hydraulic_Cylinder_Upper,右击,在弹出的快捷菜
单中选择 Edit 命令,进入子系统编辑模式;选择 TraJoint1,按 P 键,在弹出的平动副属性
对话 框中选择 Include Motion,单击 Motion 按钮;在弹出的 Motion 对话框中选择
Displacement(time),单击 EL 按钮;在弹出的 Expression List 对话框中单击 Create 按钮;
打开 Expression 对话框, 在表达式列表框中输入 IF(time-0.2:-200*time,-40,-IF(Time-0.4:-40,-40,
IF(time-0.8:-40+600*(Time-0.4),200,200))),连续单击 OK 按钮确认,完成液压缸行程定义。
单击工具栏中的 Exit 按钮,退出 Hydraulic_Cylinder_Upper 子系统编辑模式。

6.总装系统运行分析

单击工具栏中的 Analysis 按钮,在弹出的仿真设置对话框中设置 End time=1,Step=100,


单击 Simulate 按钮运行仿真,结果如图 5-87 所示。后处理分析方法和一般模型相似,在此
不再赘述。
234 RecurDyn 多体系统优化仿真技术

图 5-87 总装系统

5.9 RecurDyn求解器类型及并行计算

RecurDyn 有两种类型的求解器——dll 和 exe,其特点分别介绍如下。


 dll 类型,默认的求解器类型(推荐),仿真速度最快。
 exe 类型,该类型求解器不与具有 GUI 的 Modeler 共享内存,降低了仿真过程中需
要的系统内存。exe 类型求解器适用于并行计算。
如图 5-88 所示,选择 Tools>>Settings>>Program Settings 命令,在弹出的对话框中选择
Solver Settings 选项卡,在 Solver Type 栏中选择求解器的类型。
RecurDyn 的求解器编译方式有 CF 和 IF 两种,在 IF 状态下,RecurDyn 支持并行计算
SMP。在 Program Settings 对话框中的 Solver Settings 选项卡中选中 Solver compiled with IF
11.0 单选按钮,并取消选中 Auto 复选框,可以设置线程数,从而控制参与并行计算的 CPU
数量。

图 5-88 并行运算设置
第5章 RecurDyn 高级建模技术 235

5.10 RecurDyn批处理仿真

RecurDyn 支持批处理仿真,批处理命令需要在 Windows 或者 DOS 环境中运行。使用


批处理文件(*.bat)进行仿真,可以实现仿真过程的复杂控制,如将整个仿真时间过程分
成若干段,每个时间段拥有自己的计算类型和计算步长;也可以通过批处理实现更改设计
变量的仿真。批处理仿真的方法为:将模型文件(*.rdyn)、求解控制文件(*.rss)和批处
理文件(*.bat)放在同一文件夹下,双击*.bat 文件运行批处理仿真。

1.批处理文件*.bat

可通过任意文本编辑器编写*.bat 文件,其格式如下。
[recurdyn.exe] [model.rdyn] /rdp [rdp file] /rf /rss [rss file] /out [outfilename] /show /iicf
[icffilename] /sicf [icffilename] /rad [on/off] /rplt [on/off]
可以应用于.bat 文件的选项介绍如下。
 [recurdyn.exe]:安装路径及可执行文件 Recurdyn.exe。
 [model.rdyn]:rdyn 文件名。
 [rdp file]:rdp 文件名。
 /rf :重新加载关系文件数据。
 [rss file]:rss 文件名。
 [outfilename]:output 文件名(output 文件名是指从 outfilename1.EXT 到 outfilenameN
.EXT 的输出文件)。
 [/show]:在批处理仿真过程中显示 RecurDyn 窗口。
 [/iicf [icffilename]]:导入的 ENDTIME CONDITION 文件的名称。
 [/sicf [icffilename]]:导出的 ENDTIME CONDTION 文件的名称。
 [/rad [on/off]]:是否创建 RAD 文件。
 [/rplt [on/off]]:是否创建 RPLT 文件。
 [/export rmd]:控制是否导出模型求解数据 RMD 文件。
 /NOEXIT:运行批处理文件之后不关闭 RecurDyn;否则,RecurDyn 会自动关闭。
 /PROCESSNETRUN [ProcessNetFunctionName] : 运 行 RecurDyn 的 二 次 开 发
processnet 函数。[ProcessNetFunctionName]是指 processnet 的函数名。
 /ProcessnetRunDll [ProcessNet.dll]:指定 ProcessNet 动态链接库的全路径及文件名,
如"<install dir>\ProcessNetProject\ProcessNet\bin\Release\ProcessNet.dll"。
 /outfolder [on/off]:控制是否创建输出文件夹。
 /saveas [rdyn file]:保存为 rdyn 文件。
 /time [value]:设置时间偏 置(时间偏置用于 使用关键词 TIME 的选项,如
RecurDyn.exe Sample.rdyn/rss Sample.rss/TIME 0.2)。
236 RecurDyn 多体系统优化仿真技术

 /exitsave:标记保存 rdyn 文件之后退出。


 /nomax:标记在 Batch 仿真期间不最大化 RecurDyn 窗口。
 /ani:标记在 Batch 仿真期间显示动画。
 /module [module name]:仅仅用于 CoLink 模型,定义附件模型。
 /SOLVERCLASS [IF/CF]:选择 IF 求解器或 CF 求解器。
 /SOLVERTYPE [DLL/EXE]:选择求解器类型为 DLL 或 EXE。
 /NTHREAD [0~4]:选择线程数,如果选择 0,将设置为 Auto。
 /clk [colink filename]:CoLink 文件名,仅仅适用于 CoLink 模块。
 /colinkshow:在 Batch 仿真期间显示 CoLink 窗口。

2.求解控制文件*.rss

RecurDyn 的求解控制文件(即场景文件)*.rss 是一个顺序执行的命令集,包括分析类


型、时间控制、步长控制等内容。创建求解控制文件的方法为:在 RecurDyn 界面中选择
Analysis>>Scenario 命令,在弹出的 Scenario Analysis 对话框中创建*.rss 文件,如图 5-89
所示。

图 5-89 脚本仿真

单击 Create 按钮,选择 Integration,选择积分器的类型,并单击 Load 按钮将所选择的


积分器及设置加载至场景文件编辑器中。不同的积分类型有不同的语法:
 DDA(DDASSL)积分器的参数包括 Maximum Stepsize(最大时间步长)、Error
Tolerance(误差)及 Maximum Order(最大阶次)。例如,INT/DDA,HMAX=0.01,
ERR=0.005,KMAX=3。
 IMG(IMGALPHA)积分器的参数包括 Maximum Stepsize,Error Tolerance 及
Numerical Damping(数值阻尼)。例如,INT/IMG,HMAX=0.01,ERR=0.005,
NDA=0.8。
 TRK(TRKGALPHA)积分器的参数包括 Maximum Stepsize、Error Tolerance 及
第5章 RecurDyn 高级建模技术 237

Numerical Damping(数值阻尼)。例如,INT/TRK,HMAX=0.01,ERR=0.005,
NDA=1.0。
再次单击 Create 按钮,选择仿真类型,设置分析参数,单击 Load 按钮加载至文本编
辑器。例如,SIM/DYN,END=5,STEP=100 表示仿真 5s、100 步的动力学仿真。
根据需要,可以通过 Active 和 Deactive 控制力的有效与否。
多段求解控制可以通过多次的 Create/Load 加载至场景文件编辑器中。求解控制文件编
辑好之后,通过单击 Export 按钮输出*.rss 文件。
需要注意的是,在设置 Dynamic Analysis Simulation 分析前,必须定义一个 Integrator
命令;在设置 Static Analysis Simulation 分析前,必须定义一个 Equilibrium 命令;每个场景
文件中必须含有至少一个 Integrator 命令;后一个命令行的 End Time 必须大于前一个命令
行的 End Time。
使用批处理文件可以实现多个*.rss 文件仿真。格式如下:
[recurdyn.exe] [model.rdyn] /rss [rss1 file] /rdp [rdp file] /out [outfilename1]
[recurdyn.exe] [model.rdyn] /rss [rss2 file] /rdp [rdp file] /out [outfilename2]
[recurdyn.exe] [model.rdyn] /rss [rss3 file] /rdp [rdp file] /out [outfilename3]
例如:
"<install dir>\bin\recurdyn.exe" "model1.rdyn" /rdp model.rdp /rss model.rss /out out /show
"<install dir>\bin\recurdyn.exe" "model1.rdyn" /rdp model.rdp /rss model.rss /out out /show
"<install dir>\bin\recurdyn.exe" "model1.rdyn" /rdp model.rdp /rss
"<install dir>\bin\recurdyn.exe" "model1.rdyn"/PROCESSNETRUN ProcessNetFunction
3.Output files输出文件

运行批处理仿真之后,生成的输出文件包括 file.msg、file.rad、file.rmd、file.rdyn、file.req、
file.rdp 及 file.out 文件。

5.11 Linux求解器

在 Linux 求解器上运行 RecurDyn 仿真必须具备如下 3 个输入文件,这些文件通过


Windows 系统 RecurDyn 图形用户界面创建。
 包括模型数据的*.rmd 文件。
 包含*.rplt 文件头信息的*.rplh 文件。
 包含运行仿真控制的 Rss 文件。
其中*.rmd 文件和*.rplh 文件需要在 Windows 的 RecurDyn 界面中选择 File>>Export 命
令,在弹出的对话框中分别选择 RecurDyn Solver Data File(*.rmd)和 RecurDyn RPLT header
file(*.rplh)类型,输入名称后,通过 Save 按钮保存产生。*.rss 文件的建立方法参见本章
前面内容。
238 RecurDyn 多体系统优化仿真技术

在 Linux 上求解 RecurDyn 模型之前,必须将已经创建的*.rmd、*.rplh 及*.rss 文件置于


Limux 系统的同一个工作目录中。
调用 RecurDyn Linux 求解器的命令为:
/opt/functionbay/rdsolver rmd_file rss_file
该命令可以通过设置变量 PATH 来简化:
export PATH=/opt/functionbay/:$PATH
rdsolver rmd_file rss_file
分析结束后,将自动生成*.rplt 文件,该文件的内容取决于输入求解器的.rplh 文件。可
通过 Windows 的 RecurDyn 后处理读入分析结果。

5.12 小 结

RecurDyn 提供丰富的接触类型,在定义接触时需要根据相互接触的物体的特征进行合
适接触类型的选择;通过巧用表达式可实现复杂模型的控制;通过 RecurDyn 子系统层级建
模技术,实现复杂系统由简至繁的建模过程。
࢒ 6 ᐺ ধྒྷ૘੝ᇹᄻशᑞ

本章将着重介绍基于 RecurDyn 进行刚柔混合模型仿真分析的两种途径,详细说明


Rflex 和 FFlex 建模细节及方法、步骤,并介绍基于 FFlex 进行直接频率响应的方法。

6.1 RecurDyn柔性体建模

20 世纪 70 年代以来,基于多体动力学计算方法分析机构中结构件的强度大致经历了 3
个重要的阶段,如图 6-1 所示。

1970—1984

1985—1999

2000—2010

图 6-1 多体动力学的发展阶段

第一代技术中多体动力学和有限元方法作为两支彼此独立的力量,分别承担着系统级
和局部精细级别的分析任务,从多体动力学计算的结果中萃取出用于有限元分析的载荷,
进而获得结构的强度及刚度变形。该分析过程没有考虑机构运动和材料变形间存在的耦合
现实,早在 80 年代,Wehage-Shabana-Chang(U of Iowa/ U of Illinois)等学者在一系列论
文中均指出此种方法极度的不准确性。
第二代技术中采用模态缩减法,将柔性体结构的刚度通过预先有限元计算得到的模
态表示。这种方法(称为 FMBD 技术)将多体动力学和有限元相结合,有效地解决了诸
多领域的工程问题。但众所周知,模态缩减法只能处理小的振动变形,不能计算大的结
240 RecurDyn 多体系统优化仿真技术

构变形,无法处理柔性体边界条件的改变,如接触区域随时改变等,同时也无法处理柔
性体的材料非线性,此外选择一组有效模态是非常不容易的,模态截断到什么程度也是
一个关键问题。
第三代技术突破了 FMBD 技术的应用局限,将有限元和多体系统放在同一个求解器中
求解,耦合计算只需在多体系统中通过有限元的网格和材料等信息表示柔性体。这种技术
(称为 MFBD 技术)通过完全有限元柔性体和多体动力学的耦合计算,可以直接获得结构
件的动应力、动应变等信息。
目前,很多商业有限元软件也提供系统级的仿真技术,但有限元方法计算多体动力学
问题存在两大劣势——一是有限元的数据量非常大,计算步长及稳定性的限制,使得计算
速度成为一个不可忽视的问题;二是有限元方法无法考虑较长时间(秒级)的仿真。而区
别于有限元方法,拥有 MFBD 技术的多体动力学方法考虑柔性体可以较为快速地仿真较长
时间机构的物理行为。
RecurDyn 提供两种刚柔混合建模技术,即模态缩减技术的 R-Flex 方法和完全柔性体
技术的 F-Flex 方法。两者间的区别正是第二代和第三代多体动力学技术的区别。R-Flex 不
能考虑大变形及非线性,由于已预先通过有限元计算结构的模态,该方法的计算速度较快,
而且可以计算大规模的柔性体;F-Flex 可以考虑柔性体与刚形体、柔性体之间的接触,极
大地拓展了应用范围,但计算速度较 R-Flex 慢,支持的柔性体规模有所局限。所以,最为
有效的方法是合理地结合运用 R-Flex 和 F-Flex,以实现速度和精度的并举。

6.2 RecurDyn/RFlex概述

RecurDyn/RFlex 是基于模态缩减技术的刚柔混合动力学分析模块,通过模态振型叠加
法,获得结构的动态应力和应变。RFlex 基于固定界面模态缩聚方法 Craig-Bampton 缩聚,
其本质是模态综合时只考虑“位移对接”条件。固定界面子结构方法是指假定在子结构的
交界面上的节点是完全固定的。此时的模态分为约束模态(Constraint Modes)和约束正则
模态(Constraint Normal Modes)。约束模态是静力模态,没有频率,即用单位位移施加于
该自由度,得到子结构的静力变形。约束所有在交界面的自由度,然后依次逐个给各自由
度放开,并在该自由度上施加单位位移,其整体结构的静变形称为约束模态。约束所有在
交界面的自由度,然后计算所有内部自由度得到的模态,称为约束正则模态。实际变形需
用约束模态和约束正则模态叠加而成。
RFlex 建模过程如图 6-2 所示,包括两大步,首先创建表示柔性体的 RFI 文件并导入
RecurDyn,然后建立柔性体和刚体模型间的连接关系。RFI 文件需要通过有限元软件获得,
RFlex 支持的有限元程序包括 NX Nastran、MSC.Nastran、Ansys 及 Ideas 等。
第6章 刚柔混合系统仿真 241

图 6-2 RFlex 的建模过程

6.3 RecurDyn/RFlex建模

在 RecurDyn 中建立柔性体之后,可以建立柔性体与其他部件之间的关系。除接触不适
用于 RFlex 柔性体之外,可采用 Joint 和 Force 连接 RFlex 柔性体和其他部件。

6.3.1 RecurDyn的RFI文件

表示模态柔性体的 RFI 文件需要包含下列内容:


 几何信息:节点的位置和连接关系。
 质点的质量和转动惯量。
 模态振型。
 振型的广义质量和刚度。
RFI 文件可通过有限元程序和 RecurDyn 软件共同生成,亦可由有限元软件直接生成。
下面介绍有限元软件 NX Nastran 6.0 直接生成 RFI 文件的步骤。
通过控制 NX Nastran 的输入文件命令(*.dat 或*.bdf)来决定 RFI 文件的生成与否。
除此之外,还需通过控制输出来决定是否包括应力、应变,定义外部节点等。不同的
NX Nastran 版本,其命令语句有所差异,下面以 NX Nastran 6.0 为例来说明生成 RFI 文件
的方法,该方法亦适用于 MSC.Nastran。
运行*.dat 文件之后,直接生成.rfi 文件。
SOL 103
TIME 60
CEND
$* CASE CONTROL
TITLE = NX NASTRAN FILE TRANSLATOR -- UNITS = MM
242 RecurDyn 多体系统优化仿真技术

SET 1 = 1 THRU 2253 定义单元/节点集


SET 2 = 1 THRU 960
SEALL = ALL
SUPER = ALL
ECHO = NONE
GPSTRAIN=ALL 定义应力、应变
GPSTRESS=ALL

RECURDYNRFI FLEXBODY=YES,FLEXONLY=YES,OUTGSTRN=YES,OUTGSTRS
=YES 控制生成*.rfi 文件的命令

SUBCASE = 1
METHOD = 1 定义应力、应变输出
VECTOR(SORT1,REAL)=ALL 定义输出矢量
SPCFORCES(SORT1,REAL)=ALL
SET 5 = 1 THRU 960
STRESS=5
STRAIN=5
$*
OUTPUT(POST)
SET 6 = 1 THRU 960 定义输出的单元(Volume 针对体
VOLUME 1 SET 6,DIRECT,SYSTEM CORD 0 单元,Surface 针对面单元)
$*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
BEGIN BULK
$$$$$$$$$*$$$$$$$*$$$$$$$*$$$$$$$*$$$$$$$*$$$$$$$* 定义单位制
DTI UNITS 1 KG N M S
$* PARAM CARDS 定义参数
EIGRL 1-1.00000 30 0 7 0.0MAX
$* GRID CARDS 节点定义
$* ELEMENT CARDS 单元定义
RBE2 960 2252 123456 20 21 628 629 631
$* MATERIAL CARDS 材料定义
$* PROPERTY CARDS 属性定义
SPOINT,30001,THRU,30030
定义外部节点/模态
QSET1,0,30001,THRU,30030
ASET1,123456,2252,2253
ENDDATA
通过 NX Nastran 求解,在*.dat 文件所在的目录中将产生同名的.rfi 文件,如图 6-3
所示。
第6章 刚柔混合系统仿真 243

图 6-3 NX Nastran 求解生成*.rfi 文件

NX Nastran 从 5.0 版本开始,提供了与 Recurdyn 软件的接口。通过 RECURDYNRFI


命令可以直接得到 RecurDyn 柔性体输入文件(*.rfi)。RECURDYNRFI 命令行格式为:
FORMAT:
  NO    YES 
RECURDYNRFI  FLEXBODY    ,  FLEXONLY    ,
  YES    NO 
  NO    NO 
OUTGSTRS   YES  , OUTGSTRN   YES  ,
     

PARTIAL NONE
MINVAR= , PSETID=
MINVAR= CONSTANT , PSETID= setid
FULL ALL
NONE
 FLEXBODY 选项:NO/YES。生成 RFI 文件请求。No,不生成 RFI;Yes,生成
RFI。
 FLEXONLY 选项:YES/NO。确定标准的 DAMP 以及数据恢复在 RFI 文件生成后
是否运行。Yes,只生成 RFI;No,RFI 以及 DMAP 和数据都恢复。
 OUTGSTRS:NO/YES。确定节点应力是否写入 RFI 文件中。
 MINVAR,确定如何计算质量不变量。
 PARTIAL:计算第 6、8 质量不变量。
 CONSTANT:计算 1、2、3、9 质量不变量。
 FULL:计算所有 9 个质量不变量。
 NONE:不计算质量不变量。
RECURDYNRFI 是一个非重启动的 103 分析应用,如需要输出柔性体文件,需用
DTI,UNITS 命令指定单位制。完整的格式为:
DTI UNITS 1 MASS FORCE LENGTH TIME
例如:
DTI,UNITS,1,KG,N,M,S
244 RecurDyn 多体系统优化仿真技术

可通过定义一个部件作为超单元或部分超单元以达到建立柔性体附加点的目的,此时
A-set(外部物理节点)即为附加点;对于一个残余类型的模型,可以直接使用 ASET 模型
数据定义附加点。当使用 Spoint/Qset 组合获得模态数据时,标量点数 ns 需要满足
ns>=n+(6+p),其中 n 是在命令行 EIGR 或 EIGRL 中指定的模态数,p 是 Load cases 的数目。
对 FlexBody=yes 的状况,需要计算部件的残余矢量以更准确反应部件的振型。
模型数据中不支持 OMIT 或 OMIT1 关键字;不支持 P-单元,因其经常采用的是协调
质量方程,而在此分析中需要采用集中质量。OUTGSTRS 以及 OUTGSTRN 输入需要利
用"STRESS= / STRAIN=" 联合 "GPSTRESS= / GPSTRAIN="命令得到节点的应力、应变
信息。
NX Nastran 从 7.0 版本开始,控制 RFI 文件的命令如下。
MBDEXPORT RECURDYN FLEXBODY=YES
以下两条命令语句等效:
NX Nastran 6.0:
RECURDYNRFI FLEXBODY=YES,FLEXONLY=YES,OUTGSTRS=YES,OUTGSTRN=YES
NX Nastran 7.0:
MBDEXPORT RECURDYN FLEXBODY=YES,FLEXONLY=YES,OUTGSTRS=YES,
OUTGSTRN=YES
具体含义可参见 NX Nastran 快速用户手册。

6.3.2 RFlex建模环境

RFlex 的建模环境提供了产生 RFI 文件、导入表示柔性体的 RFI 文件、仿真结果显示、


仿真结果输出等工具。具体内容如下:
 :生成 RFlex 输入文件,导入有限元程序产生的额外模态。
 :输出节点的残余矢量。
 :导入以*.rfi 文件表示的柔性体。
 :生成 Timoshenko 梁单元(基于多点样条线、轮廓线及截面库)。
 :变形、应变、应力的云图等显示控制。
 :输出供有限元计算使用的载荷数据。
 :输出模态振型作为边界条件,从有限元程序导入应力振型。
 :疲劳软件 FEMFAT 接口,输出疲劳计算所需要的数据。

1.RFlex Interface Selection:生成RFI文件的界面

单击 RFlex 工具包中的 RFlex Interface Selection,进入生成 RFI 文件的界面。目前,支


持的有限元软件包括 ANSYS、I-DEAS、NX Nastran 和 MSC.Nastran。下面以 ANSYS 为例,
介绍基于 CMS 生成 RFI 文件的步骤。
第6章 刚柔混合系统仿真 245

在 ANSYS 软件中基于 CMS 生成 RFI 文件包括必不可少的如下 4 步:


(1)在 ANSYS 中建立有限元模型。
(2)定义边界节点(Interface Nodes)和模态数(NMODES)。
(3)导入 RecurDyn 与 ANSYS 的接口文件 RecurDyn_V**.MAC(V**代表版本号),
进行 CMS 分析,生成相应的结果文件。
(4)在 RecurDyn 中生成 RFI 文件。
下面通过一个矩形板结构创建 RFI 文件的过程,详细介绍在 ANSYS 和 RecurDyn 中的
操作步骤。
(1)在 ANSYS 中建立有限元模型,包括创建材料属性、单元属性、划分网格等步骤。
具体参数为:长宽均为 1 的二维矩形,采用 shell63 单元,厚度为 0.05,材料为钢。
( 2 ) 定 义 边 界 节 点 : 如 图 6-4 依 次 进 行 Select>>Component Manager>>Create
Component 操作,通过 Component Manager 选取边界节点。

图 6-4 定义边界节点

(3)定义模态数 NMODES:如图 6-5 所示,选择 Parameters>>Scalar Parameters 命令,


在弹出的对话框中输入模态数,如 NMODES=10,单击 Accept 按钮确认。

图 6-5 定义标量点数
246 RecurDyn 多体系统优化仿真技术

(4)导入 RecurDyn.MAC 文件:如图 6-6 所示,选择 File>>Read Input from 命令,在


弹出的对话框中选择 RecurDyn_V**.mac 文件,其中*.mac 文件在目录“<RecurDyn 安装目
录>\Toolkit\Flexible input files\ANSYS”中,在此根据所使用的 ANSYS 版本找到相应的 mac
文件,单击 OK 按钮确认。此时在工作目录下将产生 4 个文件,分别为 genCMS.rst、
genCMS.cm、genCMS.mp 及 genCMS.emat(如果没有 genCMS.emat 文件,需通过 Ansys
输入命令 ematwrite,1)。

图 6-6 运行宏命令

(5)将生成的 4 个文件 genCMS.rst、genCMS.cm、genCMS.mp 及 genCMS.emat 导入


RecurDyn/Flex Interface 对话框中,如图 6-7 所示,生成 RFI 文件。

刚度矩阵
单位制
内部节点
模态数

是否需要力的单位

生成RFI文件的路径和名称

图 6-7 生成*.rfi 文件

在工作目录中,将生成 genCMS.rfi 文件。

提示:在 RecurDyn/Flex Interface 对话框中,Edit RecurDyn/Flex Input File 用于将附加


的位移矢量转化成模态振型加在原始的输入中。
第6章 刚柔混合系统仿真 247

2.Dynamic Correction Mode:动态修正模态

柔性体的变形近似为模态振型和模态坐标的线性组合,如何选择一组有效的模态对于
更高的精度要求非常重要。RecurDyn 建议动态修正模态作为一种特别的修正模态。这种模
态可以通过柔性体的误差测量生成。误差测量从 RecurDyn 的 Dynamic Correction Mode 中
萃取,用于在有限元软件中生成动态修正模态。这些模态结果可从有限元软件中以 Output
或 Punch 文件的形式得到,还可以将这些模态包括进 RecurDyn/RFlex Input File 中。在该
过程中,RecurDyn/RFlex Input File 必须包括柔性体的刚度矩阵信息。
误差来源于模态缩减。柔性体的有限元模型通常包含了非常多的自由度数,故而需要巨
大的求解计算量。为了将计算量降低到可以接受的程度,需要将模型进行缩减。模态综合
法是一种常用的模型缩减方法,该方法将结构的变形用一系列模态振型的线性叠加来表示。
通过乘以模态振型矩阵,将有限元模型的平衡方程投影到模态振型空间。由于方程被
缩减到了一个较小的尺度,有些力会失去原来的幅值。如果包含主变形的模态没有被选中,
那么变形量的计算结果就会不够精确。误差可以通过检查原始的有限元模型的平衡方程来
测量。
静态修正模态是指将所有界面自由度约束为零,然后每次只释放一个自由度,让其产
生单位位移,模型因此而产生的位移作为静态修正模态。
动力学修正模态是基于误差测定量中的残余矢量。残余矢量代表的是每个节点的力的
不平衡,那么它就可以用来生成一个模态振型:
K f d  R
其中: K f ——柔性体的总体刚度矩阵;
R ——节点残余矢量。
误差矢量可以写进 ANSYS 或 Nastran 的格式文件中,采用这个文件,可以得到有限
元程序的动态修正,进而加到 RecurDyn/RFlex 的输入文件中。RecurDyn 动态修正模态如
图 6-8 所示。

图 6-8 动态修正模态
248 RecurDyn 多体系统优化仿真技术

3.RFlex Body Import:导入RFlex柔性体

在 RFlex Body Import(导入 RFlex 柔性体)对话框中,选择事先创建的.rfi 文件,单击


Options 按钮,打开 Options 对话框。如图 6-9 所示,在 Modeling Option Toolbar 下拉列表
中选择不同的选项,可以获得不同的效果:选择 Point 时,该点作为参考坐标系;当选择
Body 或 Group 时,用导入的柔性体替换之前的 Body,同时 Body 所关联的连接关系(除接
触外)诸如 Joint 和 Force 将自动替换。
在导入柔性体 *.rfi 文件时要去除刚体模态, RecurDyn 软件会给每个部件赋予刚体
位移。

图 6-9 导入模态柔体

4.Beam Element:梁单元

在 RecurDyn 中可以直接建立梁单元。创建梁模型时,根据输入选项,可通过建立轮廓
线 Outline 或者样条线 Spline 来建立梁单元组。梁单元属性对话框如图 6-10 所示。

图 6-10 梁单元属性
第6章 刚柔混合系统仿真 249

 Beam Information:定义梁的属性。
 Library:选择梁的截面形状。
 Update Force Property 和 Update Body Property:此设置决定了是否将网格化的梁当
作一个组 group。选中这两个复选框之后,所有与之相关联的属性都会自动更新。
如果没有选中这两个复选框,即使截面数据改变了,旧的数据或者直接输入的数
据也不会改变。
 To solve a beam with large D.O.F:可处理包含很多自由度的梁模型,可以克服梁单
元的限制。RD/Solver 采用另一种方法分析梁单元,不适用于高刚度和低质量的问题。
 Beam Mesh:输入参数为 Mesh Segment,即两个点间梁单元(Beam Force)的个数。
创建梁单元的步骤为:
(1)在 RFlex 工具包中单击 按钮。
(2)在 RecurDyn 界面左下角的 Modeling Option 中选择创建方法( Multi Point
( Outline 折线)或 Multi Point(Spline 样条曲线))。
(3)根据具体的结构布局,从屏幕上选取多个点,或输入多个点的坐标,右击,从弹
出的快捷菜单中选择 Finish Operation 命令,打开 BeamGroup 对话框。
(4)在 Library 下拉列表中选择梁的截面形状。
(5)设置梁单元网格 Mesh Segment,并可通过 Preview 按钮预览;单击 OK 按钮确定。

5.RFlex Contour:结果显示云图控制

仿真分析之后,可以通过云图(Contour)来显示柔性体的计算结果。在 RFlex 工具包


中单击 RFlex Contour 按钮,打开 Contour Dialog 对话框,如图 6-11 所示。进行云图显示或
其他控制之前,必须在该对话框中选中 Enable Contour View 复选框以激活等高线云图。在
设置好云图显示控制之后,单击 OK 按钮确认。

图 6-11 云图显示控制
250 RecurDyn 多体系统优化仿真技术

(1)Contour Option:等高线设置
 Animation State:动画状态。
 Type:云图类型,可选择变形、应变和应力。
 Deformation:变形量,包括 TX、TY、TZ、TSUM、RX、RY、RZ、RSUM,
其中 T*表示移动变形分量,R*表示转动变形分量,TSUM 表示移动变形幅值,
RSUM 表示转动变形幅值。
 Strain:应变,包括 EX、EY、EZ、EXY、EYZ、EZX、E1、E2、E3、EINT
和 EMISES。
 Stress:应力,包括 SX、SY、SZ、SXY、SYZ、SZX、S1、S2、S3、SINT
和 SMISES。

提示:以 E*表示应变分量,以 S*表示应力分量,*X 为 x 方向,*Y 为 y 方向,*Z 为


z 方向,*XY 为 xy 剪切,*YZ 为 yz 剪切,*ZX 为 zx 剪切,*1 为第一主值,
*2 为第二主值,*3 为第三主值,*INT 为强度,*MISES 为 Von-mises 应力或
应变。

(2)Min/Max Option:最大最小设置
 Type:包括两种设置方式,选择 Display 选项时显示在仿真过程中的最大值和最小
值;选择 User Defined 选项时表明用户可以自定义云图的显示范围,其中左边是不
可修改的起始值,右边是可修改的值。
 Read:通过该按钮,控制读取并显示整个仿真过程的最大值/最小值。
 Show Min/Max:显示仿真过程中最大值/最小值的节点位置。
(3)Band Option:云图设置
 Legend Type:图例类型。
 Location:图例位置。
 Band Level:范围为 10~50,值越大,云图的色彩越丰富。
(4)Style Option:风格设置
 Color Option:色彩设置(例如:从蓝到红)。
 Colors:颜色(选择黑白或彩色)。
 Style:云图风格,Wire 用线表示,Smooth 表示颜色光滑过渡的,Stepped 表示阶
段变化。
 Mesh Lines:显示柔性体的网格线并修改网格线的颜色。
(5)View / Reference Node:参考节点
为柔性体选择测量的参考节点。
(6)Export:导出数据
Current Export Data Type:Node 表示选择柔性体上的节点,输出这些节点在所有时间
内的数据;Time 表示选择时间点,输出柔性体在这些时间点的所有节点的数据。输出选项
如图 6-12 所示。
第6章 刚柔混合系统仿真 251

图 6-12 输出云图结果

6.FEA Export:导出用于有限元分析的载荷

包括 RFlex 柔性体的模型仿真分析之后,可以输出与柔性体(或所选刚体)相关联的
载荷数据,包括所有施加在柔性体上的力,如惯性力、作用力/反作用力及约束反力等。导
出的载荷数据可用于多种用途,如应力分析、疲劳计算等。导出操作如图 6-13 所示。

图 6-13 导出有限元分析的载荷

 Export Format:有限元格式,包括 ANSYS、NX/NASTRAN、MSC/NASTRAN 和


DesignSpace 等格式。
 Body:此下拉列表用于选择 Body 体。如果选择了柔性体,就会考虑由于变形而产
生的应变能效应。
 Reference Marker:定义力的相对参考系。所有的载荷力都以此作为参考坐标系。
 Animation Frame:设置动画时间或帧数。
 View Loads List:查看载荷列表。
252 RecurDyn 多体系统优化仿真技术

7.Stress Shape Interface:应力振型界面

如果在结果显示界面中找不到应力或应变的内容,则需要通过该界面(如图 6-14 所示)


生成应力、应变振型。应力振型界面中的功能包括将模态振型以边界条件导出,从有限元
中导入应力振型,根据*.rfi 文件产生应力、应变振型等。

图 6-14 应力振型界面

RFlex 使用应力振型和模态坐标来还原应力时序数据。如图 6-15 所示,RFlex 提供两


种不同的方法计算应力振型矩阵:一种是采用位移模态振型矩阵生成应变振型矩阵,另一
种方法是从有限元软件中直接导入应力振型矩阵。

图 6-15 两种应力振型矩阵的计算方法

(1)应变振型矩阵(Strain Shape)
根据选择的模态振型可以生成应变振型,应变  的计算是通过应变振型(  s )与模态
坐标(a)的乘积叠加获得:
    is  ai
i
第6章 刚柔混合系统仿真 253

节点的应变计算公式为:
  x    x (a1  1)   x (ai  1) 
     (a  1)   y (ai  1)   a1 
 y  y 1
  z    z (a1  1)   z (ai  1)    
  
 xy   xy (a1  1)   xy (ai  1)   ai 
 yz   yz (a1  1)  
  yz (ai  1)    
   
 zx   zx (a1  1)   zx (ai  1) 
通过这些应变分量,可以计算出主应变及应变强度( 1   2 、  2   3 、  3  1 中的绝
对值最大的值)。冯·米塞斯应变( smises )的计算公式如下:
1
1 2 2
   1   2     2   3     3  1   
2 2
smises
2  
(2)关于应力振型矩阵 Stress Shapes
根据应变振型和弹性矩阵可以生成应力振型。应力值  是应力形状  与模态坐标(a)
乘积的叠加:
   i  ai
i

节点的应力计算公式为:
  x    x (a1  1)
 x (ai  1)  
     (a  1)  y (ai  1)   a1 

 y  y 1
 z (ai  1)    
  z    z (a1  1) 
  
 xy   xy (a1  1)
 xy (ai  1)   ai 

 yz   yz (a1  1)  
 yz (ai  1)    

   
 zx   zx (a1  1)
 zx (ai  1)  
根据这些应力分量可以计算得到主应力(  1 , 2 , 3 )及应力强度(  1   2 、 2   3
及  3   1 中绝对值最大的值)。冯·米塞斯应力(  mises )计算公式为:
1
1 2 2
 mises      1   2    2   3    3   1   
2 2

2 

8.Durability Interface:疲劳软件接口

该接口提供与疲劳软件 FEMFAT 的接口。需要导出*.max 文件、*.RPC 文件、Scratch


文件供疲劳软件 FEMFAT 使用。该接口只支持 RecurDyn 的 RFlex 模型。

6.4 RecurDyn/RFlex应用实例

本例题模拟伸展机构的收拢过程:两块板组成的系统中,板尺寸如图 6-16 所示(单位


为 mm),内板通过转动副(Rev1)与机架连接,外板与内板通过转动副(Rev2)连接。
254 RecurDyn 多体系统优化仿真技术

外板外侧装有一个小球(质量为 5kg),转动副 Rev2 上有 Motion 驱动而匀速转动,当内


板与外板间角度达到 180°时停止。要求在 4s 内实现:内板与机架间的夹角和外板与内板
的夹角分别达到 90°和 180°,转动副 Rev1 与转动副 Rev2 之间耦合副控制。整个过程不
计重力影响。

图 6-16 伸展机构

下面讲述创建*.rfi 文件的两种方法,以及将*.rfi 文件导入 RecurDyn 建立刚柔混合系统


仿真分析的过程。

6.4.1 基于Ansys创建*.rfi文件

(1)启动 Ansys,选择结构分析类型
(2)选择单元类型,设置实常数
选择 Preprocessor >> Element type > >Add/Edit/Delete 命令,在弹出的 Element Types 对
话框中单击 Add 按钮;打开 Library of Element Types 对话框,选择 Shell 63,单击 OK 按钮
确认;返回 Element Types 对话框,单击 Close 按钮退出。
选择 Preprocessor >> Real Constants>> Add/Edit/Delete 命令,在弹出的 Real Contants 对
话框中单击 Add 按钮,单击 OK 按钮;在弹出的 Real Constant Set Number1, for Shell 63 对
话框中,设置节点厚度为 0.01,然后单击 OK 按钮确认;返回 Real Contants 对话框,单击
Close 按钮。
(3)设置材料属性
选择 Preprocessor >> Material Props >>Structural>>Elastic>> Isotropic,设置 EX=70e9,
PRXY=0.3,选择 Density,设置 DENS=2700,单击 OK 确认。
(4)创建几何
选择 Preprocessor >> Modeling Create >> Area>>Rectangle >> By Dimensions 命令,在弹
出的 Create Rectangle by Dimensions 对话框中设置 X1=0,X2=1500,Y1=0,Y2=1000,单击
OK 按钮确认。
(5)划分网格
选择 Preprocessor >>Mesh>> Mesh Tool >> Size Controls >>Global:Set,设置 SIZE
Element edge Length=0.1,单击 OK 按钮确认;在 Mesh Tool 对话框中,选择 Mesh:Area
和 Shap:Quad,然后单击 Mesh 按钮,弹出 Mesh Area 对话框;选择矩形,单击 OK 按钮
确认,完成网格划分。
第6章 刚柔混合系统仿真 255

(6)定义边界节点
如图 6-17 所示,选择 Select>> Component Manager 命令,在弹出的 Component Manager
窗口中单击 Create New Component 按钮;在弹出的 Create Component 对话框中选中 Nodes
单选按钮,选中 Pick entities 复选框,输入 INTERFACE 作为名称,然后单击 OK 按钮;从
图形工作界面中选择两边的中点,并单击 Reselect Nodes 对话框中的 OK 按钮,在 Component
Manager 窗口中的 Components 列表框中出现名称为 INTERFACE 的 Component。

图 6-17 定义边界节点

(7)定义参数
选择 Parameters>>Scalar Parameters 命令,在弹出的对话框中设置 NMODES=10,单击
Accept 按钮,如图 6-18 所示。

图 6-18 定义标量参数
256 RecurDyn 多体系统优化仿真技术

(8)读入宏命令
选 择 File>>Read Input from 命 令 , 在 弹 出 的对话 框 中 ,从 RecurDyn 安 装 目 录
\Toolkit\Flexible input files\ANSYS 中选择 RecurDyn_V10p0.MAC,单击 OK 按钮,在 Ansys
当前工作目录下生成 4 个文件——genCMS.cm、genCMS.emat、genCMS.mp、genCMS.rst,
如图 6-19 所示。

图 6-19 运行宏命令

(9)在 RecurDyn 中创建*.rfi 文件


如图 6-20 所示,在 RecurDyn 界面中,单击 RFlex 工具包中的 RFlex Interface Selection
按钮;在弹出的 RecurDyn/Flex Interface 对话框中选中 ANSYS 单选按钮,单击 OK 按钮;
在弹出的 ANSYS Interface 对话框中,从 Input Files 栏中选择上一步创建的 4 个文件,设置
单位制为 kg、m、s,单击 OK 按钮确认。此时在 Ansys 当前工作目录下将生成 genCMS.rfi
文件。

图 6-20 生成*.rfi 文件
第6章 刚柔混合系统仿真 257

6.4.2 基于RFlex进行刚柔混合系统仿真

1.在RecurDyn中建立刚体模型

启动 RecurDyn,设置单位为 m、kg、s,进入 RecurDyn 界面。右击数据库窗口中的


Ground,在弹出的快捷菜单中选择 Edit 命令,进入大地编辑状态。建立代表机架的 Box,
其两定点为(-0.2,1.0,0)和(0,0,0)。完成之后,单击工具栏中的 Exit 按钮返回模型编辑
模式。选择 Body>>EllipSoid,设置(Point,Distance)输入模式,从图形工作窗口中捕捉点
(3.2,0.5,0),输入 0.2 创建小球几何,打开小球属性对话框,更改质量为 5kg。
选择 Tools>>Settings>>Gravity 命令,将重力加速度都设为 0。

2.导入代表柔性体的*.rfi文件

选择 RFlex>>RFlex Body Import 命令,在图形工作界面中选择(0,0,0),在 RFlex Body


Import 对话框中选择前面创建的 genCMS.rfi 文件,单击 OK 按钮确认。重复同样的步骤,
其中在工作平面中选择(1.5,0,0),完成柔性体导入。如图 6-21 所示,分别将两个柔性体
更名为内板和外板。

图 6-21 导入模态柔性体

3.建立刚柔混合模型

(1)除去刚体模态
在数据库窗口中分别选择内板和外板,右击,在弹出的快捷菜单中选择 Property 命令,
在弹出的对话框中选择 RFlex 选项卡,选择 7 阶以上模态,并确认,如图 6-22 所示。
258 RecurDyn 多体系统优化仿真技术

图 6-22 去除刚体模态

(2)定义约束铰
选择 Joint>>Revolute 命令,设置选项模式为(Body,Body,Point,Direction),先后选择
机架、内板、内板的左边中点(Rflex 模型的外边界点 inodemarker46)以及 y 方向,建立
第一个转动副 RevJoint1;重复同样操作,选择内板、外板、(1.5,0.5,0)、y 向,建立转动
副 RevJoint2。
选择 Joint>>Fixed 命令,选择外板、小球以及外板外边中点,创建固定副,如图 6-23
所示。

图 6-23 定义约束副

(3)定义驱动
选择内板和外板之间的转动副 RevJoint2,右击,在弹出的快捷菜单中选择 Property 命
令,在弹出的对话框的 Motion 栏中选中 Include Motion 复选框,单击 Motion 按钮,在弹出
的 Motion 对话框中选择 Displacement,单击 EL 按钮,创建并选择表达式 IF(TIME/4*pi-pi:
TIME/4*pi,pi,pi),如图 6-24 所示。
第6章 刚柔混合系统仿真 259

图 6-24 定义驱动

(4)定义耦合副
选择 Joint>>Coupler>>(Joint,Joint),分别选择 RevJoint2 和 RevJoint1,从数据库窗
口中选择 Coupler1,单击鼠标右键,在弹出的快捷菜单中选择 Property 命令,在弹出的
如图 6-25 所示对话框中设置 Driver=RevJoint2,Scale=1;Coupled=RevJoint1,Scale=2,然
后单击 OK 按钮确认。

图 6-25 定义耦合副

4.运行仿真,并查看结果

选择 Analysis>>Dynamic/Kinematic Analysis 命令,在弹出的对话框中设置 End Time=5,


Step=100,单击 Simulate 按钮,运行仿真。
完 成 仿 真 之 后 , 选 择 RFlex>>Stress Shape Interface , 在 弹 出 的 对 话 框 中 设 置
Function=Generate Shape,选择 genCMS.rfi 文件,选中 Strain Shape、Stress Shape 复选框,
单击 Generate 按钮,如图 6-26 所示。
260 RecurDyn 多体系统优化仿真技术

图 6-26 生成应力振型

选择 RFlex>>RFlex Contour,在弹出的 Contour Dialog 对话框中选中 Enable Contour


View 复选框,选择 Stress\Von Mises,单击 OK 按钮。
选择 Post>>Plot 命令进入后处理,将屏幕划分为 4 个窗口,依次 Load Animation,选
择驱动扭矩和耦合扭矩,选择 Joint1 和 Joint2 的相对位置曲线,如图 6-27 所示。

图 6-27 结果后处理

提示:通常可采用 RBE 或 MPC 方法,在建立柔性体的外部连接时选取 RBE 的主节


点,能够有效地防止应力集中现象。

6.5 RecurDyn/FFlex功能

基于 RFlex 可以建立刚柔混合系统模型,但 RFlex 存在如下一些局限性。


 无法建立柔性体与其他部件的接触,因为接触表现为一个虚拟“附属点”,RFlex
无法利用满足精度需要的静态修正模态。
 修改柔性体非常困难,需要采用外部的 FEA 来改变网格、重新进行模态计算、重
第6章 刚柔混合系统仿真 261

新导入等一系列过程。
 模态柔性体 RFlex 只能局限在小变形的范围内,而且只能建立线性材料模型。
采用 MFBD 技术的 FFlex 可以直接导入有限元模型,如 Nastran 的*.bdf 输入文档、Ansys
的*.cbd 文档,直接在 RecurDyn 界面中对网格节点施加边界条件,对网格进行操作并进行
相应仿真。
被称为完全柔性体的 FFlex 具有 RFlex 无法比拟的优势:首先可以精确地表现出由于
接触力而产生的局部变形;模型的修改仅仅需要更新网格,在 RecurDyn 中也可以修改柔性
体模型,建模过程更加方便;另外,可以考虑大变形、非线性,柔性体呈现为非线性变形
的累积,而在每个单元内部维持线性行为。
如图 6-28 所示,RecurDyn 的 MFBD 技术是将多体和有限元形成 MFBD 系统方程,在
一个求解器中进行计算。

图 6-28 MFBD 系统方程

FFlex 对于网格存在一定的限制,RecurDyn V7R4 之前的版本所支持的最大节点数为


50000。在网格多而复杂及接触和非线性变形不重要的模拟中推荐使用 RFlex。

6.5.1 FFlex单元

FFlex 支持大多数通用的结构单元和一些特殊的单元(如刚性单元、质量单元);通用
单元的结构特性采用单元属性和节点表示,单元通过节点按次序连接,每类单元具有各自
的方向,这些连接属性在导入时自动定义。
 Beam2 单元:一个常用的 Beam 单元,具有拉伸、压缩、扭转及弯曲性能;该单元
每一节点具有 6 个自由度;通过 2 个节点、截面积和 2 个面积惯性矩进行描述。
 Shell3 单元:一个三角形 Shell 单元,具有弯曲和膜性能,单元每一节点处具有 6
个自由度;通过 3 个节点和厚度描述这种单元。
262 RecurDyn 多体系统优化仿真技术

Shell4 单元:一个四边形 Shell 单元,具有弯曲和膜性能,单元每一节点处具有 6


个自由度;该单元通过 4 个节点和厚度描述。
 Shell9 单元:一个四边形 Shell 单元,具有弯曲和膜性能,单元每一节点处具有 6
个自由度;该单元通过 4 个角点、4 个边点、一个面点和厚度进行描述。
 Solid4 单元:每一节点有 3 个平动自由度,通过 4 个几何角点定义。
 Solid6 单元:每一节点有 3 个平动自由度,通过 6 个几何角点定义。
 Solid8 单元:每一节点有 3 个平动自由度,通过 8 个几何角点定义。
 Solid10 单元:每一节点有 3 个平动自由度,通过 4 个角点和 6 个边点定义。
 Solid26 单元:每一节点有 3 个平动自由度,通过 8 个角点、12 个边点及 6 个面点
定义。
 Rigid element:刚性单元,用于定义诸如固定连接的约束方程,主、从节点确定单
元的约束条件,可以想象为固定连接关联主节点和所有从节点,所有从节点自由
度刚性地与主节点连接,从节点的数量没有限制;在 FFlex 中,刚性单元亦称为
FDR 单元。
 Mass element:质量单元,表示集中质量。在其他单元类型中每一节点采用集中质
量,所以忽略节点的惯量。然而,如果使用质量单元,可以考虑在单元属性中定
义的所有质量惯性矩效应。采用此单元,可有效地考虑假定为刚体的异常刚硬体。
RecurDyn/FFlex 单元如图 6-29 所示,与有限元软件单元之间存在一定的对应关系,如
图 6.30 所示。
 在 2D 单元中,6 节点的抛物线三角形将转化为线性单元。
 在 3D 单元中,6 节点的抛物线五面体单元将转化为线性单元。
 ANSYS 中的约束方程转化成刚性单元,基节点处理为主节点。
 金字塔锥形单元分割成 2 个四面体单元。

图 6-29 FFlex 单元
第6章 刚柔混合系统仿真 263

图 6-29 FFlex 单元(续)

图 6-30 FFlex 单元和有限元单元间的对应关系

导入 RecurDyn 中的网格单元,必须满足下列规则,否则将出错。
 取向定则:如图 6-31 所示,Beam 单元,X 轴与 V 向不能平行。
 体积定则:实体单元体积必须大于 0。有时,不合理的节点次序形成不正确的体积
值,极小的几何也导致几乎为 0 的体积值,这时 RD 将报告 volume violation 错误
264 RecurDyn 多体系统优化仿真技术

信息。

图 6-31 取向定则

 内角法则:极端的内角将导致错误的结果,Shell3 和 Shell4 单元受该法则的制约,


如图 6-32 所示,RecurDyn/FFlex 通过检查内角幅值给出判断决策。

图 6-32 内角法则

 长宽比法则:长宽比是指最长单元边和最短单元边的比值,极端的长宽比将导致
错误的结果,如图 6-33 所示,Solid4、Solid6 和 Solid8 受该法则制约。

图 6-33 长宽比法则

 材料属性法则:杨氏模量 E、剪切模量 G 以及波松比之间必须遵循材料属性法则。


G  G  E 
 0.01 G   
G  2(1  v) 

6.5.2 FFlex的材料

RecurDyn V7R4 之前的版本,FFlex 支持的材料类型如图 6-34 所示,主要包括线性材


第6章 刚柔混合系统仿真 265

料(各项同性、各项异性)和非线性材料。各项同性材料适用于所有单元,而各向异性材料
适用于模拟纸张或薄膜类的 Shell4 单元,非线性材料用于模拟橡胶类的大应变可恢复材料。

图 6-34 FFlex 支持的材料类型

1.线性各项同性材料

线性各项同性材料的应力-应变关系为:
 1 v 
E 0
E
 
 v
E 1   0
1
E E 
 
0 1
0
 G 
其中,E 为杨氏模量;G 为剪切模量;v 为泊松比。

2.线性各项异性材料

线性各项导性材料的应力-应变关系如图 6-35 所示。

图 6-35 杨氏模量
266 RecurDyn 多体系统优化仿真技术

 杨氏模量 1(E1):节点 1 和 2 连线方向的杨氏模量。


 杨氏模量 2(E2):节点 1 和 2 连线方向的杨氏模量。
 剪切模量(G):面内的剪切模量;
 泊松比(γ):保证 v1 E2  v2 E1 。
 阻尼比(ζ):单元的结构阻尼比。
应力-应变关系遵循:
1 v1 
E 0
E1
 1 
 v 1 
E 1  0
 E2 E2 
 1
0 0 
 G

3.超弹性材料

RecurDyn 中的超弹性材料在完全不可压缩性假设的条件下从内能 W 推导而来,所以


波松比为 0.5。
W   V 0 U  pˆ  J  1  dV 0
其中,U 为材料的应变能;J 为体积变化,J=det(F),其中 F 为变形梯度; p̂ 为拉
格朗日乘子。
B 的特征值(主伸长率)是 12 、 22 、 32 ,而 B 是左柯西-格林变形张量,B 的不变量
是 I1、I2、I3。其中:
I1  12  22  32
I 2  12 22  22 32  32 12
I 3  12 22 32  J 2
RecurDyn 的超弹性模型包括:Arrdua Boyce、Neo-Hooke 以及 Ogden。
(1)Arrdua Boyce 模型
RecurDyn 的 Arrdua Boyce 材料如图 6-36 所示。
 MU(μ)是材料的初始剪切模量(=0.27355)。
 LAMBDAM( M )是锁死应变, M  N , M =4.74342。

图 6-36 Arrdua Boyce 模型


第6章 刚柔混合系统仿真 267

应变能为:
1
  
 2  I1  3  20 N I1  9  1050 N 2 I1  27
1 2 1 3

U  
 1
 7000 N 3 1  
I 4  81 
1
673750 N 4
I15  243 

(2)Neo Hooke 模型
在图 6-37 中,C10 是模型参数,C10=μ/2(其中 μ 是材料的初始剪切模量),橡胶材
料的 C10=0.136775。

图 6-37 Neo Hooke 模型

(3)Ogden 模型
在图 6-38 中,MU(μ)是材料的初始剪切模量。

图 6-38 Ogden 模型

Alpha(α)是材料常数。
n
k 1
U  1  21  31  3
 

k 1 k

应变能: 1  0.63 , 2  0.0012 , 3  0.01 。


材料常数: 1  1.3 ,  2  5.0 ,  3  2.0 。
最多可以支持的(μ,α)为 6 对。

6.5.3 FFlex与有限元属性相应关系

RecurDyn/FFlex 单元属性与 Nastran 和 Ansys 之间存在对应的关系,如图 6-39 所示。


268 RecurDyn 多体系统优化仿真技术

图 6-39 FFlex 单元属性和有限元之间的对应关系

RecurDyn/FFlex 边界条件与 Nastran 和 Ansys 之间存在对应的关系,如图 6-40 所示。

图 6-40 FFlex 边界条件和有限元之间的对应关系

在 SET 数据转化过程中,将产生包括一些或局部实体的相应的 Patch Sets。

6.5.4 RecurDyn/FFlex建模环境

在 FFlex 工具包中,提供了 FFlex 建模所需的工具。


 :导入柔性体。
 :建立柔性体面之间的接触。
 :建立柔性体面和刚性面的接触。
 :建立球与柔性体面的接触。
 :建立柔性线和柔性面的接触。
 :建立柔性线的接触。
 :建立柔性线和刚性面的接触。
 :建立球和柔性线的接触。
 :云图显示控制。
 :施加集中载荷。
 :施加分布载荷。
 :输出节点位置。
FFlex 柔性体网格导入 RecurDyn 之后,将在 RecurDyn 数据库窗口中的 Body 项显示该
柔性体,右击,在弹出的快捷菜单中选择 Edit 命令,进入 FFlex 编辑模式。如图 6-41 所示,
其编辑环境主要由以下几部分组成。
第6章 刚柔混合系统仿真 269

 工具栏:常用工具及菜单命令的快捷方式。
 有限元编辑工具区,即 FE Entity 区,集中了编辑 FFlex 的各项命令。
 工作窗口:FFlex 柔性体图形窗口。
 数据库窗口:FFlex 柔性体的材料、属性、单元以及各种集合。
 选项模式区:选择模式的控制。
 输入区:用于定义输入方式和输入数据。

工具栏

有限元编辑工具

工作窗口
选项模式区

数据库窗

输入区

图 6-41 FFlex 编辑模式

6.6 基于RecurDyn/FFlex建模

通过 RecurDyn 的 Mesh 功能可以直接在 RecurDyn 中建立有限元柔性体。此外也可通


过与其他有限元前后处理器一起共同完成有限元柔体的建立。
基于 RecurDyn/FFlex 进行建模的流程如图 6-42 所示。其中主要包括两大步:先通过
有限元前后处理器划分出柔性体的网格并生成 Nastran 的 *.dat(或 bdf)格式文件,或
Ansys 的*.cbd(或*.inp)格式文件;将网格文件通过 FFlex 工具包中的 Import 按钮导入
RecurDyn(可在 RecurDyn 中进行一定的修改处理),进而建立其柔性体与其他部件之间
的连接关系。
在 RecurDyn 中完成刚柔混合模型的仿真分析后,可通过 FFlex 的云图显示控制或后处
理显示柔性体或其他部件的运动学或动力学行为。
270 RecurDyn 多体系统优化仿真技术

Nastran *.dat
Ansys
*.cbd
import

RecurDyn

MFBD模型

图 6-42 FFlex 建模流程

导入 RecurDyn 的 FFlex 网格文件必须包含节点、单元及其连接的信息,如果不存在属


性和材料,程序将自动创建默认属性和材料。
在 ANSYS 中,采用 CDWRITE 命令输出的文件,必须保持该命令的默认格式,FFlex
仅仅采用 BLOCKED 格式。在 Ansys 中建立好单元之后,选择 Preprocessor>>Archive
Model>>Write,在弹出对话框的 Date to Archive 列表框中选择 DB,选择储存目录及文件名,
即可生成*.cdb 文件,如图 6-43 所示。

图 6-43 Ansys 输出*.cbd 格式

RecurDyn 从 Nastran 输入文件中萃取需要的信息,包括节点、单元的相关信息。只需


通过支持 Nastran 求解器的有限元前后处理器划分网格,保存为 Nastran 格式的输入文件
*.dat 即可。
导入 FFlex 柔性体的操作步骤为:
(1)准备柔性体网格文件(*.dat 或*.cbd)。
(2)在 RecurDyn/FFlex 工具包中单击 Import 按钮,打开 Import 对话框,从工作平面
中选取作为 FFlex 参考系的位置,选择柔性体文件(注意单位制等设置),单击 OK 按钮
确认,如图 6-44 所示。
FFlex 柔性体的单位取决于 Ground 的单位,即受制于在导入 FFlex 柔性体之前的单位
制,尤其是密度单位,在设置密度数值时必须格外小心。
第6章 刚柔混合系统仿真 271

输入文件

参考系

允许没有材料和属性数据

用于转换杨氏模量

图 6-44 FFlex 导入对话框

在导入 FFlex 文件之后,从数据库窗口中选择柔性体,右击,在弹出的快捷菜单中选


择 Property 命令,在弹出的柔性体属性对话框中可以看出有限元信息等属性,如图 6-45 所
示。

柔性体
有限元信息

图 6-45 FFlex 单元信息

6.6.1 FFlex的选择模式

在 FFlex 的编辑模式下,存在多种选择模式,可以单选,也可以多选。
 在单选模式下,需要用鼠标逐个从屏幕上捕捉所需对象。
 采用多选方式时,需要在工具栏中单击 按钮(用于框选)、 按钮(用于圈选)
或 按钮(用于多边形选择)。
在弹出的 Select Option 对话框(如图 6-46 所示)中,主要选项介绍如下。
 可以通过 Add 或 Remove 决定是增加选择或从已选中去除选择。按住 Ctrl 键的同
时可以连续进行多个对象的选择。
272 RecurDyn 多体系统优化仿真技术

 在选择选项中,可以根据选择的对象分为单元、节点、集合、组件及边界。
 Set Mask 按钮用于设置隐饰功能。在隐饰状态下,仅仅可以看到外部的网格线。
 单击 Set Mask Rev.按钮,既可以看到内部网格线,也可以看到外部网格线。
 单击 On/Off 按钮,可以看到全部节点柔性体。
 单击 Cancel Masking 按钮,可以取消隐饰功能。

图 6-46 FFlex 的选择模式

6.6.2 FFlex的编辑功能

FFlex 的编辑功能适用于创建和修正柔性体信息、关联柔性体和其他部件。选择有限元
柔性体,单击鼠标右键,在弹出的快捷菜单中选择 Edit 命令,即可进入柔性体的编辑模式。
在完成 FFlex 柔性体编辑之后,需要单击工具栏中的 按钮,以退出 FFlex 柔性体编辑模式。

1.创建和修改材料及属性数据

材料的编辑需要在柔性体编辑模式下,单击 FE Eentity 区中的 按钮,在弹出的 Material


对话框中单击 Data 栏中的 按钮,打开材料参数定义对话框,如图 6-47 所示。

图 6-47 FFlex 材料属性框

属性的编辑需要单击 按钮,打开 Property 对话框。Solid 单元的属性只有材料项可以


修改,而 Shell 单元可以修改厚度等属性,Beam 单元可以修改截面属性。
当然也可以如图 6-48 所示,从柔性体编辑模式的数据库窗口中的 Materials 和 Properties
项下选择需要修改的材料或属性,右击,在弹出的快捷菜单中选择 Property 命令,打开材
料或属性编辑对话框。
第6章 刚柔混合系统仿真 273

2.创建节点

如图 6-49 所示,在柔性体编辑模式的 FE entity 中,单击 进入 Node 界面,可以通过


位置和节点编号创建节点,在 RecurDyn 中创建 FDR 单元(有限元的 RBE 或 MPC)主节
点时此功能非常有用。

节点编号

填写坐标位置

图 6-48 FFlex 材料和属性 图 6-49 建立节点

3.创建集合和组命令

FFlex 的集合主要包括节点集、单元集和片集(patch)。
(1)节点集
节点集通常用于定义 FDR 的从节点或对柔性体施加载荷。创建步骤为:
如图 6-50 所示,从 FE Entity 中单击 按钮,打开 Node Set 对话框,从 Color 下拉列
表中选择节点集显示的颜色(通常区分于单元的颜色),单击 Add/Remove 按钮,进入选
取模式(需要设置为选取节点,如果多选要设为 Add,如果选错可通过 Remove 删除);
从屏幕上选取所需节点之后,在图形工作窗口中单击鼠标右键,在弹出的快捷菜单中选择
Finish Operation 命令(或单击 Navigation…对话框中的“关闭”按钮);返回 Node Set 对
话框,单击 OK 按钮确认,完成节点集的创建。

图 6-50 建立节点集

(2)单元集
单元集的创建步骤与节点集相同,只是在选择时设定选择对象为单元。
274 RecurDyn 多体系统优化仿真技术

(3)片集
片集常用于定义接触面或施加分布载荷,其创建步骤与节点集类似,如图 6-51 所示。
在选取单元的面之后,如果片面的法线方向不正确,可以通过 Patch Set 对话框中的调整按
钮调整法线方向。

自动调整法线方向

更换所有法线为反方向

更换部分法线为反方向

图 6-51 建立片集

4.改变单元和节点的ID号

通过 FE Entity 中的 按钮,可分别改变节点和单元编号,或增加、删除。

5.创建FDR单元

FRD 单元,即 Force Distributing Rigid element,扮演


着从主节点到从节点传递力或力矩的作用。定义 FDR 单
元之前,必须存在主节点和从节点(集)。其创建步骤为:
在 FE Entity 区中单击 按钮,在弹出的如图 6-52 所
示 FDR Creation 对话框中,通过 N 按钮分别从工作窗口
选择主节点 Master Node 和从节点集 Node Set,单击 OK
按钮确认。 图 6-52 建立 FDR 单元

注意:在选择已创建的节点(集)时,将鼠标移至屏幕上节点附近,高亮显示时即可
捕捉。

6.定义边界条件

在 FE Entity 区中单击 按钮,弹出 B.C.对话框,如图 6-53 所示;从 Boundary Condition


Type 下拉列表中选择边界类型(包括固定、简单支撑、销连接、滑移及滚动),并设置各
个自由度状况,通过单击 Add/Remove 按钮选择边界所对应的节点;完成后右击,在弹出
的快捷菜单中选择 Finish Operation 命令(或单击 Navigation…对话框中的“关闭”按钮),
完成边界条件的定义。
提示:可以选择定义边界的参考坐标系。
第6章 刚柔混合系统仿真 275

图 6-53 定义边界条件

7.定义输出节点

在 FE Entity 区中单击 按钮,在弹出的 Output 对话框中单击 Add/Remove 按钮,进入


选取模式(需要设置为选取节点,如果多选要设为 Add,如果选错可通过 Remove 删除),
从屏幕上选取所需节点之后,在工作窗口中单击鼠标右键,在弹出的快捷菜单中选择 Finish
Operation 命令(或单击 Navigation…对话框中的“关闭”按钮);返回 Output 对话框,单
击 OK 按钮确认,完成输出节点的定义。此时在 FFlex 编辑模式数据库窗口中的 Output 项
下将显示所创建的输出。

8.控制显示

在 FE Entity 区中单击 按钮,打开 Components & Sets 对话框(如图 6-54 所示),在


其中可通过复选框来控制图形窗口 FFlex 柔性体的显示状态。通常在编辑完成之后进入模
型编辑模式之前,取消选中 Show Node ID in Assembly Mode(显示节点编号)复选框。

图 6-54 FFlex 模型信息显示


276 RecurDyn 多体系统优化仿真技术

6.6.3 FFlex的接触

在 RecurDyn 中,涉及柔性体的接触主要包括如下几种类型。
 :Fsurface-Fsurface,柔性面之间的接触。
 :Fsurface-Surface,柔性面和刚性面之间的接触。
 :Sphere-Fsurface,球和柔性面之间的接触。
 :Fcurve-Fsurface,柔性线和柔性面之间的接触。
 :Fcurve-Fcurve,柔性线之间的接触。
 :Fcurve-Surface,柔性线和刚性面之间的接触。
 :Sphere-Fcurve,球和柔性线之间的接触。
在 RecurDyn/FFlex 中,参与计算的接触几何形状如图 6-55 所示。主要包括两类:
(1)面
近似为多个四边形片或三角形片,其具体形状取决于导入的柔性体单元。
(2)线
由梁单元形成,如缆索、线等圆截面的一维单元,线中两节点之间的接触点采用线性
插值获得。

图 6-55 FFlex 接触几何

在定义关于柔性体的接触之前,必须先定义好 Patch 集(面或线)。


在定义接触之后,可从编辑模式的数据库窗口中选择接触,右击,在弹出的快捷菜
单中选择 property 命令,打开接触属性及参数对话框(如图 6-56 所示),进行接触定义的
修改。
接触力的计算公式为:
 m2
f n  k m1  c   m3

其中,k 为接触刚度;c 为阻尼系数;m1 为刚度指数,m2 为阻尼指数,m1 和 m2 产生非
线性接触力;m3 为缺口指数,产生缺口阻尼效应,当穿深很小时,由于负阻尼力的作用接
触力可能为负,这不符合实际。该现象可以通过设置缺口指数大于 1 进行克服。
第6章 刚柔混合系统仿真 277

在计算接触力时,通过缓冲半径因子决定数值积分步长是否缩减。

静态门槛速度
动态门槛速度
刚度系数k 静态摩擦系数

阻尼系数c 最大摩擦力

摩擦系数
刚度指数m1 摩擦系数
阻尼指数m2
缺口指数m3
相对速度
缓冲半径因子:如果接近于缓冲半
径因子乘以作用物体半径,通过最
大步长因子缩减数值积分步长

图 6-56 柔性面接触设置

摩擦力的计算公式为:
f f   (v ) f n


f f  sign( f f )  min f f , f max 
其中,摩擦系数 μ 与相对速度相关,取决于静态门槛速度、动态门槛速度、静摩擦系
数的数值,根据半正矢阶跃函数 havsin 确定相对速度对应的摩擦系数。
如果选中 Maximum Friction Force(最大摩擦力)复选框,并设定其值,那么仿真过程
中摩擦力将限制在该值范围内。
当然,除了标准接触力计算类型外,用户也可通过用户子程序计算接触力。
柔性接触力显示如图 6-57 所示,接触力显示具体参考系下柔性体的合成接触力,而刚
体显示在刚体质心位置。

图 6-57 柔性接触力显示

在柔性面的接触中,通过单击接触属性对话框中的 Contact Surface 按钮,可以打开


Flexible Surface Patch 对话框(如图 6-58 所示),进行柔性接触面的设置。
278 RecurDyn 多体系统优化仿真技术

 Max Penetration:最大穿深,如果穿透深度大于该值,将不产生接触力。
 No. of Divided Cubic Cell:分割接触边界框的立方单元数量,程序自动计算,用户
可以根据需要修改。
 Update Position of Contact Nodes:控制在仿真过程中是否修正属于 Patch Set 的节点
位置。如果是小变形问题,取消选中该复选框,求解速度可得到提高。
 Thickness Definition:在原始或具体类型中定义 Patch 的厚度。原始类型采用 Shell
单元厚度,指定类型采用用户自定义厚度。

图 6-58 柔性接触面设置

在含柔性线的接触中,通过单击接触属性对话框中的 Contact Curve 按钮,可以打开


Flexible Curve 对话框,如图 6-59 所示。其中各项含义介绍如下。

图 6-59 柔性接触线

 Cross Section:截面。
 Radius:半径,接触几何中圆柱或球的半径。
 No. of Divided Cubic Cell:分割接触边界框的立方单元数量,程序自动计算,用户
第6章 刚柔混合系统仿真 279

可以根据需要修改。
 Update Position of Contact Nodes:控制在仿真过程中是否修正属于 Ppatch Set 的节
点位置。如果是小变形问题,取消选中该复选框,求解速度可得到提高。

1.Fsurface-Fsurface接触

在两个柔性体接触的定义过程中,同一个 Fsurface 必须隶属于同一个柔性体,两个


Fsurface 必须是不同的 Patch 集,Base(基面)、Action(作用面)根据有限元模型呈现为
多个三角形或四边形 Patch。在计算时,程序先通过检查确定作用面是否与基面接触;然后
再确定作用面的线是否与基面的线接触;最后,确定基面的节点是否与作用面接触。柔性
面-柔性面接触的几何离散如图 6-60 所示。

图 6-60 柔性面-柔性面接触

在模型编辑模式下,单击 FFlex 工具包中的 按钮,设置输入选项,并根据输入方式


在工作窗口中先后选取事先定义好的 Patch Set,根据选择的先后顺序,程序将定义基面和
作用面。

2.Fsurface-Surface接触

柔性面-刚性面的接触如图 6-61 所示。在柔性体和刚体之间产生接触力,柔性体为作


用面而刚体为基面;基面为多个三角形片;作用面依据有限元呈现为多个三角形或四边形
的片。在计算时,程序先检查作用面的节点是否与基面接触,然后检查作用面上的线是否
与基面的线接触,最后检查基面的节点是否与作用面接触。
在模型编辑模式下,单击 FFlex 工具包中的 按钮,设置输入选项,并根据输入方式
在工作窗口中先后选取刚体面和柔性体面。
刚体面中各项设置同刚体接触的各项含义相同,此处不再赘述。
 Smooth Contact:光滑接触,用于控制弯曲面。如果选中该复选框,则接触连续
光滑。
 Use Node Only:在检测接触点时仅仅检查作用面的节点。
280 RecurDyn 多体系统优化仿真技术

错误!

图 6-61 柔性面-刚性面接触

3.Sphere-Fsurface接触

在球和柔性之间产生接触力,柔性体是基面,而球是作用面,如图 6-62 所示。

图 6-62 球-柔性面接触
第6章 刚柔混合系统仿真 281

在模型编辑模式下,单击 FFlex 工具包中的 按钮,设置输入选项,并根据输入方式


在工作窗口中先后选取柔性体面和刚体球。
柔性体中各项设置与 Fsurface-Fsurface 中相应部分基本相同,在此不再赘述。
Synchronize with Geometry:控制球半径是否与几何体同步。选中此复选框,根据几何
体自动计算球的半径;如果取消选中此复选框,可通过输入参数控制参与接触计算的球
半径。

4.Fcurve-Fsurface接触

柔性线-柔性面接触如图 6-63 所示,产生两个柔性体之间的接触力,基面依据有限元


呈现为多个三角形或四边形的片,作用面的几何是线中的多个圆柱、球以及 Beam 单元的
节点。在检测接触状态时,先检测圆柱的线是否与基面的线接触,然后检查球是否与基面
接触,最后检查基面节点是否与圆柱接触。

图 6-63 柔性线-柔性面接触

在模型编辑模式下,单击 FFlex 工具包中的 按钮,设置输入选项,并根据输入方式


在工作窗口中先后选取接触对象。

5.Fcurve-Fcurve接触

柔性线-柔性线接触如图 6-64 所示,在两个柔性体之间产生接触力。基面和作用面都


为柔性体,接触时呈现为线中的圆柱、球及 Beam 单元的节点。在计算接触时,先检测
Action Patch Set 的圆柱线是否与 Base patch set 的圆柱线是否接触,然后检测 Action Patch
Set 圆柱是否和 Base Patch Set 圆柱接触,最后检测 Base Patch Set 球是否与 Action Patch Set
圆柱接触。

图 6-64 柔性线-柔性线接触
282 RecurDyn 多体系统优化仿真技术

在模型编辑模式下,单击 FFlex 工具包中的 按钮,设置输入选项,在工作窗口中先


后选取事先定义好的柔性体 Patch 集,完成接触定义。

6.Fcurve-Surface接触

柔性线-刚性面接触如图 6-65 所示,产生柔性体和刚体之间的接触力。柔性体是作用


面,而刚体是基面。基面近似为多个三角形 Patches;作用面近似为线中的多个圆柱和球以
及 Beam 单元的节点。

图 6-65 柔性线-刚性面接触

7.Sphere-Fcurve接触

球-柔性线接触如图 6-66 所示,产生柔性体和刚体之间的接触力。柔性体是基面,而


刚体是作用面。作用面为球面,基面近似为线中的圆柱和球以及 Beam 单元的节点。

图 6-66 球-柔性线接触

6.6.4 FFlex的载荷

FFlex 中的 Flex Loads 如图 6-67、图 6-68 所示,主要包括两类。


 集中载荷:施加在节点集上(Node Set),包括柔性体的节点力和矩定义;在定义
柔性体集中载荷之前必须在柔性体编辑模式下先定义节点集;可在节点集的所
有节点上施加相同的节点载荷,也可从节点集中的参考节点向每一节点施加节点
载荷。
 分布载荷:施加在片集上(Patch Set),在定义柔性体分布载荷之前必须先定义
片集。
第6章 刚柔混合系统仿真 283

分布载荷

集中载荷

图 6-67 FFlex 载荷类型

定义集中载荷的步骤如下:
在 FFlex 工具包中单击 按钮,在弹出的如图 6-68 所示 Flex Concentrated Loads 对话
框中选择载荷类型,选择载荷表达式,通过 N 按钮选择受力的节点集。
 Uniform(均一类型):以表达式的方法定义。
 Relative(相对类型):选择参考节点,以表达式定义节点力。

在参考 Marker 点的坐标系中


指定力或矩

图 6-68 FFlex 载荷

定义分布载荷的步骤如下:
在 FFlex 工具包中单击 按钮,在弹出的 Flex Pressure Loads 对话框中通过 P 按钮选
择受力的片集,选择载荷表达式决定分布载荷大小,通过预览载荷方向及对话框中的 Up
和 Down 设置合适的分布载荷,如图 6-68 所示。

6.6.5 FFlex输出节点位置

FFlex 模型仿真完成之后,可导出在具体坐标系下所有节点的变形位置。输出文件格式
是 Nastran 格式。
输出节点位置的步骤为:
(1)正确地完成包含 FFlex 柔性体的模型动力学仿真。
(2)从 FFlex 工具包中单击 按钮,在弹出的 Export Node Position 对话框中选择输出
文件格式(Nastran),选择要输出节点位置的柔性体,选择参考系,选择输出的时间点,
选择输出的文件路径,最后单击 Export 按钮输出,如图 6-69 所示。
284 RecurDyn 多体系统优化仿真技术

图 6-69 FFlex 节点位置输出

6.6.6 FFlex的仿真结果及显示

FFlex 的仿真结果可以云图的形式显示,也可以通过 Plot 绘图研究数据结果。通过云


图可以显示变形、应变、应力,可通过颜色图例显示颜色的数值范围,可以动画表达多种
输出。只有在柔性体的编辑模式中预先定义的输出集合,才可从后处理获得相应输出集的
结果。
在 RecurDyn 界面中选择 Tools>>Model Setting 命令,在弹出的 Model Settings 对话框
中提供了针对 FFlex 的设置选项,包括计算时内存和速度选项,以及应力、应变数据恢复
选项等,如图 6-70 所示。

图 6-70 应力恢复设置对话框

在仿真分析之后每一个 FFlex 体都将产生 3 个动画文件,所有的后处理都基于这 3 个


第6章 刚柔混合系统仿真 285

文件。对于 FFlex 的动画,这些文件应该与其他模型、输出文件保存在同一个工作文件夹


中。动画文件的名称由 FFlex 模型的名称和下列扩展名组成:
 *.rfa:变形动画数据。
 *.erd:应变恢复数据。
 *.srd:应力恢复数据。
在仿真成功结束后,从 FFlex 工具包中单击 按钮,在弹出的 FFlex Contour Dialog 对
话框中可以云图等高线的形式显示应力、应变及变形结果。其基本操作及含义与 RFlex 的
Contour 对话框相同(除 Export 功能外),在此不再赘述。

6.7 FFlex的力连接

如图 6-71 所示,在 FFlex 柔性体的属性对话框中有一个 Connecting Parameters(连接


参数)选项卡,主要用于设置 FFlex 柔性体和刚体之间的连接参数。

主节点

Dummy FFlex
刚体 Joint FDR
Body 柔性体

力连接 力连接

Dummy FFlex
刚体 Joint
Body 柔性体

力连接

图 6-71 FFlex 力连接


286 RecurDyn 多体系统优化仿真技术

Use Force Connector:选中该复选框,采用力连接;否则,采用固定铰接。使用时


需根据模型状况进行选择:
 如果模型中不存在接触,力连接计算速度快。
 力连接可以降低外力噪声,因为柔性体不直接受影响。
 如果模型中存在接触、力连接,使得保证计算接触力收敛的步长减小,从而
计算时间更长。
 Use Large Rotation:可提高计算精度,但增加计算时间。当柔性体的转动效应较弱
时,不需要选中此复选框。当柔性体中存在转动副时,则需选中此复选框。
 Sync.FDR:使所有的 FDR 连接和节点连接同步。
在柔性体编辑模式下,从图形工作窗口中选择定义的 FDR,单击鼠标右键,在弹出的
快捷菜单中选择 Property 命令,打开如图 6-72 所示的 Properties of Element 对话框,其中
的 Use Force Connector 和柔性体属性对话框中的 Use Force Connector 和 Sync.FDR 存在如
表 6-1 所示的对应关系。

图 6-72 FDR 单元力连接设置对话框

表 6-1 FDR 单元属性及力连接对应关系


柔性体属性对话框 FDR 单元属性对话框 FDR 连接类型
Use Force Connector(ON) Sync.FDR(ON) unavailable Force
(The connector type of Flexible Use Force Connector (ON) Force
Sync.FDR(OFF)
body is “Force”) Use Force Connector (Off) Constraint
Use Force Connector (OFF) Sync.FDR(ON) unavailable Constraint
(The connector type of Flexible Use Force Connector (ON) Force
Sync.FDR(OFF)
body is “Constraint”) Use Force Connector (Off) Constraint

通常情况下,考虑连接体的质量和转动惯量需要依赖使用者的经验。在这种情况下,
第6章 刚柔混合系统仿真 287

-
一般推荐用户参照默认值 10 6(单位制:MMKS)。换言之,dummy body 的质量必须小于
- -
柔性体质量的 10 6 倍,转动惯量必须几乎小于柔性体的 10 5 倍。

6.8 RecurDyn/Mesh Interface网格界面

RecurDyn 中的刚体几何模型可直接通过 Mesh Interface 传送至有限元前后处理器


Femap 中,在 Femap 中划分网格之后,可通过 Mesh Interface 将 Femap 的网格传送至
RecurDyn 中作为 FFlex 柔性体模型,无须再通过 FFlex 工具包中的 Import 按钮导入柔性体。
如图 6-73 所示,从 Communicator>>Mesh Interface 工具包中单击 按钮,在弹出的
Transfer 对话框中单击 B 按钮,选择拟作为 FFlex 柔性体的几何,然后单击 OK 按钮确认。

图 6-73 网格传输

在 Femap 界面中划分网格之后,在 RecurDyn 中从 Communicator/Mesh Interface 工具


包中单击 按钮,在弹出的 Get Mesh Data 对话框中设置原点及参考系等,然后单击 OK 按
钮,即可导入 FFlex 柔性体。

6.9 RecurDyn/FFlex应用实例

下面通过一个雪地机动车的离心离合器的例子来介绍 FFlex 刚柔混合模型的应用,如


图 6-74 所示。该离合器的工作原理是依靠离合盘的柔性(采用屈服离合盘相对于弹簧连接
288 RecurDyn 多体系统优化仿真技术

离合器可大大减少部件数量,从而简化制造过程、提高系统的可靠性),当动力源使离合
器驱动绕中心轴旋转时,驱动臂驱动柔性离合盘转动。随着转动速度增大,离心力使离合
盘沿径向向外伸展至 8 个柔性点。当离合盘向外移动时,与载荷连接的外圈接触。离合盘
和载荷之间的摩擦使得承载环开始转动,从而在离合器驱动臂和承载环之间传递能量。
RecurDyn 安装目录\Help\Manual\Tutorials\InterDisciplinary\FFlex 文件夹中包含了该例
题的柔性体 clutchPlate.dat 和驱动臂 clutchdriver.x_t,以及承载环 clutchload.x_t 文件。
为了更加高效地求解离合盘与驱动臂之间、离合盘和承载环之间的接触,需要定义有
效接触面,共 12 个区域,如图 6-74 所示。离合盘和承载环之间的摩擦非常重要,依据该
摩擦实现从驱动臂到承载环间的能量传递。为了缩短仿真时间,在此采用一个远大于正常
范围的摩擦系数。对于驱动臂和离合盘间的接触,忽略摩擦以缩短仿真时间。通过为离合
盘有限元节点创建边界条件,限制这些节点的 Z 向运动,以模拟实际离合器结构中阻止离
合盘从离合器中脱落。

柔性离合盘
离合器驱动臂

转动中心轴 承载环

接触面

图 6-74 离合盘模型
第6章 刚柔混合系统仿真 289

离合盘

接触 接触

承载环 BC 驱动臂

转动副 转动副
负载扭矩 驱动扭矩
-0.1*wz(1)*wz(1) 10000*step(time,0,0,0.01,1)
Ground

图 6-74 离合盘模型(续)

1.设置建模环境,并导入柔性体

启动 RecurDyn,并创建一个 FFlexClutch 文件;设置 Icon Size 和 Grid Size 均为 10;


如图 6-75 所示,在 InterDisciplinary 工具包中选择 FFlex>>Import,单击(0, 0, 0),选择前
面准备的 clutchPlate.dat 文件,单击 Open 按钮,在弹出的 Import 对话框中单击 OK 按钮,
并通过 Rename 命令重命名为 FFLEXClutchPlate。

图 6-75 导入柔性体

2.导入刚体几何体

选择 File>>Import 命令,分别选择 clutchDriver.X_t 和 clutchLoad.x_t 导入 RecurDyn,


并重命名为 clutchDriver 和 clutchLoad。在 clutchLoad 的 Property 对话框中的 Body 选项卡
中,选择 Material Input Type 为 Density,并在 Density 文本框中输入 8.34e-5。

3.建立Joint

确保工作平面为 xy 平面。在 Joint 工具包中单击 Revolute 按钮,选择(body,body,point),


分别选择 Ground 和 clutchdriver,选择(0,0,0),将该转动副更名为 Rev_driver;重复单击
Revolute 按钮,选择(body,body,point),先后选择 Ground 和 clutchLoad,选择(0,0,0),
并将该转动副更名为 Rev_load。在 Properties of Rev_load 对话框中,在 Friction 中选中 Include
Friction 复选框,单击 Sliding 按钮,在弹出的对话框中按照图 6-76 所示更改属性。
290 RecurDyn 多体系统优化仿真技术

 Static Friction Coefficient=0.1。


 Dynamic Friction Coefficient=0.1。
 Inner Radius Factor=20。
 Outer Radius Factor=20。

图 6-76 建立约束铰

4.建立驱动扭矩和负载扭矩

选择 Subentity>>Expression 命令,在弹出的 Expression List 对话框中单击 Creat 按钮,


将 Name 改为 Ex_drivingTorque,在表达式列表框中输入 10000*step(time,0,0,0.01,1),单击
OK 按钮,完成驱动扭矩表达式定义;重复单击 Create 按钮,将 Name 改为 Ex_loadTorque,
在 Argument List 栏中单击 Add 按钮, 将 Bodies>>clutchLoad>>Markers>>CM 拖至 Argument
List 栏中的 Entity 列,在表达式列表框中输入-0.4767*WZ(1)*WZ(1),单击 OK 按钮,完成
负载扭矩表达式定义,如图 6-77 所示。

图 6-77 建立扭矩表达式

在 Force 工具包中单击 Rotational Axial 按钮,选择 Joint 的输入方式,从屏幕中选择


第6章 刚柔混合系统仿真 291

Rev_driver(在 Working Model Window 中,将鼠标移动到两个 Joint 上,右击,在弹出的快


捷菜单中选择 Select List 命令,在弹出对话框中选择 Rev_driver),单击 OK 按钮建立
RotationalAxial1;在数据库窗口中,选择 Force>>RotationalAxial1,右击,在弹出的快捷菜
单中选择 Property 命令;在弹出的对话框中选择 Rotational Axial 选项卡,单击 EL 按钮;
在弹出的 Expression List 对话框中选择 Ex_drivingTorque,单击 OK 按钮,在 General 选项
卡中,将名称改为 driverRotationalAxial,单击 OK 确认;重复前面的操作,选择 Rev_load,
在 Expression List 对话框中选择 Ex_loadTorque,将该负载扭矩(旋转轴向力)重命名为
loadRotationalAxial,如图 6-78 所示。

图 6-78 定义扭矩

5.建立接触

(1)创建 Patch Sets


如图 6-79 所示,在数据库窗口中右击 FFlexClutchPlate,在弹出的快捷菜单中选择 Edit
命令,进入柔性体编辑模式;选择 FE Entity>>Patch Set,将颜色改为红色;单击 Add/Remove
按钮,将几何体调整到适当位置;按住 Ctrl 键,选择其中一个离合盘接触区域 1,然后关
闭在图形工作窗口右上角的 Navigation Targe;单击鼠标右键,在弹出的快捷菜单中选择
Finish Operation 命令;打开 Patch Set 对话框,确保所有的箭头都是朝外,单击 OK 按钮确
认,完成第一个 Fsurface。

错误!
292 RecurDyn 多体系统优化仿真技术

图 6-79 定义柔性接触面

图 6-79 定义柔性接触面(续)

重复同样的步骤,完成其他 11 个 Fsurface。单击工具栏中的 按钮,返回模型编辑


模式。
(2)创建 Multi-Face 表面
在数据库窗口中右击 clutchDriver, 在弹出的快捷菜单中选择 Edit 命令, 进入 clutchDriver
实体编辑模式;选择 Curve and Surface>>FaceSurf,选择 MultiFace 输入方式,选择如图 6-80
所示驱动臂的两个面,单击 OK 按钮。

图 6-80 建立刚体接触面

重复上面步骤,完成其他 7 个 FaceSurce。单击工具栏中的 按钮,返回模型编辑模式。


从数据库窗口中选择 ClutchLoad,右击,在弹出的快捷菜单中选择 Edit 命令,进入实
体编辑模式。选择 Curve and Surface>>FaceSurf,选择 Face 模式,单击选择承载环的内圈,
单击 OK 按钮确认。单击工具栏中的 按钮,返回模型编辑模式。
(3)创建接触
选择 FFlex>>FSurface to Surface,选择(Surface,PatchSet)输入模式,选择第一个
第6章 刚柔混合系统仿真 293

Multi-face 的表面,再选择在 clutchDriver 中对应的 Patch Set,单击 OK 按钮完成;按照相


同的步骤,重复定义离合盘和驱动臂的其余 7 对接触。
按照同样的步骤,先选择 ClutchLoad 的内圈,再选择 FFLEXClutchplate 的外圈,定义
承载环和离合盘之间的接触。共定义 12 对接触,如图 6-81 所示。

图 6-81 建立的 12 对接触

(4)设置接触参数
在数据库窗口中选择 FSurfaceToSurface1~FSurfaceToSurface12 接触,右击,在弹出的
快捷菜单中选择 Property 命令,在 FlexSurfaceToSurface 中单击 Base 面的 Contact Surface
按钮,在弹出的对话框设置 Max Penetration=1,Plane Tolerance Factor=3,然后单击 OK 按
钮确认。
单击 Action 面的 Contact Surface 按钮,设置 Max Penetration=1,单击 OK 按钮确认。
在数据库窗口中选择 FSurfaceToSurface1~FSurfaceToSurface8,右击,在弹出的快捷菜
单中选择 Property 命令,在弹出的对话框中选择 Characteristic 选项卡,设置 Spring
Coefficient=100,Damping Coefficient=5e-3,单击 OK 按钮确认。
在数据库窗口中选择 FSurfaceToSurface9~FSurfaceToSurface12,右击,在弹出的快捷
菜单中选择 Property 命令,在弹出的对话框中选择 FlexSurfaceToSurface 选项卡,单击 Base
面的 Contact Surface 按钮,设置 Max Penetration=1,Plane Tolerance Factor=3,单击 OK 按
钮确认。
单击 Action 面的 Contact Surface 按钮,设置 Max Penetration=1,单击 OK 按钮确认。
在 Characteristic 选项卡中,设置 Spring Coefficient=100,Damping Coefficient=5e-3,
Friction Coefficient=1.2。
单击 Friction,设置 Static Threhold Velocity=10,Dynamic Threshold Velocity=15,Static
Firction Coefficent=1.26。
确认完成之后保存模型。
294 RecurDyn 多体系统优化仿真技术

6.建立边界条件

在数据库窗口中右击 FFlexclutchPlate,在弹出的快捷菜单中选择 Edit 命令,进入柔性


体编辑模式。如图 6-82 所示,选择 FE Entity>>B.C.,在弹出的 B.C.对话框中设置边界类型
为 User Defined,选中 Z 复选框(其他自由度清除),单击 Add/Remove 按钮;在模型工作
窗口中选择所有的节点,右击选择 Finish Operation 命令(关闭右上角的 Navigation Target),
单击 OK 按钮。单击工具栏中的 Exit 按钮退出,保存模型。

图 6-82 设置边界条件

7.设置参数,运行仿真

如图 6-83 所示,选择 Tools>>Settings>>Model Settings 命令,在弹出的快捷菜单中选


择 FFlex Options 选项卡,在 Stress Recovery Type 栏中选中 Center 单选按钮,设置应力、
应变恢复选项。

图 6-83 应力恢复方式设置

在工具栏中单击 Analysis 按钮,在弹出对话框中选择 General 选项卡,设置 End


Time=3e-2,Step=300,Plot Multiplier Step Factor=3;在 Parameter 选项卡中设置 Initial Time
Step=1.e-004,Numerical Damping=0.3,单击 Simulate 按钮执行仿真分析。

8.分析结果

选择 FFLex>>Contour Option,在弹出的 FFlex Contour Dialog 对话框中选择 Enable


第6章 刚柔混合系统仿真 295

Contour View;在 Contour Option 中,将 Type 设置为 Stress,并选择 SMISES;在 Min/Max
Option 中,单击 Show Min/Max,将 Min/Max OptionType 设置为 User Defined,设置 Max
为 10;在 Style Option 下,将 Style 设置为 Smooth,单击 OK 按钮确认。
单击工具栏中的 Plot Results 按钮 ,进入后处理;单击 Show All Panes 按钮 ,将屏
幕分为 4 个窗口;激活左上窗口,选择 Animation>>Load Animation 命令,加载动画;在右
上窗口,绘制 Clutch Driver 和 load 的旋转速度,选择 FFlexClutch>>Bodies>>clutchDriver>>
Vel_RZ 及 FFlexClutch>>Bodies>>clutchLoad >>Vel_RZ;在右下窗口中,绘制 clutch driver
和 load 的扭矩,在数据库窗口中选择 FFlexClutch>>Force>>Rotational Single(Axial)Force>>
driverRotational Axial>>TZ_Rotat_Axial,选择 FFlexClutch>>Force>>Rotational Single(Axial)
Force>> loadRotationalAxial>>TZ_Rotat_Axial。
在新的绘图窗口中,绘制接触应力。选择 FlexClutch>>Contact>>Flexiblesurface…>>
FSurfaceToSurface2>>FM_CONTACT_BASE、FFlexClutch>>Contact>>Flexible>> surface…
FSurfaceToSurface9>>FM_CONTACT_BASE。
选择 Analysis>>Filter 命令,在弹出的对话框中单击 Filter 按钮,将 Cutoff(Hz)设置为
600;单击 Update Coefficient,单击 Execute 按钮,在 Filter 对话框中的 Curve1 中选择过滤
的图形,确认对输出结果进行滤波。后处理结果如图 6-84 所示。
296 RecurDyn 多体系统优化仿真技术

图 6-84 分析结果显示

图 6-84 分析结果显示(续)

6.10 RecurDyn/DFRA直接频率响应

直接频率响应(Direct Frequency Response Analysis,DFRA)是通过执行频率响应分析


寻找多个频率处的谐响应。对于预定的节点可以绘制幅值、相位关于频率的曲线。只有 FFlex
柔性体模型可以进行直接频率响应分析。下面通过一个实例介绍进行直接频率响应的步骤。
(1)准备好 FFlex 柔性体模型,并根据激励情况,在 FFlex 中施加集中载荷 Fcload。
(2)在 RecurDyn DFRA 工具包中单击 按钮,在弹出的进入 DFRA Excitation Loads
对话框中单击 Add 按钮,在图形工作窗口中选择事先准备好的 FCload,在新增加的激励载
荷列表中显示出 FCload,设置自由度及相位和幅值后,单击 OK 按钮确认,如图 6-85 所示。

图 6-85 定义激励载荷

(3)选择 Analysis>>Direct Frequency Response 命令,在弹出的 Frequency Response


Analysis 对话框中,设置起止频率( Start Frequency=0.1 , End Frequency=100 )及步数
(Step=100),单击 Simulate 按钮进行仿真,如图 6-86 所示。
第6章 刚柔混合系统仿真 297

图 6-86 设置起止频率

(4)在 RecurDyn DFRA 工具包中单击 DFRA Plot 按钮 ,进入 Plot 界面,可通过双


击显示幅值、相位关于频率的曲线,如图 6-87 所示。

图 6-87 直接频率响应结果

6.11 小 结

基于模态综合法的 RFlex 工具包可以求解大规模的柔性体问题,基于 MFBD 技术的


FFlex 工具包可以考虑接触、非线性、大变形方面的问题。对于具体的工程问题,可根据研
究的重点选择合适的方法。在一个模型中,也可以将 FFlex 和 RFlex 结合使用。
࢒ 7 ᐺ ૦቗-఼ᒜᇹᄻೊ੝शᑞ

本章介绍基于 RecurDyn 进行机械、控制、液压系统联合仿真的方法。在此假定读者具


备控制系统的设计和机械系统建模的能力,重点介绍联合仿真的方法和步骤。

7.1 RecurDyn机械-控制联合仿真方法概述

工程系统的仿真,发展到今天已涵盖了机、电、液、控等各专业领域。其中,以控制
器和执行机构两个方面的发展最为普遍。控制器的仿真软件为研究控制策略、控制算法、
控制系统的品质方面提供了强大的支持。执行机构的仿真软件,为评价工程系统的执行品
质提供了极大帮助。工程系统仿真作为虚拟设计技术的一部分,需要满足愈加复杂的要求。
缺乏互动的机械系统与控制系统独立测试仿真无法构造与原设计相符的仿真模型,构建非
线性动态模型非常困难,无法精确地检验所设计的效果。因此,跨专业、多学科联合仿真
已成为工程仿真的必然,可在产品的早期设计阶段有效地测试基于高度非线性动态模型的
控制算法,通过机械系统和控制系统交互,实现多方案的快速比较。
一般而言,控制系统是基于计算机控制。计算机控制原理如图 7-1 所示,执行机构输
出的连续时间信号,通过 A-D(Analog-to-Digital)转换为数字信号,转换过程受到采样周
期的控制;系统计算机采用控制算法对转换后的信号进行解释、加工处理,得到新的数字
信号,该信号通过 D-A 转换为模拟信号,供执行机构输入。

图 7-1 计算机控制原理

在 RecurDyn 中,提供两种机械−控制联合仿真的途径。RecurDyn/Control 提供机械与


控制联合仿真的接口,通过与外部的控制软件数据交互实现联合仿真;RecurDyn/CoLink
是 RecurDyn 自带的控制系统建模求解工具包,可在一个求解器中实现机构和控制的共同建
第7章 机械−控制系统联合仿真 299

模、耦合计算。

7.2 RecurDyn/Control功能

RecurDyn/Control 将机械系统模型和控制系统模型有机地结合起来,进行机械系统和
控制系统联合设计。藉由该接口,可与控制软件(如 MATLAB/Simulink)结合,进行复杂
的机械系统仿真。
在基于计算机控制系统的机构性能仿真中,控制器的设计算法和机械系统应该同时评
价。控制算法可通过控制设计软件(如 MATLAB/Simulink)方便地设计,机械系统可以通
过 RecurDyn 进行模拟。在两个系统之间,需要建立一个如 RecurDyn/Control Toolkit 般的
界面供两者进行交互。从图 7-2 所示的 RecurDyn/Control 联合仿真原理图可以看出,通过
采样周期的控制,实现机械系统和控制系统瞬时的数据传递,在一个采样周期内,RecurDyn
机械系统的输出为固定值。

图 7-2 RecurDyn 机械-控制仿真原理图

RecurDyn 可与 MATLAB/Simulink、Simplore 等控制软件联合仿真,也可以采用通用


的方式进行机械系统与控制系统的联合仿真。

7.3 基于RecurDyn/Control进行联合仿真

RecurDyn/Control 提供两种联合仿真的方法:一种以 RecurDyn 作为主程序;另一种以


控制软件作为主程序。在两种方法中,都需要利用控制软件书写控制框图,通过 Plant Input
(简称 PIN)机械系统输入变量、Plant Output(简称 POUT)机械系统输出变量以及 M-file
(M 文件)建立 RecurDyn 机构模型与控制系统的关联。
300 RecurDyn 多体系统优化仿真技术

7.3.1 建立PIN和POUT

1.建立PIN

PIN 的建立包括两大步,即 PIN 名称的定义和 PIN 与机械模型参量的关联,如图 7-3


所示。

图 7-3 PIN 定义步骤

(1)单击 Communicator 工具包中的 Plant Input 按钮 ,在弹出的 Plant Input List


对话框中单击 Add 按钮,并更改 Name 为合适的 PIN 名称,单击 OK 按钮确认(至此,
在 Database 区中的 Plant Inputs 栏将有 PIN 显示)。可通过 Use 列下的复选框选择相应的
PIN 是否使用。
(2)关联机械系统参量时,需要事先选择作为 PIN 的对象,通过属性对话框打开表达
式对话框;在表达式定义中,以所选对象作为 PIN 函数的自变量。逐级确认之后,完成 PIN
的建立。

2.POUT的建立

单击 Communicator 工具包中的 Plant Output 按钮 ,在弹出的 Plant Output List 对话框


中单击 Add 按钮,打开 Expression(表达式)对话框,通过定义表达式实现 POUT 的建立,
如图 7-4 所示。
第7章 机械−控制系统联合仿真 301

图 7-4 POUT 定义步骤

7.3.2 建立M文件

在建立好 PIN 和 POUT 后,单击 Communicator 工具包中的 CoSim 按钮 ,在弹出的


CoSim 对话框中的 M-File to create Plant Block 文本框中填写 M 文件的名称,
然后单击 Export
按钮,即可创建 M 文件,如图 7-5 所示。

图 7-5 建立 M 文件

7.3.3 以Simulink为主程序的联合仿真

以控制软件作为主程序的联合仿真包括 4 个步骤:第一、二步在 RecurDyn 中进行,第


三、四步在控制软件中进行。如图 7-6 所示,首先在 RecurDyn 中建立执行机构的机械系统
模型,必须确保机械系统模型正确无误,RecurDyn 中所有适合机械系统建模的功能都可以
302 RecurDyn 多体系统优化仿真技术

使用;第二步是建立执行机构的输入 PIN、输出 POUT、采样周期和 M 文件,M 文件传送


同步仿真所必要的数据;第三步是在控制软件中定义框图;最后在控制系统中运行联合
仿真。

图 7-6 以 Simulink 为主程序的联合仿真步骤

下面以 MATLAB/Simulink 为例,分别说明第三步建立控制系统和第四步运行联合仿


真的具体操作步骤。建立控制系统框图的流程为:
(1)运行 MATLAB 程序。
(2)将工作路径设置为 M 文件和 RecurDyn 机械模型存储目录。
(3)在 MATLAB 命令窗口中,输入 M 文件名。
(4)在 MATLAB 命令窗口中,输入 RDLib 或 rdlib。弹出包括 RecurDyn Plant Block
的 Simulink 窗口。
(5)打开一个新的 Simulink 模型窗口,并把 RecurDyn Plant Block 拖至该窗口。
(6)定义控制系统框图,具体操作可参考 Matlab 相关书籍。
其中相关的变量介绍如下:
 RecurDyn_model:RecurDyn 执行机构机械模型文件名。
 RecurDyn_model_n:机械模型文件名大小。
 RecurDyn:RecurDyn 安装目录。
 Plant_inputs:PIN 名称字符串。
 Plant_outputs:POUT 名称字符串。
 RecurDyn_inputs:执行机构机械系统输入值。
 RecurDyn_outputs:执行机构机械系统输出值。
 RecurDyn_io_ids:输入输出的顺序数。
 r_temp:临时变量。
 Plant_inputs_num:PIN 数。
 Plant_outputs_num:POUT 数。
第7章 机械−控制系统联合仿真 303

 Matlab_version:MATLAB 版本。
在控制系统定义好之后,需要在 Simulink 中运行联合仿真。其步骤为:
(1)双击控制框图中 RecurDyn Plant Block,弹出 RecurDyn Plant Block 对话框。
(2)双击红色模块(Dynamic Model),进入仿真参数设置对话框。
(3)定义仿真时间等参数。
(4)单击 Simulation 按钮运行仿真。
其中仿真参数介绍如下。
 RecurDyn_model_name:RecurDyn 机械系统模型名称。
 RecurDyn_install_directory:RecurDyn 安装路径。
 Matlab version:Matlab 版本号。
 Sampling period:采样周期,先在 RecurDyn 中定义,亦可修改其值(如 0.001)。
 RecurDyn_step:RecurDyn 步数设置,默认值为 100,亦可在此修改。
 Waiting time:仿真开始,等待执行 RecurDyn 的最长时间,默认值为 1000s。
 Static analysis:控制是否进行静态分析,默认设置为否。
 RecurDyn_show:控制在联合仿真时是否显示 RecurDyn,不显示时计算速度。
 RecurDyn_animation:控制是否显示动画,默认为显示。
注意:在 Simulink 模型中,仅仅需要 RecurDyn Plant Block;不支持多个任务同时进
行,而且联合仿真之前必须确保机械系统模型没有错误。如果 MATLAB 长时间
没有响应,应用窗口任务管理器中断 MATLAB 程序,检测并处理 RecurDyn 模
型中的问题。PIN 的数量必须保证在 20 个之内,POUT 数量保证在 80 个之内,
如果有特殊需要,可直接联系软件开发者进行个案解决。不支持基于 RecurDyn
建立的仅仅用于联合仿真的独立子系统机械模型,但支持子系统中的 PIN 和
POUT。

7.3.4 以RecurDyn为主程序进行联合仿真

以 RecurDyn 为主程序的联合仿真包括 5 个步骤:首先在 RecurDyn 中建立正确无误的


机械系统模型;第二步是建立 PIN、POUT、采样周期和 M 文件;第三步是在控制软件中
定义框图;第四步是在 RecurDyn 中设置运行控制软件的批处理参数;最后运行联合仿真,
如图 7-7 所示。
下面以 Matlab/Simulink 为例,分别说明第三、四步的操作步骤。
建立 Simulink 模型的步骤为:
(1)运行 MATLAB 程序,设置工作路径为包含 M-file 和 RecurDyn 机械模型的目录。
(2)在 MATLAB 命令窗口中输入 M-File 名。
(3)在 MATLAB 命令窗口中输入 makerd,弹出包含 RecurDyn Plant Block 的新的
Simulink 窗口。
(4)打开 Simulink 新模型窗口,将 RecurDyn Plant Block 拖动至该窗口。
304 RecurDyn 多体系统优化仿真技术

图 7-7 以 RecurDyn 为主程序的联合仿真步骤

(5)定义控制框图。
(6)关闭 Matlab 程序。
设置 Simulink 批处理参数的步骤为:
(1)输入执行文件名以及 MATLAB 的安装路径。
(2)输入 Simulink 批处理的 M 文件名。
(3)输入 Simulink 模型名。
其中,相关变量的含义以及注意事项与以控制软件作为主程序相应部分基本相同。需
要注意的是,该种方式所支持 PIN 最大数为 100,POUT 最大数为 200。

7.4 RecurDyn/Control应用实例

基于 RecurDyn V7R4 和 MATLAB 2007a 的 Mouse 追球仿真,如图 7-8 所示。

图 7-8 Mouse 追球模型


第7章 机械−控制系统联合仿真 305

该例题可从<Recur Dyn 安装目录>\Toolkits\Controls\Examples\mouse.rdyn 直接找到,具


体模型信息不再赘述。在桌子中有一只小球以 200mm/s 的速度在沿 x 向滚动,在桌面上有
一只 Mouse,为了保证 Mouse 能追赶上小球,通过控制 Mouse 的驱动扭矩来实现。各个
Body 之间的关系如表 7-1 所示。

表 7-1 Body 之间的关系

内 容 关 系 驱 动
Dask-Ground 固定副
Ball-Plate 平动副 VX=200mm/s
Plate-Rwheel 接触
Plate-Lwheel 接触
Plate-Third wheel 接触
Mousebody-Third wheel 球铰
Shaft-Rwheel 固定副
Shaft-Lwheel 固定副
Shaft-Mousebody 转动副 驱动扭矩

为了保证 Mouse 和 Ball 之间的状态,控制系统的设计理念为:根据执行机构中 Mouse


和 Ball 之间的在 x 方向的相对位移和相对速度反馈,控制 Shaft 上的驱动扭矩来达到控制
目标。
仿真步骤为:
(1)建立正确的机械系统模型并退出 RecurDyn 程序。
(2)定义 PIN:在 RecurDyn 界面中,通过 Communicator>>Control>>Plant Input 打开
Plant Input List 对话框,单击 Add 按钮,并更改 PIN 的名称为 Control_Torque,然后单击
OK 按钮确认,如图 7-9 所示。

图 7-9 定义 PIN
306 RecurDyn 多体系统优化仿真技术

图 7-9 定义 PIN(续)

(3)关联 PIN 与模型变量:在 Database 区找到 RotationalAxial,单击鼠标右键,在弹


出的快捷菜单中选择 Property 命令;在弹出的 Properties of RotationalAxial 对话框中,单击 EL
按钮;在弹出的 Expression List 对话框中单击 Create 按钮,打开 Expression 对话框;在 Available
Functions 栏中双击 Control 下的 PIN,在表达式列表框中将显示 PIN( );在 Argument List 中单
击 Add 按钮,并将 Database 区 Plant Inputs 下的 Control_Torque 拖至 Argument List 区 ID 号为
1 所对应的 Entity 中;最后更改表达式列表框中的表达式为 PIN(1),并单击 OK 按钮确认。
(4)定义 POUT1:通过 Communicator>>Control>>Plant Output 打开 Plant Output List
对话框,单击 Add 按钮;在弹出的 Expression 对话框中,定义名称为 displacement 的表达
式 DX(1, 2),变量 1 为 Mousebody.Pointer,变量 2 为 Ball.Ball,单击 OK 按钮确认;此时
在 Plant Output List 对话框中将显示已经定义好的 POUT1,如图 7-10 所示。
(5)定义 POUT2:在 Plant Output List 对话框中单击 Add 按钮,在弹出的 Expression
对话框中定义名称为 Velocity 的表达式 VX(Mousebody.Pointer, Ball.Ball),单击 OK 按钮确
认;在 Plant Output List 对话框中,此时将显示创建好的 POUTs,如图 7-10 所示。
(6)产生 M 文件:在工具包区选择 Communicator>>Control>>CoSim,打开 CoSim 对
话框,确认 Interface Version=1.0,Host Program=Simulink,在 Create a Plant Block 栏中设置
Output file name=mouse,M file to create Plant Block=mouse,其余设置保持默认状态,然后
第7章 机械−控制系统联合仿真 307

单击 Export 按钮,在工作目录中将产生 mouse.m 文件。

图 7-10 定义 POUT

(7)启动 MATLAB,并设置相应的工作路径,在命令窗口中输入 mouse.m,打开 M


文件;然后在命令窗口中输入 rdlib,弹出包含 RecurDyn Plant Block 的 RecurDyn_Plant_
library*界面,如图 7-11 所示。
308 RecurDyn 多体系统优化仿真技术

图 7-11 进入 Simulink

(8)在 Simulink 窗口中建立如图 7-12 所示的控制框图。

图 7-12 建立控制系统框图

(9)设置联合仿真参数并运行联合仿真:如图 7-13 所示,双击控制框图中的 RecurDyn


Plant Block,弹出 RecurDyn Plant Block 界面;双击 Dynamic Model 模块,打开仿真参数设
置对话框,设置好之后,单击 OK 按钮确认。在 Simulink 界面中单击运行按钮,开始联合
仿真。

图 7-13 设置仿真参数
第7章 机械−控制系统联合仿真 309

(10)在 Simulink 中查看结果:单击控制框图中的 Scope,可以看到 Displacement 和


Velocity 曲线如图 7-14 所示。

图 7-14 SimuLink 仿真结果显示

(11)在 RecurDyn 中进行后处理:在 RecurDyn 中进入 Plot 方式,可以查看 POUT 和


PIN,同时可以播放动画检查控制效果,如图 7-15 所示。

图 7-15 RecurDyn 结果显示

7.5 RecurDyn/CoLink功能

CoLink 是 RecurDyn 自带的控制模块,利用它用户在 RecurDyn 中就能够进行控制系统


的建模,包括连续、离散及线性和非线性系统模块等。此外,CoLink 还提供了一般的控制
软件所不具备的专业电机控制模块。其建模思路与 MATLAB/Simulink 等控制软件完全一
致。基于 CoLink 使得控制系统和机械系统在同一个求解器进行求解,提高了计算精度和求
解效率,能够更加高效地实现机电控一体化联合仿真分析,方便控制设计和机构设计之间
的交流,而且在解算过程中可以实时观察模型状态。
RecurDyn/CoLink 工具包除了可以实现机械−控制系统联合仿真外,还可以在 CoLink
中进行不包括机械系统的控制系统单独仿真。

7.5.1 CoLink模块库

在 RecurDyn/CoLink 中,包含各种常用的控制模块库,如 Source、Math、Continuous、


Discrete、Nonlinear、Output、Actuator 等,同时还提供 Fuzzy 模糊控制、RecurDyn 机构模
型连接接口以及专业电机驱动 ElectricDrive 模块,提供电流、速度、角度、扭矩等控制。
310 RecurDyn 多体系统优化仿真技术

1.源模块库(Source Library)

CoLink 的输入源包括:
 Chrip:连续变频信号。
 Clock:仿真时间信号。
 Constant:常数信号。
 Cosine:余弦波信号。
 Digital Clock:数字时钟信号。
 Pulse:脉冲信号。
 From File:来自数据文件的信号。
 Ground:地面信号。
 Ramp:斜坡信号。
 Random Number:随机数信号。
 Sequence:序列信号。
 SignalChart:多阶跃函数信号。
 Sine:正弦波信号。
 Step:阶跃函数信号。
 Uniform Random:一致随机数。
 White Noise:白噪声。

2.输出模块库(OutPut Library)

在 CoLink 中,可用的输出模块包括 Scope(示波器输出)、XYPlot(二维图形输出)、


To File(将输出数据写到数据文件)、Terminator(终止输入)以及 Stop(当输入为非零时
停止仿真)等,如图 7-16 所示。

图 7-16 输出模块库

3.数学模块(Math Library)

CoLink 的数学模块包括:
 Absolute:取绝对值。
 Product:叉乘。
 Dot:点乘。
 Relational Operator:关系运算。
 Gain:增益。
 Rounding Function:舍入运算。
 Logical Operator:逻辑运算。
 Sign:符号函数。
第7章 机械−控制系统联合仿真 311

 Math Function:数学函数。
 Sum:加法。
 MinMax:最大最小值。
 Trigonometric Function:三角函数。
其中数学函数包括指数、对数、平方、开方等函数,图 7-17 中列出了其表达式以及与
MATLAB 的对应关系。

图 7-17 函数对应关系

4.连续模块和离散模块(Continuous/Discrete Library)

(1)CoLink 提供的连续控制模块
 Delay:延时。
 Derivative:微分。
 Intergrator:积分。
 State Space:状态空间系统模型。
 Transfer Function:传递函数。
 Zero Pole:零极点。
(2)CoLink 的离散控制模块
 Discrete Filter:滤波器(无限、有限脉冲响应)。
 Discrete Time Integrator:离散时间积分器。
 Discrete State Space:离散状态空间系统模型。
 Discrete Transfer Function:离散传递函数。
 Discrete Zero-Pole:离散零点传递函数。
 First Order Hold:一阶保持器。
 Unit Delay:单位延时。
 Zero Order Hold:零阶保持器。
5.非线性模块(Nonlinear Library)

CoLink 的非线性模块包括:
 Backlash:间隙非线性。
312 RecurDyn 多体系统优化仿真技术

 Coulomb & Viscous Friction:库仑和粘性摩擦非线性。


 Dead Zone:死区非线性。
 Limiter:限制器。
 Lookup Table:查看数据表。
 Lookup Table(2D):二维输入信号查询表。
 Multi Switch:多路转换。
 Relay:延迟。
 Rate Limiter:动态限制信号的变化速率。
 Quantizer:量化非线性。
 Switch:转换器。
 Signal Table:用户自定义信号的信号表。

6.连接模块(Connector Library)

CoLink 提供的连接模块包括:
 Demux:将一个信号转换成多个信号。
 Mux:将多个信号转换成一个信号。
 Subsystem:将多个模块合并成一个模块。
 RecurDyn:将 RecurDyn 机构模型和 CoLink 模型连接起来。
 MultiPort:用于连接 RecurDyn 和 CoLink,其优势在于有机地结合 RecurDyn 的输
入、输出信号流,如果用户需要调用子程序,可以采用该模块。
 Simulink:将 CoLink 和 Simulink 连接起来。
7.模糊模块(Fuzzy Library)

该模块需要一个用其他程序或文本编辑器生成的 FIS(Fuzzy Inference Systems,模糊


推论系统)文件。
FIS 文件的扩展名为*.fis。在 FIS 文件中必须包含的信息有:
 模糊逻辑类型。
 控制输入,包括输入模糊隶属函数。
 控制输出,包括输出模糊隶属函数。
 模糊规则。
 模糊运算方法。
在一个 FSI 文件中,包含 4 段结构。
 模糊系统信息段,以[System]标志该段开始。
 输入段,以[Input#]为该段开始的标志符,其中“#”表示输入数,可有多个输入,
每一个输入的定义都需以[Input#]开始。
 输出段,该段的起始标志为[Output#],其中“#”表示输出数。
 规则段,该段以[Rules]为开始标志符。该段定义的 If-Then 规则用于表达模糊逻辑
需要的条件语句,可以有多个 If-Then 规则;每一规则包括 4 个部分,即输入、输
第7章 机械−控制系统联合仿真 313

出、规则权重以及算法类型;每一规则需从新的一行开始。

8.电机和电机驱动模块(Actuator / Electric Drivers Library)

CoLink 提供专业的电机模块,包括永磁电机 PMDC、并联电机 DC、永磁同步电机


PMSM 以及三相异步电机 IM。CoLink 的电机驱动模块有永磁电机驱动 PMDC Drive、并联
电机驱动 DC Driver 以及永磁同步电机驱动 PMSM Driver。

9.用户函数库(User Function Library)

可以通过表达式或 Ch 脚本语言定义用户函数。
表达式模块中输入为数组,输出为标量。如图 7-18 所示,在表达式函数中,u[0]和 u[1]
分别为第一和第二个输入数组。

图 7-18 用户自定义表达式

Ch 模块适用于 Ch 代码(Ch 脚本是跨平台的嵌入式的 C/C++解释器,具有强大的数值


计算、绘图功能)。Ch 函数格式为:int Ch_Function(double *y, double *u)。求解器仅仅调
用 Ch 代码中的 Ch 函数。在图 7-19 所示的代码中,y 是输出数组,u 是输入数组,返回值
是错误代码。

图 7-19 Ch 模块

7.5.2 伯德工具

伯德工具是研究线性系统频率响应函数以及对非线性系统进行线性化的工具,伯德图
可以显示出线性系统所有的输入输出组合幅值增益和输入输出间的相位差。
伯德工具主要用于报告状态空间矩阵和 CoLink 系统的伯德图,它可计算选定仿真时间
的传递函数,进而生成伯德图。当使用伯德工具时,CoLink 系统的输入是 RecurDyn 机械
模型的输出,如图 7-20 所示;反之亦然。
314 RecurDyn 多体系统优化仿真技术

图 7-20 伯德工具

查看伯德图或状态空间矩阵之前,必须进行仿真。在仿真过程中,伯德工具自动关闭。
在 Bode 对话框中,可以设置伯德图的起、止频率;通过 Step 可以设置伯德图中起止频率
间的采样数,该值越大越光滑;选择系统类型,在 CoLink Model 模式下,Transfer Func 不
可用,而在 CoLink Block 方式下,可定义 Block 的名称并进行 Block 的选择。

7.6 基于RecurDyn/CoLink进行机械−控制联合仿真

7.6.1 基于RecurDyn/CoLink分析流程

基于 RecurDyn/CoLink 进行机械−控制系统联合仿真的一般步骤为:
(1)建立机械模型并调试,确保机械系统模型正确无误。
(2)建立 PIN、POUT,其方法与 RecurDyn/Control 相应部分基本相同,唯一区别在
于调用 PIN 和 POUT 界面时,需要通过 Interdisciplinary>>CoLink>>Plant Input(Plant Output)
操作。
(3)进入 CoLink 界面建立控制系统图。
(4)进行联合仿真。
(5)查看并分析结果。

7.6.2 CoLink系统界面及操作方式

基于 CoLink 进行控制系统设计的界面主要包括四大区域:功能选项卡和功能区提供控
制系统建模的模块库及操作命令;常用工具栏中提供常用的命令按钮;在建模区可以建立
控制系统图;参数化值区用于设置、显示模型的信息,如图 7-21 所示。
建立控制框图时,需要选择某一功能选项卡,在展开的相应功能区中找到所需的模块,
通过鼠标选择并在建模区适当位置单击;模块之间的连接通过左键和右键结合使用来实现,
第7章 机械−控制系统联合仿真 315

通常左键用于连接模块间的输入与输出,右键用于从某一连线中分出一个分支,双击某一
模块可以弹出该模块的参数设置界面。
常用工具栏 功能选项卡和功能区

参数化值区
建 模 区

图 7-21 CoLink 界面

7.6.3 建模要点

 联合仿真之前,必须确保机械系统模型正确无误。
 在建立好控制系统模型之后,需要保存 CoLink 模型。必须保证 CoLink 模型与
RecurDyn 机械模型在同一目录下,同时必须保证在该目录下只有唯一的 CoLink
模型文件(*.clk 文件)。

7.7 RecurDyn/CoLink操作实例

仍然采用 Mouse 追球的仿真实例,具体操作如下。


(1)从<安装目录>\Toolkits\Controls\Examples\mouse.rdyn 调出机械系统模型。
(2)通过 Interdisciplinary>>CoLink>>Plant Input(Plant Output)分别打开 Plant Input
List 和 Plant Output List 对话框,按照和 RecurDyn/Control 相同的步骤建立 PIN 和 POUT。
(3)单击 Interdisciplinary>>CoLink>>CoLink,打开 CoLink 对话框,分别单击 Plant
Input 和 Plant Output 按钮查看 PIN 和 POUT 是否正确(可在此进行修改),确保 Include Colink
System 处于选中状态,如图 7-22 所示。
(4)运行 CoLink:在 CoLink 对话框单击 Colink Run 按钮,进入 CoLink 系统界面。
316 RecurDyn 多体系统优化仿真技术

图 7-22 PIN & POUT

(5)在 CoLink 界面中选择 Connector 选项卡,在展开的功能区中选择 RecurDyn,在


建模区单击放置 RecurDyn 模块;在展开的功能区中选择 Demux,在建模区单击放置 Demux
模块,如图 7-23 所示。
(6)选择 Math 选项卡,在展开的功能区中选择 Gain,在建模区建立增益;以同样方
法建立增益 Gain1;在功能区中选择 Sum,在建模区建立加法器 Sum,如图 7-23 所示。
(7)选择 General 选项卡,在展开的功能区选择测量仪 Scope,在建模区设置 Scope;
以同样的方法建立另外的测量仪 Scope1,如图 7-23 所示。
(8)在建模区双击增益 Gain 和 Gain1,分别设置增益为 100 和 10,如图 7-23 所示。

图 7-23 控制模块
第7章 机械−控制系统联合仿真 317

(9)拖动鼠标左键连接模块间的关系;然后用鼠标左键选择模块间的连线后,在连线
上按下鼠标右键,拖动至另一模块,用于建立连线的分支,效果如图 7-24 所示。

图 7-24 建立控制系统原理图

(10)双击 RecurDyn Plant 模块,在弹出的对话框中设置采样周期为 1e-002,如图 7-25


所示。

图 7-25 设置采样周期

(11)选择 Simulation>>Parameter 命令,在弹出的 Simulation Parameter 对话框中,选


择求解器为 RecurDyn,并设置仿真时间为 3,单击 OK 按钮确认,如图 7-26 所示。

图 7-26 仿真参数设置

(12)单击工具栏中的 Save 按钮,将控制系统保存在 RecurDyn 机械模型所在的目


录下。
(13)选择 Simulation>>Start 命令,运行联合仿真。
(14)在 CoLink 系统界面中查看仿真结果:双击控制框图中的 Scope 和 Scope1,可
以看到 Mouse 和 Ball 之间的相对速度和相对位移曲线。
(15)在 RecurDyn 后处理中查看结果:进入 Plot 界面,将窗口分为 4 个,如图 7-27
318 RecurDyn 多体系统优化仿真技术

所示,分别为 Load 动画、PIN 及 POUT。

图 7-27 联合仿真结果

结果分析:
从仿真结果可以看出,根据 Mouse 和 Ball 之间的相对位移和相对速度反馈信号,所设
计控制系统能够满足 Mouse 追球的目的。在 1.5s 之后,逐步实现了控制效果。
通过对比 RecurDyn/Control 和 RecurDyn/CoLink 分析的结果(如图 7-28 所示),可以
看出两种途径仿真效果基本一致。

图 7-28 Control 与 CoLink 结果比较

7.8 RecurDyn/Hydraulic简介

在现代工业中,随着对液压机械设备的性能要求的不断提高,运用计算机仿真技术通
第7章 机械−控制系统联合仿真 319

过机械系统和液压系统的联合仿真进行动态特性分析已经成为优化设计、提高系统稳定性
及可靠性的重要手段。
RecurDyn/Hydraulic 工具包提供了机械系统和液压系统联合仿真的接口,如图 7-29 所
示,通过该接口,可以实现液压软件(如 AMESim)与 RecurDyn 机械模型的耦合仿真,
适用于液力或汽力系统与机械系统交互的系统设计评价。

图 7-29 机械-液压系统联合仿真

7.8.1 AMESim接口设置

首先必须保证系统中安装有 Microsoft Visual C++ ,然后将 RecurDyn 安装路径下


Toolkits\CoSim_AMESim 下的整个文件夹复制至 AMESim 安装目录的 LIB 文件夹中。

7.8.2 RecurDyn/AMESim联合仿真步骤

通过 RecurDyn/Hydraulic 接口进行机械-液压系统联合仿真共需要四大步骤:
(1)建立正确无误的 RecurDyn 机械系统模型。
( 2 )建立或导入液压模型,设置联合仿真环境,确保在 Amesim 工作目录下存在
model_name_.dll 文件。
(3)确定液压输入 HIN、输出 HOUT 及交互时间步,HIN 和 HOUT 的创建方法与
PIN 和 POUT 方法类似。
(4)运行联合仿真。

7.9 小 结

RecurDyn 在机械-控制系统联合仿真方面提供两种有效途径:RecurDyn/Control 通过
PIN、POUT 以及 M 文件关联机械和控制系统;RecurDyn/CoLink 通过 PIN、POUT 以及.clk
文件联接机械和控制系统。机械控制系统成功仿真的条件是在保证机械模型和控制模型彼
此正确的前提下设置合适的采样频率。
࢒ 8 ᐺ RecurDynቲጓ።፿ᔇᇹᄻ

本章简要介绍基于 RecurDyn 子系统的行业应用工具包及建模过程。


RecurDyn 提供了丰富的行业应用子系统工具包,其特点是基于参数化、模板化建模技
术,自动的建模过程,内置行业专业知识经验,建模求解过程便捷快速;但专业化工具包
的使用前提是必须基于 RecurDyn/Professional。
RecurDyn 的行业应用工具包包括:

1.高机动性履带包——RecurDyn/Track(HM)

专为坦克、装甲车等车辆设计的专业化高机动履带系统工具包。丰富的履带系统组件,
可参数化地调节各部件的几何形状。工具箱由链齿轮、路面车轮、履带链接、橡胶衬套和
地面剖面库等组成。利用这些部件,可以迅速建立履带车辆,分析诸如履带链接和地面之
间的接触特性。同时,亦可由稳健的积分器求解驾驶中的强烈摆动问题。

2.低机动性履带包——RecurDyn/Track(LM)

专为履带式工程车辆设计的低机动履带系统工具包。参数化的部件包括链齿轮、单缘
轮、双缘轮等。使用者只需单击各个部件就可轻松完成整个履带系统的装配。RecurDyn/
Track(LM)工具箱由链轮、法兰、履带链接、橡胶衬套、辊子护栏和地面剖面库等组成。
利用这些部件,可以快速建立低机动履带车辆,分析诸如履带链接和地面之间的相互接触
特性,以及各种工况中出现的结构问题。
Track(HM&LM)的功能包括:客户几何实体库;链轮齿形和链板剖面的图形化设计;
自动化履带装配;履带节与链轮、导引轮与 guide、路面与履带节间的接触自动定义(3D
接触);履带节与障碍物(球)的接触自动定义(3D 接触);高效的接触算法、仿真快速
稳健;内置各种标准试验路面库(Bump/Trench/Ditch 等),也可在 Modeler 中自定义创建
路面;路面包含 Bekker 承压模型以及 Janosi 和 Hanamoto 的剪切模型,可选择雪地、沙地、
粘土以及自定义路面等;可在履带节上连接一般的 Body;特定结果输出,如履带链接接触
力和履带张紧力。

3.2D媒介传输包——RecurDyn/MTT 2D

MTT 2D 包含专门的二维建模器和求解器,提供二维运动的媒介轨迹仿真建模,能够
检查由于各种原因引起的潜在堵塞,如不同的纸张尺寸、重量和刚度,以及由于高温、高
湿度、磨损等引起的纸张属性的不同等,广泛应用于进纸机构(如打印机、复印机、传真
机)、银行设备(如 ATM 取款机、点钞机)等。

4.3D媒介传输包——RecurDyn/MTT 3D

MTT 3D 是 MTT 2D 的延伸,是三维的媒介传输系统专门建模器。MTT 3D 用于仿真


第8章 RecurDyn 行业应用子系统 321

传送机构的三维运动,可以检查由于板形的尺寸﹑重量和刚度的不同所引起的潜在扰动,
也可了解驱动滚轴未对准所引起的板材间的速度差,以及因间隙、磨损所导致的滚轴速度
差等。除用于进纸机构外,MTT 3D 也广泛应用于传送带机及医疗器械等。
MTT(2D&3D)的功能包括:辊子(固定/可动/Pair)、导轨形状(平板、圆弧、圆柱)
直接生成;纸张与导轨间的接触自动定义;可导入外部的 CAD 模型;辊子与辊子间接触自
动定义;提供专用的纸张 Shell 离散单元;可分析纸张材料的各向异性特质;可考虑纸张与
辊子间的摩擦力及线性特性;可预设纸张的初始状态(如初速度)或者折叠效果;可考虑
纸张的位移、应变、应力图表显示;可指定纸张节点的接触力、应变、应力信息表格输出;
可把由实验获得的纸张上的载荷数据用 Nodal Force 加载,包括由于真空引起的吸引力、静
电吸附力以及纸张的空气阻力等;可设置位移/速度/Event(ON/OFF)传感器。

5.链条工具包——RecurDyn/Chain

Chain 可轻松实现链条的装配。只需单击要连接的部件,即可完成链条的装配过程,
包含接触参数、衬套特性、链节数、链节形状及接触力输出等链条系统的全部装配信息,
求解快速、稳健。RecurDyn 以其独有的 2.5D 链条模型成功地解决了传动中的噪音问题,
在研究由链振动引起的传递问题、降低链条噪音设计、正时链机构设计等方面,赢得了极
高的声誉。其主要功能包括:自动生成链条系统的各部件(链轮、链节、导引装置等(支
持 ISO606 标准链条));可自定义设计齿形截面轮廓线;支持凹型导轨并可考虑弹性变形
导轨建模;链条系统自动化装配;链节、链轮、辊子间接触自动定义;考虑链节与链轮的
侧面摩擦;链条系统专用求解模块适合求解高速运动问题;可设置特殊传感器(包括位移、
速度、张力测量传感器),可配合自动液压张紧器(HAT)进行张紧链设计。

6.皮带滑轮工具包——RecurDyn/Belt-Pulley

Belt-Pulley 是由模块化的皮带和皮带轮所构成,拥有皮带滑轮几何形状生成器,可生
成各种类型的皮带与滑轮。在应用时只需选择所需的皮带滑轮类型,单击部件即可完成整
个皮带系统的装配,自动定义皮带与滑轮之间的接触作用力,RecurDyn 可以精确地给出
系统在运动过程中的动态特性,从而改进和完善系统设计。典型的应用包括无级变速系统
CVT(转子、法兰、V 形带轮和 V 形皮带)、正时皮带机构(转子、正时皮带轮和正时皮
带)等,可以研究由带振动引起的传递问题,可分析皮带传动系统的滑动打滑。该工具包
中提供平带、V 形带、正时带、多楔带等各种形状的带,带与带轮间接触自动定义,自动
化装配带系统,可自定义各种带系统接触点位置;提供弹性梁(Beam)单元离散带节(平
带、V 形带)、弹性壳(Shell)单元离散带节(平带自动网格分割);采用摩擦力动力模
型(Stick-slip)计算摩擦力;提供特殊位移、滑动(带与带轮间)、张力等传感器;可进
行弹性壳带的位移、应变、应力云图显示;可指定节点力的输出。

7.齿轮工具包——RecurDyn/Gear

Gear 提供完整的齿轮建模、分析功能,能够自动生成齿轮的几何体并能自动定义接触
关系。齿轮的种类包含平齿、斜齿、锥齿轮、内啮合齿轮、涡轮蜗杆、准柔性体齿轮等。
322 RecurDyn 多体系统优化仿真技术

齿轮几何形状自动生成、齿轮截面自动设计(包括曲线以及圆弧等组合方式),准柔性体
齿轮(QFB)的齿和齿本体间由 Bushing Force 连接,可考虑齿轮的柔性变形。可自动计算
齿轮最佳中心距离,自动装配齿轮组。

8.发动机——RecurDyn/Integrated Engine

RecurDyn 发动机模块由 FunctionBay 公司和日本 YAMAHA、德国 BMW、Porsche 等


厂商共同合作开发,广泛应用于汽车制造业。其中 YAMAHA 与 FunctionBay 有多年的合
作关系;BMW 采用 RecurDyn 进行发动机的 NVH 分析;Valve Train 也是基于 FunctionBay
为保时捷所做的发动机项目的基础上开发的;Honda 采用 RecurDyn 进行发动机的开发; Ford
采用 RecurDyn 进行发动机的 NVH 分析。
RecurDyn/Engine 提供了创建详细的发动机虚拟样机的功能,为发动机的运动学、动力
学性能的仿真提供了专家系统。Integrated Engine 可以建立包括正时链/带、配气机构、附
件驱动系统、曲柄连杆活塞系统、齿轮、轴承等在内的详细的发动机模型,可以全面了解
发动机整机动态响应、子系统/部件(刚性体或柔性体)的运动、载荷、振动/噪声、耐久性
等性能。基于 RecurDyn 所提供的发动机行业应用工具包,可在开发的早期辨识并解决发动
机的设计问题,通过发动机各个子系统的分析,进而对整个发动机系统的各部件在一个环
境中进行组装,从而形成完整的仿真解决方案,可用于发动机组件、部件及整机的研究。

9.曲柄连杆——RecurDyn/Crank

基于 RecurDyn/Crank 曲柄连杆工具包,可以建立多种类型的发动机曲柄连杆系统。确
定与曲柄连杆系统相平衡的力,可将柔体部件集成到系统级虚拟样机中。Crank 模块包含
了一系列零部件模型,如发动机缸体、曲轴、连杆、活塞销、活塞、飞轮、扭振减震器、
平衡轴、驱动系及各种轴承等。可分析曲轴与发动机本体的相互作用,如轴承负载、曲轴
振动和动应力等。对于曲轴和发动机缸体的应力和耐久性、径向滑动轴承设计、发动机支
座设计、内外力平衡的研究提供全面的解决方案,有助于快捷、准确地模拟发动机复杂的
动力学性能。系统支持自动建模和手工建模两种方式,用户可根据实际模型进行选择。曲
柄连杆系统实体模型和连接关系、接触等自动定义,简化了建模过程。可通过振动、动应
力分析进行轴系和驱动系的扭振分析;可分析发动机设计参数对整体性能的影响(材料、
轴承间隙、飞轮和减振设计,以及曲轴刚度等)。
可通过特殊参数化点(SPM)和特殊参数化值(SPV)自动布置曲柄连杆系统,模板
化建立多种类型发动机——直列型、V 型、水平型。Crank 提供 4 种曲轴模型(Rigid、
Torsional+ Bending、Torsional、Beam)供用户选择,可根据发动机研发的不同阶段从精度
和速度方面进行选取。活塞和缸套的连接关系有 3 种类型(Constraint、Cylinder Contact、
Surface Contact)可供选择。轴承支承有 Bushing Bearing、Constraint Bearing、Ball Bearing、
EHD Bearing 等形式。EHD 轴承基于 Reynolds 方程,可考虑油槽和注油孔效应。活塞/缸套
及轴承间的摩擦有 Standard Friction、Empirical Formula 及 Spline 选项。活塞柔性体接触(2D、
3D)形式多样化,可采用 Modified Piston Mesh 修改活塞轮廓,考虑活塞的椭圆形轮廓线,
更加准确地分析活塞和汽缸之间的接触。在考虑柔性体方面,有两种考虑方式(FFlex 和
第8章 RecurDyn 行业应用子系统 323

RFLEX),从 Rigid 模型替换成柔性体模型可采用方便的 Swap 功能。

10.配气机构——RecurDyn/Valve

发动机通常都工作在一个较高的转速范围内,因此配气机构的动力学分析格外重要。
同时,作为发动机设计基本要求的部件轻量化使得分析部件的柔度非常必要,考虑柔性体
并进行全面的分析已经成为配气机构分析的重要组成部分。此外,随着配气机构构造的不
同,将会有不同的仿真方案及分析模型,而 Valve 就是进行自定义模型分析的强有力工具。
RecurDyn/Valve 为发动机的配气机构提供完整、全面的虚拟样机构建及仿真分析一体化流
程,从自动构建配气机构的组成、自动定义连接/约束关系到运动学仿真、动力学仿真、优
化方案等全过程,Valve 都有详尽的工具和具体的向导。在 RecurDyn Valve 界面中,可以
方便、快速地分析发动机配气机构的布局是否恰当,分析组成部件的弹性变形影响,考虑
配气机构内部弹簧的振动、部件接触产生的振动等动力学因素对配气机构性能的影响。它
通过整机的动力学分析来模拟整个“真实的”配气机构的气门升程,而不仅仅局限于运动
学计算理论的气门升程。
可通过特殊参数化点(SPM)和特殊参数化值(SPV)自动布置配气机构。Valve 提供
4 种基本的配气机构形式供用户直接使用:DOHC、SOHC、DOHC、OHV。除此之外,用
户还可以自定义各种配气机构的模型。它提供 4 种凸轮轴模型(Rigid、Torsional+ Bending、
Torsional、Beam)供用户选择,可按计算速度、精度以及部件柔性的需求选取。Valve 包
含多种支承类型(Constraint/Bushing/EHD)及配气弹簧(Simple/BMW/MMS)供选择。它
提供多种凸轮接触的摩擦系数定义方式:Standard Friction、Empirical Formula、Friction
Spline。可对单个/整体配气机构的动力学性能分别进行分析,考虑凸轮的扭转刚度、正时
链、正时带、齿轮等对系统整体性能的影响。可通过专门的液力挺柱分析液压的动力学特
性对系统性能的影响。结合 AutoDesign 可对配气机构在高转速下所需的弹簧力、弹簧刚度
进行优化。有 RFlex、FFlex 两种考虑柔性体模型的方式,借助 Flex Wizard 功能可方便地
将刚体替换为柔性体。提供丰富的多样化结果数据,如配气机构的运动数据(位移、速度、
加速度)、配气机构的落座速度、配气机构的闭合接触力、凸轮和从动件之间的接触力,
以及弹簧的动力学特性等。

11.活塞——RecurDyn/Piston

RecurDyn/Piston 是针对单个活塞—汽缸系统分析的专业工具包,可考虑活塞轮廓、质
量分布、活塞销偏移量、活塞裙部和缸套的摩擦效应、活塞的润滑效应,评价活塞销纵向
和椭圆形变形,分析活塞销座载荷,可考虑润滑效应及注油孔的影响效果,可分析噪声、
摩擦、磨损等问题。发动机本体和连杆之间的连接关系可基于经验数据施加边界,可考虑
接触、向心轴承、滑动轴承等效应。Piston 工具包中提供多种活塞—缸套之间的接触定义
方式(Cylinder Contact,Surface Contact,2D Flex 活塞—2D Rigid 气缸,2D Rigid 活塞—
2D Flex 气缸,3DFlex 活塞—3DFlex 气缸),活塞—缸套接触分析基于弹性液体动力学理
论,动画显示接触区域压力分布。通过运动学分析可确定活塞系统的结构布局,获得连杆
与活塞运动过程的速度、加速度、位移等,可考虑润滑效应及柔性体的接触,确定活塞、
324 RecurDyn 多体系统优化仿真技术

缸套的受力情况及应力分布,为减小活塞拍击噪声、降低摩擦损失和磨损、减小缸套穴蚀、
降低机油消耗量等方面的研究提供了依据。

12.正时链——RecurDyn/Timing Chain

RecurDyn/Timing Chain 提供标准的链轮库,可轻松实现链条的装配。装配信息包含了


链条系统的全部信息:接触参数、衬套特性、链节数、链节形状及接触力输出信息等。链
条系统的几何体包括链齿轮、滚轴、导轨以及侧向挡板等,可完成链条装配自动化,同时
高效的接触算法使得仿真快速、稳健。Timing Chain 工具包提供建立正时链的特殊环境,
系统建模支持定义正时链的坐标系,可定义凸轮链轮、曲柄链轮、导向装置、张紧导向装
置、张紧器以及链节等,并完成自动装配。可提供 4 种不同类型的张紧器:Spring
Damper/HAT/MAT_Screw 以及 MAT_Ratchet。基于 Timing Chain 可建立由滚子和衬套组成
的正时链模型,研究由链振动引起的传递问题,确定链的张力用于耐久性分析,根据噪声
等性能优化张紧装置。通过链轮单元,用户可以建立不同齿廓的链轮,并且可以建立复杂
程度不同的可切换的模型。Timing Chain 采用投影方式进行接触的搜索,极大提高了计算
的速度。

13.弹簧RecurDyn/Spring——MMS

配气弹簧运动得非常快,弹簧的喘振效应不能被忽略。为了考虑这种影响,在仿真时
需要考虑弹簧的质量。RecurDyn/Spring(MMS)是专业的弹簧分析工具包,提供了 4 种不
同类型的弹簧。
 MMS Type A 弹簧:由多质量弹簧块组成,部件之间通过平动副、弹簧阻尼力和轴
向力连接,其中轴向力代表接触力,用 Impact 函数进行定义。
 MMS Type B 弹簧:由 BMW AG 提供的弹簧模型,轴向力由非线性弹簧表示,非
线性特性采用预先定义的 Stiffness/Damping 特性样条曲线插值。
 MMS Type C 弹簧:该弹簧由多质量点模型离散,质量点间的连接力包含 One-Step
和 Two Step 不同的非线性行为。
 MMS Type D 弹簧:弹簧质量块间由 Beam forces 连接,可考虑弹簧间的接触和弹
簧的自接触。
基于 RecurDyn/MMS,可分析弹簧在高速运动下弹簧本身的运动、动力性能,可分析
多个弹簧之间接触以及弹簧本身自接触对整个系统性能的影响,也可以直接使用 F-Flex 建
立全柔性体的弹簧。

14.轴承模块——RecurDyn/Bearing

轴承载荷的计算是动力学分析中一项非常重要的内容,支承质量的好坏、结构形式是
否合理,对工作精度、传动效率、寿命等有很大的影响。RecurDyn/Bearing 提供了 4 种类
型的轴承供用户选择,即圆柱滚子轴承、球轴承、流体润滑轴承以及 Bushing 轴承。可建
立包含内圈、外圈及圆柱滚子或球滚子的轴承,并进行轴承连接分析,球滚子与轴承内外
圈之间的接触自动定义。球轴承外圈用 Beam 力连接,可考虑轴承外圈变形。可建立流体
第8章 RecurDyn 行业应用子系统 325

润滑轴承(EHD),可考虑油槽和注油孔效应,进行快速、可靠的轴承液体动力学计算,
确定轴承负载,分析载荷分布和结构变形(如轴瓦、连杆),分析分割线位置,避免失效。
EHD 通过对轴承进行网格划分,采用流体的方法分析油膜压力变化,可以详细考虑油槽以
及油孔的影响,可以通过 3D Surface Type 和 Projection Type 显示油槽和注油孔效应云图。
Bushing 轴承在止推轴颈方向有不同的刚度和阻尼。

15.液力挺杆模块——RecurDyn/HAT

在链和带的工作环境下,尤其在发动机应用中,通常是和自动张紧装置共同配合使用。
发动机工作时,为了避免气门间隙调整不当引起的噪声问题,一般高速发动机上都使用可
自行调整气门间隙的液力挺杆。通过挺杆体腔内的油液变化,自动调节挺杆的工作长度,
从而减少了零件之间的冲击和噪声。基于 RecurDyn/HAT 工具包可有效地建立液压自动张
紧装置的模型,自动完成相当繁琐的建模过程,有助于提高建模效率。HAT 自动建立包括
气腔、活塞、单向阀及单向阀弹簧等组件,活塞间约束、接触、弹簧及液压力等元素自动
创建,RecurDyn 提供两种不同形式的液力挺杆模型:HAT A/B。建模过程自动化,自动计
算液压力及各弹簧力。

16.轮胎特性相关模块——RecurDyn/Tire相关模块

RecurDyn/Tire 提供各种研究车辆动力学行为的轮胎及接口模块,用于仿真车辆在驱
动、转向和制动过程中轮胎所形成的力和力矩。相关模块包括 Tire Basic、SoilTire、MF-Tire、
MF-Swift Interface 和 Ftire Interface。
 Tire Basic 提供基于轮胎特性的 Fiala、UA 模型及用户自定义模型。
 SoilTire 可考虑轮胎的变形、下沉及路面变形等情况,其理论依据是 BEKKER 理
论、Janosi 和 Hanamoto 的剪切模型,适合分析轮胎在沙地、雪地、湿地等各种软
土路面上的力学特性,其 MultiPass 可考虑车辆直线行驶时前轮对路面的碾压对后
轮与路面的影响,非常适合进行路面通过性分析。
 MF-Tire(Magic Formula)轮胎是 TNO 公司的轮胎模型,能够准确描述轮胎的侧
偏特性,广泛应用于车辆动力学的研究,适合进行操作稳定性等分析。
 MF-Swift 轮胎也是由 TNO 公司开发的,用于分析轮胎的高频动力学特性,可进行
车辆操稳性能的虚拟道路测试。Swift 轮胎采用刚性环模型,可分析轮胎侧向 60Hz、
垂向及纵向 100Hz 的振动行为,可仿真联合滑移及非稳态滑移直到完全打滑。
 Ftire 是 COSIN 公司开发的三维非线性轮胎模型,适合分析高速运转时轮胎的径向
硬化效果,自动计算作用于轮轴处的力和力矩,为耐久性和舒适性分析提供精确
输入。

8.1 带传动仿真实例

基于 RecurDyn/Belt 工具包,建立含 V 带传动的割草机模型。如图 8-1 所示,分析带的


326 RecurDyn 多体系统优化仿真技术

张力、相对速度及滑动。需要将 RecurDyn 安装目录\Help\Manual\Tutorials\Toolkit\V_Belt


文件夹中的 RidingMower.x_t 文件复制至工作目录。

图 8-1 割草机模型图示

1.设定工作环境

启动 RecurDyn,建立名称为 RidingMower 的模型,设置 Gravity 为-Z 向,设置 MMKS


单位制。

2.进入带工具包子系统

选择 Toolkits>>Subsystem Toolkit>>Belt,进入带子系统编辑模式,如图 8-2 所示。

3.导入几何体

选择 File>>Import 命令,在弹出的对话框中选择 ParaSolid File(*.x_t,…)格式,选择


RidingMower.x_t,单击 Open 按钮,导入割草机几何体,如图 8-2 所示。设置 Icon Size=10;
Marker Size=10。

图 8-2 进入带系统编辑模式并导入几何体

4.建立V形轮VPulley

按住 Shift 键的同时按 X 键,设置工作平面为 XY 平面,如图 8-3 所示;选择


Belt>>VPulley,在输入区输入(0,0,-44.45)并按 Enter 键确定;在弹出的如图 8-4 所示 VPulley
对话框中设置 Inner Radius=63.5,Radius=88.9,Outer Radius=88.9,Width=25.4,Pulley
第8章 RecurDyn 行业应用子系统 327

Width=31.75,Angle=40,Assembled Radius=63.5,单击 OK 按钮确认,完成建立 V 形轮


VPulley1。

图 8-3 设置工作平面,建立 V 形轮

图 8-4 V 形轮 1 参数设置

选择 VPulley1,在工具栏中单击 Object Control>>Basic 按钮 ,在弹出的 Basic 对话


框中选择 Translate 选项卡,设置 Offset Value=15.875,单击-Z 按钮,将 V 形轮 1 移至正确
的位置,如图 8-5 所示。

图 8-5 V 形轮 1 定位

按 R 键,将图形视图转换至 Blade 的轴端在视图中心,选择 Belt>>VPulley,用鼠标捕


捉 Blade1 轴端的圆弧线, 在弹出的 VPulley 对话框(如图 8-6 所示)中设置 Inner Radius=76.2,
Radius=88.9,Outer Radius=88.9,Width=19.05,Pulley Width=25.4,Angle=40,Assembled
Radius=76.2,单击 OK 按钮确认,完成建立 V 形轮 VPulley2。以同样方法,建立 Blade2
轴端的 V 形轮 VPulley3。
328 RecurDyn 多体系统优化仿真技术

图 8-6 V 形轮 2 参数设置

按住 Ctrl 键,选择 VPulley2 和 VPulley3,单击 Object Basic 按钮 ,在弹出的 Basic


对话框中设置 Offset Value=12.7,单击-Z 按钮,将 V 形轮 2 和 V 形轮 3 移至正确的位置,
如图 8-7 所示。

图 8-7 位置调整后的 V 形轮 2

5.建立Roller及Flange

如图 8-8 所示,选择 Belt>>Roller,选择(Point,Distance,Depth)输入模式,将鼠标放


置于 Tensioner 轴端的圆弧上,捕捉圆心位置,在输入区输入 25.4 作为半径,输入 25.4 作
为高度,建立 Roller1。以同样方法,将鼠标置于 Idler_Shaft 的轴端圆弧上,捕捉圆心,在
输入区先后输入 63.5 和 25.4 作为半径和高度,建立 Roller2。
按住 Ctrl 键的同时选择 Roller1 和 Roller2,单击 Object Basic 按钮 ,在弹出的 Basic
对话框中设置 Offset Value=19.05,单击-Z 按钮,将 Roller1 和 Roller2 移至正确的位置。

图 8-8 建立滚子和法兰

选 择 Belt>>Flange , 选 择 Roller1 的 一 个 顶 端 面 , 建 立 Flange1 ; 再 次 选 择


第8章 RecurDyn 行业应用子系统 329

Belt>>Flange,选择 Roller1 的另一个顶端面,建立 Flange2;以同样方法,建立 Roller2 两


端面的 Flange3 和 Flange4。从数据库窗口中分别选择 Flange1~Flange4,按 P 键,在弹出的
属性对话框中设置 Width=6.35,单击 OK 确认,如图 8-9 所示。

图 8-9 设置法兰参数

6.设置V带断面

按 Shift+X 键,设置工作平面为 XY 平面。选择 Belt>>VBelt ,在图形工作窗口中远


离已有图形的空白区域任意点单击,在弹出的对话框(如图 8-10 所示)中设置 Heigh=10,
Belt Thickness=10,Width=12.7,Angle=40,Segment Length=30,Cord Distance=-4,Left
Connecting Position=-14,Right Connecting Position=14,单击 OK 按钮确认。

图 8-10 V 带截面参数

7.带系统装配

单击工具栏中的 wireframe 按钮 ,改变视图显示模式。设置工作平面为 XY 平面。


选择 Belt>>Segment Assembly 命令 ,
从 Vpulley2 开始按照逆时针方向依次单击 Roller
和 VPulley;再次单击 VPulley2(确保正确的带连接方向),在弹出的对话框中设置 Number
of Belts=94,单击 Estimation 按钮,单击 OK 按钮确认,如图 8-11 所示。
从数据库窗口中选择 BeltAssembly1,按 P 键,在弹出的 Properties of BeltAssembly1
对话框中选择 Passing Body List 选项卡,依次单击 Navigation 按钮,选择 Flange1~Flange4,
单击 OK 按钮确认,如图 8-12 所示。
330 RecurDyn 多体系统优化仿真技术

图 8-11 带系统装配

图 8-12 设置带装配属性

8.建立固定副约束

选择 Professional>>Joint>>Fixed 命令,选择(Body, Body, Point)模式,依次选择 VPulley、


与 Pulley 配合的装配轴及 Vpulley 的中心点,建立固定副。选择与 Idler_Shaft 装配的 Roller、
Idler_Shaft 装配轴、Roller 中心建立固定副。
选择 Professional>>Joint>>Fixed 命令,选择(Body, MultiBody)模式,依次选择 Roller1、
Flange1、Flange2,在图形工作窗口中右击,在弹出的快捷菜单中选择 Finish Operation 命
令,建立滚子 1 和法兰之间的连接。以同样方法,依次选取 Roller2、Flange3、Flange4,
在图形工作窗口中右击,在弹出的快捷菜单中选择 Finish Operation 命令,建立滚子 2 和法
第8章 RecurDyn 行业应用子系统 331

兰间的连接。

9.建立转动副

选择 Professional>>Joint>>Revolute,选择(Body, Body, Point)模式,按照表 8-1 所示


对应关系依次选择 Base Body、Action Body 和 Point 点,建立 6 个转动副。

表 8-1 转动副对应关系

Body1(base) Body2(action) Point


RevJoint1 Motor_Mount Motor_Shaft 0,0,0
RevJoint 2 Mower_Deck Blade2 -347.74897, 269.87967, -113.03
RevJoint 3 Mower_Deck Blade1 -492.37705, -269.87968, -113.03
RevJoint 4 Mower_Deck Tensioner -566.06419, -53.48151, -113.03
RevJoint 5 Tensioner Roller1 -431.08935, -89.50765, -85.725
RevJoint 6 Mower_Deck Idler_Shaft -315.81177, 107.89812, -100.33

10.固定Motor_Mount

选 择 Professional>>Joint>>Fixed 命 令, 选 择 ( Body,Body,Point ) 模 式 , 依 次 选 择
MotherBody(Ground)、Motor_Mount 及 Motor_Mount 上任一点,固定 Motor_Mount。

11.建立Mower_Deck和MotherBody间的转动副

选择 Professional>>Joint>>Revolute 命令,选择(Body,Body,Point,Direction)模式,依
次选择 MotherBody(Ground)、Mower_Deck、Mower_Deck 轴端的弧线捕捉其中心点,
及沿轴向的一点,建立转动副,如图 8-13 所示。

图 8-13 建立转动副

12.建立驱动

选择 RevJoint1,按 P 键,在弹出的转动副属性对话框中选中 Include Motion 复选框,


单击 Motion 按钮,在弹出的 Motion 对话框中选择 Velocity(Time),通过 EL 按钮定义速度
随时间的表达式为-188.4*STEP(TIME, 0, 0, 1, 1),即在 1s 内速度由 0 变为 188.4rad/s,如
图 8-14 所示。
332 RecurDyn 多体系统优化仿真技术

图 8-14 建立速度驱动

13.建立等效载荷

在该步中,建立表示 Cable/Lever/Spring 系统的等效载荷,该载荷将衔接带驱动 Blades。


该载荷对于带和电机轴(Motor Shaft)之间的滑动具有重要的影响。
选择 Professional>>Force>>Axial 命令,选择(Body,Body,Point,Point)模式,依次选择
tensioner、Mower_Deck、tensioner 的孔中心点及(-400, 200, -85.725)点,建立 Axial1。选
择 Axial1,按 P 键,在弹出的轴向力属性对话框中选择 Axial 选项卡,通过 EL 按钮建立轴
向力表达式-225*STEP(TIME, 0.5, 0, 1, 1),单击 OK 按钮确认,如图 8-15 所示。

图 8-15 建立等效载荷

14.布置传感器

如图 8-16 所示,选择 Belt>>Sensor>>Slip ,选择 Vpulley1,在输入区先后输入(160,


0, -60.325)及 100,建立滑动传感器 SlipSensor1。选择 SlipSensor1,按 P 键,在弹出的属
性对话框中单击 E 按钮,用鼠标在图形工作窗口中选择带 BeltAssembly1 带节,单击 OK
按钮确认。
第8章 RecurDyn 行业应用子系统 333

图 8-16 布置传感器

15.运行仿真

在工具栏中单击 Analysis 按钮 ,在弹出的对话框中设置 End Time=1.25,Step=200,


然后单击 Simulate 按钮运行仿真。

16.仿真结果

单击工具栏中的 Plot Result 按钮,进入后处理界面,单击 Show All Windows 按钮 ,


将屏幕分成 4 个窗口。将鼠标置于左上窗口将其激活,从数据库窗口中找到 Sensor>>
SlipSensor1>>Value 并双击;将鼠标置于右上窗口将其激活,依次找到 Joints>>RevJoint1>>
Vel1_Relative 和 Joints>>RevJoint2>>Vel1_Relative 并双击;将鼠标置于右下窗口将其激活,
依次找到 Belt-Force>>Vbelt2>>Tension 并双击;鼠标置于左下窗口将其激活,依次找到
Force>>Translational Single Force>>Axial1>>FM_Trans_Axial 并双击,如图 8-17 所示。

图 8-17 初步仿真结果
334 RecurDyn 多体系统优化仿真技术

从动画结果可以看出,当电机 Motor 开始转动时,刀片 Blades 自由运动,这与现实情


况不符。为了与真实模型等效,需要增加摩擦。

17.增加摩擦

同时选择 RevJoint2 和 RecJoint3,按 P 键,在弹出的如图 8-18 所示属性对话框中的


Friction 栏中选中 Include Friction 复选框,选择 Sliding 按钮前面的单选按钮,单击 Sliding
按钮;弹出 Friction Definition 对话框,设置 Absolute Velocity Threshold=0.017453293,Static
Friction Coefficient=0.5,Dynamic Friction Coefficient=0.3,Inner Radius Factor=20,Outer
Radius Factor=40,然后单击 Close 按钮,退出 Friction Definition 对话框;返回属性对话框,
单击 OK 按钮确定。

图 8-18 增加摩擦

18.增加输出项

为了了解更多的信息,需要更多的输出内容。
在数据库窗口中选择 BeltAssembly1,按 P 键,在弹出的 Properties of BeltAssembly1
对话框中选择 Output 选项卡,选中 Vbelt2、Vbelt32、Vbelt62,单击 OK 按钮确认,如
图 8-19 所示。

图 8-19 增加输出项
第8章 RecurDyn 行业应用子系统 335

19.再次运行仿真

单击工具栏中的 Analysis 按钮 ,在弹出的对话框中设置 End Time=2.5,Step=400,


单击 Simulate 按钮运行仿真。
仿真成功结束后,进入后处理查看结果。单击 Show All Windows 按钮 ,将屏幕分成
4 个窗口,如图 8-20 所示。将鼠标置于左上窗口将其激活,在数据库窗口中依次找到
Belt-Force>>Vbelt2>>Tension 并双击、Vbelt32>>Tension 并双击、Vbelt62>>Tension 并双击;
鼠标置于右上窗口将其激活,在数据库窗口中找到 Sensor>>SlipSensor1>>Value 并双击;
将鼠标置于右下窗口将其激活,在数据库窗口中依次找到 Force>>Translational Single
Force>> Axial1>>FM_Trans_Axial 并双击;将鼠标置于左下窗口将其激活,从数据库窗口
中依次找到 Joints>>RevJoint1>>Vel1_Relative 和 Joints>>RevJoint2>>Vel1_Relative 并双击。

图 8-20 仿真结果

8.2 链传动仿真实例

目标:采用 Chain 工具包,建立如图 8-21 所示的滚子链驱动的叉车仿真模型。需要将


RecurDyn 安装目录\Help\Manual\Tutorials\Toolkit\Chain 文件夹的 ForkLift_Initial.rdyn 复制
至工作目录。
336 RecurDyn 多体系统优化仿真技术

图 8-21 叉车模型及链系统结构

1.打开初始模型

启动 RecurDyn,选择 File>>Open 命令,打开 ForkLift_Initial.rdyn 文件。

2.另存模型

选择 File>>Save as 命令,另存为 Forklift_Chain.rdyn。

3.进入链子系统

选择 Toolkits>>SubSystem Toolkit>>Chain,如图 8-22 所示,进入链子系统编辑模式。

图 8-22 进入链子系统

在链子系统中,建立滚子链节和滚子,链的端部与大地间通过弹性铰(橡胶衬套)连
接。下面逐步建立链子系统。

4.建立上、下连接体

选择 Professional>>Body>>Cylinder 命令,在选项区选择(Point,Point,Radius)输入方
第8章 RecurDyn 行业应用子系统 337

式,在输入区依次输入(8, 1850, -13.75)、(8, 1850, 13.75)及 9.54,建立 Body1;在数


据库区选择 Body1,右击,在弹出的快捷菜单中选择 Rename 命令,将其重命名为
Link_Connector_T。
选择 Professional>>Body>> Ellipsoid 命令,选择(Point, Distance)输入方式,在输入
区先后输入(210, 200, 0)和 10 建立球体;在数据库区选择代表该球体的 Body1,右击,
在弹出的快捷菜单中选择 Rename 命令,将其重命名为 Link_Connector_B。

5.建立滚子

选择 Chain>>Roller,选择(Point, Distance)输入模式,先后输入(85, 1970, 0)和 30,


建立 Roller1;选择 Roller1,按 P 键,在弹出的滚子属性对话框中选择 General 选项卡,设
置名称为 Roller;选择 Contact Characteristic 选项卡,设置 Spring Coefficient=3160,Damping
Coefficient=0.75,Friction Coefficient=0.075;选择 Characteristics 选项卡,设置 Roller Width=
45,Total Width=48,Flange Radius=55;最后单击 OK 按钮确认,如图 8-23 所示。

图 8-23 设置滚子属性

6.建立滚子销

选择 Professional>>Body>>Cylinder 命令,选择(Point, Point, Radius)输入方式,依次


输入(85, 1970, -25)、(85, 1970, 25)及 7,建立圆柱体 Body1,并将其重命名为 Roller_Pin。

7.建立固定副

按 A 键,打开 Auto Operation 自动连续操作功能。


选择 Professional>>Joint>>Fixed 命令,选择(Body, Body, Point)输入模式,按表 8-2
所示对应关系建立 3 个固定副。其中选择 MotherBody,可通过在工作模型窗口任意空白处
单击实现。

表 8-2 固定副对应关系

Body Body Point


MotherBody Link_Connector_T 5,1850,0
MotherBody Link_Connector_B 210,200,0
MotherBody Roller_Pin 85,1970,0
338 RecurDyn 多体系统优化仿真技术

再次按 A 键,取消自动连续操作模式。

8.建立弹性连接Bushing

选择 Professional>>Force>>Bushing 命令 ,选择(Body, Body, Point)输入模式,通


过缩放及转动视图,选择 Roller 和 Roller_Pin 及点(85, 1970, 0),建立 Bushing。
选择 Bushing,按 P 键,在弹出的 Bushing 属性对话框中根据表 8-3 中内容设置刚度和
阻尼项,其余项保持默认值,然后单击 OK 按钮确认,如图 8-24 所示。

表 8-3 Bushing 刚度、阻尼设置

Translation X Y Z
Stiffness 3160 3160 3160
Damping 50 50 50
Rotation Z
Stiffness 0
Damping 0

9.建立滚子链节

选择工具包 Chain>>Roller Link ,在图形工作窗口中任意点(如(800, -100, 0)


位置比较合适)处单击,在弹出的如图 8-25 所示对话框中通过 Link Type 下拉列表选择 ISO
606:20A,Pitch = 31.75,建立 Clones,单击 OK 按钮确认并退出。

图 8-24 Bushing 刚度、阻尼设置 图 8-25 滚子链节

10.链条装配

确保工具栏中的 Snap 和 Grid 处于关闭状态。


如图 8-26 所示,选择 Chain>>Chain Assembly;单击 Link_Connector_B 中心,按 F 键
缩放视图至可见整个子系统;单击滚子的右侧,再次缩放视图;单击 Link_Connector_T 的
第8章 RecurDyn 行业应用子系统 339

中心,将光标移至图形工作窗口其他位置处,右击,在弹出的快捷菜单中选择 Finish
Operation 命令。

图 8-26 链系统装配

在弹出的 Assembly 对话框中,设置 Bushing Type=Single,Number of Links=64,单击


Estimation 按钮,此时 Pin Gap 文本框中的数值已发生改变;最后单击 OK 按钮确认。该过
程主要是定义链节数和 Bushing 的类型,通过增加间隙调整刚度以获得所需的链张力。

11.建立转动副

如图 8-27 所示,选择 Chain>>Connector>>Revolute,选择(Body, Body, Point)模式,


依次选择 Link_Connector_T、ChainAssembly1 的最后一个链节及最后链节终端的弧形边,
捕捉圆弧的中心点,建立 Revolute1;从数据库区选择 Revolute1,右击,在弹出的快捷菜
单中选择 Rename 命令,将其重命名为 Rev_Link_Connect_T;选择 Rev_Link_Connector_T,
按 P 键,打开转动副属性对话框;选择 Characteristics 选项卡,设置 Translational Stiffness=
10000,Translational Damping=10;Rotational Stiffness=10000,Rotational Damping=500;选
择 Connector 选项卡,将 Base Marker 的 Origin 点改为(5, 1850, 0)(Link_Connect_T 中心),
将 Action Marker 的 Origin 点改为(15.875, 0, 0),设置 Euler(Angle313)为(103.40895,0,0),
然后单击 OK 按钮确认。
选 择 Chain>>Connector>>Revolute , 选 择 ( Body, Body, Point ) 模 式 , 依 次 选 择
Link_Connector_B、ChainAssembly1 的第一个链节及对应链节终端的弧形边,捕捉圆弧的
中心点,建立 Revolute1;从数据库区选择 Revolute1, 右击,在弹出的快捷菜单中选择 Rename
命令,将其重命名为 Rev_Link_Connect_B;选择 Rev_Link_Connect_B,按 P 键,打开转动
副属性对话框;选择 Characteristics 选项卡,设置 Translational Stiffness=10000,Translational
Damping=10;Rotational Stiffness=10000,Rotational Damping=500;选择 Connector 选项卡,
340 RecurDyn 多体系统优化仿真技术

设置 Base Marker 的 Origin 为(210,200,0),设置 Action Marker 的 Origin 为(-15.875, 0, 0),


然后单击 OK 按钮确认。

图 8-27 连接转动副属性设置

12.设置链系统属性

从数据库窗口选择 ChainAssembly1,按 P 键,打开 ChainAssembly1 属性对话框;选


择 Characteristics 选项卡,单击 Bushing Force 按钮;在弹出的 Pin Bushing 对话框中,按照
表 8-4 所示设置各项刚度和阻尼,如图 8-28 所示;单击 Close 按钮,返回 ChainAssembly1
属性对话框,然后单击 OK 按钮保存并退出。

表 8-4 Pin Bushing 属性

Translation Radial Axial


Stiffness Coefficient 10000 10000
Damping Coefficient 10 10
Rotation X Y Z
Stiffness Coefficient 10000 10000 0
Damping Coefficient 500 500 500
第8章 RecurDyn 行业应用子系统 341

13.运行仿真

选择 Analysis>>Dynamic/Kinematic Analysis 命令,在弹出的快捷菜单中设置 End


Time=3,step=300,Plot Multiplier Step Factor =10,单击 Simulate 按钮进行仿真。
在 OutPut 区报告成功完成仿真之后,通过工具栏中的 Play/Pause 按钮 来显示结果动
画,显然,链有一个小的摆动量。

14.萃取结果

确认动画在最后一帧(time=3.0s),选择 File>>Extract 命令,将其保存为 ForkLift_


Step1_Extracted.rdyn。
选择 Tools>>Settings>>Model Settings 命令,在弹出的如图 8-29 所示 Model Settings 对
话框中选择 Option2 选项卡,设置 Time Offset=0,单击 OK 按钮确认。

图 8-28 Pin Bushing 对话框 图 8-29 Time Offset 设置

15.移动链系统

通过框选选择整个链系统,选择 Object Control >>Basic,在弹出的 Basic 对话框中


设置 OffSet Value=4400,单击+y 按钮实现移动。

16.取消固定副效应

如图 8-30 所示,在数据库窗口中同时选择 Fixed1~Fixed3,右击,在弹出的快捷菜单


中选择 Inactive 命令,令 3 个固定副暂时失效。

17.建立链系统的输出

在数据库窗口中选择 ChainAssembly1,按 P 键,打开 ChainAssembly1 属性对话框;选


择 Output 选项卡,单击 Selection by Simple Rule 按钮;在弹出的如图 8-31 所示 Selection
Dialog 对话框中,设置 Start Index=8,Increments in Index=8,Number of Selections=7,单击
Update 按钮;返回属性对话框后,单击 OK 按钮确认。
342 RecurDyn 多体系统优化仿真技术

图 8-30 取消固定副 图 8-31 设置链系统输出

18.返回系统级并设置复制粘贴规则

单击工具栏中的 Exit 按钮 ,返回上一级系统。


选择 Tools>>Settings>>Program Settings 命令,在弹出的 Program Settings 对话框中选
择 User Settings 选项卡,取消选中 Shift When Pasting 复选框,单击 OK 按钮确认,如图 8-32
所示。

图 8-32 取消选中 Shift When Pasting(粘贴偏置)复选框

19.复制粘贴已有链系统

在数据库窗口中单击 Chain1,先通过 Ctrl+C 键实现复制,然后通过 Ctrl+V 键实现粘


贴,现在有两个链系统,Chain1 重命名为 Chain_L,C1_Chain1 重命名为 Chain_R。
选择 Chain_L,选择 Object Control >>Basic,在弹出的 Basic 对话框中设置 OffSet
Value=80,单击-z 按钮实现移动。
选择 Chain_R,选择 Object Control >>Basic,在弹出的 Basic 对话框中设置 OffSet
Value=80,单击+z 按钮实现移动。
选择 Chain_L,右击,在弹出的快捷菜单中选择 Edit 命令,进入链子系统编辑模式。
选择链系统之外遥远处的 RollerLink1 和 PinLink1,按 Delete 键,将其删除。单击工具栏中
第8章 RecurDyn 行业应用子系统 343

的 Exit 按钮 ,返回上一级系统。
同样操作,删除 Chain_R 子系统中的 RollerLink1 和 PinLink1。

20.建立Fork与链系统的约束副

按住 Ctrl 键的同时选择 Fork、Chain_L 及 Chain_R,按 P 键,在弹出的属性对话框中


选择 General 选项卡,设置 Layer Number=2,单击 OK 按钮确认,如图 8-33 所示。在工具
栏中设置 Current Layer 显示模式,选择当前层为 2。
选择 Professional>>Jiont>>Fixed 命令,选择(Body, Body, Point)输入模式,先选择
Fork,然后按住 Shift 键选择 Link_Connect_B@Chain_L,选择球的中心点(210,200,-80),
如图 8-34 所示,建立 Fixed1,通过 Rename 重新命名为 Fixed_Fork_Link_L。单击该固定副,
按 P 键,在弹出的固定副属性对话框中选择 Connerctor 选项卡,确认 Base Marker 的 Origin
是(210,200,-80)。

图 8-33 设置显示图层 图 8-34 Fork 和链系统的固定副

用同样方法,建立 Fork 和 Link_Connect_B@Chain_R 间的固定副 Fixed_Fork_Link_R,


其中 Base Marker 的 Origin 是(210,200, 80)。

21.建立Base_Body与链系统的固定副

在数据库窗口中同时选择 Base_Body、Chain_L、Chain_R,按 P 键,在弹出的属性对


话框中选择 General 选项卡,设置 Layer Number=3,单击 OK 按钮确认。在工具栏中设置
Current Layer 显示模式,选择当前层为 3。
选择 Professional>>Joint>>Fixed 命令,确认(Body, Body, Point)选择模式,先选择
Base_Body,然后按住 Shift 键选择 Chain_L 端部的圆柱 Link_Connector_T@Chain_L,再单
击圆柱中心(5, 1850, -80),建立名为 Fixed_Base_Link_L 的固定副。以同样方法,建立
Base_Body 与 Chain_R 在(5, 1850, 80)处的固定副 Fixed_Base_Link_R,如图 8-35 所示。

22.建立Lift_Body与链系统的固定副

在数据库窗口中同时选择 Lift_Body、Chain_L、Chain_R,按 P 键,在弹出的属性对话


框中选择 General 选项卡,
设置 Layer Number=4,单击 OK 按钮确认。在工具栏中设置 Current
344 RecurDyn 多体系统优化仿真技术

Layer 显示模式,选择当前层为 4。
选择 Professional>>Joint>>Fixed 命令,确认(Body, Body, Point)选择模式,先选择
Lift_Body,然后按住 Shift 键,移动鼠标至滚子销附近,右击,在弹出的快捷菜单中选择
Select List 命令,再在弹出的 Select List 对话框中选择 Roller_Pin@Chain_L,单击 OK 按钮
确认之后,将鼠标移至圆柱中心直至捕捉到(85,1970,-80),建立固定副 Fixed_Lift_Roller_L。
以同样方法,建立 Lift_Body 和 Chain_R 之间在(85,1970,80)的固定副 Fixed_Lift_Roller_R,
如图 8-36 所示。

图 8-35 Base_Body 与链的约束副 图 8-36 Lift_Body 与链的约束副

23.建立提升驱动速度

在工具栏中设置 Show All,显示所有层。


从数据库窗口选择 Cmotion_L,右击,在弹出的快捷菜单中选择 Property 命令,在弹
出的属性对话框中单击 Expression 栏中的 EL 按钮,在弹出的 Expression List 对话框中选择
Ex_LiftVelocity,连续单击 OK 按钮确定完成定义,如图 8-37 所示。以同样方法,定义
CMotion_R 的提升速度为 Ex_LiftVelocity。

24.设置角度调整位移

选择 Tra_Piston_Cyl_L,右击,在弹出的快捷菜单中选择 Property 命令,在弹出的属


性对话框中单击 Motion 按钮,在弹出的 Motion 对话框中单击 EL 按钮,在弹出的 Expression
List 对话框中选择 Ex_AngleAdjust,连续单击 OK 按钮确认,如图 8-38 所示。以同样方法,
定义 Tra_Piston_Cyl_R 的角度调整位移 Ex_AngleAdjust。

图 8-37 提升驱动速度 图 8-38 角度调整位移


第8章 RecurDyn 行业应用子系统 345

25.运行仿真

单击 Analysis 按钮 ,在弹出的对话框中设置 End Time=3s,step=300s,plot multiplier


step factor=10,单击 Simulate 按钮运行仿真。

26.显示分析结果

单击 Plot Result 按钮,进入后处理界面。在数据库窗口 Plot 中选择 Plot>>Bodies>>


Freight>>Vel_Ty,双击;选择 Plot>>Bodies > Lift_Body > Vel_TY,双击增加曲线。在曲线
窗口中右击,在弹出的快捷菜单中选择 Edit Title 命令,改变标题为 Freight and Lift_Body
Vertical Velocity。
单击工具栏中的 Show All Panes 按钮 ,将屏幕分为 4 个窗口,并将鼠标置于右上窗
口单击激活,选择 Plot>>Force >> Bushing Force >>Rev_Link_Connect_T >> FM_Bushing,
双击增加曲线;选择 Plot>>Force >> Bushing Force >>Rev_Link_Connect_B >> FM_Bushing,
双击增加曲线。如图 8-39 所示,改变标题为 Bushing Forces。

图 8-39 叉车模型仿真结果

单击右下角窗口,在其中绘制叉车右侧链节的 Bushing 张力。选择 Plot>>Chain-force >


>ChainLink32@Chain_R >> BushingTension 并双击;选择 Plot>>Chain-force > >ChainLink40
@Chain_R >> BushingTension 并双击增加曲线;以同样方法,增加绘制 ChainLink48@
Chain_R 及 ChainLink56 Chain_R 的张力 BushingTension。
最后,将鼠标置于左下窗口单击激活,选择 Animation>>Load Animation,加载仿真结
果动画文件。
从链节的张力可以看出,Bushing 张力随连续的链节起伏。这是因为链节连续地通过滚
346 RecurDyn 多体系统优化仿真技术

子时,滚子面相对低的阻尼、高接触刚度以及链节的小质量导致了链节中的振动。

8.3 齿轮增速机构仿真实例

基于 RecurDyn/Gear 工具包,建立齿轮增速机构仿真模型,齿数如图 8-40 所示,齿宽


为 20mm,分析齿轮传动的接触力及蜗杆的运动情况。

图 8-40 齿轮增速机构

1.设置建模环境

建立名称为 Gear 的模型文件,采用 MMKS 单位制。


设置 Grid=10,Icon size=5。
选择 Tools>>Settings>>Program Settings 命令,在弹出的 Program Settings 对话框中选择
User Settings 选项卡,取消选中 Shift When Pasting。

2.进入齿轮工具包编辑模式

选择 Toolkits>>SubSystem Toolkit>>Gear ,进入齿轮工具包子系统编辑模式,如


图 8-41 所示。

3.建立齿轮 1

单击工具栏中的 Auto Operation 按钮 ,激活自动连续操作功能。选择 Gear>>Spur,


在图形工作窗口中选择(0, 0, 45),在弹出的正齿轮属性对话框(如图 8-42 所示)中设置齿
数 Number of Teeth=28,其余保持默认值,单击 OK 按钮确认,在图形工作窗口建立齿轮 1。

4.建立其他 3 个齿轮

在输入区输入(0,0,0),在弹出的对话框中设置 Number of Teeth=48,创建第二个齿


轮;以同样方法,建立中心为(66, 0, 0)、Number of Teeth=18 及中心为(-73, 0, 45)、
Number of Teeth=45 的另外两个齿轮。
第8章 RecurDyn 行业应用子系统 347

图 8-41 齿轮工具包 图 8-42 建立齿轮 1

5.建立蜗杆

单击工具栏中的 Auto Operation 按钮 ,取消自动连续操作功能。选择 Gear>>Worm,


在输入区输入(-50, -58, 45)
,在弹出的如图 8-43 所示蜗杆属性对话框中设置 Face Width=80,
单击 OK 按钮确认,建立蜗杆几何模型。

图 8-43 建立蜗杆

6.自动装配齿轮

选择 Gear>>Assembly ,先后选择 SpurGear1 和 SpurGear4,确保 Theoretical Center


Distance= Center Distance,否则,将 Center Distance 设置为与 Theoretical Center Distance 相
同的值;然后单击 Auto Engagement 按钮进行自动装配调整,保证中心距和理论中心距相
等;最后单击 Close 退出,如图 8-44 所示。以同样方法,装配 SpurGear2 和 SpurGear3。
348 RecurDyn 多体系统优化仿真技术

图 8-44 自动装配

7.同轴齿轮约束

选择 Professional>>Joint>>Fixed 命令,确认选择方式为(Body,Body,Pont),先后选择
SpurGear1、SpurGear2 及 SpurGear1 的几何中心,建立固定副。

8.建立齿轮与大地间的转动副

选择 Professional>>Joint>>Revolute 命令,在选择区选择(Body,Body,Pont),先后选
择 SpurGear1、Ground 及 SpurGear1 的几何中心,建立 SpurGear1(齿轮 1)相对大地的转
动副 RevJoint1;以同样方法,分别建立 SpurGear3、SpurGear4 与大地之间的转动副 RevJoint2
和 RevJoint3。

9.建立蜗杆与大地间的平动副

选择 Professional>>Joint>>Translational 命令,在选项区选择(Body,Body,Pont,Direction),
选择 Worm1、Ground、Worm1 的 CM 点及 x 方向,建立蜗杆与大地之间的平动副。

10.定义驱动

选择 RevJoint2,按 P 键,在弹出的属性对话框中选中 Include Motion 复选框,然后单


击 Motion 按钮,建立表达式为 sin(Time*PI/2)的速度驱动 Velocity(Time),再逐级单击 OK
按钮确认,如图 8-45 所示。

图 8-45 定义驱动

11.建立齿轮接触对

选择 Gear>> 2DContact ,先后选择 SpurGear1 和 SpurGear4,建立一对齿轮接触;以


第8章 RecurDyn 行业应用子系统 349

同样方法,先后选择 SpurGear2 和 SpurGear3,建立另外一对齿轮接触。

12.建立蜗轮蜗杆接触副

选择 Gear>>3DContactR ,先后选择 SpurGear4 和 Worm1,建立蜗轮、蜗杆之间的


接触。

13.运行分析

选择 Analysis>>Dynamic/Kinematic Analysis 命令,在弹出的对话框中设置 end time=4,


Step=400,单击 Simulate 按钮,运行仿真分析。

14.结果后处理

在顺利完成分析之后,在工具栏中单击 Plot Result 按钮,进入后处理界面;在工具栏


中单击 Show All Windows 按钮,分别在激活的窗口中绘制蜗轮蜗杆的接触力(FM_
SolidContact - GearContact3DR1(N) ) 、 两 对 齿 轮 之 间 的 接 触 力 ( FM_Base_Contact -
GearContact1(N)和 FM_Base_Contact – GearContact2(N))以及蜗杆的运动曲线(Pos_TM -
Worm1(mm)),如图 8-46 所示。

图 8-46 增速机构仿真结果

8.4 Track LM低机动履带系统建模实例

下面基于 RecurDyn/Track(LM)建立低机动履带装载机模型。履带轮结构布局如图 8-47


350 RecurDyn 多体系统优化仿真技术

所示。在建模之前需要将 RecurDyn 安装目录\Help\Manual\Tutorials\Toolkit\Track_LM 文件


夹 中 的 Blade_Assy.x_t 、 Chassis.x_t 、 Grouser1 、 Hydraulic_Cylinder.rdsb 、 Sprocket1 、
Terrain_Outline 文件复制至工作目录。

图 8-47 履带轮结构

1.设置建模环境、导入几何体

启动 RecurDyn,建立名为 LM_Track 的模型,设置单位制为 MMKS。进入 RecurDyn


工作环境中,设置 Grid=10。
选择 File>>Import 命令,在弹出的对话框中选择 ParaSolid File(*.x_t,…)模式,选
择 Chassis.x_t 文件,单击 Open 按钮,导入几何模型。
如图 8-48 所示,选择 Tools>>Merge Body 命令,选中所有的实体,选择 ImportBody1
作为 Target Body,单击 OK 按钮完成合并;从数据库窗口中选择 ImportBody1,右击,在
弹出的快捷菜单中选择 Rename 命令,将其重命名为 Chassis;选择 Chassis,按 P 键,在弹
出的属性对话框中选择 Body 选项卡,设置 Material Input Type = User Input,单击 Apply 按
钮;单击 CM 按钮,在弹出的对话框中选择 Origin & Orientation 选项卡,将 Origin 改为
(-1400,500,0),连续单击 OK 按钮确认并退出。

图 8-48 合并并设置 Chassis 属性


第8章 RecurDyn 行业应用子系统 351

2.创建履带板

如图 8-49 所示,选择 Toolkits>>Subsystem Toolkit>>Track(LM),进入低速履带子系统;


选择 Track(LM)>> Track Link,在输入区输入(-1400,-900,0),在弹出的 TrackLink 对话框
中选择 Geometry Data 选项卡,设置 Pin Radius=24,Pin Length=173,Track Link Inner
Width=52.4,Track Link Outer Width=136.4,Track Link Left Length=119.5,Track Link Right
Length=119.5,Track Link Height=86,Left Pin Position=-88.5,39,Right Pin Position=88.5,39,
Grouser Width=460。

图 8-49 建立履带板

如图 8-50 所示,选择 Grouser Profile 选项卡,单击 Import 按钮,在弹出的对话框中选


择 Grouser1 剖面文件,单击 Open 按钮导入剖面数据,单击 Draw 按钮查看剖面图形,然
后单击 Close 按钮关闭 Grouser Editor 绘图窗口。在 Grouser Profile 选项卡中的 Grouser Mesh
栏中设置 Start Node=7,End Node=19,选中第 8、10、12、14、16、18 行的 Shoe 列选项,
单击 Define 按钮,单击 OK 按钮,完成定义 TrackLinkClone1。

图 8-50 设置履带板属性
352 RecurDyn 多体系统优化仿真技术

3.创建链轮

选择 Track(LM)>> Sprocket,在输入区输入(-2900,0,0),在弹出的如图 8-51 所示


Sprocket 对话框中选择 Geometry Data 选项卡,设置 Number of Teeth=26,Dedendum Circle
Radius=339,Base Circle Radius=344,Pitch Circle Radius=365,Addendum Circle Radius=375,
Pin Circle Radius=24,Loop Radius=365。

图 8-51 建立链轮

选择 Tooth Profile 选项卡,单击 Import 按钮,选择 Sprochket1.mat 文件,单击 Open


按钮,导入链轮齿形剖面,连续单击 OK 按钮,完成链轮定义。

4.创建支重轮

选择 Track(LM)>> Single Flange,在图形工作窗口中选择点(-2460,-250,0),输入


半径 70,建立支重轮 SingleFlange1。右击 SingleFlange1,在弹出的快捷菜单中选择 Rename
命令,更名为 Roadwheel_6。选择 Roadwheel_6,按 P 键,在弹出的属性对话框中选择
Characteristics 选项卡,设置 Hub Radius(Rh)=40,Flange Radius(Rf)=80,如图 8-52
所示。

图 8-52 建立支重轮

确保 Tools>>Settings>>Program Settings>>User Settings 中 Shift When Pasting 不处于选


中状态。
第8章 RecurDyn 行业应用子系统 353

选择 Roadwheel_6, 按 Ctrl+C 键复制, 连续 5 次按 Ctrl+V 键粘贴; 选择 C1_ Roadwheel_6,


选择 Object Control>>Basic,在弹出的 Basic 对话框中选择 Translate 选项卡,设置 OffSet
Value=240,单击+X 按钮;在数据库窗口中选择 C2_ Roadwheel_6,在 Basic 对话框的
Translate 选 项 卡 中 设 置 OffSet Value=530 , 单 击 +X 按 钮 ; 在 数 据 库 窗 口 选 择 C3_
Roadwheel_6,在 Basic 对话框中设置 OffSet Value=820,单击+X 按钮;在数据库窗口选择
C4_ Roadwheel_6,在 Basic 对话框中设置 OffSet Value=1110,单击+X 按钮;在数据库窗
口选择 C5_ Roadwheel_6,在 Basic 对话框中设置 OffSet Value=1350,单击+X 按钮。在数
据库窗口分别选择 C1_ Roadwheel_6~ C5_ Roadwheel_6,右击,在弹出的快捷菜单中选择
Rename 命令,将其分别重命名为 Roadwheel_5、Roadwheel_4、Roadwheel_3、Roadwheel_2、
Roadwheel_1。

5.创建惰轮

选择 Track(LM)>> Center Flange,在输入区输入(-700,0,0)作为中心点,再次输入


320 作为半径,建立 CenterFlange1,并更名为 Idler。选择 Idler,右击,在弹出的快捷菜单
中选择 Property 命令,在弹出的对话框中选择 Characteristics 选项卡,设置 Inner Flange Radius
(Rf)=350,单击 OK 按钮确认。
再次选择 Track(LM)>>Center Flange,在输入区输入(-1780,360,0)作为中心点,
再次输入 45 作为半径,建立 CenterFlange2,并更名为 Carrier。选择 Carrier,右击,在弹
出的快捷菜单中选择 Property 命令,在弹出的对话框中选择 Characteristics 选项卡,设置 Inner
Flange Radius(Rf)=60,单击 OK 按钮确认。

6.装配履带

如图 8-53 所示,选择 Track(LM)>> Track Assembly,从链轮开始,按照逆时针顺序


依次选择支重轮和惰轮,最后再次选择链轮,在弹出的 Assembly 对话框中单击 OK 按钮确
认,完成履带装配。

图 8-53 装配履带系统
354 RecurDyn 多体系统优化仿真技术

7.建立履带架

选择 Professional>>Body>>Link ,在(Point,Point)输入模式下,先后输入(-2325,-80,0)

(-1260,-80,0),建立 Body1,并更名为 Track_Frame。从数据库窗口中选择 Track_Frame,
右击,在弹出的快捷菜单中选择 Edit 命令,进入 Track_Frame 编辑模式。从数据库窗口中
选择 Solids>>Link1,右击,在弹出的快捷菜单中选择 Property 命令,在弹出的属性对话框
中选择 Link 选项卡,设置 First Radius=200,Second Radius=200,Depth=20,单击 OK 按钮
确定,如图 8-54 所示。

图 8-54 履带架

在 Track_Frame 的 编 辑 模 式 下 , 选 择 Professional>>Solid and Marker>>Link , 在


(Point,Point)输入模式下,先后输入(-1780,0,0)、(-1780,350,0),建立 Link2。选择
Link2,按 P 键,在弹出的属性对话框中选择 Link 选项卡,设置 First Radius=50,Second
Radius=50,Depth=20,单击 OK 按钮确认,如图 8-54 所示。单击工具栏中的 Exit 按钮 ,
退出 Track_Frame 编辑模式。

8.创建张紧装置

选择 Professional>>Body>>Box ,在(Point,Point)输入模式下,先后输入(-1300,100,0)
和(-700,-100,0),建立 Body1,并更名为 Tensioner。在图形工作窗口中双击 Tensioner,
进入 Tensioner 的编辑模式。从数据库窗口中选择 Box1,按 P 键,在弹出的属性对话框中
选择 Box 选项卡,设置 Depth=40;选择 Origin&Orientation 选项卡,设置 Origin 为
(-1000,0,-20),单击 OK 按钮确认。单击工具栏中的 Exit 按钮 ,退出 Tensioner 的编辑
模式。

9.调整链轮

在工具栏中单击 Render Each Object 按钮 改变显示模式,调整工作平面为 XY 平面,


按 F 键,将链轮缩放至视图中央。选择 Sprocket,选择 Object Control>>Basic,在弹出的
Basic 对话框中选择 Rotate 选项卡,单击 M 按钮,选择 Sprocket 的中心 Marker 点,设置
Degree=0.5,慢慢调整绕 Z 轴的旋转直到链轮和履带没有干涉为止,如图 8-55 所示。

10.建立约束副

选择 Professional>> Joint,在(Body, Body, Point)输入模式下,根据表 8-5 中对应关


系建立各种约束副。
第8章 RecurDyn 行业应用子系统 355

图 8-55 调整链轮位置

表 8-5 约束副对应关系

Joint Type Base Body Action Body Point


Revolute Mother Body Sprocket -2900,0,0
Revolute Tensioner Idler -700,0,0
Revolute Track_Frame RoadWheel_6 -2460,-250,0
Revolute Track_Frame RoadWheel_5 -2220,-250,0
Revolute Track_Frame RoadWheel_4 -1930,-250,0
Revolute Track_Frame RoadWheel_3 -1640,-250,0
Revolute Track_Frame RoadWheel_2 -1350,-250,0
Revolute Track_Frame RoadWheel_1 -1110,-250,0
Revolute Track_Frame Carrier -1780,360,0
Fixed Mother Body Track_Frame -1780,0,0

11.建立机械式履带张紧器

选择 Professional>>Joint>>Translational ,选择(Body, Body, Point, Direction)输入模


式,先后选择 Track_Frame、Tensioner 及点(-1200,0,0),右击,在弹出的快捷菜单中选
择 Select List 命令,在弹出的 Select List 对话框中选择 Tensioner.Box1.Edge3,单击 OK 按
钮,建立平动副 TraJoint1。
选择 Professional>>Force>>Spring ,选择(Body,Body,Point,Point)输入模式,先后
选择 Track_Frame、Tensioner、(-1500, 0, 0)及(-1200, 0, 0),建立 spring1。选择 spring1,
按 P 键,在弹出的属性对话框中选择 Spring 选项卡,设置 Spring Coefficient=0.1,Damping
Coefficient=100,PreLoad=50000;选择 Graphic 选项卡,设置 Spring Diameter = 50,单击
OK 按钮确认。
356 RecurDyn 多体系统优化仿真技术

提示:此处设置低刚度是为了保证几乎恒定的弹簧力。

12.施加速度驱动

在数据库窗口中右击 RevJoint1,在弹出的快捷菜单中选择 Property 命令;在弹出的属


性对话框中选择 Joint 选项卡,选择 Include Motion,单击 Motion 按钮;在弹出的 Motion
对话框中选择 Velocity(Time),单击 EL 按钮;在弹出的 Expression List 对话框中单击
Creat 按 钮 ; 在 弹 出 的 Expression 对 话 框 的 表 达 式 列 表 框 中 输 入 表 达 式 STEP
(Time,0.1,0,1,-360D),连续单击 OK 按钮确认,完成运动的驱动。

13.仿真测试

选择 Analysis>>Dynamic/Kinematic Analysis 命令,设置 End Time=5,Step=50,单击


Simulate 按钮运行仿真。
在顺利完成仿真之后,通过工具栏中的 Play/Pause 按钮 播放动画来查看仿真效果。
选择游离于履带系统外的履带链节 TrackLink1,按 Delete 键删除。
单击工具栏中的 Exit 按钮 ,退出履带子系统编辑模式,返回模型模式。

14.调整右侧履带子系统

在数据库窗口中选择 TrackLM1,右击,在弹出的快捷菜单中选择 Rename 命令,将其


重命名为 Right_Track_Assy。选择 Right_Track_Assy,按 P 键,在弹出的属性对话框中选
择 Subsystem 选项卡,单击 Mother Body 行的 B 按钮,选择 Chassis,单击 OK 按钮确认。
选择 Right_Track_Assy,选择 Object Control>>Basic,在弹出的 Basic 对话框中选择
Translate 选项卡,设置 OffSet Value=250,单击+X 按钮;设置 OffSet Value=300,单击-Y
按钮;设置 OffSet Value=1000,单击+Z 按钮。

15.建立左侧履带子系统

选择 Tools>>Settings>>Program Setting,在弹出的对话框中选择 User Settings 选项卡,


确保 Shift While Pasting 未选中,单击 OK 按钮确认。
选择右侧的履带子系统 Right_Track_Assy,单击工具栏中的 Copy 按钮 复制,单击
工 具 栏 中 的 Paste 按 钮 粘 贴 , 生 成 新 的 子 系 统 C1_Right_Track_Assy , 并 更 名 为
Left_Track_Assy。选择 Left_Track_Assy,按 P 键,在弹出的属性对话框中选择 Origin &
Orientation 选项卡,设置 Origin 为(250,-300,-1000);选择 Sub-System 选项卡,通过 Mother
Body 行的 B 按钮选择 Chassis 为 Mother Body,单击 OK 按钮确认。

16.建立地面

选择 Professional>>Body>>Ground ,进入大地(Ground)编辑模式。
选择 Professional>>Curve and Surface>>Outline ,在输入区依次输入(-3500, -1600,0)、
(250, -1350,0)、(3700, -250,0)、(6500, 0,0)、(9050, -450,0)、(11450, -1350,0)、
(13950,-2600,0)、(15750, -3250,0)、(16850, -3400,0)、(20100, -3400,0)、(20500,
第8章 RecurDyn 行业应用子系统 357

-3250,0)、(21050, -3100,0)、(21450, -3100,0)、(21850, -3250,0)、(22350,-3400,0)、


(24600, -3400,0)、(29200, -2100,0)之后,右击,在弹出的快捷菜单中选择 Finish Operation
命令,建立一条轮廓线 Outline1。
选择 Outline1,单击工具栏中的 Copy 按钮 复制,单击 Paste 按钮 粘贴,生成另外
一条轮廓线 C1_Outline1。选择 C1_Outline1,选择 Object Control>>Basic,在弹出的 Basic
对话框中选择 Translate 选项卡,设置 OffSet Value=2500,单击+Z 按钮。
选择 Outline1,选择 Object Control>>Basic,在弹出的 Basic 对话框中选择 Translate 选
项卡,设置 OffSet Value=2500,单击-Z 按钮。
选择 Professional>>RoadData>> OutlineRoad ,依次选择 C1_Outline1 和 Outline1,右
击,在弹出的快捷菜单中选择 Finish Operation 命令,生成路面 RoadData1,如图 8-56 所示。
单击工具栏中的 Exit 按钮,退出大地编辑模式,返回模型模式。

图 8-56 路面

17.导入刮板系统

选择 File>>Import 命令,在弹出的对话框中选择 Blade_Assy.x_t 文件,单击 Open 按钮,


导入 3 个几何模型,包括刮板和两侧横杆。选择 ImportBody1,右击,在弹出的快捷菜单中
选择 Rename 命令,将其重命名为 Right_Rail;同样操作,更名 ImportBody2 = Left_Rail,
ImportBody3 = Blade。
按住 Ctrl 键的同时选择 Right_Rail、Left_Rail 及 Blade,选择 Object Control>>Basic,
在弹出的 Basic 对话框中选择 Rotate 选项卡,设置 degree =180,单击+Y 向按钮 。选择
Translate 选项卡,设置 Offset Value=3500,单击-X 按钮;设置 Offset Value=200,单击-Y
按钮。最终带刮板的模型如图 8-57 所示。

图 8-57 导入刮板后的模型
358 RecurDyn 多体系统优化仿真技术

18.液压缸子系统模型

(1)液压缸包括上部缸体和缸杆,通过参数化值控制液压缸子系统
选择 File>>Import 命令,在弹出的对话框中选择 RecurDyn Subsystem File(*.rdsb)格
式,选择 Hydraulic_Cylinder.rdsb,单击 Open 按钮,在弹出的提示对话框中单击 OK 按钮,
导入液压缸子系统 SubSystem1。选择 SubSystem1,右击,在弹出的快捷菜单中选择 Rename
命令,将其重命名为 Left_Cyl。
从数据库窗口中选择 Left_Cyl,右击,在弹出的快捷菜单中选择 Edit 命令,进入液压
缸子系统编辑模式。从数据库窗口中的参数化值项中选择 PV_Cyl_Radius 并双击,在弹出
的如图 8-58 所示 Parametric Value List 对话框中,更改为 PV_Cyl_Radius= 60,PV_Rod_
Radius= 30,单击 OK 按钮确认。

图 8-58 参数化值

在数据库窗口中选择 Body1,右击,在弹出的快捷菜单中选择 Rename 命令,更名为


Rod;选择 Body2,右击,在弹出的快捷菜单中选择 Rename 命令,更名为 Cylinder。
(2)设置液压缸的运动
选择 TraJoint1,右击,在弹出的快捷菜单中选择 Property 命令;在弹出的属性对话框
中选择 Include Motion,单击 Motion 按钮;在弹出的 Motion 对话框中,单击 EL 按钮;在
弹出的 Expression List 对话框中,单击 Create 按钮;在弹出的 Expression 对话框中,设置
Name=Exp_Cyl_Length,在表达式列表框中输入 STEP(TIME, 0.1, 0.0, 0.5, -100),连续单
击 OK 按钮确认,完成液压缸运动设置,如图 8-59 所示。

图 8-59 设置液压缸运动
第8章 RecurDyn 行业应用子系统 359

单击工具栏中的 Exit 按钮,退出液压缸子系统编辑模式。


选择 Left_Cyl 子系统,选择 Edit>>Copy 命令,然后选择 Edit>>Paste 命令,将复制-
粘贴的新子系统 C1_Left_Cyl 命名为 Right_Cyl。
(3)确定液压缸安装位置
选择 Subentity>>Parametric Point 命令,在弹出的如图 8-60 所示 Parametric Point List
对话框中,单击 Add 按钮 4 次,双击 PP1,更改为 PP_Rcyl,在相应的 Point 列中设置其坐
标为(-1460, 440, 650);同样操作,将 PP2 改为 PP_Rrod,其坐标为(-315, 260, 650);
PP3 点改为 PP_Lcyl,其坐标为(-1460, 440, -650);PP4 改为 PP_Lrod,其坐标为(-315, 260,
-650);最后单击 OK 按钮确认。

图 8-60 参数化点

选择 Subentity>>Parametric Point Connector 命令,在弹出的 Parametric Point Connector


List 对话框中,单击 Add 按钮 4 次。如图 8-61 所示,双击 PPC1,更改为 PPC_Rcyl;通过
相应的 Point 列 Pt 按钮,选择 PP_Rcyl 参数化点;单击 Refs 列中的“…”按钮,弹出 Find
Parametric Connector References Dialog 对话框;单击右下角的“>>”按钮,展开 Find
Parametric Connector References Search Dialog 对 话 框 , 选 择 Right_Cyl 子 系 统 的
PP_Cyl_End,单击 Load 按钮;在表中增加了连接参数化点,单击 Close 按钮关闭。

图 8-61 参数化点连接
360 RecurDyn 多体系统优化仿真技术

同样操作,按照表 8-6 所示对应关系,建立其他 3 个参数化点连接。

表 8-6 参数化点连接对应关系

Parametric Point Name Parametric Point Name


Parametric Point Connector Name
(Model Level) (Subsystem Level)
PPC_RCyl PP_RCyl PP_Cyl_End@Right_Cyl
PPC_RRod PP_RRod PP_Rod_End@Right_Cyl
PPC_LCyl PP_LCyl PP_Cyl_End@Left_Cyl
PPC_LRod PP_LRod PP_Rod_End@Left_Cyl

19.建立装载机系统的约束副及载荷

其中包括 2 个转动副、4 个球铰、一个 Cmotion 约束及一对 Bushing 力。


选择 Professional>>Joint,确保输入模式为(Body,Body,Point),按照表 8-7 所示对应
关系建立约束副。注意选择子系统部件时,需按住 Shift 键。可通过 Select List 功能从多个
对象中选取。
选择 Professional>>Force>>Bushing 命令,确保输入模式为(Body,Body,Point),按照
表 8-7 所示对应关系建立 Bushing 力。

表 8-7 约束副和载荷

Body Body Point


Revolute Chassis Cylinder@Right_Cyl -1460, 440, 650
Revolute Chassis Cylinder@Left_Cyl -1460, 440, -650
Spherical Chassis Right Rail -1775., -90., 650
Joints Spherical Chassis Left Rail -1775., -90., -650
Spherical Rod@Right_Cyl Right Rail -315, 260, 650
Spherical Rod@Left Cyl Left Rail -315, 260, -650
CMotion Right Rail Blade 885,-130,0(2 点)
Bushing Right Rail Blade 659, -280, 650
Forces
Bushing Left Rail Blade 659, -280, -650

从数据库窗口中选择 CMotion1,右击,在弹出的快捷菜单中选择 Property 命令,在弹


出的属性对话框中选择 Joint 选项卡,选择 Cartesian Motion Type 为 Displacement(time)
和 RZ 方向,单击 Expression 栏中的 EL 按钮,建立一个固定值 0 表达式,单击 OK 按钮确
定,如图 8-62 所示。
第8章 RecurDyn 行业应用子系统 361

图 8-62 CMotion1 驱动

20.仿真分析

单击工具栏中的 Analysis 按钮 ,在弹出的对话框中设置 End Time=5,Step=250,Plot


Multiplier Step factor=8,单击 Simulate 按钮运行仿真。
在顺利完成仿真之后,单击工具栏中的 Plot Result 按钮进入后处理。从数据库窗口中
选择 Plot>>LM_Track>>Track-Force>>TrackLink2@Right_Track_Assy>>Bushing Tension,
绘制履带张力曲线,选择 Plot>>LM_Track>>Force>>Translational Spring Damper>>Spring1@
Right_Track_Assy>>FM_TSDA,增加另外一条曲线,从图 8-63 中可以看出履带平均张力近
似为张紧器张力的一半。

图 8-63 张力结果

21.选择黏性土壤路面

为了仿真履带在黏性土壤路面的运动学和动力学性能,在此选用黏土路面。
从数据库窗口中选择 SubSystem>> Right_Track_Assy,右击,在弹出的快捷菜单中选
择 Edit 命令,再次进入右侧履带子系统编辑模式。
从数据库窗口最下端选择 Track(LM)>>TrackAssembly1,右击,在弹出的快捷菜单
中选择 Property 命令;在弹出的履带系统装配属性对话框中选中 Pressure Sinkage 复选框,
单击 Contact Parameter 按钮;打开 Contact Parameter 对话框,选择 Clayey soil 类型,单
362 RecurDyn 多体系统优化仿真技术

击 Load 按钮加载数据;关闭 Contact Parameter 对话框之后,单击 OK 按钮确认,如图 8-64


所示。

图 8-64 设置路面

单击工具栏中的 Exit 按钮,退出右侧履带子系统编辑模式。


以同样方法,设置左侧履带子系统的路面为黏土路面。
运行仿真之后,可以看出在黏土路面上履带行走的状态。

8.5 媒介传送机构仿真实例

建立名为 MTT2D 的模型,设置单位制为 MMKS。


如图 8-65 所示,在工具包中选择 Toolkit>>SubSystem Toolkit>>MTT2D ,进入 MTT2D
子系统编辑模式。

图 8-65 MTT2D 工具包

1.建立LowerBody和UpperBody

选择 Professional>>Body>>Cylinder,选择(Point,Point,Radius)模式,在输入区依次输
入(868.09998, 786.99995, 0)、(868.09998, 786.99995, 10)、1.5,建立 Body1。选择 Body1,
右击,在弹出的快捷菜单中选择 Rename 命令,将其重命名为 LowerBody。
第8章 RecurDyn 行业应用子系统 363

同样操作,建立起点为(877.99998, 796.94995, 0)、终点为(877.99998, 796.94995, 10)


及半径为 2 的 UpperBody。

2.建立纸张

如图 8-66 所示,选择 MTT2D>>Sheet,在选项区选择(Point,Point,Withdialog)模式,


在输入区依次输入(800, 787, 0)、(700, 787, 0),在弹出的对话框中设置 Number of
Segment=54,Segment Length=4,Sheet Thickness=0.1210526316,选中 Initial Velocity 复选
框并设置其值为 1020.5,Young’s Modulus= 6989.473684。从数据库窗口的模型树可知,定
义了纸张及其约束副。

图 8-66 建立纸张

选择刚创建的 Sheet,右击,在弹出的快捷菜单中选择 Property 命令,在弹出的对话框


中选中 Sheet Curl Radius 复选框并设置其值为-3800,再选中 Hold Down the Noise of Sheet
Contact Forces 复选框,单击“确认”按钮完成修改。

3.建立滚子对

选择 MTT2D>>Roller Pair,在选项区选择(Point,Radius,Direction,Raadius)输入模式,
在输入区依次输入(769.99998,799.99995,0)、13、(3.88260731e-003, -0.9999924627, 0)、
13,建立定轮和动轮滚子对 FixedRollerGroup1 和 MovableRollerGroup1,如图 8-67 所示。
选择 MovableRollerGroup1,按 P 键,在弹出的属性对话框中选择 Movable Roller Group
选项卡,选中 Initial Gap 复选框,并设置其值为 0.4,单击 OK 按钮确认。
364 RecurDyn 多体系统优化仿真技术

图 8-67 建立定轮-动轮滚子对

4.建立PGuide Edge

选择 MTT2D>>PGuide Guide,选择(GuideMotherBody,Point,Radius)输入模式,选择
Ground(MotherBody)、(840.09255, 799.6007, 0)及 2.45,建立 PGuide Edge;以同样方
法,按照表 8-8 所示数据依次建立 11 个 PGuide Edge,如图 8-68 所示。

表 8-8 PGuide Edge 对应关系

Center Point Radius Guide Mother Body


840.09255, 799.6007, 0 2.45 MotherBody
840.0925506, 774.3992056, 0 2.45 UpperBody
829.7499845, 790.4999516, 0 2 MotherBody
829.7325126, 783.4999516, 0 2 MotherBody
860.87418, 791.11008, 0 0.5 MotherBody
862.90861, 784.73536, 0 0.5 MotherBody
868.09998, 786.99995, 0 2.5 LowerBody
877.99998, 796.94995, 5 2.45 UpperBody
877.9999845, 777.0499516, 0 2.45 MotherBody
887.64615, 796.41125, 0 0.1 LowerBody
887.64615, 777.58865, 0 0.1 LowerBody

图 8-68 PGuide Edge


第8章 RecurDyn 行业应用子系统 365

5.建立直导轨GuideLinear

选择 MTT2D>>Linear Guide,选择(GuideMotherBody,Point,Point)模式,按照表 8-9


所示数据依次建立 32 个 Linear Guide(如图 8-69 所示),并确认接触方向 Contact direction
正确。其中选择 Guide Mother Body=MotherBody 时,可以在图形工作窗口空白处单击;当
Guide Mother Body=LowerBody 或 UpperBody 时,可以选择相应的 Body。

表 8-9 Linear Guide

Star Point Second Point Contact direction Guide Mother Body


1 764.58355, 785.49995, 0 518.54422, 785.55032, 0 down MotherBody
2 764.58355, 785.49995, 0 829.73251, 785.49995, 0 up MotherBody
3 829.74998, 788.49995, 0 764.33875, 788.49995, 0 up MotherBody
4 835.61927, 772.98771, 0 838.24351,776.00655, 0 up MotherBody
5 839.92165, 776.84324, 0 877.82908, 779.49398, 0 up MotherBody
6 877.99998, 795.94995, 0 870., 795.94995, 0 up MotherBody
7 877.99998, 796.94995, 0 870., 796.94995, 0 up MotherBody
8 877.99998, 797.94995, 0 870., 797.94995, 0 up MotherBody
9 868.09998, 787.99995, 0 884., 787.99995, 0 up MotherBody
10 868.09998, 786.99995, 0 884., 786.99995, 0 up MotherBody
11 868.09998, 785.99995, 0 884., 785.99995, 0 up MotherBody
12 877.99998, 796.94995, 0 881.51548, 807.54478, 0 up MotherBody
13 879.60733, 778.89899, 0 882.62617, 776.27475, 0 up MotherBody
14 894., 786., 0 910., 786., 0 up MotherBody
15 894., 791., 0 910., 791., 0 up MotherBody
16 894., 796., 0 910., 796., 0 up MotherBody
17 894., 801., 0 910., 801., 0 up MotherBody
18 894., 806., 0 910., 806., 0 up MotherBody
19 877.90372, 782.54751, 0 867.62296, 784.54588, 0 up lowerBody
20 877.90372, 782.54751, 0 887.59998, 777.49995, 0 up lowerBody
21 887.59998, 779.75472, 0 887.59998, 777.49995, 0 up lowerBody
22 867.62296, 789.45402, 0 877.90372, 791.4524, 0 up lowerBody
23 877.90372, 791.4524, 0 887.59998, 796.49995, 0 up lowerBody
24 887.59998, 796.49995, 0 887.59998, 794.24519, 0 up lowerBody
25 839.92165, 797.15667, 0 877.82908, 794.50592, 0 down upperbody
26 879.60733, 795.10091, 0 882.62617, 797.72515, 0 down upperbody
27 836.86604, 780.45484, 0 839.842, 781.93555, 0 Up MotherBody
28 839.842, 781.93555, 0 857.21813, 790.58115, 0 Up MotherBody
29 857.98495, 790.86902, 0 860.7473, 791.59371, 0 Up MotherBody
30 840.45007, 780.03023, 0 837.16653, 779.51328, 0 Up MotherBody
31 859.62207, 783.04862, 0 840.45007, 780.03023, 0 Up MotherBody
32 863.08534, 784.26764, 0 860.41388, 783.25817, 0 Up MotherBody
366 RecurDyn 多体系统优化仿真技术

图 8-69 Linear Guide

6.建立弧状导向GuideArc

选择 MTT2D>>Arc Guide,选择(Point,Point,direction,angle)输入模式,依次输入
(837.08877, 780.00719, 0)、(836.86581, 780.45473, 0)、(0.15552, -0.98783, 0)以及
162.49414,按 Enter 键确认,生成弧状导向;以同样方法,先后选择(858.99998, 786.99995,
0)、(857.21659, 790.58360, 0)、(-0.4454624392, 0.8953006284, 0)及 11.75293,按 Enter
键确认,建立第二条导向弧;再采用相同步骤,先后输入(858.99998, 786.99995, 0)、
(859.62057, 783.04884, 0)、(0.35347, -0.93544, 0)及 11.75293,建立第三条导向弧。导
向弧对应关系如表 8-10 和图 8-70 所示。

表 8-10 Arc Guide

Center Point Direction Angle Radius Contact direction Guide Mother Body
837.08877, 780.00719, 0 0.15552, -0.98783, 0 162.49414 0.5 Up Mother Body
858.99998, 786.99995, 0 -0.44546, 0.89530, 0 11.75293 4.0 Up Mother Body
858.99998, 786.99995, 0 0.35347, -0.93544, 0 11.75293 4. Up Mother Body

图 8-70 Arc Guide

7.定义平动副

选择 Professional>>Joint>>Translational,选择(Body,Body,Point,Direction)输入模式,
先后选择 LowerBody、MotherBody(Ground)、(868.09998, 786.99995, 0)及 y 方向,定
第8章 RecurDyn 行业应用子系统 367

义 TraJoint1;选择 TraJoint1,右击,在弹出的快捷菜单中选择 Rename 命令,将其重命名


为 TraJointLower;同样操作,选择 UpperBody、 (Ground)、(877.99998, 796.94995,
MotherBody
0)及 y 方向,建立平动副 TraJointUpper,如图 8-71 所示。

8.定义驱动

选择固定轮与 MotherBody 之间的转动副 RevJoint1,右击,在弹出的快捷菜单中选择


Property 命令,在弹出的属性对话框中选择 Include Motion,单击 Motion 按钮,选择
Displacement(Time),通过 EL 按钮定义表达式为 78.5*TIME 的 Roller1Velocity 驱动,如
图 8-72 所示,连续单击 OK 按钮确认。

图 8-71 建立平动副 图 8-72 驱动

选择平动副 TraJointLower,右击,在弹出的快捷菜单中选择 Property 命令,在弹出的


属性对话框中选择 Include Motion,单击 Motion 按钮,选择 Displacement(Time),通过
EL 按钮定义表达式为 0.89474*STEP(TIME, 0, 0, 0.01, 1)的驱动。
选择平动副 TraJointUpper,右击,在弹出的快捷菜单中选择 Property 命令,在弹出的
属性对话框中选择 Include Motion,单击 Motion 按钮,选择 Displacement(Time),通过
EL 按钮定义表达式为 0.15789*STEP(TIME, 0, 0, 0.01, 1)的驱动。

9.定义传感器

选择 MTT2D>>Sensor>>Distance,选择(Point,Direction,Distance),输入(894,786,0)、
(0,1,0)及 10,定义距离传感器,如图 8-73 所示。

图 8-73 设置传感器
368 RecurDyn 多体系统优化仿真技术

10.运行动力学分析

选 择 Analysis>>Dynamic/Kinematic Analysis 命 令 , 在 弹 出 的 对 话 框 中 设 置 End


time=0.1,Step=2000,单击 Simulate 按钮运行仿真分析。

11.结果后处理

仿真结束后进入后处理界面,从中可以显示动轮、定轮与纸张的接触力,如图 8-74 所示。

图 8-74 接触力曲线

8.6 发动机建模仿真实例

基于 RecurDyn 的发动机系列工具包所提供的配气机构、曲柄-连杆机构、活塞-连杆机
构等集成工程经验和专家知识的模板化专业工具,可自动逐层建立发动机部件、子系统和
系统等一系列的仿真模型,在开发的早期辨识并解决发动机的设计问题。
RecurDyn 系列化的专业工具包建模思路非常清晰,下面以配气机构为例介绍自动化建
模过程,其他工具包的建模过程类似。
基于 Valve 工具包建立配气机构共包括下列步骤:
(1)选择配气机构类型,安排结构布局。
(2)选择组成部件,建立部件之间关系。
(3)自动设定初始位置。
(4)设定边界条件。
(5)运行仿真分析。
(6)逐步细化模型(柔性体、多质量弹簧……)。
(7)形成子系统模型供发动机集成仿真使用。
具体操作步骤如下:
(1)选择 Toolkits>>Subsystem Toolkit>>Valve ,进入 Valve 子系统编辑模式。
(2)选择 Valve>>Global Data ,在弹出的 Pre Global Data Dialog 对话框中设置发动
机的主轴和从轴方向类型,主轴 Master Axis Type=Z,Slave Axis Type=X;设置从动件的类
型 Follower Type=Direct-acting;设置 Number of Valves=4,Number of Cams=4;单击 Next
按钮,在弹出的提示对话框中单击 OK 按钮确认所有设置(一旦确认之后,将不能改变已
第8章 RecurDyn 行业应用子系统 369

经设置的基本信息),如图 8-75 所示。


打开 Valve Global Data Dialog 对话框,在 Basic Info 栏中显示了预先设置的基本信息,
设置 Number of Cam Shaf Bearings=2,Number of Slide Stopper Walls=1,如图 8-76 所示。
单击 Cam Shaft Layout 按钮,弹出凸轮轴布局结构对话框,如图 8-77 所示,从中可以设置
凸轮轴上各个结构的位置及相位角等。定义好之后单击 Close 按钮,回到 Valve Global Data
Dialog 对话框。单击 Valve System Layout 按钮,弹出气门系统布局对话框,如图 8-78 所示,
从中设定气门系统参数值以满足具体气门系统的需要。完成设置后单击 Close 按钮,返回
Valve Global Data Dialog 对话框。单击 OK 确认后,在图形工作窗口中将出现决定配气机
构布局的特殊参数化 Marker 点,如图 8-79 所示。

图 8-75 设置 Pre-Global 参数 图 8-76 设置 Global 参数

图 8-77 设置凸轮轴参数
370 RecurDyn 多体系统优化仿真技术

图 8-78 设置配气机构布局

图 8-79 特殊参数化点

(3)选择 Valve>>Component Build ,弹出如图 8-80 所示 Valve System Component


Builder Dialog 对话框,从 Components 栏中选择组成部件,从 Connections 栏中选择部件之
间的关系,从 Boundary Conditions 栏中选择边界条件。也可单击最上面的 Select All/Uselect
All 按钮,自动选中所有复选框。在此保持默认设置,取消选中 Boundary Conditions 栏中的
Cam Center 复选框,单击 OK 按钮确认,在弹出的提示对话框中显示过约束自动消除,单
击 OK 按钮确认。此时将自动建立配气机构模型,如图 8-81 所示,包括几何模型和部件之
间的关联。

图 8-80 选择组件及组件间的关系
第8章 RecurDyn 行业应用子系统 371

图 8-81 配气机构模型

(4)选择工具包 Valve>>Auto Positioning ,在弹出的提示对话框中单击 Yes 按钮,


确认自动调整初始位置,如图 8-82 所示。

图 8-82 确认自动调整初始位置

(5)从数据库窗口中选择 BCs>>BCSprocket1,右击,在弹出的快捷菜单中选择
Property 命令,在弹出的属性对话框中保持 BC Type=Displacement(T/R),Domain
Type=Time,取消选择 TX、TY、TZ、RX、RY,保留 RZ 绕 Z 轴的转动边界条件,如图
8-83 所示。

图 8-83 设置边界条件

(6)单击工具栏中的 Analysis 按钮,在弹出的分析设置对话框中设置 End Time=0.1,


Step=100,单击 Simulate 按钮运行仿真。
(7)在成功仿真结束后,单击工具栏中的 Plot Result 按钮进入后处理,将屏幕分为 4
个窗口,如图 8-84 所示。单击左上窗口, 从数据库窗口中选择 Plot>>Bodies>>ValveUpper1>>
372 RecurDyn 多体系统优化仿真技术

Pos_TM 并双击,绘制气门 1 的运动曲线;同样选择 Plot>>Bodies>> ValveUpper3>>Pos_TX


并双击,绘制气门 3 的运动曲线。单击右上窗口,从数据库窗口中选择
Plot>>Bodies>>Lifter1>>Vel_TM 并双击,绘制推杆 1 的速度曲线;选择 Plot>>Bodies>>
Lifter3>>Vel_TM 并双击,绘制推杆 3 的速度曲线。单击左下窗口,从数据库窗口中选择
Plot>>Contact>>Cam2D Line Contact>>Cam_LifterContact2>>FM_ Cam2DLineContact 并双
击,绘制接触力曲线;以同样方法,绘制 FM_CylToCylContact_Valve_LifterContact1 曲线。
单击右下窗口,选择 Animation>>Load Animation,加载动画。通过工具栏中的动画播放按
钮,可以判断运动过程中的接触力、气门位移及推杆速度等信息。

图 8-84 配气机构仿真结果

8.7 小 结

RecurDyn 通过提炼行业产品特点,提供种类丰富的行业工具包,基于行业工具包,可
实现快速、方便的构件产品的仿真模型,同时可以将基于行业工具包所创建的子系统模型,
与其他子系统一起装配成总体系统共同进行分析。
࢒ 9 ᐺ RecurDyn࿸ଐᎁછशᑞ

RecurDyn 提供了强大的设计优化功能,包括灵敏度分析、确定性优化以及稳健性分析,
本章将对这些功能进行简介,并通过具体的实例,介绍基于 RecurDyn 进行优化设计的过程。

9.1 优化分析概述

9.1.1 优化分析技术的发展

工程优化分析以 1960 年施密特在洛杉矶进行多重非线性不等式约束问题工作为起点。


20 世纪七八十年代,设计灵敏度分析方法和基于梯度的近似方法在结构优化中广为使用,
但这些方法仅适用于线性分析。
在试验领域,试验设计用于提高产品的性能。传统的试验设计开始于 1920—1960 年,
费希尔首次采用方差分析验证来分析结果的影响。20 世纪 70 年代中期以来,出现了多种
将传统试验设计和数值优化相结合的技术研究,其中以响应面模型的应用最为广泛。80 年
代后期,引进了贝叶斯型元建模技术以解决经典响应面模型的精度问题,在 CAE 领域出现
了自动克拉格(或 DACE)方法。近年来,比较流行的径向基函数(RBF)方法力图解决
DACE 方法在大模型中的问题。
响应面模型是多项式拟合模型,而贝叶斯模型是一种非多项式插值模型,经典的试验
设计方法(如中心组合设计 CCD、Box-Benhnken 实验 BBD、D-optimal 最佳设计等)无法
满足贝叶斯模型。在 20 世纪 70 年代后期,麦凯和贝克曼首次提出了有效空间采样的拉丁
超立方体方法,开创了优化分析技术的新局面。

9.1.2 优化三要素

优化分析中设计变量、目标函数和约束条件是不可或缺的三大要素。

1.设计变量

所谓设计变量,是指在设计过程中进行选择并最终必须确定的各项独立参数,如构件
的截面积、惯性矩以及钢板的厚度等。通过调整设计变量,可以改进设计方案。设计变量
包括设计变量(设计参量在设计过程中可变化)和预设参数(通常在设计开始时固定)。
374 RecurDyn 多体系统优化仿真技术

2.目标函数

传统的设计旨在寻找仅仅满足功能性或其他要求的可接受的或足够的设计,这些满足
整个设计约束的可接受设计称为可行性设计。通常会有多个可接受设计,而优化的目的就
是寻找最好的可行性设计。因而,必须确定一个从所有可行性设计中通过比较选择最好一
个的准则,该准则通常表示为设计变量的函数,即目标函数。

3.约束条件

在许多实际设计中,设计变量不能任意选择,必须满足一定的功能性或其他要求。通
过约束达到一个可接受的设计,这些约束称为约束条件。表示系统性能限制的约束条件称
为功能约束,表示设计变量物理行为限制的约束称为边约束。

9.2 RecurDyn优化设计功能

RecurDyn/Professional 提供基本的设计研究功能,通过 Desin Study 分析,可以研究单


个设计变量或多个设计变量的影响。
RecurDyn/AutoDesign 是一个集 DOE、元模型技术和数值优化技术为一体的有效自动
化设计优化工具,几乎采用最小的采样点构建初始元模型,在优化过程中,通过自动地提
高元模型的保真度,克服了由于数据不足而引起的数值奇异,从而避免了优化过程的分析
失败。为了方便使用,RecurDyn 可自动地进行选择优化算法、问题规模、多目标算法、鲁
棒性优化算法、6σ 可靠性、试验设计安排以及筛选设计变量。AutoDesign 的功能包括三大
方面:设计研究、设计优化和鲁棒性设计优化。设计过程的选择可参考图 9-1 进行。

YES NO
是否理解设计
系统的物理行为?

*选择有用的设计参数 *选择多个设计参数
*选择有用的分析响应 *选择多个分析响应

*设计优化 设计研究
*鲁棒性设计优化

图 9-1 优化设计过程

RecurDyn 优化设计的基础是参数化建模,参数化模型不用考虑模型内部的关联变动就
可以方便、快速地获得更新设计的仿真。参数化包括参数化点、参数化值(参数化变量属
性)、复杂的参数表达式等。参数化点可以表达几何形体、约束位置、驱动位置等,一旦
参数化点改变,与之相联的各个对象将随之自动修改;参数化值可用于定义各种属性,如
刚度、质量、长度、驱动等,改变参数化值,将获得参数化表示的属性的自动更新;参数
表达式可以表达复杂的对象间的关系。
第9章 RecurDyn 设计优化仿真 375

RecurDyn/AutoDesign 是一个多学科优化工具,可以进行包括机构、结构及控制联合仿
真模型的优化。

9.2.1 设计研究(Design Study)

很显然,对于设计变量不同的取值,系统的相应性能往往不同。设计变量在条件允许
取值范围内变化会导致系统性能怎么样的变化是设计研究要考虑的内容。进行 Design Study
设计研究的目的是想知道设计变量的变化对系统性能的影响、设计变量的最佳取值以及系
统性能对设计变量变化的敏感程度。试验设计(DOE)是设计研究的重要内容,它是一种
安排试验和分析试验数据的数理统计方法,主要是对试验进行合理安排,以较小的试验规
模(试验次数)、较短的试验周期和较低的试验成本,获得理想的试验结果以及得出科学的
结论。通过试验设计,能够考虑在多个设计变量同时发生变化时,各个变量对系统目标性
能的影响。试验设计过程包括设计矩阵的建立和试验结果的统计。
RecurDyn 的设计研究包含灵敏度分析及设计变量筛选,提供各种成熟的试验设计方
法,如全析因设计及三水平正交设计等。

9.2.2 设计优化(Design Optimization)

设计优化是指在设计变量满足约束条件时使目标函数获得最值的过程。在优化分析过
程中,需要设定设计变量的可变范围,并通过约束条件加以限制,保证最优设计满足设计
条件的制约。优化分析过程是在满足各种设计条件和在规定的范围内,通过自动选择设计
标量,从而获得目标函数最值的过程。
RecurDyn 的设计优化功能包含各种先进的单、多目标优化方法,能够方便地找出在各
种约束条件下的最佳设计组合方案。

9.2.3 鲁棒性设计优化(Robust Design Optimization)

RecurDyn 的鲁棒性设计优化提供面向 6σ(读作六西格玛)的可靠性(DFSS)及稳健


性设计分析。用试验设计提高产品稳健性、可靠性,通过稳健性设计分析,可以揭示设计
系统对各影响干扰因素的抵抗能力、系统性能对于设计变量的变化以及预设参数的敏感度。
鲁棒性设计优化寻找随机设计变量的均值以极小化分析响应的变化,从而满足响应均
值的设计约束。有两种类型的随机参数,即随机设计变量和随机常数。随机常数(亦称为
噪声因子)是固定值,但是其偏差影响分析响应的变化;随机设计变量在优化过程中是可
变量,其偏差是常数但影响分析响应的变化。
图 9-2 显示了一个典型的鲁棒性设计优化,通过 6σ 不等式约束,可以保证最优的设计
在随机设计变量中有 0.0000001%的可能性超出约束限制。正如统计分析一样,鲁棒性设计
优化分析需要多次分析,因而合理地减少分析数量非常重要。AutoDesign 可以通过决策合
理地极小化分析数量。
376 RecurDyn 多体系统优化仿真技术

图 9-2 鲁棒性设计优化

9.2.4 RecurDyn的试验设计方法

在 DOE 中,试验因素(Factor,简称因素或因子)是试验的设计者希望考察的试验条
件,因素的具体取值为水平(Level)。根据试验因素的数目可分为单因素优化试验和多因
素优化试验。衡量试验结果好坏程度的指标称为性能指标或响应变量(Response Variable)。
通常的 DOE 包括 5 个基本步骤:首先确定试验的目的,然后选择因素集,接下来确定
因素的水平,之后进行试验并记录每次的试验结果,最后分析因素对目标性能的影响。当
前的 DOE 被分为两大类,第一类是传统的 DOE 技术,考虑模型行为的固有随机性,通常
适用于固有测量误差的物理试验;第二类指空间填充,尤其适用于确定性的计算机仿真,
如拉丁方、正交矩阵、最大熵等。
RecurDyn 在设计研究过程中自动执行 DOE 过程,自动建立设计矩阵,并填充设计空
间,根据各种给定的设计变量组合形式,评价其性能指标。
在 RecurDyn 中效果分析(Effect Analysis)的 DOE 方法包括:
 Extended Plackett-Burman Design:可以产生混合水平设计(2-, 3-, 4-水平) 。
 3-level Orthogonal Array Design:3 水平正交矩阵设计,从 2~1000 因素中生成 3 水
平正交矩阵。
 Level-Balanced Descriptive Design:水平平衡描述设计,对于大规模问题可以产生
Strength-1 正交矩阵。尽管不如 Strength-2 正交矩阵,但对于大规模问题非常有效。
例如,对于 10 个水平 20 个因素,仅仅产生 200 个抽样。
 Full Factorial Design:全因子设计,经典的 DOE 方法,仅适用于小模型。
 2-level Orthogonal Array Design:2 水平正交矩阵设计,可从 2~1023 因素中产生 2
水平正交矩阵。
 Bose’s orthogonal Array Design:可以产生正交表,如 OA(q2,q+1,q,2),其中 q 是一
个素数(2, 3, 5, 7, 11, 13, 17 …)。在正交矩阵 OA(n, k, q, t)中,n、k、q 及 t 分别表
示矩阵行数、列数、各列因素中最大取值以及相互关系数。
在 RecurDyn 中用于元模型的 DOE 方法如图 9-3 所示,分别介绍如下。
 Face Centered Central Composite Design:FC 中心复合设计(CCD),是一种经典
第9章 RecurDyn 设计优化仿真 377

的 2 次响应面模型方法。
 Box and Behnken Design:BBD 法,经典 2 次响应面模型方法,比中心复合设计法
高效。
 Generalized Small Composite Design:GSCD 法,自动产生 DOE 表的方法,比中心
复合设计高效,但在大模型中不推荐使用。
 Incomplete Small Composite Design-I and -II:ISCD-1、ISCD-2 法能缩小取样数,推
荐在大模型中采用。
 Discrete Latin Hypercube Design:离散拉丁方设计,DLHD 法,是一种高效的空间
填充方法。

图 9-3 元模型的 DOE 方法

元模型的初始 DOE 选择可参考图 9-4 所示的原则。

NO
目前设计是否接近设计区间中心?

YES 推荐离散拉丁超立方

是否包括固定类型变量?
YES
NO
YES
是否 6σ 稳健性设计? 推荐 ISCD-1

NO
推荐 ISCD-2

图 9-4 元模型初始 DOE 选择基本原则

9.2.5 元模型

数值优化算法在收敛前需要许多计算,因而大多数有效的优化算法使用序列近似(如
泰勒级数)方法,用线性或二次函数代替精确的响应,即通过这些近似函数序列求解优化
问题。该方法仅适用于线性结构优化领域,对于多体领域或其他非线性问题则无能为力。
RecurDyn 采用元模型技术进行优化分析,元模型是近似模型的通称。图 9-5 说明了构建元
模型的过程。
378 RecurDyn 多体系统优化仿真技术

图 9-5 构建元模型的过程

元模型是减少计算成本的近似仿真技术。典型的近似技术包括两个阶段:第一阶段是
试验设计(DOE),该过程在设计空间中取样选择;第二阶段是构建元模型,对来自试验
设计的响应进行评价,建立适当精确的近似。
RecuRdyn 的元模型方法包括协同克拉格法、径向基函数法、保守响应面法以及多项式
函数法。图 9-6 说明了元模型的选择方法。
 协同克拉格法(Simultaneous Kriging Method):即使有多个响应近似,该方法每
次也仅仅求解子优化问题,因而称做协同克拉格法,是一种非常精确的元模型
技术。
 径向基函数法(Radial Basis Function Method):支持两类径向基函数,包括 MQ
径向基函数(multi-quadratics)和高斯函数。如果抽样大于 100,推荐使用 MQ
函数。
 保守响应面法(Conservative RSM):该方法生成高估和低估响应面模型,在求解
噪声函数的优化问题时非常高效。
 多项式函数法(Polynomial Functions):提供 6 类多项式,如常数、线性、对角二
次、完全二次、对角三次以及混合线性模型。在优化过程中,这些多项式类型可
自动转换。

拉丁超立方设计 ISCD-1,ISCD-2

多面 RBF

YES
是否收敛? 结束

NO
检测设计算法
来自仿真历程
协同克拉格方法

图 9-6 元模型的选择方法
第9章 RecurDyn 设计优化仿真 379

9.2.6 RecurDyn的数值优化方法

RecurDyn 提供的数值优化方法包括:
 增广拉格朗日乘子方法(Augmented Lagrange Multiplier Method):该方法是一种
著名的优化算法,尤其是针对大规模设计问题。
 BFGS 拟牛顿法(BFGS (Quasi-Newton) Method):该方法适用于小规模问题。
 HS 共轭梯度法(Hestenes-Stiefel (Conjugate Gradient) Method):比 BFGS 拟牛顿
法更为有效,解决大规模问题需要计算 23 个梯度和 85 个方程。
 变阶多项式近似法(Variable-order Polynomial Approximation Method):有效的一
维搜索方法,在搜索过程中,采用平均 3.5 函数计算。
 权重最小-最大法(Weighted Min-Max Formulation):尽管有多种方法可以将多目
标转化为等效的单目标,如权重函数、距离函数以及最小-最大法等,但只有最小-
最大法能够保证唯一解。

9.3 基于RecurDyn/Professional进行设计优化

在 RecurDyn/Professional 中可以通过 Design Study 分析几个设计变量之间的相对贡献。


首先,要定义设计变量以及设计指标。当进行一系列的仿真之后,对于每一设计变量,均
可以得到相应仿真结果。这种 Design Study 可以对单个设计变量进行参数化研究,也可以
进行针对多个设计变量的试验设计。
如果是单个设计变量,只可选择参数化研究,此时只需设置水平数(Number of Levels)
即可;若是多个设计变量,则可进行试验研究(DOE),需要选择 DOE 技术(包括全析因
试验设计和 plackett-Burman 试验设计)或直接输入试验规划矩阵。

9.3.1 进行参数化研究的步骤

(1)建立好参数化模型之后,选择 Analysis>>Design Study 命令,在弹出的对话框中


输入仿真参数,然后单击 OK 按钮确认,如图 9-7 所示。
(2)在弹出的对话框中选择 Design Study 选项卡,在 Design Variablesles 栏中单击
Add 按钮以增加设计变量;在弹出的 Design Variable List 对话框中,单击 Create 按钮(如果
事先已经创建好设计变量列表,可直接选取,单击 OK 按钮即可进入步骤(4)),如图 9-8
所示。
(3)在弹出的 Design Variable 对话框中,在 Name 文本框中为设计变量命名,然后单
击 PV 按钮;弹出 Parametric Values List 对话框,选择所需要的参数值,然后单击 OK 按钮;
返回 Design Variable 对话框,设置 Value Range 以及相应的数值,然后单击 OK 按钮,完
380 RecurDyn 多体系统优化仿真技术

成一次设计变量的定义。若定义多个设计变量,可重复该步操作。设计变量定义好之后,
选取并单击 OK 按钮,在 Design Study 对话框中的 Design Variables 栏中将显示已经定义好
的 DV。

图 9-7 打开 Design Study 对话框并输入仿真参数

图 9-8 定义设计变量
第9章 RecurDyn 设计优化仿真 381

图 9-8 定义设计变量(续)

(4)在 Design Study 对话框中,单击 Performance Indexes 栏中的 Add 按钮以增加性能


指标;在弹出的 Performance Index List 对话框中,单击 Add 按钮(如果事先已经创建好性
能指标列表,可直接选取,单击 OK 按钮即可进入步骤(5)),在新增加的性能指标行中,
从 Type 列的下拉列表中选择性能指标的类型,通过 Expression 列中的 EL 按钮选择作为性
能指标的表达式,设置时间周期及起止时间,然后选择性能指标,并单击 OK 按钮确认,
如图 9-9 所示。

图 9-9 定义性能指标

(5)根据设计变量的数目,设置水平数或 DOE 方法;并单击 Simulate 按钮进行设计


研究仿真。

提示:在有多个设计变量的情况下,当选择直接输入 Direct Input 时,将出现设计矩阵


Design Matrix 按钮,如图 9-10 所示。Design Matrix 中的每一行代表一次试验。
此行中的每个数字代表一个设计变量的水平,按照设计变量在列表中的顺序排
列。数字从 0 开始,例如水平定为 3,那么 0、1、2 分别代表某个设计变量从低
到高的试验水平。
382 RecurDyn 多体系统优化仿真技术

图 9-10 直接输入设计矩阵

9.3.2 设计研究的结果

仿真分析完成后,可以将试验设计的结果以表格和图形的形式显示出来。如图 9-11 所
示,性能指标的值可以在性能指标的输出文件(*.rpi)中看到。

图 9-11 RecurDyn 的.rpi 文件

如图 9-12 所示,在分析结果的 Result Sheet 中,提供了试验次数、设计变量以及性能


指标的数值,并可以在下方各栏中单击 Plot 按钮画出曲线表示。其中,在 Design Variables
栏中单击 Plot 按钮可以绘制设计变量图,在 Performance Indexes 栏中单击 Plot 按钮可以绘
制性能指标图,在 Multi-variate 栏中单击 Plot 按钮可以绘制多个变量的图表。

图 9-12 优化分析结果
第9章 RecurDyn 设计优化仿真 383

图 9-12 优化分析结果(续)

9.3.3 What-if-Study假设分析

What-if-Study 是在求得基本模型的最优解之后进行的,其目的是分析模型参数的变动
(包括目标函数系数的变动、约束函数系数的变动以及约束边界值的变动)会给当前最优
解和最优值带来什么影响。RecurDyn 的 What-if-Study 用性能指标创建一个包含目标函数和
约束条件的设计问题,当设计指标最小时,将是最优的设计。
Design Index 设计指标:
当设计问题定义为 Min F1 及 Max F2,约束条件为 R1≥C1,R2≤C2 时,设计指标的
计算方法为:
m
Design Index   ( x)  r  max( g , ( x), 0)
j 1

其中,
  F1   F2 max  F2 min  
 ( x)  max  w1   , w2    ,  wi  1
  F1max  F1min   F2  
g1 ( x)   C1 / R1   1
g 2 ( x)   R2 / C2   1

9.4 基于Professional进行优化实例

本节例题是在 5.3 节弹球接触碰撞参数化仿真实例的基础上,完成优化分析。


设计变量压缩弹簧自由长度可选区间为 45~60mm,以球 2 在水平方向的行程为性能指
标,通过设计研究确定弹簧自由长度的最佳值。
启动 RecurDyn,选择 File>>Open 命令,选择前面章节所创建的 Pinball.rdyn 文件。
选择 File>>Save As 命令,另存为 Pinball_designstudy.rdyn。
384 RecurDyn 多体系统优化仿真技术

9.4.1 定义设计变量—弹簧自由长度

如图 9-13 所示,选择 Analysis>>Design Study 命令,在弹出的 Design Study 对话框中


单击 Design Variables 栏中的 Add 按钮;在弹出的 Design Variable List 对话框中单击 Create
按钮,打开 Design Variable 对话框;设置 Name=DV_Spring_Lo,单击 Value 右侧的 PV 按
钮;在弹出的 Parametric Value List 对话框中,选择之前已经创建的 PV1,单击 OK 按钮确
认;返回 Design Varabile 对话框后,设置 Value Range=Absolute Min And Max Value,设置
Min Value=45,Max Value=60;连续单击 OK 按钮确认,完成以弹簧自由长度作为设计变
量的定义。

图 9-13 定义设计变量

9.4.2 定义性能指标

如图 9-14 所示,单击 Performance Indexes 栏中的 Add 按钮;在弹出的 Performance Index


List 对话框中单击 Add 按钮,在新增加的性能指标行中,单击 EL 按钮;在弹出的 Expression
List 对话框中单击 Create 按钮;在弹出的 Expression 对话框中设置 Name=Exp_Ball2_PosX,
在 Argument List 栏中单击 Add 按钮,从数据库窗口中选择 Ball_2/Markers/CM,将之拖入
到 ID=1 所对应的 Entity 栏(或直接在变量列表中输入 Ball2.CM),在表达式输入文本框
中输入 DX(1),单击 OK 按钮;在弹出的 Expression List 对话框中单击 OK 按钮;返回
Performance Index List 对话框,设置 Type=Max_value,双击 Name 栏,将 Name 改为
Ball2_Travel,单击 OK 按钮,完成性能指标定义。
第9章 RecurDyn 设计优化仿真 385

图 9-14 定义性能指标

9.4.3 运行优化分析

在 Design Study 对话框中设置水平数 Number of Levels=16,然后单击 Simulate 按钮运


行仿真。
程序自动进行设计研究,完成之后,单击 Design Study 对话框中的 Result Sheet 按钮,
打开 Result Sheet 对话框,可以看出弹簧自由长度=58mm 时对应球 2 的位移最大。如图 9-15
所示,在 Performance Indexes 栏中选择 Ball_2_Travel,单击 Plot 按钮,将显示性能指标
Ball2_Travle 的变化。
选择 File>>Improt 命令,将文件类型设置为*.rad,双击 Pinball_designstudy14. rad,导
入弹簧自由长度为 58mm 所对应的仿真结果,单击工具栏中的动画播放按钮进行查看。
386 RecurDyn 多体系统优化仿真技术

图 9-15 优化结果显示

9.5 RecurDyn/AutoDesign功能简介

RecurDyn/AutoDesign 提供了设计研究(Design Study)、设计优化(Design Optimization)


以及鲁棒性设计优化(Robust Design Optimization)等强大的优化设计功能。
 基于 Design Study 研究各设计变量对设计目标的影响,包括研究设计变量和分析响
应(AR)间的关系以及各个 AR 间的相关性,即 Effect Analysis、Correlation Analysis;
进行设计变量筛选,选择对指标指数影响大的量作为确定性优化的设计变量,即
DV Screening。
 基于 Design Optimization 可找出在各种约束条件下最佳的设计组合方案,使用户从
重复性劳动中解脱出来,把重复的仿真分析交给计算机来完成——提供基于元模
型的优化方法,提供 6 种构建元模型的 DOE 方法,同时支持包含 7 个多项式函数
的 4 类元模型方法。
 Robust Design Optimization 包括面向 6σ 的可靠性(DFSS)以及稳健性设计,用于
研究系统中各因素对干扰的抵抗能力。

9.5.1 RecurDyn/AutoDesign优化分析流程

在确定了优化目标和优化对象之后,进行优化分析必不可少的步骤如下。
(1)设定参数化值 PV。
(2)定义设计变量 DV 及其取值范围。
第9章 RecurDyn 设计优化仿真 387

(3)定义性能指标 PI。
(4)进行优化分析(根据分析目的,选择具体类型)。
其中定义参数化值是整个优化分析过程的基础,设计变量必须是参数化值;性能指标
用于定义约束条件和目标函数。在基于 RecurDyn/AutoDesign 进行任何类型的分析之前,必
须保证完成设计变量和性能指标的定义。

9.5.2 定义设计变量

在定义设计变量之前,必须保证模型中作为设计变量的参量已经以参数化值的形式表
示。如果作为设计变量的项没有以参数化形式表达,则需要进行下面的步骤。
选择 Subentity>>Parametric Value 命令,在弹出的 Parametric Value List 对话框中单击
Add 按钮增加变量,通过 E 按钮设置变量初值,命名设计变量。
参数化值表示就是将需要优化的设计对象参数化,可以是刚度、初速度、质量、长度
等,如图 9-16 所示。在 RecurDyn 中但凡以 PV 存在的项,都可作为设计变量。为了达到
设计目标而需要进行优化的变量即为设计变量。

图 9-16 参数化表示设计变量

设计变量可以是刚体的参量,亦可以针对有限元节点。在关联设计变量时,有 5 种选
项,如表 9-1 所示。
388 RecurDyn 多体系统优化仿真技术

表 9-1 设计变量关联选项

选 项 含 义
Direct Relation 直接定义设计变量和参数化值的关系
FEShape1:Translation Relation 节点集初始位置平移关系
FEShape2:Cylindrical Distance 节点集初始位置沿柱坐标的径向平移
FEShape3:Spherical Distance 节点集初始位置沿球坐标的径向平移
FEShape4:Angular Relation 每一节点新位置通过转动轴及转动角定义

如图 9-17 所示,从 RecurDyn 的 InterDisciplinary/AutoDesign 工具包中单击 Design


Parameter 按钮,打开 Design Parameter List 对话框(以 Direct Relatioan 为例,介绍后面
步骤),单击 Create 按钮,在弹出的 Direct Relation 对话框中把设计变量和已建立好的
参数化值联系起来,并设定 Lower Bound/Upper Bound 作为优化迭代时设计变量变化的上
下界。

图 9-17 定义设计变量

9.5.3 定义性能指标

性能指标(Performance Index, PI)是优化设计中的目标函数和约束条件,以分析响应


(Analysis Response,AR)形式表示,如图 9-18 所示。因此,在定义 PI 的过程中,必须
要定义 AR。AR 可以是分析结果的函数,需要通过 RecurDyn 表达式表达。可通过终值(End
Value)、均值(Average Value)、均方根值(RMS)、最大值(Max Value)、最小值(Min
Value)、最大绝对值(Absolute Max Value)以及最小绝对值(Absolute Min Value)等处
理方式将与时间相关的响应转化为标量值。
第9章 RecurDyn 设计优化仿真 389

图 9-18 分析响应

性能指标可以是基本类型或有限元结果类型。有限元结果可以是节点集或单元集的应
力,也可以是单元集的质量。 PI 的创建步骤为:如图 9-19 所示,从 RecurDyn 的
InterDisciplinary/AutoDesign 工具包中单击 Analysis Response 按钮;在弹出的 Analysis
Response List 对话框中单击 Create 按钮;在弹出的 Analysis Response(以 Basic 为例介绍)
对话框中,设定 AR 名称、表达式、取值方式以及方便辨识的 AR 描述等,然后单击 OK
按钮,返回 Analysis Response List 对话框后,从定义好的 AR 中,勾选 PI 选项,然后单击
OK 按钮确认,完成 PI 定义。

图 9-19 定义性能指标

9.5.4 进行设计研究

选择 InterDisciplinary>>AutoDesign>>Design Study,在弹出的 Design Study 对话框中提


供了多个选项卡,其功能分别介绍如下。
 Design Variable:显示已经定义的设计变量,并设置 DOE 方法和试验水平数。
 Performance Index:显示已经定义的分析响应。
 Simulation Control:仿真控制设定。
 Effect Analysis:对仿真结果进行影响分析。
390 RecurDyn 多体系统优化仿真技术

 Screening Variables:根据分析结果进行变量筛选。
 Correlation Analysis:分析响应的相关性分析。

1.Effect Analysis(影响分析)

如图 9-20 所示,影响分析用于了解设计变量各水平对性能指标的影响,包括影响分析
和方差分析图。

图 9-20 影响分析

2.Screening Variables(设计变量筛选)

设计变量筛选对于缩减设计改变成本具有重要的作用。例如,一种情况是定义了 20
个设计变量,通过改变所有设计变量找到了更好的设计方案,而另一种情况是通过仅仅改
变 3~5 个变量获得几乎同样效果的设计提高,无疑后者将是更多人喜欢的。设计变量筛选
就是从所有设计变量中筛选出对某一分析响应比较有效的设计变量。
AutoDesign 为设计变量筛选提供了统计向导。如图 9-21 所示,散点表示每一设计变
量;横坐标表示有效性的幅值;通过拖动 Chart Control 可设定变量筛选的控制;通过 Number
of Screening DV 可实现设计变量筛选,并可显示出有效的设计变量;单击 Save 按钮,可在
更新模型中自动设置设计变量。
第9章 RecurDyn 设计优化仿真 391

图 9-21 设计变量筛选

3.Correlation Analysis(相关性分析)

通过选择以横轴和纵轴表示的两个分析变量,显示分析变量之间的相关性。

9.5.5 进行优化分析

选择 InterDisciplinary>>AutoDesign>>Design Optimization,进入确定性设计优化对话
框,其中提供了多个选项卡。
其中,Design Variable 和 Performance Index 选项卡与设计研究相关内容完全相同;DOE
Meta Modeling Methods 选项卡用于设置 DOE 方法、元模型方法及多项式函数;在
Optimization Control 选项卡中,设置收敛误差和仿真类型,并控制是否执行仿真;通过
Result Sheet 和 Summary Sheet 选项卡,可以查看优化分析的结果。
对于多目标优化问题,分别赋予每个目标不同的权重以指定其重要程度。

9.5.6 进行鲁棒性优化分析

鲁棒性分析区别于确定性设计优化之处是它考虑优化成分的可变性。例如,如果制造
条件引起设计变量的变化性,可以测量该变化性并输入标准偏差,进行鲁棒设计优化,优
化结果将报告系统性能的可变性。
鲁棒性优化分析的设置与确定性设计优化基本类似,不过也有不同之处。一是在优化
控制对话框中鲁棒性设计优化分析需要设置 DFSS/Robust 设计控制内容; 另外就是在 Result
Sheet 选项卡中,鲁棒性设计优化显示标准偏差 STD 和鲁棒性指标。
Summary Sheet(结果概要)选项卡中显示设计变量和分析响应的优化值,同时列出了
优化算法。
392 RecurDyn 多体系统优化仿真技术

9.6 弹射机构优化分析实例

从 RecurDyn 安装目录\Help\Manual\Tutorials\InterDisciplinary\AutoDesign\Examples 中
找到 Sample_B.rdyn 文件,复制至工作目录,并用 RecurDyn 打开文件。
如图 9-22 所示,弹射机构架固定于大地上,前连杆一端通过球铰与弹射臂连接,另一
端通过转动副与机架连接,在机架和前连杆之间有弹簧力作用;后连杆一端通过转动副与
弹射臂连接,另一端通过转动副与机架连接;在弹簧力的作用下,弹射臂弹出并赋予弹射
臂导轨中的球以一定速度抛出,限位柱限制弹射臂继续转动。如果设计成功,球将顺利地
穿过目标孔。

目标

限位柱

前连杆

弹射机构

弹射臂 弹簧

后连杆
错误!

图 9-22 弹射机构

在弹射机构的设计过程中存在如下问题:如何使得弹射机构弹出的球顺利地穿过圆柱
目标孔?
在该机构的设计中,选择可控的模型因素作为设计变量。根据分析可控的设计条件,
确定设计变量为前连杆长度、弹簧刚度、前连杆角(前连杆中 2 个转动中心连线与水平方
向的夹角)以及弹簧的安装位置(弹簧安装位置是弹簧安装点和前转轴之间的距离,表达
为占整个连杆长度的比例),如表 9-2 所示。
为了度量球是否顺利通过目标孔,需要研究球通过目标位置的速度和位置误差。在
RecurDyn 中通过变量方程表达式表示。通过控制这些参数使得球不仅能到达目标口,而且
可以控制进攻角误差以允许球顺利进入孔中。为了简化起见,在球和大地之间增加 Inplane
铰以消除球在 z 向的平面外移动,使得研究的主要关注点集中于球在 x 和 y 方向的移动。
第9章 RecurDyn 设计优化仿真 393

表 9-2 设计变量

PV Name 含 义
PV_frontLinkLength 前连杆长度
PV_springCoefficient 弹簧刚度
PV_frontLinkAngle 前连杆角
PV_springMountHeight 弹簧安装位置

如图 9-23 所示,以目标参考系为基准,测量球的位置和速度。为了评估球的角度误差,
当球通过目标平面时测量球 y 方向的速度,一个小的 y 向速度显示小的角度误差。为了评
估球的位置误差,测量球通过目标平面时其与目标之间的 y 向距离。此外,使用第三个量,
以测量球最接近目标的位置误差。

图 9-23 弹射机构优化目标及约束条件

在优化设计时,需要定义目标函数和约束条件。在该设计模型中,有 3 个性能指标,
指定 y 向速度误差小于 5mm/s,y 向位置误差必须小于 5mm。从理论上讲,这些值应等于
0。这些极限值取决于数值求解。
为了详细介绍优化分析过程,有关机构的动力学模型建立过程在此不再赘述。在已有
的正确参数化动力学分析模型基础上,需要经历下述仿真优化过程。
(1)定义设计变量。
(2)定义性能指标。
(3)优化设置并运行优化。
394 RecurDyn 多体系统优化仿真技术

(4)获得优化后的模型并运行分析。
选择 Tools>>Settings>>Model Settings 命令,在弹出的对话框中选择 Options1 选项卡,
设置 Digit for Number Display=10(影响优化精度的数值设置),如图 9-24 所示。

图 9-24 数值精度设置

选 择 Subentity>>Parametric Value 命令 , 在弹 出的 如 图 9-25 所 示对 话框 中 检 查


Parametric Values 中的参数化值是否满足 PV_frontLinkLength=280,PV_springCoefficient=
6.5,PV_frontLinkAngle = -25,PV_springMountHeight = 0.5。

图 9-25 参数化值列表

手动删除模型中已经定义好的设计变量和性能指标,通过上下拖动滚动条从数据库窗
口中删除。在数据库窗口中选择 Database>>Model1>>DP DesignParameter 和 Database>>
Model1>>AR AnalysisResponse 的所有内容,按 Delete 键。

1.定义设计变量:前连杆角和弹簧安装位置

如图 9-26 所示,在 AutoDesign 工具包中单击 Design Parameter 按钮,弹出 Design


Parameter List 对话框;选择 Direct Relation,单击 Creat 按钮,创建新的设计参数;在
弹出的对话框中,将 DP1 的名称改为 DP_frontLinkAngle,单击 Pv 按钮;在弹出的对
话框中,选择 Pv_frontLinkAngle,单击 OK 按钮完成选择;回到 Direct Relation 对话框
中,定义上限为 -10,下限为 -40,在 Description 文本框中输入 Front link angle,单击 OK
按钮。
第9章 RecurDyn 设计优化仿真 395

图 9-26 定义设计变量

重复上面的步骤,定义设计变量 DP_springMountHeight。在输入时采用下列参数:
 名称:DP_springMountHeight。
 参数值:PV_springMountHeight。
 下限值:0.4;上限值:0.6。
 Description:Spring mount height。
返回 Design Parameter List 对话框中,将刚刚创建好的两个设计变量中的 DV 列选中,
单击 OK 按钮,完成设计参数的设置。

2.定义性能指标

在定义性能指标之前,需要定义变量方程 Ex_yVelocityError_t、Ex_yPositionError_t 及
表达式 Ex_positionError。将 3 个性能指标以表达式的形式表示出来。
按照图 9-27~图 9-29 所示,选择 AutoDesign>>Analysis Response,在弹出的 Analysis
Response List 对话框中单击 Creat 按钮,创建新的 Analysis Response;在弹出的 Analysis
396 RecurDyn 多体系统优化仿真技术

Response-Basic 对话框中将 AR1 改为 AR_yVelocityError_t ,单击 EL 按钮;在弹出的


Expression List 对话框中选择 Ex_yVelocityError_t,单击 OK 按钮返回 Analysis Response-
Basic 对话框,在 Treatment 下拉列表中选择 End Value,在 Description 文本框输入 Vertical
velocity error w.r.t. target,单击 OK 按钮确认。

图 9-27 变量方程

图 9-28 位置误差表达式

图 9-29 定义分析响应

按照同样的步骤,创建另外两个分析响应,参数如表 9-3 所示。


第9章 RecurDyn 设计优化仿真 397

表 9-3 分析响应参数设置

Name AR_yPositionError_t AR_positionError


Result Output Ex_yPositionError_t Ex_positionError
Treatment End Value Min Value
Description Vertical position error w.r.t. target. Positional error (magnitude)

定义好分析响应之后,在 Analysis Response List 对话框中选中 3 个分析响应的 PI 列,


然后单击 OK 按钮确认,如图 9-30 所示。

图 9-30 分析响应列表

3.运行优化设计

选 择 AutoDesign>>Design Optimization , 在 弹 出 的 如 图 9-31 所 示 对 话 框 中 选 择


Performance Index 选项卡,连续单击 Add 按钮 3 次,设置参数如表 9-4 所示。

图 9-31 性能指标

表 9-4 性能指标参数设置

Performance Definition Goal Weight/Limit Value


AR_yVelocityError_t Constraint EQ 0
AR_yPositionError_t Constraint EQ 0
AR_positionError Objective MIN 1
398 RecurDyn 多体系统优化仿真技术

在 DOE Meta Modeling Methods 选项卡(如图 9-32 所示)中,选中 Auto Selection 复选


框,在 Efficient Method 栏中选中 Incomplete Small Composite Design-2 单选按钮,在 Meta
Modeling Method 栏中选中 Radial Basis Functions Model (Multi-Quadratic)单选按钮,在
Polynomial Function 栏中选中 Auto 单选按钮,单击 R 按钮,确定试验数。

图 9-32 DOE 方法

如图 9-33 所示,选择 Optimization Control 选项卡,设置 Equality Constraints=5;单击


Ananlysis Setting 按钮,在弹出的对话框中设置 Step=3300;单击 Execution 按钮,在弹出的
Execution 对话框中查看各项是否正确,在确定后单击 OK 按钮,程序开始优化求解。

图 9-33 优化控制设置
第9章 RecurDyn 设计优化仿真 399

优化流程:当执行优化时,首先执行 DOE,在该过程中将设计空间分为几个点,对于
给定的设计变量的各种组合,评价其性能指标。DOE 之后,AutoDesign 根据这些点拟合出
一个分析面,称为元模型。AutoDesign 采用这个元模型,在设计空间内通过搜索优化解确
定最佳点。然后,对所选的优化点分析其精确解。如果这个新的设计不满足收敛准则,分
析结果和设计点将增加到原始的 DOE 表中,并重新构造元模型,再次进行优化。这个优化
过程称为 SAOM,即具有元模型的有序近似优化。可通过增加时间步数缩减数值误差。

4.查看优化设计结果并获得优化模型

选择 Result Sheet 选项卡,查看优化结果;选择 Summary Sheet 选项卡,查看详细信息,


如图 9-34 所示。

图 9-34 结果概要

从 Result Sheet 选项卡中可以看出优化迭代的性能指标。通过滚动查看,可知最后的 y


向速度误差为 0.8010mm/s ,最终 Y 向位置误差为 0.8861mm。同时,最终位置误差为
1.5306mm。优化经历了 13 次迭代获得收敛结果。对于 SAO12 的设计值等于 SAO11 相应
项。因而,AutoDesign 对于 SAO12(在 Simulation History 中仅描述为复制量)不进行动力
学分析。
选择 AutoDesign>> Simulation History,如图 9-35 所示,利用滚动条在弹出窗口 Plot
列中选中需要考察分析响应之间关系的行,选择 Plot Factor=AR,单击 Plot 按钮绘制各水
平对分析响应的影响图。需要将所选优化方案的设计变量更新为仿真模型的相应参量时,
选中方案对应的 Update 列,在 Update Model 栏中选中 Current Model 单选按钮,单击其右
侧的 Update 按钮,再单击 OK 按钮确认。
在 RecurDyn 主界面中,选择 Subentity>>Parametric Values 命令,将看到更新后的参数
值。如图 9-36 所示,在数据库窗口中右击 SphereToSurfac_ballToTarget,在弹出的快捷菜
单中取消选择 Inactive 命令,恢复接触效应。单击工具栏中的 Analysis 按钮 ,在弹出的
对话框中取消选中 Output File Name 复选框,单击 Simulate 按钮开始仿真。
400 RecurDyn 多体系统优化仿真技术

图 9-35 仿真历程

图 9-36 优化模型的仿真结果

从结果可知,优化后的模型满足设计目标。

9.7 机械-控制联合系统优化实例

下面以飞机起落架(如图 9-37 所示)收缩过程为例,通过确定性优化分析,寻找控制


起落架支柱的控制器最优增益值。
通过 PID 控制系统控制飞机起落架支柱的驱动力,控制的目标是让降落轮移动至起落
舱中,并在 2s 内达到稳定。机械系统的输入是控制系统的输出,机械系统的输出是控制系
第9章 RecurDyn 设计优化仿真 401

统的输入。在模型中,机械系统的输入是起落架支柱的轴向力,输出是降落轮中心和目标
位置沿垂向的相对位置和相对速度。

图 9-37 起落架模型

通过 RecurDyn 自带的控制建模求解器 Colink,连接 RecurDyn 机械系统,增益值通过


参数化值定义,由 Colink 直接关联在 RecurDyn 中定义的参数化值,控制系统的控制目标
通过 RecurDyn 的表达式表示,AutoDesign 根据对机械-控制集成系统进行的优化分析找到
满足控制目的的最优增益值。
控制器的目标是控制轮子中心和目标位置的偏差在 2s 内最小,初始的增益不能保证在
5s 内轮子中心和目标位置间的偏差为 0。
从安全角度考虑,轮子中心和目标位置的瞬态偏差不能致使与起落架舱壁发生碰撞;
从制造方面考虑,输入不应小于一个极限值。尽管轮子中心和目标的位置偏差最小,仍然
不能保证该值为 0。因而,为了强制该偏差达到 0,需要增加附加约束条件,偏差的终值应
为 0。
该问题的优化可以分解为:
 轮中心和目标位置偏差的 RMS 最小。
 轮中心和目标位置偏差瞬态响应的最大值≤极限值。
 PIN≤极限值。
 轮中心和目标位置偏差瞬态终值=0。
机械模型和控制模型的建立过程在此不再赘述,从 RecurDyn 安装目录\Help\Manual\
Tutorials\InterDisciplinary\AutoDesign\Examples 文件夹中将 Sample_F.rdyn 和 Sample_F.clk
文件复制至工作目录。
启动 RecurDyn,选择 File>>Open 命令,在弹出的对话框中选择 Sample_F.rdyn 文件,
单击 Open 按钮,然后进入 RecurDyn 建模工作环境。在优化之前,需要进行数字误差的设
置,这将影响优化分析的结果。
选择 Tools>>Settings>>Model Settings 命令,在弹出的 Model Settings 对话框中,设置
402 RecurDyn 多体系统优化仿真技术

Digit for Number Display=10,Error Tolerance=1.0e-8。


手动删除模型中已经定义好的参数化值、设计变量和性能指标。通过上下拖动滚动条,
从 数 据 库 窗 口 中 删 除 Database>>Model1>> ParametricValues 所 有 已 定 义 量 , 删 除
Database>> Model1>>DP DesignParameter 和 Database>>AR AnalysisResponse 的所有内容。

9.7.1 定义设计变量

设计变量是 PID 控制的增益值,因此创建 3 个参数并定义其初始值。


如图 9-38 所示,选择 Subentity>>Parametric Value 命令,在弹出的 Parametric Value
List 对话框中,连续 3 次单击 Add 按钮,增加 3 个参数值;分别在 3 行的 Name 列中双击,
设置 Name=P_Gain、I_Gain、D_Gain;分别在 3 行的 Value 列中双击,设置 3 个 Value 均
为 20。

图 9-38 参数化设计变量

如图 9-39 所示,选择 InterDisciplinary>>CoLink>>CoLink,在弹出的 CoLink 对话框中


单击 CoLink Run 按钮,进入 CoLink 窗口,在工具栏中单击 Open 按钮,打开 Sample_F.clk
控制模型,依次双击 3 个增益,分别设置 P、I 及 D 的 Gain 为 P_Gain、I_Gain 以及 D_Gain。

图 9-39 参数化控制变量
第9章 RecurDyn 设计优化仿真 403

返回 RecurDyn 主界面,选择 InterDisciplinary>>AutoDesign>>Design Parameter;在弹


出的 Design Parameter List 对话框中,单击 Create 按钮;在弹出的 Direct Relation 对话框中,
单击 Parametric Value 右侧的 Pv 按钮;在弹出的 Parametric Value List 对话框中,选择
P_Gain,单击 OK 按钮确认;返回 Direct Relation 对话框,设置 Lower Bound=1,Upper
Bound=40,Description=P_Gain,单击 OK 按钮确认,完成 DP1 定义,如图 9-40 所示。

图 9-40 定义设计变量

以同样方法,连续完成 DP2 和 DP3 的定义,其中 DP2 为 I_Gain,Lower Bound=1,


Upper Bound=40,Description=I_Gain;DP3 为 D_Gain,Lower Bound=1,Upper Bound=40,
Description=D_Gain。

9.7.2 定义分析响应

在该模型中,机构的输入为起落架支柱的轴向力,输出为轮子中心和目标位置沿竖直
方向的相对位置和相对速度。为了将机构输入和轴向力关联起来,首先创建表达式,然后
用该表达式表示轴向力。

1.通过表达式定义偏差,Step函数用于仅仅萃取 2 秒的值。

选择 Subentity>>Expression 命令,在弹出的 Expression List 对话框中单击 Create 按钮;


弹出如图 9-41 所示 Expression (表达式)定义对话框,在变量列表中设置变量 1 为
nosegear.POINT1 , 变 量 2 为 nosegearbay.POINT2 , 在 表 达式 列 表 框 中 输 入 DY(1,2)*
404 RecurDyn 多体系统优化仿真技术

STEP(TIME,1.99,0,2.0,1),然后单击 OK 按钮确认。

图 9-41 定义位置偏差

2.查看表达式

在图 9-42 所示的表达式列表中,EX1 用于 PIN,EX4 是轮中心和目标位置差,EX5 是


EX4 的滤波。

图 9-42 表达式列表

3.创建分析响应

如 图 9-43 所 示 , 选 择 InterDisciplinary>>Analysis Response ; 在 弹 出 的 Analysis


Response List 对话框中单击 Create 按钮;在弹出的 Analysis Response-Basic 对话框中,单
击 Result Output 右侧的 EL 按钮;在弹出的 Expression List 对话框中选择表达式 EX4,单
击 OK 按钮确认;返回 Analysis Response-Basic 对话框,从 Treatment 下拉列表中选择 Max
Value,在 Description 文本框中输入 AR1 的描述 Y_Deviation Between Nose gear and Bay,
单击 OK 按钮确认,完成 AR1 的定义。以同样方法,定义分析响应 AR2~AR4。对应关系
如表 9-5 所示。
第9章 RecurDyn 设计优化仿真 405

图 9-43 定义分析响应

表 9-5 分析响应对应关系

AR name Expression name Treatment Description


AR1 EX4 Max Value Y_Deviation Between Nose gear and Bay
AR2 EX1 Max Value Plant Input 1
AR3 EX5 RMS Value Over Shooted Response in 2 sec.
AR4 EX4 End Value End_Response

9.7.3 运行设计优化

( 1 ) 选 择 Interdisciplinary>>AutoDesign>>Design optimization , 在 弹 出 的 Design


Optimization 对话框中,选择 Performance Index 选项卡,在其中可查看所定义的性能指标,
如图 9-44 所示。

图 9-44 性能指标列表
406 RecurDyn 多体系统优化仿真技术

(2)选择 DOE Meta Modeling Method 选项卡,选择 Auto Selection,最初的 DOE 方


法推荐使用 ISCD-2,元模型选择 RBF with Multi-Quadratic。

注意:ISCD-2 仅仅需要 5 个采样点。

(3)选择 Optimization Control 选项卡,设置优化控制参数,所有的收敛误差均使用默


认值,如图 9-45 所示。在执行分析之前需要检查分析设置的时间步,尤其是当有 Colink
参与的优化时,动态分析的采样时步应与 Colink 中相应项相等。

图 9-45 优化控制

(4)选择 Analysis>>Setting 命令,在弹出的对话框中设置 End Time=5,Step=500。


(5)切换到 Colink 窗口, 双击 RecurDyn Plant,
在弹出 RecurDyn 对话框中将 Sampletime
(采样时间)设置为 0.01,如图 9-46 所示。

图 9-46 采样时间

(6)在 Design Optimization 对话框中单击 Execution 按钮,在弹出的 Execution 对话框


中检查所有选项是否正确,正确无误后单击 OK 按钮,进行优化分析。
(7)优化成功结束后,在 Design Optimization 对话框中选择 Result Sheet 选项卡,从
中可知优化进行了 10 次迭代,如图 9-47 所示。选择 Summary Sheet 选项卡,从中可知分
第9章 RecurDyn 设计优化仿真 407

析响应的终值为(6.4739, 36081.1, 1.3461, 0.0004),初始采样分析总的分析次数为 15,如


图 9-48 所示。

图 9-47 优化收敛历程

图 9-48 优化结果概要
408 RecurDyn 多体系统优化仿真技术

9.7.4 结果比较

通过比较可知,在优化后的增益情况下,轮中心和目标位置的偏差在 2s 达到稳定,如
图 9-49 所示。

图 9-49 优化前后位置偏差比较

9.8 鲁棒性优化及 6σ优化实例

鲁棒性设计优化不同于确定性设计优化,需要考虑系统组成变量的变化,如温度波动
或加工条件引起的前连杆角的变化。测量该可变性,在鲁棒性设计中输入标准偏差,通过
优化即可获得系统性能的变化。
RecurDyn/AutoDesign 允许定义所期望的 σ 水平,常见的标准是 6σ,意味着 99.9999998%
的产品满足质量约束条件。
从 RecurDyn 安装目录\Help\Manual\Tutorials\InterDisciplinary\AutoDesign\Examples 文
件夹中将 Sample_C1.rdyn 和 Sample_C2.rdyn 文件复制至工作目录。
本例介绍如图 9-50 所示的进纸系统的鲁棒性和 6σ 优化设计问题。其中,有 3 个噪声
变量和两个随机设计变量。在此着重介绍 AutoDsign 在解决鲁棒性设计及 6σ 约束优化中的
作用,从中了解鲁棒性设计和 6σ 设计之间概念性的不同,及噪声因子和随机设计变量的定
义方法。
第9章 RecurDyn 设计优化仿真 409

图 9-50 送纸机构模型

送纸机构的设计目标是在纸张材料属性(杨氏模量、厚度及曲率半径等)的波动情况
下,机构仍能保证纸张通过挡板至目标位置。该问题中,纸张材料属性变化称为噪声(即
AutoDesign 中的随机常数);挡板位置为随机设计变量(有正负误差),如表 9-6 所示。

表 9-6 送纸机构的设计参量、公差及类型

设 计 参 量 Current Value Deviation Remark


Paper curl radius 0 -/+30 Ramdom Constant
Paper Young’s modulus 6200 -/+10% Random Constant
Paper_Thickness 2.0 -/+0.05 Random Constant
Upper baffle position -0.31 -/+0.05 Random Design Variable
Lower baffle position -0.22 -/+0.05 Random Design Variable

9.8.1 定义设计变量

从工程角度看,纸张厚度、杨氏模量及卷曲半径是不可控的量,所以这 3 个参量作为
随机常数;而两个导板的垂直位置是可控量,作为设计变量,但在 MTT2D 中,导板位置
不能通过参数化值定义,因而不能直接定义为设计变量。如图 9-51 所示,为了将导板位置
的变化表示为设计变量,通过如下两个运动表达式表示。
 UpperslideMotion:PV_Yupper*STEP(TIME, 0, 0, 0.01, 1)。
 Lowerslidemotion:PV_Ylower*STEP(TIME, 0, 0, 0.01, 1)。

图 9-51 导板位置参数化

进入 MTT2D 子系统,打开 Sample_C1.rdyn,从数据库窗口中选择 Database>>Model1>>


Subsystems>>MTT2D1,右击,在弹出的快捷菜单中选择 Edit 命令,进入子系统编辑模式。
手动删除模型中已经定义好的设计变量和性能指标。从数据库窗口中删除 Database>>
410 RecurDyn 多体系统优化仿真技术

MTT2D1>> ParametricValues 所有已定义量, 删除 Database>>MTT2D1>>DP DesignParameter


所有项目,删除 Database>> MTT2D1>>AR AnalysisResponse 项所有内容。
选择 InterDisciplinary>>AutoDesign>>Design Parameter,在弹出的如图 9-52 所示 Design
Parameter List 对话框中单击 Create 按钮;在弹出的 Direct Relation 对话框中建立新的设计
变量,更改 DP1 的名称为 DP_SheetCurlFactor,单击 PV 按钮;弹出 Paremetric Value List
对话框,选择 PV_SheetCurlFactor (选中时高亮显示) ,单击 OK 按钮确认;返回 Direct Relation
对话框,设置 Lower Bound=-50,Upper Bound=50,在 Description 文本框中输入 Paper Curl
Factor,单击 OK 按钮,完成纸张卷曲半径的设计变量定义,并返回至 Design Parameter List
对话框。

图 9-52 设计变量

按照同样的方法,设置其他设计变量,如表 9-7 所示。

表 9-7 其他设计变量

Name Parametric Value Lower bound Upper Bound Description


DP_Modulus PV_E 5200 7200 Paper_Modulus_E
DP_Thickness PV_Thickness 0.1 0.3 Paper_Thickness
DP_UpperPos PV_Yupper -1 1 Upper baffle Y loc
DP_LowerPos PV_Ylower -1 1 Lower baffle Y loc

设计参量建立完之后,在 Design Parameter List 对话框,选中 DV 列,确认作为设计研


究和设计优化的设计变量。最后,单击 OK 按钮,关闭 Design Parameter List 对话框。

9.8.2 定义性能指标

选择 InterDisciplinary>>AutoDesin>>Analysis Response ,在弹出的 Design Response


List 对话框中单击 Create 按钮以创建一个新的分析响应;在弹出的 Analysis Response - Basic
对话框中,将 AR1 更改为 AR_Ysensor1,单击 EL 按钮;弹出 Analysis Response List 对话
第9章 RecurDyn 设计优化仿真 411

框,选择 ExSensor 表达式(高亮显示),单击 OK 按钮确认;返回 Analysis Response - Basic


对话框,在 Treatment 下拉列表中选择 End 值,在 Description 文本框中输入 Y where x is
894mm.,单击 OK 按钮确认,如图 9-53 所示。按照同样的步骤,创建另外一个分析响应。
其中:
 Name=Error Sum。
 Expression Name=ExSensorError_Square。
 Treatment=End Value。
 Description= Error Square。
Treatment 参量用于控制如何从一条随时间变化的曲线中萃取单值。例如,设置
Treatment =End Value,将萃取曲线仿真结束时刻的值,而 Treatment =Min Value 表示萃取
仿真过程中曲线的最低值。
返回 Analysis Response List 对话框,选中 AR_Ysensor1 和 Error Sum 所对应的 PI 列,
激活后续设计研究和设计优化中要使用的性能指标。最后,单击 OK 按钮,关闭 Analysis
Response List 对话框。

图 9-53 性能指标

选择 File>>Save As 命令,保存为 Robust_analysis.rdyn。

9.8.3 鲁棒性优化

该问题的鲁棒性设计优化意味着满足:
The paper position at x=894 (mm) = Target position
412 RecurDyn 多体系统优化仿真技术

-1.0 =< Upper baffle position -/+ deviation =< 1.0


-1.0 =< Lower baffle position -/+ deviation =< 1.0
X=894mm 处的 y 向位置变化值受到设计变量的误差及噪声偏差的影响,鲁棒性设计优
化的目的是找到相对于 y 向位置误差变化最小的设计变量。设计变量的设置如表 9-8 所示。

表 9-8 设计变量的设置

DP Type Value Statistical Info Dev.Type Dev.Value


DP_SheetCurlFactor Constant 0 Random SD 30
DP_Modulus Constant 6200 Random COV 0.1
DP_Thickness Constant 0.2 Random SD 0.005
DP_UpperPos Variable 0 Random SD 0.005
DP_LowerPos Variable 0 Random SD 0.005

选择 InterDisciplinary>>AutoDesign>>DFSS/Robust Design Optimization ,在弹出的


DFSS/Robust Design Optimization 对话框中选择 Design Variable 选项卡,设置 5 个设计变量
的 Type(类型)、Value(值)、Statistical Info(统计信息)、Dev. Type(偏差类型)、
Dev. Value(偏差值),如图 9-54 所示。其中,Type 列可以选择随机常数(Constant)或
随机设计变量(Variable);Statistical Info 用于定义设计变量 DV 是随机变量还是确定型变
量(如果设计变量有误差或偏差将是随机型 Random,否则是确定性变量 Deterministic);
Dev. Type 用于确定偏差是绝对幅值还是相对值(SD 为绝对幅值,COV 为相对值)。

图 9-54 鲁棒性优化设计变量

选择 Performance Index 选项卡,设置目标函数 AR_Ysensor1 的各项参数——Goal=


MIN,Weight/Limit Value=1,Robust Index=1,Alpha Weight=0,如图 9-55 所示。

图 9-55 鲁棒性优化性能指标
第9章 RecurDyn 设计优化仿真 413

提示:在 DFSS/Robust Design Optimization 中,内在的设计目标为:


PI = Weight*(AR*Alpah_Weight+Sigma*Robust_Index)
其中:Weight 表示多目标中所选 AR 的相对重要度; Alpha_Weight 及 Robust_Index
为分析响应和西格玛的权重;Weight、Alpha_Weight 及 Robust_Index 的取值为 0
或 1,0 表示相应的量可忽略。
 如果 Alpha_Weght=1,Robust_Index=0,Weight*AR 最小。
 果 Alpha_Weght=0,Robust_Index=1,Weight* Sigma 最小。
 如果 If Alpha_Weght=1,Robust_Index=1,那么 Weight*(AR+Sigma)最小。
 如果两者均为 0,将产生逻辑错误,没有设计公式对应。

选择 DOE Meta Modeling Methods 选项卡,选中 Auto Selection 复选框,设置自动选择。


选择 Optimization Control 选项卡,收敛误差采用默认值;设置 Validation Type=
Validation,Sample Points for Validation=8,Variance Estimation Method=Random Sampling,
如图 9-56 所示。

图 9-56 鲁棒性优化控制

提示:在 Validation Type 下拉列表中提供了 3 种类型:None、Validation 和 Validation&


Re- Optimization。Validation 表示在变量区间中进行采样点精确分析,然后评价
采样变化。Variance Estimation Method 有两种,即泰勒级数方法 Taylor Series
method 及随机采样方法 Random Sampling method。

单击 Analysis Setting 按钮,在弹出的 Dynamic/Kinematic Analysis 对话框中设置 End


Time=0.1,Step=2000,单击 OK 按钮确认,返回 DFSS/Robust Design Optimization 对话框。
414 RecurDyn 多体系统优化仿真技术

单击 Execution 按钮,打开如图 9-57 所示 Execution 对话框。可以从中看到,在概要中


分别列出了设计变量、性能指标、元模型细节。在检查无误之后,单击 OK 按钮运行优化
分析。优化分析之后,在输出区显示优化仿真完成后,选择 Result Sheet 选项卡。

图 9-57 执行概要

从如图 9-58 所示的 Result Sheet 选项卡中可以看出,经历两次迭代之后,优化过程收


敛,最后的设计给出 AR1=12.299985,近似 STD(标准偏差)为 0.158,采样 STD 为 0.0705。
近似 STD 和采样 SDT 之间的误差由于元模型精度而产生,当采样 STD 大于估计 STD 时,
可使用 Get from Simulation History 功能再次进行优化。

图 9-58 鲁棒性优化信息
第9章 RecurDyn 设计优化仿真 415

选择 Summary Sheet 选项卡,如图 9-59 所示。当构造原模型时,设计变量和常量的值


在取值区间及偏差范围内采样,如果定义参量为常数,在优化过程中将保持不变。在设计
变量列表中, DV1~DV3 等于当前值(因为是常量),DV4 和 DV5 是设计变量,
从{-0.31,-0.22}
变为{-0.347,-0.211}。在分析响应列表中,优化设计的优化值为分析响应,采样点的标准偏
差 STD 从确认采样点评价。

图 9-59 鲁棒性分析结果概要

从 SAO 概要可知,计算总数为 31,包括 21 个初始采样计算。


选择 File>>Save As 命令,保存为 DFSS_Analysis.rdyn。

9.8.4 六西格玛设计优化

在此采用和前面鲁棒性设计优化同样的设计变量。
六西格玛优化的性能目标为总的误差(Y_position - 12.3)*2 最小。根据 6σ 原则,Y 向的
位置应该满足不等式:
9.3 =< Y_position -/+ 6*Sigma =< 15.3。
AutoDesign 通过两个不等式表述上面的关系:
9.3 =< Y_position - 6*Sigma
Y_position + 6*Sigma =< 15.3
对于该问题,在设计目标 PI = Weight*(AR*Alpah_Weight+Sigma*Robust_Index) 中定
416 RecurDyn 多体系统优化仿真技术

义 robust index = 0,alpha weight = 1。


在 DFSS/Robust Design Optimization 对话框的 Performance Index 选项卡(如图 9-60 所
示)中设置:
AR Definition Goal Weight/Limit Value Robust Index Alpha Weight
AR_Ydensor1 Constraint LE 15.5 6 1
AR_Ydensor1 Constraint GE 9.5 6 1
Error_Sum Objective MIN 1 0 1

图 9-60 6σ 分析性能指标

提示:为了节省计算时间,使用前面鲁棒性分析的结果。

选择 DOE Meta Modeling Method 选项卡,如图 9-61 所示。取消选中 Select DOE Method
复选框,选中 Get From Simulation History 按钮前面的复选框并单击该按钮,在弹出的
Simulation History 对话框中可查看仿真历程。为了比较 6σ 设计优化和鲁棒性设计优化结果,
仅仅选中 Description of Simulation 列内容为 Initial Runs for Meta Model 所对应的 Get 列,单
击 OK 按钮确认。返回 DOE Meta Modeling Method 选项卡,在 Meta Modeling Method 栏中
选择 Radial Basis Functions Model(Multi-Quadratic) 单选按钮,在 Polynomial Function 栏中
选中 Auto 单选按钮。

图 9-61 DOE 元模型方法


第9章 RecurDyn 设计优化仿真 417

如图 9-62 所示,选择 Optimization Control 选项卡,仍然采用与鲁棒性优化相同的收敛


公差及其他项设置。单击 Execution 按钮,在弹出的 Execution 对话框中列出了设计变量、
性能指标及原模型信息。在确认无误之后,单击 OK 按钮确认,开始执行六西格玛优化。

图 9-62 6σ 优化分析执行概要

当优化分析收敛后,选择 Result Sheet 选项卡,如图 9-63 所示。从 AR 的优化历程可


以看出,AR1=12.178;从标准偏差(STD)项可知,估计 σ 和采样 σ 分别为 0.2145 和 0.0707。
显然,AR1+/-6*0.0707 关系满足 9.3 和 15.3 极限值,鲁棒性指标的 Relaxed 值为 6。

图 9-63 6σ 优化分析结果
418 RecurDyn 多体系统优化仿真技术

9.8.5 结果比较

比较鲁棒性设计优化和六西格玛设计优化的结果可知,虽然两种优化得到的设计变量
DV4 和 DV5 不同,但是分析响应的采样标准偏差 σ 几乎相同。总体而言,鲁棒性优化设
计的结果比 6σ 优化设计结果更好,因为在几乎相同的采样偏差下,能够获得更好的纸张的
目标位置。

9.9 小 结

RecurDyn 具有强大的优化分析功能,包括试验设计、设计研究、基于元模型的优化分
析以及面向 6σ 的鲁棒性优化分析。在优化分析之前必须明确设计变量、目标函数和约束条
件,通过创建参数化模型,定义以参数化值表示的设计变量,关联表达式表示的分析响应
建立性能指标。通过合理选择优化参数,可有效地执行优化分析,并可通过程序自动地更
新得到优化的设计分析模型。
࢒ 10 ᐺ RecurDynऔࠨఎख

10.1 RecurDyn二次开发概述

在 RecurDyn 的已有功能基础上进行功能的扩充和应用,需要基于 RecurDyn 进行二次


开发。通过二次开发,可以满足用户特定的功能需求,如定制客户化的流程、定制格式化
输出、定制用户所需的用户界面等,能够让用户从繁重的重复性劳动中解脱出来,实现特
定功能的标准化、客户化、专业化。
RecurDyn 具有强大的二次开发功能,包括适用于求解过程的 RecurDyn 用户子程序和
ProcessNet 二次开发。

10.2 RecurDyn用户子程序

在利用 RecurDyn 所提供的函数表达式不能表述所实现的功能时,如数学函数很难表


达、需要控制复杂运动仿真时、需要进行决策逻辑时,可通过 RecurDyn 用户子程序(User
subroutines)来表达复杂的关系,尤其是涉及到一些逻辑表达的情况。用户子程序是利用高
级编程语言(C 或 Fortran)来定义模型元素或特定的输出。相对于函数表达式,用户子程
序更具有通用性和灵活性,但不正确的用户子程序会使得模型调试很困难。
通过用户子程序表达的功能,可以同时为多用户多模型使用。

10.2.1 用户子程序的使用

在模型中调用用户子程序,需要经过如下步骤。
(1)根据子程序的功能及输入参数编写用户自定义子程序代码。
(2)生成动态链接库(Dynamic Link Library,DLL)。
(3)在 RecurDyn 模型中对已经创建的动态链接库 DLL 进行调用。

10.2.2 用户子程序简介

RecurDyn 提供两大类用户子程序,即用户自定义子程序(User Written Subroutine)和


辅助子程序(Auxiliary Subroutine)。
420 RecurDyn 多体系统优化仿真技术

利用子程序可以实现如下功能:
 自定义各种力。
 定义微分方程。
 定义输出请求。
 获取模型定义数据。
 获得当前状态信息。
 计算特定标准函数的值。
 通过曲线拟合技术实现插值。
 输出错误信息等。

10.2.3 常用辅助子程序

用户可直接调用 RecurDyn 所提供的辅助子程序,如表 10-1 所示。

表 10-1 辅助子程序
子 程 序 功 能
SYSFNC 为用户子程序提供单个系统状态值,如速度、位移、加速度、力等量
SYSARY 为用户子程序提供系统状态值,如位移、速度、加速度、力等量
TIRARY 提供轮胎状态值,如位移、速度、加速度、力等
AKISPL 使用 Akima 三次曲线拟合方法进行数据插值
CUBSPL 使用传统的三次曲线拟合方法进行数据插值
CHEBY 计算 Chebyshev 多项式
POLY 计算多项式的值
HAVSIN 计算 HAVSIN 函数
STEP 计算三次多项式逼近 STEP 函数
FORCOS 计算傅里叶余弦级数
FORSIN 计算傅里叶正弦级数
SHF 计算简谐函数
IMPACT 计算模型碰撞力函数
BISTOP 计算双侧碰撞力函数
ERRMES 输出用户子程序中的错误信息
RD_SYSTEM 在每一时刻输出计算结果函数
REG_FILE 注册登记函数

1.SYSFNC

SYSFNC 向用户子程序提供系统的状态值(单一值)。调用子程序 SYSFNC 时,返回


单个状态值,如沿 x 向的力。SYSFNC 可用的函数类型如表 10-2 所示。
第 10 章 RecurDyn 二次开发 421

表 10-2 SYSFNC 可用的函数类型


函 数 变 量 字 符 串
位移 DM, DX, DY, DZ, AX, AY, AZ, PSI, THETA, PHI, YAW, PITCH, ROLL
速度 VM, VR, VX, VY, VZ, WM, WX, WY, WZ
加速度 ACCM, ACCX, ACCY, ACCZ, WDTM, WDTX, WDTY, WDTZ
力 FM, FX, FY, FZ, TM, TX, TY, TZ
SUB 元素 DIF, DIFI, VARVAL

Fortran 语言调用 SYSFNC 子程序的格式为:


call sysfnc(character, integer, integer, double precision, logical)
例如:
call sysfnc('FX', mkid, nid, force_x, errflg)
C/C++语言调用 SYSFNC 子程序的格式为:
sysfnc(char*, int*, int, double*, int*)
例如:
sysfnc("FX", mkid, nid, &force_x, &errflg)
其中,FX 是子程序的返回值的类型;mkid 和 nid 必须分别定义为整数数组和整数;
force_x 必须定义为 double 格式;errflg 必须定义为逻辑变量。

2.SYSARY

SYSFNY 向用户子程序提供系统的状态值。调用子程序 SYSARY 时,返回系统的状态


值。这些系统状态值的各个分量保存在数组中,并以数组的形式传递给用户子程序。
SYSARY 可用的函数类型如表 10-3 至表 10-6 所示。

表 10-3 力函数
函 数 名 称 功 能 Result
Result(1)=FX;Result(2)=FY
返回作用在 Marker 上的合力的
Force Result(3)=FZ;Result(4)=TX
6 个分量
Result(5)=TY;Result(6)=TZ
TFORCE 返回 3 个力分量 Result(1)=FX;Result(2)=FY;Result(3)=FZ
RFORCE 返回 3 个力矩分量 Result(1)=TX;Result(2)=TY;Result(3)=TZ

表 10-4 位移函数
函 数 名 称 功 能 Result
Result(1)=DX;Result(2)=DY;
DISP 返回位移的 6 个分量 Result(3)=DZ;Result(4)=PSI;
Result(5)=THETA;Result(6)=PHI
TDISP 返回位移的 3 个平动分量 Result(1)=DX;Result(2)=DY;Result(3)=DZ
RDISP 返回 313 坐标系欧拉角 Result(1)=PSI;Result(2)=THETA;Result(3)=PHI
422 RecurDyn 多体系统优化仿真技术

续表
函 数 名 称 功 能 Result
Result(1)=A(1,1);Result(2)=A(2,1);
Result(3)=A(3,1);Result(4)=A(1,2);
AM 返回 Result(5)=A(2,2);Result(6)=A(3,2);
Result(7)=A(1,3);Result(8)=A(2,3);
Result(9)=A(3,3)

表 10-5 速度函数
函 数 名 称 功 能 Result
Result(1)=VX;Result(2)=VY;
VEL 返回速度的 6 个分量 Result(3)=VZ;Result(4)=WX;
Result(5)=WY;Result(6)=WZ
TVEL 返回平动速度的 3 个分量 Result(1)=VX;Result(2)=VY;Result(3)=VZ
RVEL 返回转动速度的 3 个分量 Result(1)=WX;Result(2)=WY;Result(3)=WZ

表 10-6 加速度函数
函 数 名 称 功 能 Result
Result(1)=ACCX;Result(2)=ACCY;
ACC 返回加速度的 6 个分量 Result(3)=ACCZ;Result(4)=WDTX;
Result(5)=WDTY;Result(6)=WDTZ
Result(1)=ACCX;Result(2)=ACCY;
TACC 返回平动加速度的 3 个分量
Result(3)=ACCZ
Result(1)=WDTX;Result(2)=WDTY;
RACC 返回转动加速度的 3 个分量
Result(3)=WDTZ

Fortran 语言调用 SYSARY 子程序的格式为:


call sysary(character, integer, integer, double precision, integer, logical)
例如:
call sysary('FORCE', mkid, nid, force, nforce, errflg)
C/C++语言调用 SYSARY 子程序的格式为:
sysary(char*, int*, int, double*, int, int*)
例如:
sysary("FORCE", mkid, nid, &force_x, nforce, &errflg)
其中,FORCE 代表 SYSARY 返回的类型;mkid 和 nid 必须分别定义为整数数组和整
数;force_x 必须定义为 double 的数据类型;errflg 必须定义为逻辑变量。

3.AKISPL

使用 Akima 三次曲线拟合方法进行数据插值,根据插值阶数 order 不同,将返回不同


的结果。
第 10 章 RecurDyn 二次开发 423

 当 order= 0 时,返回 Array(1)=value y。


y y
 当 order= 1 时,返回 Array(1)= ;Array(2)= 。
x z
 y
2
2 y 2 y
 当 order= 2 时,返回 Array(1)= 2 ;Array(2)= ;Array(3)= 2 。
x xz x
Fortran 语言调用格式为:
call rd_akispl(xval, zval, identity, order, array, errflg)

call akispl(xval, zval, identity, order, array, errflg)
C/C++语言调用格式为:
rd_akispl(xval, zval, identity, order, &array[0], &errflg)

akispl(xval, zval, identity, order, &array[0], &errflg)
其中,errflg 为逻辑变量,当调用函数出错时,errflg 为 true;xval、zval 是定义自变量
x 或 z,对因变量 y 进行插值;array 表示根据插值阶数 order 的不同,返回的向量不同。

4.STEP

step 函数的调用格式如下。
 Fortran:call rd_step(x, x0, h0, x1, h1, order, value, errflg)或者 step(x, x0, h0, x1, h1,
order, value, errflg)。
 C/C++:rd_step(x, x0, h0, x1, h1, order, &value, &errflg)或者 step(x, x0, h0, x1, h1,
order, &value, &errflg)。
其中,x 为自变量;x0 为 step 函数起始的自变量值;h0 为 step 起始函数值;x1 为 step
函数结束的自变量值;h1 为 step 函数的结束值;order 用于定义微分阶数,默认为 0;value
表示返回的函数值;errflg 必须定义为逻辑变量,如果调用子程序出错,errflg 为 true。

5.IMPACT

单边碰撞 IMPACT 函数的调用格式如下。


 Fortran:call rd_impact(x, xdot, x1, k, e, cmax, d, order, value, errflg)或 impact(x, xdot,
x1, k, e, cmax, d, order, value, errflg)。
 C/C++:rd_impact(x, xdot, x1, k, e, cmax, d, order, &value[0], &errflg)或 impact(x,
xdot, x1, k, e, cmax, d, order, &value[0], &errflg)。
其中,x 为距离变量;xdot 表示 x 关于时间的导数;x1 为 x 的自由长度;k 为刚度;e
为非线性弹簧力指数;cmax 为最大阻尼系数;value 代表返回的函数值。

6.BISTOP

双侧碰撞函数的调用格式如下。
 Fortran:call rd_bistop(x, xdot, x1, x2, k, e, cmax, d, order, value, errflg)或 bistop(x,
424 RecurDyn 多体系统优化仿真技术

xdot, x1, x2, k, e, cmax, d, order, value, errflg)。


 C/C++:rd_bistop(x, xdot, x1, x2, k, e, cmax, d, order, &value, &errflg)或 bistop(x, xdot,
x1, x2, k, e, cmax, d, order, &value, &errflg)。
其中,x 为距离变量;xdot 为 x 关于时间的微分;x1 指 x 的下边界;x2 指 x 的上边界
k 为刚度;e 为力的指数;cmax 为最大阻尼系数;d 为穿入深度边界;value 为返回值。
表 10-7 列出了双侧和单侧碰撞函数中 order 及 value 的对应关系。

表 10-7 碰撞函数

BISTOP & IMPACT OTHER


value(1) value(2) value(3) value
order= 0 F ( x, x ) 0 0 F ( x)
F ( x, x ) F ( x, x ) F ( x)
order= 1 0
x x x
 F ( x, x )
2
 F ( x, x )
2
 F ( x)
2
order= 2 0
x 2 xx x 2

10.2.4 用户自定义子程序简介

RecurDyn 提供了丰富的用户自定义子程序模板( Fortran 语言和 C/C++语言),如


表 10-8 所示,用户可以在其中定义需要实现的功能代码,并可在自定义子程序中直接调用
辅助子程序。

表 10-8 用户自定义子程序模板

子程序模板 功 能
SCREW_FORCE 创建用户定义的螺旋力
AXIAL_FORCE 创建用户定义的轴向力
DIFFERENTIAL_USUB 定义微分方程
MATRAIX_USUB 定义矩阵力
MOTION_USUB 定义驱动
REQUEST_USUB 定义输出请求
ROTATIONAL_FORCE 定义转动力
TIRE_USUB 定义用户轮胎力
TRANSLATIONAL_FORCE 定义平动力
VARIABLE_USUB 定义用户变量
NODAL_FORCE 创建节点力
Contact Force_USUB 创建用户定义的接触力
Track_SoiL_Subroutine 创建用户定义的土壤力
第 10 章 RecurDyn 二次开发 425

10.2.5 在RecurDyn模型中调用用户子程序

在 RecurDyn 中可以使用函数表达式的情况下,或者界面中存在 UL 按钮的地方,如驱


动、力等的属性对话框,都可以调用用户子程序。使用用户子程序时,必须预先定义并创
建表述子程序的 DLL。调用用户子程序的步骤如下:
(1)打开支持 UL 的属性对话框,选择表示类型为 User Subroutine。
(2)单击 UL 按钮,在弹出的 User Subroutine List 对话框中单击 Create 按钮,打开
User Subroutine 对话框。
(3)根据需要在用户子程序变量列表 Argument List 中添加用户变量(Marker 或其他
对象),然后在用户参量(User Parameter)的输入框中采用~1 和~2 的格式指定变量。
(4)通过 D 按钮选择已创建的 DLL 文件,实现用户子程序的调用。

10.2.6 Source文件和Header文件

创建*.dll 文件需要基于 RecurDyn 所提供的源文件和头文件。

1.C/C++语言

 DllFunc.h、DllFunc.cpp:包含函数的定义,在 DllFunc.h 文件中执行程序代码。


 DllMain.h、DllMain.cpp:是 main DLL header 文件和 source 文件,包含了 DLLMain
的定义,用户不可更改。
 StdAfx.h、StdAfx.cpp:用于 build 一个预编译头文件和 StdAfx.obj 文件。用户必须
保留它们原来的样子。

2.Fortran文件

DllFunc.for、SYSCAL.f:包含函数的定义,在 DllFunc.for 文件中执行用户子程序的功


能代码。
后文中将通过实例来介绍用户自定义子程序及模板的使用方法、*.dll 的创建(3 种方
式)及调用方法。

10.3 用户自定义子程序电机驱动实例

采用前面章节的曲柄滑块机构(如图 10-1 所示),通过用户自定义子程序实现电机驱


动转动。在用户子程序中将调用辅助子程序 rd_havsin(time,0.0,0.0,1.0,74.0,true,&Value,
&errflg)。
426 RecurDyn 多体系统优化仿真技术

图 10-1 曲柄滑块机构电机微分方程驱动

1.用户自定义子程序,创建*.dll文件

下面以 C/C++语言为例,基于 Visual Studio.NET 环境,介绍子程序模板及用户自定义


微分子程序功能代码。
(1)启动 Visual Studio,选择 File>>New>>Project 命令(如图 10-2 所示),在弹出的
如图 10-3 所示 New Project 对话框中选择 Project Type=Visual C++>>Win32,设置项目名称
Name=differential_Subroutine,Location 为当前工作目录,单击 OK 按钮。

图 10-2 新建项目

图 10-3 设置项目名称和工作路径

(2)在弹出的如图 10-4 所示 Win32 Application Wizard 对话框中单击 Next 按钮,在


弹出的 Application Settings 对话框中,选择 Application type=DLL,Additional options=Empty
project,单击 Finish 按钮。
(3)从 RecurDyn 的安装目录(<install Dir>/bin/usub/*.*)下将 DllFunc.cpp、DllMain
.cpp、DllFunc.h 和 Solver.lib 4 个文件复制到 Project Location 工作目录中。
第 10 章 RecurDyn 二次开发 427

图 10-4 设置应用程序类型

( 4 )确保 Solution Explorer 窗口是可见的,如果看不到则选择 View>>Solution


Explorer 命令。如图 10-5 所示,在 Solution Explorer 窗口中选择 differential_Subroutine,单
击鼠标右键,在弹出的快捷菜单中选择 Add>>Existing Item…命令,在弹出的 Add Existing
Item 窗口中选择文件 DllFunc.cpp、DllMain.cpp 和 DllFunc.h,单击 Open 按钮,DllFunc.h
文件即被添加到 Header 文件夹中,DllFunc.cpp 和 DllMain.cpp 文件被添加到 Source 文件
夹中。

图 10-5 添加源文件和头文件
428 RecurDyn 多体系统优化仿真技术

(5)选择 Project>>Property,打开 differential_Subroutine Property Pages 窗口,如图 10-6


所 示 。 选 择 Configuration Properties>>Linker>> Input , 设 置 Additional Dependencies=
Solver.lib,单击 OK 按钮确认。

图 10-6 添加 Solver.lib 库文件

(6)双击 Source Files 下的 DllFunc.cpp 文件,即可看到如图 10-7 所示的 RecurDyn 用


户自定义子程序模板。

图 10-7 子程序模板
第 10 章 RecurDyn 二次开发 429

(7)找到微分方程 DIFFERENTIAL_USUB 的模板,并在该模板中的// User statement


语句下编写实现代码。
AAA_API void __cdecl differential_usub
(double time, double upar[], int npar, int jflag, int iflag, double* result)
{
using namespace rd_syscall;
// Parameter Information
// time: Simulation time of RD/Solver ,RecurDyn/Solver 当前的仿真时间
// upar: Parameters defined by user,用户定义的自变量
// npar: Number of user parameters,自变量个数
// jflag: When RD/Solver evaluates a Jacobian, the flag is true.计算雅克比矩阵,为 true
// iflag: When RD/Solver initializes arraies, the flag is true.初始化数组,为 true
// result: Returned value,程序返回的一维向量
// User statement 下面为用户自定义部分,不属于模板中的内容,通过该段代码实
现预期功能
double value, velo, stime;
int iord, errflg; 用
stime = 1.0; 户
velo = 74.0; 在

if ( jflag == true ) {

iord = 1;

}

else {

iord = 0;

}

// 下面调用 RecurDyn 辅助子程序 rd_havsin( )

rd_havsin(time,0.0,0.0,stime,velo,iord,&value,&errflg); 码
*result = value;
}
(8)选择 Build>>Rebuild Solution 或 Build<project name>命令,成功编译之后,在工
作目录 Debug 下将生成 differential_Subroutine.dll 文件,如图 10-8 所示。

图 10-8 编译创建 differential_Subroutine.dll


430 RecurDyn 多体系统优化仿真技术

2.调用differential_Subroutine.dll,实现曲柄驱动

启动 RecurDyn,打开 4.11 节的 Slider_Crank01.rdyn 文件,另存为 diff_Sub.rdyn。


(1)如图 10-9 所示,选择 Subentity>>User Subroutine 命令;在弹出的 User Subroutine
List 对话框中单击 Create 按钮;打开 User Subroutine 对话框,设置 Name=differential,单击
DLL Name 栏中的 D 按钮,找到前面所创建的 differential_Subroutine.dll 文件,在 User
Parameter 列表框中输入 1,连续单击 OK 按钮确认。

图 10-9 定义用户子程序

(2)选择 Subentity>>Differential Equation 命令,在弹出的 Differential Equation List 对


话框中单击 Create 按钮;打开如图 10-10 所示 Differential Equation 对话框,从 Function Type
下拉列表中选择 User Subroutine Equation,单击 UL 按钮;在弹出的 User Subroutine List 对
话框中单击 Create 按钮;在弹出的 User Subroutine 对话框中选择 differential,单击 OK 按
钮确认;此时在 Differential Equation 对话框中将显示 1,DLL 文本框中显示 Dll 文件及路
径,连续单击 OK 按钮确认。

图 10-10 定义用户子程序微分方程
第 10 章 RecurDyn 二次开发 431

(3)选择曲柄与机架之间的转动副 RevJoint,右击,在弹出的快捷菜单中选择 Property


命令;在弹出的转动副属性对话框中确认选中 Include Motion,单击 Motion 按钮;在弹出
的 Motion 对话框中选择 Type=Standard Motion、Velocity(Time),单击 EL 按钮,在弹出的
Expression List 对话框中单击 Create 按钮;弹出 Expression 对话框,在 Argument List 栏中
单击 Add 按钮增加一行,将数据库窗口中所定义的 DE1 拖至 Entity 列中,在 Available
Functions 栏中选择 System Element>>DIF1 并双击,将表达式列表框中表达式更改为
DIF1(1),连续单击 OK 按钮确认,如图 10-11 所示。

图 10-11 调用位移驱动

(4)选择 Analysis>>Dynamic/Kinematic 命令,按照之前的设置运行动力学/运动学分


析,结果如图 10-12 所示,从中可以看出用户自定义的微分子程序作为驱动的等效扭矩。

图 10-12 驱动扭矩

10.4 用户自定义子程序轴向力驱动实例

采用前面的曲柄滑块机构,通过用户自定义子程序实现滑块驱动。在用户子程序中
将调用辅助子程序 SYSFNC( )和 RD_AKISPL( ),以达到如图 10-13 所示的轴向力滑块驱动
目的。
432 RecurDyn 多体系统优化仿真技术

图 10-13 轴向驱动力

1.用户自定义子程序,创建*.dll文件

下面以 Fortran 语言为例,基于 Visual Studio 6.0 环境,介绍子程序模板及用户自定义


运动驱动子程序功能代码。基于 DOS 环境,创建.dll 文件。要求先安装 Visual Studio 6.0,
然后再安装 RecurDyn,在 Visual Studio 6.0 的 Projects 中将出现 RD User Subroutine Wizard。
(1)运行 MicrosoftTM Develop Studio 6.0,选择 File>>New 命令,在弹出的如图 10-14
所示 New 对话框中选择 Projects 选项卡,选择 RD User Subroutine Wizard,在 Project Name
文本框中输入项目名称 AxialForce_Subroutine,在 Location 文本框中设置工作路径,然后
单击 OK 按钮确定。

图 10-14 新建项目

(2)在弹出的如图 10-15 所示 RD User Subroutine Wizard 对话框中,选择程序语言类


型 Fortran,从 Select user subroutines 栏中选择用户子程序的类型 Force>>AXIAL,单击 Finish
按钮;在弹出的 New Project Information 对话框中单击 OK 按钮,打开 Workspace 窗口,如
图 10-16 所示。
第 10 章 RecurDyn 二次开发 433

图 10-15 选择程序语言及用户子程序类型

图 10-16 进入 DllFunc.for 文件

(3)切换到 FileView,选择 DllFunc.for 文件;在文件 DllFunc.for 中编写下列代码,


并选择 File>>Save As 命令保存为 Axialforce_Subroutine.for。
C---- SUB. AXIAL_FORCE : AXIAL(TRA,ROT)
SUBROUTINE AXIAL_FORCE
& (TIME,UPAR,NPAR,JFLAG,IFLAG,RESULT)
C---- TO EXPORT * SUBROUTINE
!DEC$ ATTRIBUTES DLLEXPORT,C::AXIAL_FORCE
C---- INCLUDE SYSTEM CALL
434 RecurDyn 多体系统优化仿真技术

INCLUDE 'SYSCAL.F'
C---- DEFINE VARIABLES 定义变量
C Parameter Information 参数信息
C time: Simulation time of RD/Solver 仿真求解时间
C upar: Parameters defined by user 用户定义变量
C npar: Number of user parameters 变量数
C jflag: When RD/Solver evaluates a Jacobian, the flag is true.计算雅克比矩阵,为 true
C iflag: When RD/Solver initializes arraies, the flag is true.初始化数组,为 true
C result: Returned value 返回值
DOUBLE PRECISION TIME, UPAR(*)
INTEGER NPAR
LOGICAL JFLAG, IFLAG
DOUBLE PRECISION RESULT[REFERENCE]
C---- USER STATEMENT
C---- LOCAL VARIABLE DEFINITIONS
INTEGER MKID(3), ID
DOUBLE PRECISION DISP, VALUE(1)
LOGICAL ERRFLG
C---- ASSIGN IMPACT PARAMETERS
MKID(1) = INT(UPAR(1))
MKID(2) = INT(UPAR(2))
MKID(3) = INT(UPAR(3))
ID = INT(UPAR(4))
C---- CALL AUXILIARY SUBROUTINES FOR CALCULATIONS
CALL SYSFNC('DX', MKID, 3, DISP, ERRFLG)
CALL RD_AKISPL(DISP, 0, ID, 0, VALUE(1), ERRFLG)
C---- ASSIGN THE RETURNED VALUE
RESULT = VALUE(1)
RETURN
END
(4)从 RecurDyn 安装目录\USUB 下复制 Solver.lib、syscal.f 文件至当前工作目录;
从 Fortran Library 文件夹中复制 dfordll.lib、dfconsol.lib、dfport.lib 至当前工作目录;确保
同一目录下包括下列文件: Axialforce_Subroutine.for ; Solver.lib 、 syscal.f ; dfordll.lib 、
dfconsol.lib、dfport.lib。
(5)切换至 DOS 命令窗口,改变工作目录为当前工作目录(确保该目录中包含有
Axialforce_Subroutine.for、Solver.lib、syscal.f、dfordll.lib、dfconsol.lib 及 dfport.lib 文件),
运行 f90 /dll Axialforce_Subroutine.for solver.lib,创建 Axialforce_Subroutine.dll 文件。
第 10 章 RecurDyn 二次开发 435

2.调用Axialforce_Subroutine.dll文件,实现滑块的轴向力驱动

启动 RecurDyn,打开 4.11 节的 Slider_Crank01.rdyn 文件,另存为 Axial_Sub.rdyn。


(1)从数据库窗口中选择曲柄与机架之间的转动副,右击,在弹出的快捷菜单中选择
Property 命令,在弹出的如图 10-17 所示转动副属性对话框中,取消选中 Include Motion 复
选框,单击 OK 按钮确认。

图 10-17 取消驱动

(2)选择 Subentity>>Spline 命令,在弹出的 Spline List 对话框中单击 Create 按钮,在


弹出的如图 10-18 所示 Spline 对话框中连续单击 Add 按钮 4 次,依次编辑 4 行数据
X=0,Y=1800;X=150,Y=2400;X=400,Y=1900;X=600,Y=700,连续单击 OK 按钮确定。

图 10-18 定义样条曲线

(3)选择 Professional>>Force>>Axial ,从选项区选择(Body,Body,Point,Point)模


式,在图形工作窗口中依次选择 Slider、Ground、(300,0,-10)、(360,0,-10),建立轴向
力;选择轴向力,右击,在弹出的快捷菜单中选择 Property 命令;在弹出的如图 10-19 所
示轴向力属性对话框中选择 Axial 选项卡,选择 Type=User Subroutine Axial Force,单击 UL
按钮;在弹出的 User Subroutine List 对话框中单击 Create 按钮;在弹出的 User Subroutine
对话框中,单击 D 按钮,选择前面创建的 Axialforce_Subroutine.dll,设置 Argument List 为
ID1=Slider.CM,ID2=Ground.Marker1,ID3=Sp1,设置 User Parameter 为~1,~2,~2,~3,单击
OK 按钮;返回 User Subroutine List 对话框,选择刚刚建立的 User Subroutine,连续单击
OK 按钮确认。
(4)选择 Analysis>>Dynamic/Kinematic 命令,按照之前的设置运行动力学/运动学分
析,从结果中可以看出用户自定义的轴向力驱动曲线(如图 10-20 所示)及运动轨迹。
436 RecurDyn 多体系统优化仿真技术

图 10-19 调用子程序

图 10-20 轴向力驱动曲线

10.5 用户自定义子程序运动驱动实例

采用前面章节的曲柄滑块机构,通过用户自定义子程序实现如图 10-21 所示的滑块运


动带动曲柄转动。在用户子程序中将调用辅助子程序——傅里叶余弦级数子程序,以达到
驱动滑块运动的目的。

图 10-21 平动运动驱动

1.用户自定义子程序,创建*.dll文件

下面以 C/C++语言为例,基于 Visual Studio 6.0 环境,介绍子程序模板及用户自定义运


第 10 章 RecurDyn 二次开发 437

动驱动子程序功能代码。
(1)运行 MicrosoftTM Develop Studio 6.0,选择 File>>New 命令,在弹出的如图 10-22
所示 New 对话框中选择 Projects 选项卡,选择 RD User Subroutine Wizard,在 Project name
文本框中输入项目名称 Motion_Subroutine,在 Location 文本框中设置工作路径,然后单击
OK 按钮确定。

图 10-22 新建项目

(2)在弹出的 RD User Subroutine Wizard 对话框中,选择程序语言类型 C/C++,从


Select user subroutines 栏中选择用户子程序的类型 MOTION,单击 Finish 按钮,如图 10-23
所示;在弹出的 New Project Information 对话框(如图 10-24 所示)中,单击 OK 按钮,打
开 Workspace 窗口。

图 10-23 选择程序语言及子程序类型 图 10-24 新建项目信息

(3)如图 10-25 所示,切换到 FileView,选择 DllFunc.cpp 文件,在该文件中的 void __


cdecl motion_usub 下添加如下代码实现运动驱动。
438 RecurDyn 多体系统优化仿真技术

图 10-25 编写用户子程序代码

#include "stdafx.h"
#include "DllFunc.h"
MOTION_SUBROUTINE_API void __cdecl motion_usub
(double time, double upar[], int npar, int iord, int iflag, double* result)
{
using namespace rd_syscall;
// Parameter Information 参数信息
// time: Simulation time of RD/Solver 仿真时间
// upar: Parameters defined by user 用户定义的变量
// npar: Number of user parameters 用户变量数
// iord: Integrator order 积分阶次
// iflag: When RD/Solver initializes arraies, the flag is true.初始化数组为 true
// result: Returned value 返回值
// User statement 下面是用户定义的功能代码
// Local Variable Definition 定义局部变量
double shift, omega;
double value;
double coef[3];
int errflg;
第 10 章 RecurDyn 二次开发 439

// Assign Impact Parameter 赋参数


shift=upar[0];
omega=upar[1];
coef[0]=upar[2];
coef[1]=upar[3];
coef[2]=upar[4];
// Call the RD_FORCOS to collect Information for Calculation 调用傅里叶余弦级数
rd_forcos(time, shift, omega, coef, 3, iord, &value, &errflg);
// Return the value 返回值
*result=value;
}
(4)从 RecurDyn 的安装目录\USUB 下将 Solver.lib 及 syscal.h 文件复制至当前的工作
目录。
(5)选择 Build>>Rebuild All 命令或按 F7 键,成功编译之后,在工作目录的 Debug
文件夹下将生成 Motion_Subroutine.dll 文件。

2.调用Motion_Subroutine.dll文件,实现滑块的运动驱动

启动 RecurDyn,打开 4.11 节的 Slider_Crank01.rdyn 文件,另存为 Motion_Sub.rdyn。


(1)从数据库窗口中选择曲柄与机架之间的转动副,右击,在弹出的快捷菜单中选择
Property 命令,在弹出的如图 10-26 所示转动副属性对话框中,取消选中 Include Motion 复
选框,单击 OK 按钮确认。

图 10-26 取消转动副驱动

(2)选择 Professional>>Body>>Box ,在图形工作窗口中先后选择坐标点(410,0,20)


和(420,0,-50),建立 Box。
(3)选择 Professional>>Force>>Spring ,在选项区选择(Body,Body,Point,Point)模
式,先后选择滑块 Slider 和新建立的 Body1(Box),选择 Slider 的质心及 Body1 的质心,
建立弹簧力。
( 4 ) 选 择 Professional>>Joint>>Translational , 在 选 项 区 选 择( Body,Body,Point,
Direction)模式,先后选择 Body1、Ground、(415,0,-15)点及 X 向,建立平动副 TraJoint2。
(5)选择 TraJoint2,右击,在弹出的快捷菜单中选择 Property 命令;在弹出的如
440 RecurDyn 多体系统优化仿真技术

图 10-27 所示平动副属性对话框中,选中 Include Motion 复选框,单击 Motion 按钮;在弹


出的 Motion 对话框中,选择 Type=User Subroutine Motion,单击 UL 按钮;在弹出的 User
Subroutine List 对话框中,单击 Create 按钮;弹出 User Subroutine 对话框,单击 D 按钮,
选择前面创建的 Motion_Subroutine.dll 文件,在 User Parameter 栏中设置用户变量为
0,12.56,10,50,3,单击 OK 按钮;返回 User Subroutine List 对话框,选择刚刚创建的子程序,
连续单击 OK 按钮确认。

图 10-27 子程序平动驱动

(6)选择 Analysis>>Dynamic/Kinematic,按照之前的设置运行动力学/运动学分析,
从结果图 10-28 可以看出用户自定义的运动驱动曲线。

图 10-28 运动驱动曲线
第 10 章 RecurDyn 二次开发 441

10.6 RecurDyn/ProcessNet简介

ProcessNet(简称 PNet)是一个基于 RecurDyn 开发自动化工作流程和扩展 RecurDy 功


能的工具,可帮助用户针对重复性工作实现其建模、仿真以及后处理任务的自动化,方便
基于已有知识经验固化流程,实现客户化定制。PNet 与 VSTA(Visual Studio Tools for
Applications)集成。由于 PNet 基于 Microsoft .NET 架构,可以方便地使用.NET 的库和控
件。PNet 提供标准的 Microsoft 开发工具 C#、VB 及与 RecurDyn 函数的接口,通过共享
.DLL 文件,即可构成 PNet 的架构,如图 10-29 所示。

图 10-29 RecurDyn 的 PNet 架构

10.6.1 RecurDyn/ProcessNet IDE环境

RecurDyn 提供二次开发的 IDE 环境,无需 Visual Studio 就可以直接在 IDE 环境中进


行开发。进入 PNet IDE 的方法为:在 RecurDyn 工作界面中选择 ProcessNet>>ProcessNet
IDE 命令(或在工具栏中单击 按钮),如图 10-30 所示,即可进入 ProcessNet RecurDyn
界面。

图 10-30 启动 IDE

IDE 环境如图 10-31 所示,共包括四大区域:项目编辑窗口(Project Editor Window)


用于编写代码或设计界面;项目浏览窗口(Project Explorer)用于观察项目以及文件;属性
窗口(Properties Window)用于查看并编辑所选对象属性;消息窗口(Message Window)
用于报告错误或警告信息。
442 RecurDyn 多体系统优化仿真技术

项目预
项目编
览窗口
辑窗口

属性窗口
消息窗口

图 10-31 ProcessNet IDE 界面

在项目浏览窗口中包含一个 RecurDyn 文件夹,其中含有 ThisApplication.cs 文件。


如果在 RecurDyn 文件夹中找不到 ThisApplication.cs,则需要将 RecurDyn 安装目录下
的 ProcessNet 目录复制并粘贴至当前工作目录,并返回 ProcessNet IDE 环境中,选择
File>>Close Project 命令;然后选择 Open Project 命令,选择工作目录中的 ProcessNet.csproj
文件,再次进入 ProcessNet IDE 环境中,根据图 10-32 所示项目浏览器中的内容删除多余
项目。根据开发目的编写代码或完成其他设计之后,在 PNet IDE 界面中选择 Build>>Build
ProcessNet 命令,即可执行代码。

图 10-32 项目浏览及编译命令

10.6.2 运行RecurDyn/ProcessNet

在 RecurDyn 主界面中选择 ProcessNet>>Run ProcessNet 命令,进入 Run ProcessNet 界


面,从其中所列的开发工具中进行选择,然后单击 Run 按钮实现运行,如图 10-33 所示。
第 10 章 RecurDyn 二次开发 443

图 10-33 运行 PNet 开发工具

10.7 RecurDyn/PressNet二次开发实例

下面通过一个例子来介绍 PNet 的应用。为了把重点放在二次开发过程,原始模型的建


立将不再赘述。
从 RecurDyn 安装目录\Help\Manual\Tutorials\Professional\ProcessNet 文件夹中将 4WD_
Loader.rdyn 复制到工作目录。
该例是一个四轮驱动装货机模型。在该模型中,车辆后部的液压泵和车辆前部的液压
缸通过两根软管连接。在工作过程中,软管弯曲并且两根管子相互接触。为了研究软管磨
损问题,需要预测软管的运动和接触位置。在建模时,将每根软管以 50 段柔性单元建模,
需要考虑两根软管中多段柔性管间的接触,同时需要考察接触发生的位置以及接触力的幅
值。由于重复性地定义接触非常枯燥乏味,而且柔性体段容易选择错误,因此需要创建自
动化的流程实现自动定义系列接触。同时需要通过二次开发创建一个控制接触的对话框,
并且需要开发出一个自动检查接触力的功能,在后处理绘图中仅仅绘制非零接触力曲线。
整个二次开发过程共包括三大步骤:
(1)自动定义接触。
(2)定义对话框和消息输出。
(3)后处理自动绘制所需曲线。

10.7.1 开发自动化创建接触功能

将模型中 BeamGroup1 和 BeamGroup2 放置于 2 层,


并通过 RecurDyn 工具栏中的 Layer
Filter 按钮显示当前层,将 Layer number 设为 2。
开发目的:如图 10-34 所示,每一根软管包括 50 段,软管在每一端的安装位置分开。
由于两个软管弯曲不同,在软管的中间会发生接触。通过 2 个阶段自动创建软管间可能的
接触对。
开发过程:先创建软管中间的 11 对接触,经运行检验正确之后,再创建其余接触。
444 RecurDyn 多体系统优化仿真技术

图 10-34 软管

1.创建 11 对接触

首先,在 RecurDyn 界面中选择 ProcessNet>>ProcessNet IDE 命令,进入 RecurDyn IDE


环境,在项目浏览窗口中,双击 RecurDyn 下的 ThisApplication.cs,在项目编辑窗口中找到
HelloProcessNet( )方法,在该方法后增加 Public 空方法(必须为 Public 型),如图 10-35
所示。
Public void ProcessNetTutorialCreateSolidContact( )
{
}

图 10-35 建立自动接触方法

然后,在刚刚创建的空方法中增加下列代码声明变量,以定义创建接触的起止 Body
号,以及软管 1 上 body 号和软管 2 上相应 Body 号的间隔。
int BodyNumStart= 20; // Start creating contacts with body 20
int BodyNumEnd= 30; // Continue until body 30
int BodyInterval= 51; // Interval between body number on hose 1 and corresponding
//body's number on hose 2 is 51
接下来,定义循环。在刚刚创建的变量声明之后,增加如下循环嵌套,以循环定义对
应 Body 之间的接触(在编写代码过程中,可参考 PNet 帮助文档中相应功能的代码)。
for (int i= BodyNumStart; i <= BodyNumEnd; i++)
{
int j= i + BodyInterval;
第 10 章 RecurDyn 二次开发 445

// j is the index for the corresponding bodies on hose #2 ,Do the contact for
//corresponding bodies
IBody baseBody= model.GetEntity("BeamBody" + i.ToString( )) as IBody;
IGeometry baseGeom= baseBody.GetEntity("HollowCircularBeam1") as IGeometry;
IBody actionBody= model.GetEntity("BeamBody" + j.ToString( )) as IBody;
IGeometry actionGeom= actionBody.GetEntity("HollowCircularBeam1") as IGeometry;
IContactSolidContact solidContact= model.CreateContactSolidContact("solidContact"
+ i.ToString( ), baseGeom, actionGeom);
}
接着,修改接触参数。使用智能提示(如图 10-36 所示),在上述循环中最后一个语
句之后输入 s 字符,在弹出的列表框中包含了该部分的变量名、可调用的方法等。从智能
提示中找到 solidContact 并按 Enter 键(或双击)进行选择,然后输入“.”(点);再从智
能提示列表中选择 ContactProperty,连续输入“.”(点),直至完全输入下面两行语句。

图 10-36 使用智能提示框

solidContact.ContactProperty.StiffnessCoefficient.Value=1000;
solidContact.ContactProperty.DampingCoefficient.Value= 0.1;
至此,11 对接触和接触参数已经定义好。下面 Build 上述代码并执行应用程序。
选择 Build>>Build ProcessNet 命令,对上述代码进行 Build。完成之后,返回 RecurDyn
界面。选择 ProcessNet>>Run ProcessNet 命令,打开 Run ProcessNet 对话框,如图 10-37 所
示。从该对话框中的宏命令列表中,选择 ProcessNetTutorialCreateSolidContact,并单击 Run
按钮。

图 10-37 运行自动接触工具

提示:如果没有拟运行的宏,可以选择需要调用的宏所在目录下的*.csproj,通过 Reload
按钮装载。
446 RecurDyn 多体系统优化仿真技术

返回 RecurDyn 界面,从数据库窗口中可以看出已经自动创建了 11 对接触。

2.创建其余接触对

下面通过代码创建每一循环中的更多接触,定义软管 1 中某段和软管 2 中相应段两邻


侧的接触。软管 1 中的第 i+1 段和软管 2 中的第 j 段之间的接触将以.a 为后缀命名。类似地,
软管 1 中的第 i 段和软管 2 中的第 j+1 段接触将以.b 为后缀命名。
在循环中的最后语句之后增加如下代码:
// Do the contact for body i+1 and body j
solidContact= model.CreateContactSolidContact ("solidContact" + i.ToString( ) + "a",
(model.GetEntity("BeamBody" + Convert.ToString(i + 1)) as IBody).GetEntity("HollowCircular-
Beam1") as IGeometry, (model.GetEntity("BeamBody" + j.ToString( )) as IBody) .GetEntity
("HollowCircularBeam1") as IGeometry);
solidContact.ContactProperty.StiffnessCoefficient.Value= 1000;
solidContact.ContactProperty.DampingCoefficient.Value= 0.1;
// Do the contact for body i and body j+1
solidContact= model.CreateContactSolidContact( "solidContact" + Convert.ToString(i) +
"b", (model.GetEntity("BeamBody" + i.ToString( )) as IBody) .GetEntity("HollowCircularBeam1")
as IGeometry, (model.GetEntity("BeamBody" + Convert.ToString(j + 1)) as IBody).GetEntity
("HollowCircularBeam1") as IGeometry);
solidContact.ContactProperty.StiffnessCoefficient.Value= 1000;
solidContact.ContactProperty.DampingCoefficient.Value= 0.1;
需要注意的是,当已经存在相同的接触名称时,将不再新建接触。
选择 Build>>Build ProcessNet 命令,完成 Build 之后,返回 RecurDyn 界面。在 RecurDyn
界面中选择 ProcessNet>>Run ProcessNet 命令,打开如图 10-38 所示 Run ProcessNet 对话框,
从宏命令列表中选择 ProcessNetTutorialCreateSolidContact,并单击 Run 按钮。

图 10-38 自动定义 33 对接触


第 10 章 RecurDyn 二次开发 447

至此,通过 ProcessNetTutorialCreateSolidContact 可以建立 33 对接触。

10.7.2 开发对话框和消息输出

通过增加对话框,能够控制创建哪些段之间的接触。其主要工作包括设计对话框界面,
并在现有程序中增加代码以便能够调用新的对话框。需要经历以下两个过程。

1.设计对话框外观

再次返回 ProcessNet IDE 环境中,选择 Project>>Add Windows Form 命令,在弹出的如


图 10-39 所示对话框中的 Templates 栏中选择 Windows Form,接受默认的 Form1.cs 名称,
单击 Add 按钮。此时项目编辑窗口将切换至对话框设计状态。 将鼠标放置在 Form1.cs[Design]
左侧的 上,将出现一个浮动工具箱,其中包含增加对话框窗口和其他控件。

图 10-39 建立对话框窗体

如图 10-39 所示,从普通控件列表中找到 Label,将其拖至对话框的左上区域;然后选


448 RecurDyn 多体系统优化仿真技术

择 TextBox,并将它拖至对话框中 Label 的右侧。


重复两次上面的步骤。从普通控件列表中选择 Checkbox 控件,并拖至对话框中部。连
续两次选择 Button 并分别拖至对话框下部区域。最后设计出如图 10-40 所示的对话框。

图 10-40 建立接触控制对话框

下面更改对话框中的控件属性。
选择对话框中的 label1,并在右下角的属性窗口中,将 Text 的值改为 Starting Segment。

提示:label 的编辑区域很小,但可通过单击右侧的下拉箭头获得一个更大的工作区域,
从而更方便地进行编辑。

以同样方法更改对话框中的各元素属性,对应关系如下。
 label1=Starting Segment。
 label2=Ending Segment。
 label3=Interval to Hose #2。
 checkBox1=Add Offset Contacts。
 button1=OK。
 button2=Cancel。
 Form1=Automated Hose Contact。
其中,选择更改对话框本身属性时需要在对话框中没有组件的任何区域单击。
最后,对话框外观如图 10-41 所示。

图 10-41 Automated Hose Contact(自动软管接触)对话框

选择 File>>Save All 命令,保存 Dialog1.vb 以及项目的设置。

2.定义对话框触发行为

设置好对话框外观之后,需要定义对话框的行为,包括增加变量(将用户输入值保存
至文本框)、复选框的状态控制。在代码中初始化所有变量,定义用户单击 OK 按钮之后
第 10 章 RecurDyn 二次开发 449

发生的事件。
在 Automated Hose Contact 对话框中没有组件的区域双击,在 IDE 项目编辑窗口中显
示出 Form1.cs 代码,创建 Form1_Load 的方法(无论何时,装载对话框都将调用该程序,
此处用于放置初始化变量的代码)。
增加代码,声明对话框使用的变量,包括 BnumStart、BnumEnd、BodyInterval 以及
AddOffsetFlag。
public partial class Form1 : Form
{
public int BNumStart;
public int BNumEnd;
public int BodyInterval;
public bool AddOffsetFlag;
public Form1( )
{
InitializeComponent( );
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
在 Form1_Load( )方法中,增加用于初始化的代码。
textBox1.Text= "20";
BNumStart= 20;
textBox2.Text= "30";
BNumEnd= 30;
textBox3.Text= "51";
BodyInterval= 51;
checkBox1.Checked= false;
返回 Automated Hose Contact 对话框,双击 OK 按钮。
在自动创建的新方法 button1_Click 中,增加下列代码。
private void button1_Click(object sender, EventArgs e)
{ BNumStart= Convert.ToInt32(textBox1.Text);
BNumEnd= Convert.ToInt32(textBox2.Text);
BodyInterval= Convert.ToInt32(textBox3.Text);
AddOffsetFlag= checkBox1.Checked;
DialogResult= DialogResult.OK; Close( );
}
再次返回 Automated Hose Contact 对话框,双击 Cancel 按钮,并在自动创建的方法中
450 RecurDyn 多体系统优化仿真技术

增加如下代码。
private void button2_Click(object sender, EventArgs e)
{
Close( );
}
选择 File>>Save 命令,保存 Form1.cs。
将 ThisApplication.cs 中前面创建的 ProcessNetTutorialCreateSuToSuContact 子程序整个
复制并再粘贴一份,重命名为 ProcessNetTutorialCreateSuToSuContact_WithDialog。
更改下列相应部分:
 更改 1:删除划线部分语句,或通过//注释掉,如图 10-42 所示。

图 10-42 删除语句

 更改 2:创建一个 Form1 实例,用 if 语句测试用户的响应,如果用户单击 OK 按


钮,将执行 if 语句中的代码。同时,声明 NumContacts 变量,该变量跟踪所创建
的接触数。
// Create a Form
Form1 MyForm= new Form1( ); // Open the Dialog
MyForm.ShowDialog( );
if (MyForm.DialogResult== System.Windows.Forms.DialogResult.OK)
{ int NumContacts= 0;
 更改 3:替代手动定义的接触段变量数,实现通过在对话框中输入为变量赋值。
int BodyNumStart= MyForm.BNumStart;
int BodyNumEnd= MyForm.BNumEnd;
int BodyInterval= MyForm.BodyInterval;
 更改 4:正确地更新 NumContacts,同时以 if 语句检验用户是否选择了 Add Offset
Contacts,如果选中了该复选框,执行如下语句。
// Increment the number of contacts
NumContacts= NumContacts + 1;
if (MyForm.AddOffsetFlag)
{
... // Increment the number of contacts
NumContacts= NumContacts + 2;
}
 更改 5:在 RecurDyn 的 Message 窗口中显示输出信息,报告创建了多少对接触。
application.PrintMessage(NumContacts.ToString( ) + " contacts were created between the
第 10 章 RecurDyn 二次开发 451

two hoses.");
}
最后,选择 File>>Save 命令,保存 ThisApplication.cs;选择 Build>>Build ProcessNet
命令,开始编译执行。
至此,对话框和消息输出的开发工作已经结束,可以通过 RecurDyn 中的 Run ProcessNet
命令检验开发效果。

10.7.3 开发后处理自动绘制曲线功能

下面开发后处理自动绘制曲线功能。
通过两个窗口分别显示不同的曲线:
 第一个窗口单独显示段与段之间的接触力幅值,仅仅显示非零数据,并通过格式、
附加标签以及在聚焦 x 轴的显示范围增强后处理效果。
 第二个窗口以分量的形式显示软管-软管之间的接触力,分为 X、Y、Z 分量,并
通过标签和格式增强显示效果。
因此开发过程包括智能地决定显示哪些数据和格式化定义曲线。

1.创建新的对话框

为了节省工作量,采用复制-粘贴方法在已有对话框的基础上进行更改。
如图 10-43 所示,在 ProcessNet IDE 环境中右侧的项目浏览窗口中,右击 Form1.cs,
在弹出的快捷菜单中选择 Copy 命令;右击 ProcessNet,在弹出的快捷菜单中选择 Paste 命
令;单击 Copy of Form1.cs,将其重命名为 Form2.cs。

图 10-43 复制-粘贴对话框

再来看如何调整粘贴的对话框。
双击 Form2.cs,打开对话框设计窗口;选择 View>>Code 命令,以显示代码窗口。在
452 RecurDyn 多体系统优化仿真技术

代码中执行搜索,将 Form1 用 Form2 代换(共 3 处)。


如图 10-44 所示,在项目浏览窗口中右击 Form2.Designer.cs,在弹出的快捷菜单中选
择 Open 命令。再次执行搜索,将 Form1 替换为 Form2(共 2 处)。

图 10-44 更改复制对话框

在 IDE 项目编辑窗口中,单击 Form2.cs [Design]标签,选择对话框本身,单击任何没


有组件的部位。在属性窗口中,将文本改为 Automated Hose Contact Plotting。
在 IDE 项目编辑窗口中,合理调整新的标题。单击 Add Offset Contacts 标签,在属性
窗口中,将文本改为 Offset Contacts Used。
选择 File>>Save All 命令保存。

2.绘制接触力

在 ThisApplication 类中创建一个新的子程序。
在 ThisApplication 类中增加下列代码,确保这些代码不在其他子程序中。
public void ProcessNetTutorialPlotData( )
{ // Create an auto contact plotting dialog
Form2 MyForm= new Form2( ); // Open the dialog
MyForm.ShowDialog( ); // If the user clicked OK:
if (MyForm.DialogResult== System.Windows.Forms.DialogResult.OK)
{ // Get the TIME data
double[] TIME= plotDocument.GetPlotData("4WD_Loader_Start/TIME");
// |||||||| Plot individual contact forces |||||||| // Active upper-left plot window
plotDocument.ActivateView(0, 0);
for (
int bodyIndex= MyForm.BNumStart;
bodyIndex <= MyForm.BNumEnd;
bodyIndex++)
{ // Load up the contact name number array
第 10 章 RecurDyn 二次开发 453

String[] contNum= {bodyIndex.ToString( ), "", ""};


if (MyForm.AddOffsetFlag)
{
contNum[1]= bodyIndex.ToString( ) + "a";
contNum[2]= bodyIndex.ToString( ) + "b";
}
for (int contNumIndex= 0; contNumIndex < contNum.Length;
contNumIndex++)
{
if (String.Compare(contNum[contNumIndex], "") != 0)
{ // Get the contact data for this segment
double[] contact= plotDocument.GetPlotData( "4WD_
Loader_Start /Contact/Solid Contact/solidContact" + contNum[contNumIndex] + "/FM_
SolidContact"); // Plot vs. TIME
plotDocument.DrawPlot("Contact" + contNum
[contNumIndex], TIME, contact);
}
}
}
}
}
选择 File>>Save All 命令保存。
在 RecurDyn 界面中运行 2s 的仿真分析任务之后,进入 Plot 后处理界面。在后处理中
运行 Run ProcessNet,选择 ProcessNetTutorialPlotData,选择 Offset Contacts Used,单击 Run
按钮,系统将自动绘制如图 10-45 所示的曲线。

图 10-45 自动绘制曲线
454 RecurDyn 多体系统优化仿真技术

3.改善接触力显示效果,仅仅显示非零接触力

为了重点绘制非零接触力区域,需要改动如下代码。
首先,在 double[] TIME= plotDocument.GetPlotData("4WD_Loader/TIME"); 之后添加如
下语句:
// Initialize variables for X-axis limits
double timeAtFirstContact= TIME[TIME.Length - 1];
double timeAtLastContact= 0;
然后,删除或注释如下语句,并在该语句后增加新代码。
// Plot vs. TIME
plotDocument.DrawPlot("Contact" + contNum[contNumIndex], TIME, contact);
在 plotDocument.DrawPlot("Contact" + contNum[contNumIndex], TIME, contact);后增加
的新代码(这些代码用于搜索非零值,并记录开始至结束时间段中的非零接触力)为:
// Check for non-zero contact data, and determine time at first contact
int j;
bool madeContact= false;
for (j= 0; j < contact.Length; j++)
{
if (contact[j] > 0)
{ madeContact= true;
if (TIME[j] < timeAtFirstContact)
timeAtFirstContact= TIME[j];
break;
}
}
// Determine time at last contact
j= contact.Length - 1;
while (j > 0)
{ if (contact[j] > 0)
{ if (TIME[j] > timeAtLastContact)
timeAtLastContact= TIME[j];
break;
} j--;
}
// If non-zero contact data found, then plot vs. TIME
if (madeContact)
plotDocument.DrawPlot("Contact" + contNum[contNumIndex], TIME, contact);
保存,并 Build。
第 10 章 RecurDyn 二次开发 455

4.格式化定义:通过标题、标签描述绘图所表达的含义

X-axis limits Chart1.AxisX.Min 以及 Chart1.AxisX.Max 的定义使用前面计算的变量


timeAtFirstContact 及 timeAtLastContact。
首先在#region namespace 区中增加:
using FunctionBay.RecurDyn.ProcessNet.Chart;
接下来增加如下代码:
// Get Chart object and format
IChart Chart1= plotDocument.ActiveChartControl;
Chart1.Title.Text= "Hose Contact Force";
Chart1.AxisX.Title.Text= "Time (sec)";
Chart1.AxisX.Min= 0.1 * Math.Truncate(timeAtFirstContact * 10);
Chart1.AxisX.Max= 0.1 * Math.Ceiling(timeAtLastContact * 10);
Chart1.AxisX.LabelsFormat.Decimals= 1;
Chart1.AxisY.LabelsFormat.Decimals= 1;
Chart1.AxisY.Title.Text= "Contact Force (N)";
Chart1.LegendBox.Alignment = LegendBoxAlignment.LegendBoxAlignment_Far;
保存,并 Build。

5.绘制接触力在x、y、z轴向的接触力分量

在 ProcessNet 中,用于绘图的数据储存在数组中,可以进行数学操作。
在// Get Chart object and format
...
Chart1.AxisY.Title.Text= "Contact Force (N)";
之后增加下列代码:
// |||||||| Plot sums of X, Y, and Z components ||||||||
// Activate the lower-left plot window
plotDocument.ActivateView(1, 0);
double[] xSum= new double[TIME.Length];
double[] ySum= new double[TIME.Length];
double[] zSum= new double[TIME.Length];
for (int bodyIndex= MyForm.BNumStart; bodyIndex <= MyForm.BNumEnd;
bodyIndex++)
{ // Load up the contact name number array
String[] contNum= {bodyIndex.ToString( ), "", ""};
if (MyForm.AddOffsetFlag) { contNum[1]= bodyIndex.ToString( ) + "a"; contNum[2]=
bodyIndex.ToString( ) + "b"; }
for (int contNumIndex= 0; contNumIndex < contNum.Length; contNumIndex++) { if
456 RecurDyn 多体系统优化仿真技术

(String.Compare(contNum[contNumIndex], "") != 0)
{ // Get the contact data for this segment
double[] contactX= plotDocument.GetPlotData( "4WD_Loader/Contact/Solid
Contact/solidContact" + contNum[contNumIndex] + "/FX_SolidContact");
double[] contactY= plotDocument.GetPlotData( "4WD_Loader/Contact/Solid
Contact/solidContact" + contNum[contNumIndex] + "/FY_SolidContact");
double[] contactZ= plotDocument.GetPlotData( "4WD_Loader/Contact/Solid
Contact/solidContact" + contNum[contNumIndex] + "/FZ_SolidContact");
if (contNumIndex== MyForm.BNumStart)
{ // If looping through the first contact, initialize the sum arrays
xSum= contactX;
ySum= contactY;
zSum= contactZ; }
else { // Else, add this contact's array data to the running total
for (int j= 0; j < TIME.Length; j++)
{ xSum[j]= xSum[j] + contactX[j];
ySum[j]= ySum[j] + contactY[j];
zSum[j]= zSum[j] + contactZ[j];
}}}}}
// Plot vs. TIME
plotDocument.DrawPlot("X Sum", TIME, xSum);
plotDocument.DrawPlot("Y Sum", TIME, ySum);
plotDocument.DrawPlot("Z Sum", TIME, zSum);
// Get Chart object and format
IChart Chart2= plotDocument.ActiveChartControl;
Chart2.Title.Text= "Total Hose-to-Hose Contact Force";
Chart2.AxisX.Title.Text= "Time (sec)";
Chart2.AxisX.Min= 0.1 * Math.Truncate(timeAtFirstContact * 10);
Chart2.AxisX.Max= 0.1 * Math.Ceiling(timeAtLastContact * 10);
Chart2.AxisX.LabelsFormat.Decimals= 1;
Chart2.AxisY.LabelsFormat.Decimals= 1;
Chart2.AxisY.Title.Text= "Contact Force (N)";
Chart2.LegendBox.Alignment= LegendBoxAlignment.LegendBoxAlignment_Far;
完成代码编写之后,保存,并进行 Build。
在 RecurDyn 的 Plot 后处理中,通过 Run ProcessNet,运行 ProcessNetTutorialPlotData,
选择 Offset Contacts Used,单击 Run 按钮,结果如图 10-46 所示。
第 10 章 RecurDyn 二次开发 457

图 10-46 绘制非零接触力区域

10.8 小 结

本章介绍了两种二次开发的方法,并通过简单实例讲解了二次开发的过程。在用户子
程序开发生成 DLL 时,需要注意不同的开发环境有其自身的方法。在采用 ProcessNet 进行
开发时,可参考相应部分的 Help 文档寻找帮助(Help 中提供有不同名字空间相应的例子)
也可通过智能提示获得简便的操作指南。

You might also like