前页 | 后页 |
运算放大器电路仿真示例
在本例中,我们为一个简单的电子电路创建了一个 SysPhS模型,然后使用模拟来预测和绘制该电路的行为。
先决条件
运行此模拟需要:
- OpenModelica 或
- MATLAB 的 Simulink 和 Simscape
图表
我们将要学习的电子电路模型如图所示,使用标准电子电路符号。
本例中的电路将包括一个sine信号源、一个接地、两个电阻和一个运算放大器集成电路。下图显示了使用 SysPhS 从 SysML 图生成到外部应用程序(在本例中为 Modelica)的结果图。
创建 SysML模型
这张表显示了我们如何构建一个完整的完成模型来表示电路,从最低级别的类型开始,一步一步地构建模型。
部件 |
行动 |
---|---|
块 |
在 SysML 中,使用 SysPhS,电路和每个组件类型都表示为块。 在块定义图 (BDD) 中,创建电路组件块。该电路有五个部分:运算放大器、信号源、信号电压转换器、地和电阻。这些部分属于不同的类型,具有不同的行为。 关键模块,包括运算放大器、接地和电阻器,可作为预定义模块使用部件元件模式进行访问。但是,为了清楚起见,我们将运行开始运行它们的创建。 为每个部件类型创建一个部件块。电路内部块定义 (IBD) 的各个部分将通过端口连接,端口代表电气引脚。这些在 BDD 中定义。电阻器有一个正极和一个负极引脚。地只有一个引脚,它是正极。电流(电荷)通过引脚传输。这两个端口分别命名为“p”(正)和“n”(负),它们的类型为 ChargeFlowElement。 此图显示了 BDD,其中块定义了所用组件的类型。这包括信号源sine 、信号电压转换器、接地、电阻型和运算放大器型。
注记:这些模块是使用 Modelica Blocks 或 Simulink Blocks 从工具箱创建的。您可以在两个工具中键入每个块。有关详细信息,请参阅将模块设置为 Modelica 和 Simulink帮助主题。 |
端口 |
用于端口的值类型在端口仿真库中预先定义。使用的两个关键量是 ChargeFlowElement 和 RealSignalInElement ValueTypes, 此图显示了块定义图中的 OpAmp块,OpAmp块上的端口设置为 ChargeFlowElement ValueType,并且在浏览器窗口中引用了它。
公共类型包的导入连接器显示了如何设置这些。更多关于包导入(圈出)的信息,请参见引用SysPhS仿真库 帮助主题。 |
Phs 常数 |
电阻器和Sine模块都在 MATLAB 和 Modelica 中各自的组件中定义了属性。 让我们以电阻为例。对于这些组件,在它们各自的工具中,我们需要设置一个以欧姆为单位的电阻值。对于大多数电路,可能有多个电阻器部件源自此电阻器块,在 IBD 或参数图中建模为部件。因此,它们的值(以欧姆为单位)将在 IBD、参数图或可能在模拟数据集中设置。 要设置定义电阻的属性,我们需要创建一个 Phs 变量“r”。初始值未设置。
注记:SysPhS模式包括一个已构建的电阻类型块。 要在每个单独的组件 (元件) 中设置电阻值,请参阅此表中的Initial Values行,其中显示了使用端口和部件常量设置的块。
|
内部结构 |
对于内部结构,我们创建一个带有子 IBD 图的块。
|
绑定 |
到模型这些组件的接线:
请注意,这遵循与原始电路图相同的结构,但每个组件的符号已替换为由我们定义的块键入的属性。 |
初始值 |
由于有两个电阻器,因此输入电阻器 (RIn) 和反馈电阻器 (Rf) 必须在 IBD 中创建为两个不同的(部分)属性,源自电阻器块,因为它们中的每一个都有不同的值。这些值必须在属性窗口、“属性”选项卡、“初始”字段中设置。
对于 InputControllingSignal,幅度和频率需要初始值。
返回 BDD 后,您现在应该将现在块显示为: |
配置仿真行为
此表显示了 SysMLSim 配置的详细步骤。
节 |
行动 |
---|---|
创建一个工件 |
|
设置包 |
|
设置 Modelica 或 Simulink |
在顶部下拉菜单中,您可以选择要使用的模拟工具:
|
设置块为仿真 |
|
选择要绘制的属性 |
您现在可以选择要绘制的属性:
|
运行仿真
在“仿真”选项卡上,单击求解按钮。此示例显示了在 Modelica 中生成的图:
在图例中,您可以看到绘制的属性和 '信号.v 属性,并将它们与在属性属性下选择的两个匹配。
在 Modelica 或 Simulink 中视图模型
要在外部应用程序、Modelica 或 Simulink 中查看生成的模型,请参阅查看帮助或 Simulink视图的模型帮助主题,以及调试生成代码中任何问题的提示。