前页 | 后页 |
电路仿真示例
在本例中,我们为一个简单的电路创建 SysML 参数模型,然后使用参数仿真来预测和绘制该电路的行为。
图表
我们将要学习的电路模型(此处显示)使用标准电路符号。
该电路包括交流电源、源和电阻器,通过电线相互连接。
创建 SysML模型
这张表显示了我们如何构建一个完整的完成模型来表示电路,从最低级别的类型开始,一步一步地构建模型。
部件 |
行动 |
---|---|
类型 |
定义电压、电流和电阻的值类型。单位和数量种类对于模拟而言并不重要,但如果定义一个完整的完成模型则需要设置。这些类型将从原始类型“Real”泛化。在其他模型中,您可以选择将值类型映射到与模型分开的相应仿真类型。
此外,定义一个名为 ChargePort 的复合类型 (块),其中包括电流和电压属性。这种类型允许我们表示组件之间连接器处的电能。
|
块 |
在 SysML 中,电路和每个组件都将表示为块。 在块定义图 (图表) 中,创建一个电路块。该电路由三部分组成:源、地和电阻。这些部分属于不同的类型,具有不同的行为。 为每个零件类型创建一个块。电路块的三个部分通过端口连接,代表电气引脚。源和电阻有一个正极和一个负极引脚。地只有一个引脚,它是正极。电流(电荷)通过引脚传输。创建一个带有两个端口(引脚)的抽象块“TwoPinComponent”。这两个端口分别命名为“p”(正)和“n”(负),它们的类型为 ChargePort. 此图显示了 BDD,包括电路块、接地、TwoPinComponent、源和电阻器。
|
内部结构 |
为电路创建一个内部块图(图表)。为源、电阻和接地添加属性,由相应的块键入。用连接器连接端口。源的正极引脚连接到电阻器的负极引脚。 Resistor 的正极引脚连接到源的负极引脚。地也连接到源的负极引脚。
请注意,这遵循与原始电路图相同的结构,但每个组件的符号已替换为由我们定义的块键入的属性。 |
约束 |
方程定义数值属性之间的数学关系。在 SysML 中,方程表示为 ConstraintBlocks 中的约束。 ConstraintBlocks 的参数对应于块的 PhSVariables 和 PhSConstants(本例中为'i'、'v'、'r'),以及端口类型中存在的端口('pv'、'pi'、'nv ',在本例中为 'ni')。 创建一个 ConstraintBlock 'TwoPinComponentConstraint' 来定义源和电阻器共有的参数和方程。该等式应状态组件的电压等于正负引脚电压之差。组件的电流等于通过正极引脚的电流。通过两个引脚的电流之和必须加起来为零(一个是另一个的负数)。接地约束表明接地引脚上的电压为零。源约束将电压定义为sine ,以当前仿真时间为参数。此图显示了这些约束如何在 BDD 中呈现。
|
绑定 |
约束参数的值等同于具有绑定连接器的可变值和常数值。在每个块上创建约束属性(属性类型为 ConstraintBlocks),并将块变量和常量绑定到参数,以将约束约束块。这些图分别显示了接地、源和电阻的绑定。 对于地面约束,将 gc.pv 绑定到 pv
对于源约束,绑定:
对于电阻器约束,绑定:
|
配置仿真行为
此表显示了 SysMLSim 配置的详细步骤。
节 |
行动 |
---|---|
工件适合 |
|
在配置管理器中创建根元素 |
|
值类型替换 |
展开 ValueType 并为 Current、Resistance 和 Voltage 中的每一个从“Value”组合框中选择“SysMLSimReal”。 |
将属性设置为流 |
|
SysMLSimModel |
这就是我们要模拟的模型:将块'Circuit'设置为'SysMLSimModel'。 |
运行仿真
在“仿真”页面中,选中“resistor.n”和“resistor.p”复选框进行绘图,然后单击“求解”按钮。
如图所示,绘制了两个图例“resistor.n”和“resistor.p”。