基于笛卡尔方法的多体系统Modelica表示

时间:2022-06-12 11:19:07

基于笛卡尔方法的多体系统Modelica表示

摘 要:针对Modelica多体建模过程较为繁琐、创建模型不够直观的问题,在研究多体系统由物理模型到数学模型再到Modelica表示的完整映射过程的基础上,采用笛卡尔方法,以多体动力学建模软件InteDyna为建模前端,在多领域物理系统建模仿真工具MWorks中实现多体系统三维可视化建模与仿真.双摆实例表明该方法有效.

关键词:多体系统; Modelica; 笛卡尔方法

中图分类号:TP391.9 文献标志码:A

Multi-body system expression in Modelica based on

Cartesian method

WANG Qi, ZHOU Fanli, CHEN Liping

(School of Mechanical Science and Engineering, Huazhong University of Science & Technology, Wuhan 430074, China)

Abstract: As it is complicated to create multi-body models in Modelica and the created model is not intuitive, based on the research of converting physical model of multi-body system to mathematical model and then to Modelica presentation, the 3D visual modeling and simulation of multi-body system are implemented in multi-domain physical system modeling and simulation tool MWorks by following the Cartesian method and using multi-body dynamics modeling software InteDyna as the modeling front-end. An example of double pendulum demonstrates the validity of the method.

Key words: multi-body system; Modelica; Cartesian method

0 引 言

机电产品日趋复杂,大多由机械、电子、液压和控制等不同领域的零部件组成,通常要求进行多领域的协同仿真.机械多体动力学仿真是机电产品仿真的重要内容,MSC Adams是目前世界上应用最广泛的多体动力学仿真软件之一,但MSC Adams仅局限于机械多体领域.如要进行系统级仿真,需与电子、液压和控制等其他领域的软件一起进行联合仿真.鉴于联合仿真成本高、难度大且不具备通用性,工业界开发出一种能进行多领域统一建模和协同仿真的技术――Modelica建模仿真技术[1].Modelica是一种面向对象、基于方程、采用层次化组件模型并具有可重用性的物理建模语言,它能以统一的方式对不同领域的模型进行表述,实现多领域统一建模仿真的目的.

Modelica基于领域模型库实现对不同领域建模和仿真的支持,机械库是Modelica最重要的模型库之一.目前,基于Modelica的多体建模方法主要有:(1)基于Modelica标准多体库[2];(2)基于MapleSim自定义多体库[3].这2种方法基于不同的多体表示方法,前者基于超定连接图机制[2],后者基于线性图表示[4],但二者的建模流程和操作基本一致,都通过在二维平面上拖放组件,然后连接组件端口创建模型,即示意图建模.用第1种方法创建的空间曲柄滑块模型见图1(a).这2种建模方法都不够直观,无法直接反映机构三维空间构型,且建模过程要求用户计算所有部件端点的位置,建模过程繁复、效率较低.此外,这些建模方式也不便于导入MSC Adams等主流多体软件的模型.为能直观、高效地创建Modelica多体模型,本文提出一种新的建模方式:将支持运动学建模的三维几何软件或多体软件作为前端,得到多体系统的物理模型,然后应用多体系统笛卡尔表示方法,将多体系统的物理模型转为数学模型并表示为modelica,实现与其他领域组件的统一建模.该方式既可有效地进行三维多体可视化建模,又可充分利用Modelica的多领域统一建模能力.空间曲柄滑块机构在此方式下的模型见图1(b).

(a)基于Modelica标准多体库的模型

(b)基于InteDyna的模型

图 1 2种建模方式下的空间曲柄滑块模型

Fig.1 [WB]Models of spatial crank-slider based on

two different modeling methods

本文以全面兼容MSC Adams的多体动力学建模软件InteDyna[5]为前端,多领域建模仿真软件MWorks[6]为实现平台,重点分析基于笛卡尔方法[7]实现多体系统从物理模型到Modelica表示的关键问题,并给出一个完整示例.

1 多体系统Modelica表示

多体系统物理模型通常由一套固定的要素组成,包括标架、部件、运动副、驱动、外力和外力矩等,这些要素的连接关系构成多体系统的拓扑构型.根据多体动力学的不同数学表示方法,由多体拓扑构型可以生成具有固定结构的数学模型.本文先介绍多体系统笛卡尔方法,再详细论述如何基于该方法实现多体系统物理模型到Modelica表示的映射.

