CreateSystemModel

CreateSystemModel[sys]

根据系统模型 sys 创建一个 Modelica SystemModel.

CreateSystemModel[eqns,t]

创建自变量为 t 的系统方程 eqns 的模型.

CreateSystemModel[,tspec]

创建变量和参数类型指定为 tspec 的模型.

CreateSystemModel[,spec]

创建一个模型,其中参数值、初始值和模型关系由 spec 给出.

更多信息和选项

  • CreateSystemModel 返回 SystemModel[].
  • CreateSystemModel["NewModel",] 将创建的模型命名为 "NewModel".
  • CreateSystemModel["PackageA.NewModel"]"NewModel" 插入到 "PackageA" 中.
  • 可能的动态系统模型 sys 包括 StateSpaceModelTransferFunctionModelAffineStateSpaceModelNonlinearStateSpaceModelDiscreteInputOutputModel. »
  • 可能的静态系统模型 sys 包括 FittedModelNetChainNetGraph.
  • 可能的方程 eqns 包括常微分方程 (ODE)、微分代数方程 (DAE)、初始值方程和 WhenEvent 给出的事件指定. »
  • eqnssys 中的参数被认为是不明确依赖于 t 的变量.
  • 变量和参数的类型指定 tspecs{tspec1,},其中每个 tspeci 的格式为:
  • paritypei参数类型 typei
    varitypei变量类型 typei
  • 类型 typei 可以为基本的 RealsIntegersBooleans,或任意带有单位的 Modelica 类型. »
  • SystemModels["Modelica.Units.*","type"] 可用于查找内置标准单位.
  • 一般情况下,通过将许多模型组合成更大的系统来构建 Modelica 模型. 这些模型之间的交互连接则由 Modelica 中的概念 connector 描述. »
  • 接口由力和流变量组成. 当把多个接口连在一起时,流变量的和为 0,而力变量被设为相等.
  • 举例来说,电路接口常被称为引脚 (pin),由电压变量 v 和电流变量 i 组成.
  • 将引脚 np 连接在一起,流变量(这里为电流 i)相加为 0,力(这里为电压 v)则被设为相等:
  • 所有流入元件的流变量为正.
  • 不同域的力和流变量包括:
  • 力变量流变量
    电路电压电流
    磁路磁位磁通量
    平移力学位置
    转动力学角度转矩
    三维力学位置向量,定向对象切割力向量,切割扭矩向量
    流体流动系统压力,比焓质量流率,焓流率
    热传导系统温度热流率
    示意图实数,整数,布尔值-
  • 一个域的可能的接口 conni 通常在 Interfaces 包中被定义. 例如,SystemModels["Modelica.Electrical.Analog.Interfaces.*","connector"] 可用于查找内置电子模型库中的接口.
  • 指定 variconni 可用来指定变量 vari 指代类型为 conni 的接口.
  • 连接器 c 中的变量 vi 可以用 cvieqns 中引用,其中 字符可以输入为 \[UpPointer].
  • 可用 SystemModel[conn,"SystemVariables"] 来列出由接口 conn 定义的变量.
  • CreateSystemModel[,spec] 中,spec 是一个 Association,其中的键为:
  • "ParameterValues"{p1val1,}参数值
    "InitialValues"{v1val1,}初始值
    "ExtendsModels"{partial1,}所基于的部分模型
    "DiscreteVariables"{v1,v2,}仅在事件发生时变化的变量
    "SimulationSettings"{opt1val1,}模型仿真选项
  • 模型库经常含有被称为 interfaces 的部分模型,可用来构建新的元件模型. 这些界面通常由接口和描述接口间基本关系的方程构成.
  • 当设置为 CreateSystemModel[,"ExtendsModels"partial] 时,会将新模型与 Modelica 中已定义的 partial SystemModel 结合在一起. »
  • 通过使用 "ExtendsModels"{"partial1",} 一个模型可以跨越多个模型.
  • 在其上进行构建的部分模通常在 Interfaces 包中被定义. 例如,SystemModels["Modelica.Electrical.Analog.Interfaces.*","model"|"block"] 可用于查找内置电子模型库中的部分模型 (partial models).
  • "InitialValues" 对应于 Modelica 模型中的 start 属性.
  • "SimulationsSettings"->{opt1val1,} 中允许的选项包括:
  • "Method"仿真方法
    "StartTime"仿真开始时间
    "StopTime"仿真停止时间
  • 可用的自适应步长 "Method" 值包括:
  • "DASSL"DASSL DAE 求解器
    "CVODES"CVODES ODE 求解器
  • 自适应步长法的选项包括:
  • "InterpolationPoints"插值点数
    "Tolerance"自适应步长的公差
  • 可用的固定步长 "Method" 值包括:
  • "Euler"显式 1 阶欧拉方法
    "Heun"2 阶 Heun 方法
    "RungeKutta"显式四阶 Runge-Kutta 法
  • 固定步长法的选项包括:
  • "StepSize"固定步长
  • 使用 GeneratedAssetLocationloc 选项,您可以将生成的资源存储在位置 loc 中.

