预订演示
前页 后页

数字电子仿真示例

在本例中,我们为一个简单的数字电子电路创建 SysPhS模型,然后使用模拟来预测和绘制该电路的行为。

此示例适用于 SysPhS 通用组件中未包含的组件,因此它贯穿了创建块以从头开始匹配外部组件的过程。有关演示这一点的网络研讨会,请参阅主题末尾的了解更多信息中的链接。

先决条件

运行此模拟需要:

  • OpenModelica 或
  • MATLAB 的 Simulink

图表- 数字分频器

我们要学习的数字电子电路模型如图所示,它使用标准电子电路符号。

本例中的电路包括一个脉冲数字信号源、四个触发器和一个逻辑布尔真状态,构成一个简单的分频器电路。

创建 SysML模型

这张表显示了我们如何构建一个完整的完成模型来表示电路,从最低级别的类型开始,一步一步地构建模型。

部件

行动

在 SysML 中,使用 SysPhS,可以使用块来表示电路和每个组件类型。

首先在一个名为“数字模型”的包下创建一个块定义图(BDD)。

在 BDD 中,您将为电路创建一组组件,作为 SysML 块。该电路包含四种Part-端口一个脉冲数字信号源、一个Flip-Flop、一个布尔真端口和一个逻辑布尔状态表示。这些部件属于不同的类型,具有不同的行为。

为每个部件类型创建一个部件块。电路内部块定义 (IBD) 的部件将通过端口连接,端口代表电气引脚。这些必须在 BDD 中定义。

此图显示了 BDD,其中块定义了所用组件的类型。

注记这些模块是使用 Modelica Blocks 或 Simulink Blocks 从工具箱创建的。您可以在这两个工具中键入这些块。

有关详细信息,请参阅将模块设置为 Modelica 和 Simulink帮助主题。

设置 Modelica 和 Simulink 路径

为了定义 Modelica 或 Simulink 特定的块,您需要在相应的应用程序中访问部件的路径,然后在块的属性中设置它。

例如,我们可以在 Modelica 中找到 Flip-Flop 组件。

然后我们将其复制到块的属性中。

有关更多详细信息,请参阅创建 Modelica 特定模块创建 Simulink 特定模块帮助主题。

端口

要在块上设置(在这种情况下为 Flip-端口时钟端口),您可以将 Modelica 或 Simulink PhS端口拖到块上。然后必须将该端口输入为端口。

注记:

  • 对于 Simulink,创建端口的端口很关键 - 请参阅Simulink端口排序创建 Simulink 和 Simscape 特定模块帮助主题中
  • 这些端口可以通过为其他端口类型添加构造型来设置为 Modelica 和 Simulink

公共类型

作为所有 SysPhS 模型的启动器,您必须确保使用包导入连接器将 SysPhS 常用类型加载到存储库中并在新模型中引用。有关更多信息,请参阅引用 SysPhS仿真库 帮助主题。

用于端口的值类型在端口仿真库中预先定义。使用的两种键类型是 BooleanInSignal 和 BooleanOutSignal ValueTypes。

此图显示块定义图中的触发器块,时钟设置为端口ValueType,并且在浏览器窗口中引用。

Phs 常数

Clock 和 Boolean-true 模块都在 MATLAB 和 Modelica 的各自组件中定义了属性。

让我们以时钟为例。对于这种组件类型,在 Simulink 和 Modelica 中,我们都需要为每个脉冲的周期和每个脉冲的宽度设置一个值。必须设置和键入这些属性。属性的值将在 IBD、参数图或可能在模拟数据集中设置。

设置定义周期的属性:

  • 将 PhsConstant 从 SysPhS 工具箱拖到时钟上
  • 从图中删除元素以在其隔间中显示
  • 在属性窗口的属性选项卡中,选择“类型”字段
  • 单击 [...] 并选择“时间”作为类型

要设置单个组件(部件)中的值,请参阅此表中的Initial Values行。

内部结构——电路

对于内部结构,我们创建一个带有子 IBD 图的块。

  • 为触发器电路创建块
  • 在此块下使用上下文菜单选项创建一个内部块定义 (IBD) 图
    创建新子图表|内部块定义图
  • 双击打开 IBD
  • 将图表设置为仅显示端口的名称,使用:
    - F5 |元素|元素外观
  • 然后取消设置这两个选项:
    - 显示构造型
    - 显示属性类型
    这将只显示端口和类型
在 IBD 上,您创建零件并连接它们:
  • 从浏览器窗口中,将 Blocks 作为 Parts(属性)拖到 IBD 上
  • 要查看隔间中的这些部件,请将它们从图表中删除
    注记: 将 '结构元素' 的粘贴选项设置为 'ALL'
  • 添加一个时钟、四个触发器和一个表
  • 在 Counter IBD 的边界添加四个数字端口

绑定

到模型这些组件的接线:

  • 使用“连接器”类型的连接器在端口之间创建连接

请注意,这遵循与原始电路图相同的结构,但每个组件的符号已替换为由我们定义的块键入的属性。

初始值

数字脉冲源是 Modelica 和 Simulink 中的 DigitalClock 组件。这需要两个参数 - 'Period' 和 'Width',如 Modelica 编辑器中所示。

这些参数的值必须在 IBD部件的“Clk”中设置,在属性窗口“属性”选项卡的“初始”字段中

J & K端口需要一个固定的逻辑“ True ”状态。这是通过使用初始值设置为“true”的库表定义的,如此处针对 Modelica 所示。

返回 BDD 后,您现在应该将 Counter块显示为:

配置仿真行为

此表显示了 SysMLSim 配置的详细步骤。

行动

创建一个工件

  • 打开块定义图
  • 点击图中空白处
  • 按空格键
  • 从“配置”中选择“工件”子菜单
    这创建了一个新的配置工件

设置包

  • 在配置上工件
    这将打开配置SysML配置窗口
  • 在“包”字段中,单击 [...] 按钮并选择包含 SysML 图的包

设置 Modelica 或 Simulink

在顶部下拉列表中选择要使用的模拟工具:

  • 模型
  • Simulink
有关这些设置的更多详细信息,请参阅配置SysML仿真帮助主题。

设置块为仿真

  • 在左侧列表中的“块”下,找到“InvertOpAmp”
  • 在“值”列中,单击下拉菜单并选择“SysMLSimModel”

选择要绘制的属性

您现在可以选择要绘制的属性:

  • 在右侧窗格中,选择要绘制的端口

运行仿真

在“仿真”页面上,单击求解按钮。这显示了在以下位置生成的图的示例:

模型

Simulink

在图例中,您可以看到端口2 已被选中,而另一个端口已被取消选中,以显示一个简单的Plot

在 Modelica 或 Simulink 中视图模型

要在外部应用程序、Modelica 或 Simulink 中查看生成的模型,请参阅查看生成的模型帮助主题。另请参阅SysPhS调试提示帮助帮助中有关调试生成代码中任何问题的提示。

学到更多