1.1 多体系统笛卡尔方法

多体系统一般有2种数学建模方法:拉格朗日方法和笛卡尔方法.拉格朗日方法方程个数少,易转化为常微分方程组,但方程呈严重非线性,在选择广义坐标时需人为干预,不利于计算机自动建模;笛卡尔方法方程个数较多,但系数矩阵呈稀疏状,且可基于有限约束类型进行符号计算,适合计算机自动建模.由于本文的目标是实现物理模型向Modelica表示的自动转换,故采用笛卡尔方法.

在笛卡尔方法中,每个部件的位置由其质心位置表示,每个部件的姿态由固接在部件上且原点与质心重合的局部坐标系(即质心坐标系)的姿态表示.质心的位置由3个变量表示,质心坐标系的姿态由4个变量表示,即欧拉四元素,这7个变量合称为该部件的广义坐标.

1.2 多体系统物理模型Modelica表示

基于笛卡尔方法的多体系统Modelica表示的主要任务是按照多体拓扑构型,将物理模型转换为数学模型(见式(1)),然后再将数学模型按Modelica规范列写为Modelica文本.

1.2.1 物理模型转换为数学模型

转换的关键在于如何由多体拓扑构型自动生成式(1)中的各个元素矩阵.

(1)质量矩阵.从每个部件中获取质量,根据定义生成.

(2)惯性张量矩阵.由于部件中的惯性张量矩阵相对于惯性坐标系定义,而笛卡尔方法需相对于质心坐标系定义的惯性张量矩阵,如果部件的惯性坐标系与质心坐标系重合,则部件的惯性张量矩阵即为所需;若不重合,则需进行转化.在获得每个部件的惯性张量矩阵后,可根据定义生成数学模型的惯性张量矩阵.

(3)运动约束方程矩阵.约束分为位置约束和驱动约束.位置约束根据物理模型的运动副要素生成,在定义运动副时,会将2个标架(即I Marker和J Marker)分别固接于运动副连接的2个部件,通过约束这2个标架的相对运动约束部件的相对运动.驱动约束根据物理模型的驱动要素生成,驱动都基于运动副定义,并规定某个自由度的运动规律.位置约束和驱动约束都由若干基本约束方程组成,驱动约束还需在方程中加上自定义的驱动表达式.4种基本约束方程见表1.以移动副和移动驱动为例,二者的约束方程集合见表2.在获取物理模型所有运动副和驱动对应的约束方程集合后,将这些约束方程依次排列,可得数学模型的约束方程集合.表 1 4种基本约束方程

(5)力矩阵和力矩矩阵.获取系统定义的重力加速度,结合部件质量即可获得部件所受重力.对于单作用力、力元、单作用力矩和力矩力元,它们的作用点和作用方向可从定义它们的标架中获取,结合它们的力大小表达式,可知它们对部件产生的力和力矩.将单个部件受到的所有外力(力矩)进行叠加,可得单个部件所受的合外力(力矩),根据定义可求得数学模型的力(力矩)矩阵.

(6)其余矩阵.其余矩阵与多体物理模型没有直接关系,可根据多体系统笛卡尔方法直接生成.

1.2.2 数学模型转换为Modelica表示

在获得数学模型后,需将其转换为Modelica文本.多体系统数学模型的Modelica文本分为3部分:(1)广义坐标初值区;(2)元素矩阵区;(3)系统方程组区.广义坐标初值区用于表示全部部件在初始时刻的广义坐标值;元素矩阵区用于表示上述所有的元素矩阵;系统方程组区用于表示式(1).

2 应用示例

以双摆为例,以本文实现的系统所创建的模型见图2(a).该模型的拓扑结构见图3,其数学模型为式(1).

模型对应的Modelica代码如下:

广义坐标初值区

Real r[6](start = {1, 0, 0, 3, 0, 0});

Real dr[3](start = {0, 0, 0, 0, 0, 0});

Real p[4](start = {1, 0, 0, 0, 1, 0, 0, 0});

Real dp[4](start = {0, 0, 0, 0, 0, 0, 0, 0});