范例

打开所有单元关闭所有单元

基本范例  (3)

基于 StateSpaceModel 创建模型:

创建一个基于 TransferFunctionModel 的模型,并为其指定一个自定义名称:

在现有界面周围用方程构建模型:

范围  (50)

系统模型  (11)

创建一个单入单出模型 TransferFunctionModel

创建一个单入单出模型 StateSpaceModel

多入多出:

用传递函数模型中的参数创建模型:

指定状态-空间模型的参数:

定义传递函数模型的参数值:

给出状态-空间模型的参数值:

给出参数的类型和值:

根据离散传递函数模型创建模型:

根据离散状态-空间模型创建模型:

使用描述器系统:

根据仿射状态空间模型创建模型:

根据非线性状态空间模型创建模型:

根据离散输入输出模型创建模型:

微分方程  (12)

创建一个方程组成的 ODE 方程组:

指定任意阶数的方程. 自动完成高阶导数的减化:

定义多个方程组成的方程组:

定义一个带有代数约束的方程组,导致高指数 (high-index) 问题:

可用 WhenEvent 指定混合方程:

声明一个仅在离散时间变化的变量 a

模拟并绘制楼梯上弹跳球的模型:

Wolfram 语言函数会被自动转换为 Modelica 等效模型:

指定缺省参数值:

指定 start 值:

指定变量和参数的类型:

Indexed 表示数组:

方程中使用的函数被转换成 Modelica 中的函数:

关联和函数  (4)

Association 被转换为一条记录:

用记录存储粒子的运动:

创建一个类别,分类规范函数来自 Function

Module 引入保护变量:

区域和 Graphics3D  (2)

嵌入维度为 3 的区域可生成具有可视化和动态属性的对象:

"Modelica.Mechanics.MultiBody" 组件存储如 RegionMeasureRegionCentroidMomentOfInertia 这样的数据:

Graphics3D 对象输出,以制作可视化效果:

DiscretizeGraphicsBoundaryDiscretizeGraphics 也许能够从 Graphics3D 生成一个区域:

拟合模型与神经网络  (2)

使用 FittedModel 创建一个输入-输出块:

给出一个输入,模拟并绘图:

根据经训练的或初始化的 NetChainNetGraph 创建输入输出模块:

给出输入、模拟和绘图:

模型命名  (3)

为创建的模型指定一个自定义名称:

显示模型名称:

在包内创建模型:

显示模型名称:

如果没有给出名称,则生成一个唯一的名称:

显示生成的模型名称:

为模型指定一个自定义名称:

显示新的模型名称:

类型和连接器  (4)

创建一个输出块:

将其作为实值返回:

创建模型:

创建一个衍生块:

定义输入和输出连接器:

创建模型:

使用 Electrical 库中的连接器创建电阻:

使用缩写形式来指代连接器:

初始值和参数值  (6)

给出变量的 start 值:

给出参数的 start 值:

如果 start 值和初始化方程同时存在,初始化方程的优先级较高:

用参数作为初始值:

给出参数值:

给出依赖于另一个参数的参数:

在部分模型上构建  (3)

创建一个模块,对输入加 1:

创建模块,扩展 SISO 模块的接口:

用简化形式指代现有界面:

根据成对的字符串列表创建一个细目:

仿真设置  (3)

给模型一个开始和停止时间:

模拟模型并绘图:

选择 RungeKutta 法进行仿真:

显示模型仿真设置:

设置模型的实时同步:

显示模型仿真设置:

选项  (2)

GeneratedAssetLocation  (2)

默认情况下,从区域创建的模型会将资产文件导出到 $WolframDocumentsDirectory

使用 GeneratedAssetLocation 为资源指定一个位置:

默认情况下,从神经网络创建的模型将 ONNX 文件导出到 $WolframDocumentsDirectory

使用 GeneratedAssetLocation 指定结果的位置:

应用  (7)

定义弹跳球的方程:

创建模型:

假定恢复系数为 95%,对模型进行仿真:

绘制高度随时间变化的情况:

创建 LotkaVolterra 方程的模型,模拟掠食者-猎物关系:

定义两个状态的初值,

定义参数值:

创建模型:

显示随着时间的推移掠食者和猎物的族群规模:

较大的猎物增长参数将加快系统循环的速度:

模拟两个连在一起的池子,第二个池子有泄漏的地方:

设置方程,包括初始方程和参数:

创建模型,用给定参数值作为默认值:

仿真:

随着时间的推移,最终两个池子都会被排干,因为第二个池子有泄漏:

创建只在一个方向有阻尼的机械平移阻尼器:

定义阻尼常数:

用 Translational Mechanics library 中的部分界面创建阻尼:

与双向阻尼器相比较:

创建数字低通滤波器:

把滤波器转换为传递函数:

创建滤波器模型:

创建信号发生源:

把信号源连接到滤波器:

仿真并绘制输出信号和滤波后的信号:

将区域与世界的组件一起使用以创建新模型,其中的物体会受到重力影响:

仿真并绘制质心的位置:

可视化平行六面体的旋转现象:

通过更改世界组件中的参数来关闭重力,并为角速度提供一个初始值:

仿真并获取固定到物体上的框架的旋转矩阵:

可视化物体的旋转:

属性和关系  (3)

SystemModel 属性可用来从模型中提取信息:

用来自现有模型的方程创建新模型,改变一个参数:

仿真并比较两个模型:

特殊字符被转换成较长的格式:

Subscript 被转换为 _

可能存在的问题  (2)

除非明确保存,否则不保存模型:

退出 Wolfram 语言内核后,模型消失:

CreateSystemModel 支持 Wolfram 语音函数的子集:

Wolfram Research (2018),CreateSystemModel,Wolfram 语言函数,https://reference.wolfram.com/language/ref/CreateSystemModel.html (更新于 2022 年).

文本

Wolfram Research (2018),CreateSystemModel,Wolfram 语言函数,https://reference.wolfram.com/language/ref/CreateSystemModel.html (更新于 2022 年).

CMS

Wolfram 语言. 2018. "CreateSystemModel." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2022. https://reference.wolfram.com/language/ref/CreateSystemModel.html.

APA

Wolfram 语言. (2018). CreateSystemModel. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/CreateSystemModel.html 年

BibTeX

@misc{reference.wolfram_2024_createsystemmodel, author="Wolfram Research", title="{CreateSystemModel}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/CreateSystemModel.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_createsystemmodel, organization={Wolfram Research}, title={CreateSystemModel}, year={2022}, url={https://reference.wolfram.com/language/ref/CreateSystemModel.html}, note=[Accessed: 22-November-2024 ]}