Matlab中的Simulink和SimMechanics做仿真.docx
- 文档编号:7461769
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:16
- 大小:747.08KB
Matlab中的Simulink和SimMechanics做仿真.docx
《Matlab中的Simulink和SimMechanics做仿真.docx》由会员分享,可在线阅读,更多相关《Matlab中的Simulink和SimMechanics做仿真.docx(16页珍藏版)》请在冰豆网上搜索。
Matlab中的Simulink和SimMechanics做仿真
这里我们利用Matlab中的Simulink和SimMechanics做仿真,那么先来看看相关的资料。
SimMechanics
——机械系统建模和仿真
SimMechanics扩展Simscape™在三维机械系统建模的能力。
用户可以不进行方程编程,而是借助该多刚体仿真工具搭建模型,这个模型可以由刚体、铰链、约束以及外力组成。
自动化3-D动画生成工具可做到仿真的可视化。
用户也可通过从CAD系统中直接导入模型的质量、惯量、约束以及三维几何结构。
Real-TimeWorkshop可以对SimMchanics模型进行自动化C代码生成,并在硬件在回路仿真过程中可以使用生成的代码而不是硬件原型测试嵌入式控制器。
SimMechanics可以用于开发悬架、机器手臂、外科医疗设备、起落架和大量的其它机械系统。
用户也可以在SimMechanics环境下集成其它的MathWorks物理建模工具,这样做可以实现更加复杂跨领域的物理建模。
特点:
●提供了三维刚体机械系统的建模环境
●包含了一系列分析机械运动和设计机械元件尺寸的仿真技术
●三维刚体可视化仿真
●SimMechanicsLinkutility,提供Pro/ENGINEER和SolidWorksCAD平台的接口并且也提供了API函数和其它CAD平台的接口
●能够把模型转化为C代码(使用Real-TimeWorkshop)
●由于集成在Simulink环境中,因此可以建立高精度、非线性的模型以支持控制系统的开发和测试。
强大功能:
搭建机械系统模型
使用SimMechanics用户仅需要收集物理系统信息即可建立三维机械系统模型。
使用刚体、坐标系、铰链和作用力元素定义和其它Simulink模型直接相连的部分。
这个过程可以重用Simulink模型以及扩展了SimMechanics工具的能力。
用户还可把Simulink模型和SimMechnics模型集成为一个模块,并可封装成可在其它模型中复用的子系统。
机械系统建模仿真和分析
SimMechanics包含如下子系统:
●使用Simulink查表模块和SimMechanics传感器和作动器定义的非线性的弹性单元
●用来定义航空器件压力分布的空气动力学拖曳模块,例如副翼和方向舵
●车辆悬架系统,例如防侧翻机械装置和控制器
●轮胎模型
SimMechanics系统包含如下模块:
●具有质量的实体单元;
●平移和旋转连接铰链单元;
●向机械系统提供力和力矩作用的激励单元,可接受Simulink模型的信号;
●测量机械系统运动物理量的传感器单元,可向Simulink模型输出信号。
机械系统动画显示
SimMechanics中可以用VirtualReality工具箱或是MATLAB图形方式生成系统三维动画。
MATLAB图形方式能提供基本的动画显示,VirtualReality工具箱则能提供更加高级、真实的动画。
两种工具都可以用来显示机械系统的数值分析结果。
实体、铰链、约束和坐标系统
SimMechanics支持任意数量的实体。
实体通过质量属性,坐标系统定义,并通过铰链与其它实体相连。
可以在系统的运动实体上添加相应的运动约束。
约束通过使用Simulink信号限定实体,并以时间函数的形式驱动实体运动来实现。
SimMechanics界面为定义坐标系统,约束和驱动条件以及力/力矩的定义提供了多种方式。
包括:
●在实体上连接多个本地坐标,用于施加作用条件和测量物理量
●通过添加自己订制的模块来定制扩展铰链库
●在SimMechanics模块中使用MATLAB表达式和Simulink工具
激励器和传感器
Simulink和SimMechanics模块之间的联系通过激励器和传感器模块来完成。
激励器使用Simulink信号指定实体或铰链上的力和运动,包括:
●指定实体或铰链的运动参数,如按某种时间函数变化的位移、速度或加速度
●用Simulink信号(包括系统中传感器的反馈信号)指定力和力矩并施加在实体或铰链上
●检测由不连续摩擦力引起的离散事件
●计算系统的初始状态(位移和速度),用于动力学仿真
传感器模块用来检测实体和铰链的运动参数,并输出为Simulink信号。
包括:
●在Simulink示波器模块中显示系统的位移、速度和加速度
●
监视系统中的作用力
机械运动的仿真和分析
SimMechanics为机械系统提供了如下仿真/分析方式:
●正向动力学分析—求解机械系统在给定激励下的响应;
●逆向运动学和动力学分析—求解机械系统在给定运动结果时所需的力和力矩;
●线性化分析—可求得系统在指定小扰动或初始状态下的线性化模型,以分析系统响应性能;
●平衡点分析—可以确定稳态平衡点,供系统分析和线性化使用。
代码生成
使用Real-TimeWorkshop工具可以对SimMechanics模型进行自动代码生成,用户利用生成的代码实现下列功能:
建立SimMechanics模型相对应的可执行文件,可以集成到C程序和其它MATLAB程序中的可执行文件
将SimMechanics模型下载到实时的处理器中进行硬件在回路仿真
对C代码进行编译以提高模型的运算速度
CAD组件导入SimMechanics
使用SimMechanicsLink,用户能够从CAD组建中自动化生成SimMechanics模型。
SimMechanicsLink能够导出关键数据并保存到数据文件中。
构件中各个部分的质量和惯量能够转化为SimMechanics的刚体参数。
对于SolidWorks和ProEngineer模型,用户可以安装一个插件用于保存CAD构件,文件形式为XML格式,并且这个XML文件可以导入到SimMechanics中。
对于其它的CAD系统,SimMechanicsLink提供一套API函数,用户借助这些API函数可以和CAD系统相关联。
SimMechanicsLink需要MATLABLicense,下载网页为:
多领域物理建模
由于是集成在Simulink和MATLAB环境中,因此可以使用MATLAB提供的工具箱和Simulink模块库仿真和搭建模型,这个模型既可以是被控对象模型也可是控制器模型,即使SimMechanics的信号具有物理量纲,也可以把这类信号和Simulink普通模块进行相连(使用激励器和传感器)。
总而言之,用户可以在一个统一的平台上开发、测试模型。
需要的产品:
使用SimMechanics需要
MATLAB
Simulink
Simscape
simuscape
——跨学科物理系统建模和仿真工具
Simscape是在Simulink基础上的扩展工具模块,用来建立多种不同类型物理系统的建模并进行仿真,例如由机械传动,机构,液压和电气元件构成的系统。
Simscape可以广泛应用于汽车业,航空业,国防和工业装备制造业。
Simscape同SimMechanics,SimDriveline,SimHydraulics和SimPowerSystems一起,可以支持复杂的不同类型(多学科)物理系统混合建模和仿真。
使用统一环境实现多种类型物理系统建模和仿真,包括机械,电气和液压系统;
使用基本物理建模单元构造模型,并提供了建模所需的模块库和相关简单数学运算单元;
用户可自己指定参数和变量的单位,模块内部自动实行单位转换和匹配;
具有连接不同类型物理系统的桥接模块;
具备扩展产品所建模型的全权仿真和受限编辑功能,单独运行仿真时无需SimMechannics,SimDriveline和SimHydraulics的产品使用许可。
强大功能
多学科系统物理建模
在Simscape的环境中,用户的建模过程如同装配真实的物理系统。
Simscape采用物理拓扑网络方式构建模型:
每一个建模模块都对应一个实际的物理元器件,例如油泵、马达或者运算放大器;模块之间的连接线代表元件之间装配和能量传递关系。
这种建模方式直观的表现出物理系统的组成结构,而不是用晦涩的数学方程。
Simscape根据模型所表达的系统组成关系,自动构造出可以计算系统动态特性的数学方程。
这些方程可同其他Simulink模型一起结合运算。
Simscape的建模库提供超过24个电气建模单元,15个液压建模单元,23个机械建模单元;这些单元之间可以互相连接,联合建模。
这些基本的单元也可以组合起来,构造更加复杂的器件模型。
Simscape模型中的Sensor模块用来测量机械量(力/力矩,速度),液压量(压力,流量)或电气量(电压,电流),测量输出的信号量可以输出给标准的Simulink模块处理。
而Source模块能够将标准的Simulink信号转换成同等量值的上述物理信号。
Sensor和Source模块的使用将Simulink控制算法模型同Simscape物理网络拓扑模型有机的结合起来,可实现闭环控制算法开发。
创建自定义元件
Simscape的基础建模单元库支持从基本的建模单元组合定制模型元件。
机械系统建模
Simscape提供了一维平移/旋转机械的建模模块。
机械系统元件的变量,将与系统中的液压和电气系统模型物理量同时解算。
用于机械系统的Sensor和Actuator模块则可以连接由Simechanics和SimDriveline创建的更精细的模型。
电气系统建模
Simscape提供了代表电子元件和电路的电气模型。
电气系统元件的变量,将与系统中的液压和机械系统模型物理量同时解算。
用于电气系统的Sensor和Actuator模块则可以连接由SimPowerSystem创建的更精细的模型。
液压系统建模
Simscape提供了液压系统的建模模块,可对基本的液压特性进行建模和计算;也可以进一步组合出更加复杂的液压元件。
这些模块定义了各种物理过程中压力和流量的相互关系,如压缩性,流体惯性,摩擦损失,能量转换和固定节流口/可变节流口出流。
通过输入流体属性数据,用户可以自己定义流体特性。
使用Simhydraulics则可以构建更加精细的液压元件模型。
物理信号
在Simscape中,用户可以直接操作物理量信号。
信号和参数的单位直接在模块设定的对话框中输入,Simscape在求解物理网络模型时将自动进行必要的单位转换。
PhysicalSignal模块库支持对物理信号的数学操作,可以在物理模型网络中直接构建运算模型。
Simscape模块之间通过PhysicalSignalports端口相互连接,这样各种类型的物理系统可以方便的集成。
使用基础元件库提供的建模单元,用户可以构建更多复杂的元件,扩展出更多种类的物理模型。
在Simulink环境中,组合好的模型可以进一步封装形成可复用和共享的元件库。
全权和受限模式的模型共享
SimscapeEditingModes允许用户在Simscape下使用其工具和扩展产品(SimDriveline,SimHydraulics,SimMechanics)构建的模型进行仿真。
只要拥有Simscape的产品使用许可,并且安装了这些扩展产品,用户就可以仿真用这些扩展产品模块所建立的模型,也可以调整模型中的参数——但是不能编辑模型。
这样,在不同的团队之间共享模型时,用户无需额外购买扩展产品使用许可。
如果用户进一步添置扩展模块的使用许可,则可以全权使用扩展产品编辑和仿真模型功能。
在Simulink中同时建立装置对象和控制器模型
Simscape建立的物理系统仿真模型可以与Simulink中的控制系统信号流模型相连,构成完整的系统闭环模型,实现在Simulink统一环境中多学科/领域系统和控制器的联合仿真测试。
需要的产品
运行Simscape需要:
MATLAB
Simulink
Simscape
建立Stewart平台:
建立Stewart平台的装配图;
按前述说明,将CAD模型输出为stewart_platform.xml。
在MATLAB中输入import_physmod('stewart_platform')命令,导入模型。
检查模型,并求自由度。
编辑产生的模型。
在Simulink中建立相应的运动学及PID求解模块。
8.最终模型如下图所示:
第一部分Controller模块,这部分是一个非常典型的PID控制模块,虽然这里处理的是矩阵,但是一般的单变量也是一样的。
第二部分LegTrajectory模块,这部分是规划的轨迹路线,里面包括该机器人的正反解的计算,及矩阵的转换等数值运算。
第三部分Plant模块,这是SimMechanics建立的Stewart模型。
第四部分是外围的三个基本模块,加减模块、BodyPositionSensor和Scope。
首先介绍第一部分。
绿色的Controller是PID控制器,双击它显示如图5所示。
r_pos表示的是设定位置,pos表示的测量位置,两者相减后与参数P相乘;同时两者相减后的值再积分再与参数I相乘;最后一个就是测量到的速度乘以参数D。
这里pos是物理模型中的测量值或者叫反馈值,r_pos是目标值,vel是测量值的微分,输出Force是控制量。
由控制量控制系统达到我们想要的目标。
PID的原型可以表示为:
它是一个根据反馈误差来修正输出函数的过程。
K0,K1,K2这三个参数可以为0,那么就形成了PI、PD、ID、PID这几种形式。
一般PID、PD这两种用的比较多。
图5中的(r_pos-pos)等同于这里的e,表示误差函数,Force等同于u,表示输出函数。
图5
再看第二部分。
左端的LegTrajectory模块是Stewart的各个杆长及动平台位置的计算,这部分计算是目标值的计算。
这个模块如图6所示。
图6
图6中,最左侧写着Desired的模块为假定的机构动平台的运动规律,也就是规划的轨迹,当然这里是分开规划的,可以看到六个自由度各自的变化规律,在Stewart杆长计算公式中R就是RotationMatrix(即EulerXYZ)模块。
接下来是第三部分。
Plant模块,这部分是用SimMechanics建立的。
如图7所示。
TopPlate模块表示的是动平台,Leg1-6表示的的是Stewart的支链1-6(即杆1-6)。
图7
每一个支链的结构都是相同的,但是每个参数并不相同。
这涉及到转动方向和移动方向的计算。
坐标系要求以模型的初始状态为基础,这里动平台的初始状态如图8所示,具体是动平台中心和固定平台中心在Z方向重合,高度为2,且动平台与固定平台此时空间平行。
此时动平台和固定各个铰点的状态类似与等边三角形式的对称状态。
(a)(b)
图8
坐标系如图9所示。
Z轴正方向为垂直纸面指向外,坐标原点为固定平台的中心,动平台和固定平台的简化图也在图上表示出来。
图9
初始位置的确定如图10所示,Position这个标签下有CS1、CS2、CG、CS3都是根据初始状态计算出来的,CG为初始重心,CS1为该杆与固定平台连接的铰点坐标,CS2为初始状态下该杆的长度。
CS3为理论上与移动副连接的点,因此,把它的ShowPort和CS1的ShowPort勾上。
括号中的ln表示从1到6,根据不同输入决定实际坐标值。
另外,变量采用结构体(Struct)形式。
Orientation下有CG、CS1、CS2和CS3,但是他们的参数值都是一样的,这里是设置了它的初始状态下的旋转变换矩阵,这个矩阵的参数在后面的运动副设置中要用到。
图10
图11为上述模型经计算后所得结果,其中BodyPosition所显示的是杆在十秒内的位置变化,Errors显示的是在位姿不合理时杆的理论位置,LegForces所显示的是在十秒内六根杆的受力情况。
大家可以依照配套的视频文件来试着打开MATLAB7.0版本,找到mech_stewart_trajectory.mdl这个例子打开动手做做的,另外,你也可以修改相应的规划轨迹来试一试。
参考资料:
1.
2.
3.Matlab7.0help,SimMechanicsDemo:
mech_stewart_trajectory.mdl
4.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 中的 Simulink SimMechanics 仿真