1、MapleSim 实例操作指导 / N I V er i S t a n dP X Ic R I O莎益博工程系统开发(上海)有限公司1 MapleSim 实例 操作指导 MapleSim 是一个多学科系统级建模仿真工具,提供图形化的设计环境,让用户在单一的环境中通过简单的拖动方式完成各种系统的建模、分析和仿真。通过 MapleSim 系统级模型,设计人员可以快速地对设计方案进行可行性分析,优化系统参数并进行故障诊断的前提设计,减少基于物理样机实验的巨大时间和费用。 本次体验活动环节 通过几个实例的练习,加深了解 MapleSim 的独特之处。 实例 1.单摆模型 该示例主要体现 MapleS
2、im 物理系统建模方式,或基于物理对象 建模的特点。方便的建模方式,可以快速的搭建复杂的系统模型。 单摆模型如下所示,由固定端、转动副和连杆(质心位于中心 ,长度为 L)组成 。 所用到的元件有: 名称 图标 功能 描述 数量 Fixed Frame 固定端 1 2 Revolute 转动副 1 Rigid Body Frame 刚体坐标系元件 2 Rigid Body 刚体元件 质心 1 1.添加元件到模型工作区中,如下所示; Fixed Frame:单摆模型固定端; Revolute:单摆转动副; Rigid Body:单摆连杆质心; Rigid Body Frame:连接质心的连杆; 2
3、.调整元件布局,如下所示; 元件调整方式:右旋转: Ctrl + R,左旋转: Ctrl + L,左右反转: Ctrl + H,垂直反转 Ctrl + F; 左 右 反 转 C t r l + H左 旋 转 C t r l + L3 3.将各个元件按顺序连线 ,如下 图 所示; 4.修改模型参数 ,如下 图 所示; 选中左侧的 “Rigid Body Frame“ 元件,从 Inspector 面板上找到对应的参数项 “r_XYZ“,将参数值 1,0,0 修改为 -0.5,0,0,也就是定义质心左侧的长度为0.5m; 同样,选中右侧的 “Rigid Body Frame“ 元件,将参数项 “r
4、_XYZ“的值从 1,0,0修改为 0.5,0,0,也就是定义质心右侧的长度为 0.5。 由此定义连杆的总长 L 为 1m,质心位于连杆的中心。 5.添加和设置探针 Probe,如下 图 所示; 点击工具栏上的“ Attach Probe”图标,光标将变为探针形状; 点击“ Revolute Joint”元件右上角的空心圆端口,添加一个探针 Probe1; 选择要测量的物理量: Angle 和 Speed。 4 添 加 探 针 P r o b e设 定 探 针 测 量 量 使用相同的方法,添加探针 Probe2 到 Rigid Body Frame( RBF2)元件。 选择要输出的物理量。这里
5、选择 Length 下的 1 和 2,也就是端点的 X 坐标和Y 坐标。 6.运行仿真,如下图所示; 点击运行按钮,运行模型,查看仿真结果 包括 单摆转角 角度、角速度、 连杆末端 X 方向 位移 、 Y 方向位移 。 5 运 行 仿 真角 度 角 速 度Y 位 移X 位 移实例 2.考虑转动副摩擦的 单摆模型 该示例主要体现 MapleSim 方便的自定义元件 可以轻松、快速地创建基于数学模型的自定义建模元件,可扩展 MapleSim 的建模元件库,定义企业专业级的元件库。 转动副摩擦 产生的力矩 等于 摩擦系数 k 乘以 转角速度 ,如下式所示 : 基于转动副摩擦受力方程,采用基于方程的自
6、定义元件,创建一个转动副摩6 擦受力元件。 1.调用 Maple 自定义元件分析模板 点击工具栏上的“ Create attachment from template”图标,调用 Maple 的分析模板 ; 选择自定义元件模板 : Custom Component,并点击 Create Attachment,建立MapleSim 和 Maple 的连接,自动打开 Maple 自定义元件模板。 C r e a t e a t t a c h m e n t f r o m t e m p l a t e2.输入自定义 模型方程 ; Maple 自定义元件模板 Custom Component T
7、emplate 如下所示; 将 Equations 下的方程 eq 输入如下 ( eq:=tau(t)=k*diff(theta(t),t)) ,并按回车执行该方程 ,如下图所示 。 7 点击 Parameters 下 Refresh All 识别方程中的变量和参数, 含有时间 t 的为变量,如 tau(t)、 theta(t);不含时间 t 的为参数,如 k。 如下图所示。 3.指定方程的关系,及指定变量的类型 ; 指定端口变量 。将方程中的各个变量指定到自定义元件的端口。 在该方程中,转角速度 和转角力矩 ,作用在同一个端口,可用一个转动类型端口定义 。因此该子定义元件只保留一个端口。 选
8、择要删除的端口 pin_p,然后选择 Delete Port 删除该端口,同理选择端口pin_n,然后选择 Delete Port 删除该端口 。 选择自定义元件的图标为默认( Use default)。 8 模 板 3 个 端 口保 留 1 个 端 口定义端口 flange 变量如下(按默认): 9 4.生成基于方程的自定义元件 ; 指定自定义元件名称。在 Component Generation 指定自定义元件的名称为firction,并点击 Generate MapleSim Component 生成基于方程的 MapleSim 自定义元件。 生成的自定义元件在 MapleSim的 De
9、finitons Componentsfriction,如下图所示。 5.考虑摩擦的单摆模型; 将 friction 元件添加到模型中 (默认摩擦系数 k 为 1,可自行修改) ,并按如下连线。 10 6.运行仿真,查看带摩擦后的运动效果; 运 行 仿 真角 度 角 速 度Y 位 移X 位 移实例 3.平面四连杆模型 该示例主要体现 MapleSim 物理系统建模方式,在扩展到复杂系统时的便利性和可继承性。 四连 杆机构由四个连杆 L1,L2,L3,L4 和四个转动副 R1, R2, R3, R4 组成。如下图所示。 11 L 1L 2L 3L 4R 1R 2R 3R 41.创建 连杆子系统
10、; 四杆机构的各个连杆结构一样,只是长度不同,因此可以将已有的连杆建立成子系统,并扩展到四个连杆。 删除 Probe2 探针 ,并框选连杆元件,如下图所示。 连 杆 组 件 Ctrl+G 将连杆组件封装到子系统中, 并指定子系统的名称为 link,如下图所示。 12 双击 link 模块,进入 link 子系统中,将连杆的右侧端口连接到 link 子系统的端口上,如下图所示。 2.定义 link 子系统的参数; 用符号变量 L 来定义连杆的长度, 按质心位于中心的布置,则将质心左侧的连杆长度定义为 -L/2,质心右侧的连杆长度定义为 L/2,如下图所示。 定义 link 子系统的连杆参数。在
11、link 子系统下点击参数界面 :Parameters,进入参数设置界面, 并在 子系统参数 名称中输入 L,用于指定 L 的数值。 13 参 数 界 面 查看 link 子系统参数 。在 link 子系统下点击 模型 界面 :Diagram,回到建模界面上 , 点击 link 子系统在右侧的 Inspector 下查看子系统的参数 L 数值默认为 1(可修改),如下图所示 。 3.共享 link 子系统; 将连杆复制到多个,同时能指定不同连杆的不一样的长度,需要将 link 复制为共享子系统。 Ctrl+C 复制 link 子系统, Ctrl+V 粘贴 link 子系统,并在弹出的 link
12、 子系统属性中选择为共享子系统(默认)。 14 将共享的 link 子系统复制到 4 个,如下图所示 。 4.添加剩余的转动副,并连接 ; 在工作区中添加三个转动副( Revolute),并按如下布置 将转动副和连杆按顺序连接,构成封闭的四连杆机构 ,如下图所示 。 15 5.修改各连杆长度 ; 修改各连杆的长度,如 L1=1, L2=2, L3=3, L4=3;分别点击连杆子系统 link,并 在右边的 Inspector 参数修改界面 下修改 L 数值 ,如下图所示。 6.设定连杆初始位置,并运行模型 ; 设定第一连杆初始角度为 60 度 :选择第一转动副 R1,初始角 定义为 60度,初
13、始状态类型 设为 Treat as Guess,即四连杆机构的初始位置在 60度附件寻找最优解 (另有 Ignore 忽略初始状态值, Strictly Enforce 强制初始状态值) 。 完成初始值设定后运行模型, 如下图所示 。 16 6 0实例 4.平面四连杆电机控制 该示例主要体现 MapleSim 多学科系统建模仿真的特性,该示例集成了机械电子、信号和控制为一体 ,实现机电一体化控制 。 打开 fourbar_control.msim 文件,如下图所示, 四连杆机构的运 动由直流永磁电机驱动,电机输出的力矩大小由输入的电压决定。 修改电机电压输入值constant,可查看不同的电压
14、下机构的运行情况。 电 机 控 制速 度 输 出打开 fourbar_PIDcontrol.msim 文件,如下图所示, 采用 PID 算法控制四连杆机构 。 以四连杆机构及电机模型为 整体 作为系统的被控对象,封装到 fourbar 子系17 统内,系统的输入为电机电压输入,系统的输出为第一连杆角速度输出, 按 PID算法原理模型将期望信号 ( Step)、反馈接口( Feedback) 、 PID 元器件 和被控对象连接如下。 PID 控制中,可针对不同的期望值, 调节 PID 中的参数, 以获得良好的 系统的控制效果。 如下图所示。 18 实例 5.平面四连杆电机模型输出 该示例主要体现
15、 利用 Maple 对 MapleSim 模型进行高级分析,实现 MapleSim“ 白盒子”模型的特点,即可输出模型的系统方程及输出高效的模型代码。 系统方程用于理论验证,运动控制等,模型代码输出 包含 C, C+, Simulink、 Labview,FMI, DSpace 等 。 1.系统方程输出 打开 fourbar_connector.msim 文件,分析四连杆控制模型的方程( fourbar 子系统),系统方程输出需要用到 Maple 的 Equations 分析模板实现。 点击工具栏上的 “ Create attachment from template” 图标,调用 Maple
16、 的分析模板 ; 选择自定义元件模板: Equations,并点击 Create Attachment,建立 maplesim和 maple 的连接,自动打开 Maple 方程提取 模板。 C r e a t e a t t a c h m e n t f r o m t e m p l a t e 选择被控对象 fourbar 子系统 : 在 Equation Display 节下的对象选择中通过向下 三角 箭头选择 fourbar 子系统 , 并点击 Load Select Subsystem 加载所选择的对象 , 输出对象的方程,如下图所示 。 19 fourbar 子系统的方程 输出:
17、在加载所选对象后,自动获得对象的方程 组成,如系统变量、系统参数和系统方程,如下图所示。 20 2.C 代码生成 MapleSim 中的代码生成能够输出任意类型的模型,需要注意的是输出模型的端口必须是信号输入( RealInput)和信号输出( RealOutput)。使用 maplesim附属的 Code Generation 模板生成的 C 代码可以再 Maple 中使用,也可以修改后集成到任意的目标中,脱离 Maple/MapleSim 独立运行。 点击工具栏上的“ Create attachment from template” 图标,调用 Maple 的分析模板 ; 选择自定义元件模
18、板: Code Generation,并点击 Create Attachment,建立MapleSim 和 Maple 的连接,自动打开 Code Generation Template 模板。 C r e a t e a t t a c h m e n t f r o m t e m p l a t e21 选择被控对象 fourbar 子系统 : 在 C Code Generation 节下的对象选择中 , 通过向下 三角 箭头选择 fourbar 子系统,并点击 Load Select Subsystem 加载所选择的对象,如下图所示。 被控对象 fourbar 子系统的 接口获取:在加载所选对象后,自动获得对象代码的交互接口,如输入接口、输出接口和系统参数 ,如下图所示。 选择 Euler 求解器,如下图所示 。 22 生成并保持 C 代码,选择保存路径和文件名,并单击下面的 Gerneration C code 按钮,如下图所示。 C 代码将显示在 View C Code 区域,如下图所示。 23 同时也会保存 到指定的路径,如 下图所示。 模型 链接 : http:/ 密码 : 8v3b