//元素矩阵区

Real M[6,6] = diagonal({1, 1, 1, 1, 1, 1});

Real J[6,6] = diagonal({1, 1, 1, 1, 1, 1});

Real F[6] = {0, -10, 0, 0, -10, 0};

Real N[6] = {0, 0, 0, 0, 0, 0};

//系统方程组区

dr = der(r);

ddr = der(dr);

dp = der(p);

ddp = der(dp);

M * ddr + phirt * lambda = F;

4 * Gt * JPie * G * ddp + phipt * lambda +

phippt * lambdap = 2 * Gt * N + 8 *

der(Gt) * JPie * der(G) * p;

上述代码在MWorks 2.1中的求解结果见图4.图4中曲线表示杆1质心的y坐标随时间的变化情况.图2(b)为针对同一双摆基于Modelica标准多体库搭建的模型,其求解结果见图5.图5中曲线表示杆1末端的y坐标随时间的变化情况.由于杆1的质心在其几何中心,故图5中点的纵坐标应为图4中相应点的2倍.可知,2个模型的求解结果几乎完全相同.

3 结 论

本文给出的方法与基于Modelica标准多体库的建模方式相比更加直观、有效,且生成的方程规模小.以双摆示例,基于Modelica标准多体库所建模型的变量和方程数为1 885,而本文所建模型为298.虽然本文的实现以InteDyna为前端,但研究的方法适合所有支持运动学建模的三维几何软件或多体软件,均可作为前端实现多体模型到Modelica表示的转换.

多体系统求解一般存在违约问题.[8]本文给出的方法将多体模型转为Modelica模型,Modelica平台(如MWorks)可直接处理高阶DAE问题,因而可避免直接处理违约问题.另外,在多体求解中常见的问题是冗余约束处理和初始装配问题[8],采用基于Modelica模型库的建模难以直接处理,而本文给出的方法可通过数值方法方便地处理.将多体模型转为Modelica表示后,可作为独立的Modelica模型与其他领域模型连接,方便实现多领域统一建模.

参考文献:

[1] FRITZSON P. Principles of object-oriented modeling and simulation with Modelica 2.1[M]. New York: Wiley-IEEE Press, 2003: 19-71.

[2] OTTER M, ELMQVIST H, MATTSSON S E. The new Modelica multibody library[C] // Peter Fritzson. Proc 3rd Int Modelica Conf, Linkping, Sweden, 2003: 311-330.

[3] 何正大, 许玫, 杨访. 用MapleSim进行多领域混合建模仿真分析[J]. 电脑知识与技术, 2009, 5(36): 10305-10307.

[KG*2]HE Zhengda, XU Mei, YANG Fang. Multi-domain modeling simulation and analysis using MapleSim[J]. Comput Knowledge & Technol, 2009, 5(36): 10305-10307.

[4] 朴明伟. 面向结构的多刚体动力学系统线图[J]. 系统仿真学报, 2003, 15(10): 1402-1404.

[KG*2]PIAO Mingwei. Structure-oriented linear graph for rigid multi-body dynamical system[J]. J Syst Simulation, 2003, 15(10): 1402-1404.

[5] 王波兴, 胡臻, 夏鸿建, 等. 动力学仿真中的子系统建模技术研究[J]. 计算机集成制造系统, 2007, 13(3): 478-483.

[KG*2]WANG Boxing, HU Zhen, XIA Hongjian, et al. Subsystem modeling technology in dynamics simulation[J]. Comput Integrated Manufacturing Systems, 2007, 13(3): 478-483.

[6] ZHOU Fanli,CHEN Liping,WU Yizhong, et al. MWorks: a modern IDE for modeling and simulation of multi-domain physical systems based on Modelica[C] // The Modelica Association. Proc 5th Int Modelica Conf, Vienna, Austria, 2006: 725-731.

[7] 洪嘉振. 计算多体系统动力学[M]. 北京: 高等教育出版社, 1999: 98-326.

[8] 周凡利. 约束机械系统动力学实时积分方法研究与系统实现[D]. 武汉: 华中科技大学, 2001.

上一篇:STAR-CCM+使用技巧(续完) 下一篇:钢轨火焰热处理温度场数值模拟