Simscape是在Simulink环境下创建物理系统模型的工具和语言。[8]
它可以通过基于Matlab语法的Simscape语法来制作自己的物理仿真系统。如果使用Simscape中现有的基础库(Foundation Library),这些库对用户也不是黑盒子,可以通过看源码来指导模块性能。
本文是指对Simscape做了简单的介绍,了解的自己使用Electrical域够用的程度而已。若感兴趣或需要自己建库时,可以参考[9]中涉及的PDF,里面有好几千页的说明文档(不得不吐槽下Matlab官网又卡、资料藏的又深的问题)。
模块的分类[1]:(注模块时通过程序来实现的,每个模块对应一个“.ssc”文件)
模块的组成:
变量和域一样,对于Simscape而言都是非常重要但又抽象的概念。如你可以把Electricall域所涉及的部分看成电路图,变量就是电路中的电流和电压。因此,变量可以理解为反映物理特性的与整个域息息相关的物理量。
变量的值是有方向性的,如果一个元件的方向是从A指向B,那么穿过性变量(简称TV)从A流向(‘flow’)B为正值,跨过性变量的值为。[4]
于是乎,笔者将以一下的例子来检验是是否真的理解了这个概念。
从电路知识出发,标准的电路方向是这样的:对于普通器件(如电阻),从电压正级到电压负极的电流流向为正;对于电源,从电压负级到电压正极的电流流向为正。
但是,由于Simscape统一的方向定义,对于普通器件而言,方向性不变。但对于电源来说,方向性就不一致了,但这个不一致对用户是不可测得的,也没有影响,如下图所示。当然,你也可以自己写个电源模型,让电源的定义与与电路知识一致。
端口和变量的关系:在实现中(如branches sector和equationss sector),可以通过
不同域各自的穿过性变量和跨越性变量如下表[3]:
互感:
electrical域:
电阻:
[1] Simscape File Types and Structure https://www.mathworks.com/help/physmod/simscape/lang/about-simscape-files.html
[2] Attribute Lists https://www.mathworks.com/help/physmod/simscape/lang/attribute-lists.html
[3] Declaring Domains and Components https://www.mathworks.com/help/physmod/simscape/lang/declaring-domains-and-components.html
[4] Basic Principles of Modeling Physical Networks https://www.mathworks.com/help/physmod/simscape/ug/basic-principles-of-modeling-physical-networks.html#bq89sba-3
[5] variables https://www.mathworks.com/help/physmod/simscape/lang/variables.html
[6] parameters https://www.mathworks.com/help/physmod/simscape/lang/parameters.html
[7] domain https://www.mathworks.com/help/physmod/simscape/lang/domain.html
[8] Getting Started with Simscape https://www.mathworks.com/help/physmod/simscape/getting-started-with-simscape.html
[9] PDF Documentation for Simscape https://www.mathworks.com/help/pdf_doc/physmod/simscape/index.html?s_cid=doc_ftr