个人资料
simscape
simscape
博客十周年地图
  • 博客等级:
  • 博客积分:35积分
  • 博客访问:1,753
  • 关注人气:53
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:点亮荣誉勋章兑换图片博主服务兑换私密博文兑换金笔
正文 字体大小:

物理系统仿真神器 - Simscape

(2013-04-10 12:25:14)
标签:

杂谈

分类: 物理建模

Simscape™ 为多域物理系统提供了一个完整的建模仿真环境,包括机电液以及其他物理域。

主要特点:

  • 单个建模环境,实现多种物理域模型;
  • 提供大量内置基础模块,组装自己的复杂元器件;
  • 基于MATLAB的Simscape语言,定义自己的模块源代码,简单易学。
  • 自动处理模块之间的单位转换;
  • 支持C代码生成。

http://s16/middle/b2f5027f4d9fa0e0ce1bf&690

Product Overview 2:08

 

细看往下:

 

物理系统建模

      Simscape为各个物理域提供了基本的单元模块,包括机电液,热气磁。
库里的模块对应各种物理元器件,比如说泵、电机、放大器;而模块的连线表示物理连接,代表能量的传递。在Simscape里面建模,就跟你实际组装这些物理系统一样。所以说,你使用这种方法建模,就是在描述系统的实际物理结构,而不是说它底层的数学方程。
     最后你搭出来的模型就像系统的原理图一样。Simscape会自动构造出它的系统特性方程,DAE,然后与Simulink的其他部分集成起来。跟Simulink模型不一样的是,这些DAE是直接求解的,各个物理域的各个变量同时求解,所以说避开了代数环的问题。
     你搭出来的Simscape模型可以用来辅助开发Simulink控制器,也可以用来做集成测试。还可以利用MATLAB强大的数学分析和优化功能,分析和优化系统级性能。

这是一个5分钟的视频,搭建一个电机模型。教你最基本的物理建摸概念:Modeling a DC Motor

 

Simscape各组件库

Simscape里有机电液,热气磁的基础单元。

机械单元建模

      基础库里有一维平动和一维转动的基本模块,包括比如质量、弹簧、阻尼模块,还有间隙、摩擦等一些非线性因素。还包括跟SimMechanics™ 和SimDriveline™ 的接口模块。

电子元件建模

      一些基本电子电路元件,比如电阻、电容、电杆,还有一些复杂一点的元件比如放大器、变压器。 SimElectronics™.里面会提供更丰富更复杂的元器件。

http://s12/middle/b2f5027f4d9fa0e1dc8ab&690

Modeling a DC Motor 5:02

液压元件建模

      基本的流体效应,你可以组装出自己的液压元件。这里面的模块定义了液体通过定截面和变截面孔洞的压力/流量方程,包括可压缩性、流体惯性、机械摩擦、能量传递、流体。你可以设置自己的流体参数值。SimHydraulics®.里有更复杂的液压元件。

http://s3/middle/b2f5027f4d9fa0e2ae3a2&690

Modeling a Custom Hydraulic Valve 3:41

热效应建模

      可以模拟系统的热效应,热质量的热传导,热对流和热辐射。热源模块(source)可以指定恒温或者热流量,热敏模块(sensor)可以测量温度或者热流量。

http://s1/middle/b2f5027f4d9fa0e276020&690

Modeling Heat Transfer of a Projector 8:00

物理信号

      Simscape模型里的信号是有单位的。你在模块参数设置的时候可以指定单位,Simscape在求解物理模型时会自动进行单位转换。物理信号模块库可以让你直接对物理信号进行数学运算,更好的表达物理信号,加快计算速度。

      你可以使用基本单元组装出复杂元器件,甚至是多域模块。当然,因为是在Simulink环境下,你同样可以将它们作为子系统进行封装以及参数化,方便管理和分享模型。

     可以使用对应的传感器Sensor模块来获取物理系统中的各种信号,机械(力/扭矩,角速度/线速度),液压(压力,流量),电子(电压、电流),还可以传递到标准Simulink模块。而源Source模块可以引入Simulink信号到物理模型。通过传感器Sensor和源source模块,你可以将控制算法开发与物理网络集成起来。

http://s11/middle/b2f5027f4d9fa0e349b0a&690

 

Simscape Language

       你还可以使用Simscape语言来扩展自己的元件、物理域以及库。

它基于广大工程师们所熟悉的MATLAB语言,使用一种面向对象的方式来定义,里面包括要定义元件参数、物理端口、隐式DAE形式的特征方程。在元件源文件里,你还可以做一些参数分析、预计算以及初始化等工作。

        源文件写好后,Simscape会自动根据你的源文件构造出模块以及它的参数设置对话框。

        同样,你自己定义的模块也可以使用变量和表达式来参数化,进行Simulink控制器设计。

http://s9/middle/b2f5027f4d9fa0e3a1648&690

Simscape Language: Electronic Example 3:18

       你可以使用内置的物理域来定义自己的元件,这种元件可以与内置的模块连用。当然,你也可以定义你自己的物理域,不过要注意的是,不同物理域的模块不能直接相连,因为物理信号是有单位的。自己定义的元件也可以生成C代码。

http://s4/middle/b2f5027f4d9fa0e36e283&690

Simscape Language: Hydraulic Example 3:39

        使用Simscape语言,你可以精确控制你的元件的所有行为,所以你可以通过这种方式来权衡“模型逼真度”和“计算速度”。

http://s9/middle/b2f5027f4d9fa0e4c92e8&690

 

 

Simscape to C Code

       Simscape还支持将模型转化为C代码,就可以使用Accelerator模式来加速仿真。
如果使用Simulink Coder,你还可以:

  • 实时运行,进行硬件在环HIL测试
  • 继承到其他仿真环境中去
  • 编译为独立可执行文件,可以加速参数分析和蒙了卡罗仿真。

http://s15/middle/b2f5027f4d9fa0e4ce77e&690

Running Parameter Sweeps: Fan Speed 4:38

      将模型进行实时仿真配置,进行硬件在环测试,减少了昂贵的原型机测试费用,还能在开发阶段早期及时发现错误,节省开发费用缩短开发周期。

http://s10/middle/b2f5027f4d9fa0e571ce9&690

Hardware-in-the-loop (HIL) Testing 5:21

 

 

Model Sharing

       模型开发人员使用Simscape以及附加专业库搭建出来的模型,在发布给模型使用者的时候,可以将模型的编辑模式设置为“Restricted”。这样,只拥有Simscape License的模型使用人员只要安装了这些附加库,即使没有License也能运行这些模型,修改模型参数以及代码生成。

http://s1/middle/b2f5027f4d9fa0e591420&690

Sharing Models Using Simscape Editing Mode 3:32

 

 

Simscape与MATLAB/Simulink集成

      Simscape模型可以通过信号流与Simulink控制器连接起来,自然也可以连接不同物理域模型。

http://s9/middle/b2f5027f4d9fa0e5d5cf8&690

Integrating Physical Systems and Controller 5:49

       使用变量来定义模块参数,就可以利用MATLAB来自动运行各种测试,分析测试结果,优化系统性能。所以说,你可以在MATLAB/SIMULINK平台上测试和优化你的整个闭环系统。

阅读(4909) 收藏(0) 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有