嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

如何根据原理图创建新模型?

本教程需要:

DesignSpark Circuit Simulator

本教程介绍如何根据原理图创建新的仿真模型,从而方便地设计电路或系统,然后将其封装成可用于其他电路或系统的元件。

在本教程中,将创建一个内置串联电感器的电阻器模型。在原理图中将电阻器和电感器串联起来,即可实现这种效果,然后将生成的“电路”保存为模型。以这种方式将设计功能封装到模型中非常有用——既能简化原本复杂的“扁平”设计,又能在多项设计中重复利用相应功能。

创建简单的 R-L 设计

以下步骤展示了如何创建设计并保存为模型。

 1. 在 Design Analyzer 的 Component Browser 中,找到电阻器和电感器元件并将其拖到原理图上。

这些元件可以在 My Favourites 或 Analog Electronics 类别中找到,也可以直接使用搜索框进行搜索。

由于目标是创建模型,此时不必在设计中附加源/负载。但在为之生成模型前,先临时测试所需的功能是非常有用的。

 2. 如下图所示,将电阻器和电感器串联起来。

Resistor and Inductor Symbols

 3. 为电阻器和电感器分别设置 resistance_value res 和  inductance_value。

图中电阻为 10k,电感为 1m。

4.  如上图所示为网络命名。

生成模型并编辑

虽然会自动生成模型,但需要编辑模型来显示引脚和可能的属性。下面将介绍如何进行这两项操作。

生成模型

 1. 点击应用程序左上角的 Create new component 按钮,然后选择 From Schematic。

 此时将显示一个信息对话框,其中包含一些根据原理图生成模型的技巧。

 2. 点击 Click here to generate model 按钮。

 随即会为原理图上当前显示的内容自动生成 VHDL-AMS 模型,并加载到 Component Editor 中。

 注意:在生成模型之前,会自动复制设计,因此不会保存原始设计。

 3. 点击 Save new component 按钮,为新模型命名,并将其保存到数据库中。

 4. 根据提示输入模型名称,然后点击 OK。

 该名称不必与设计/原理图的名称相一致。本例中选择的名称为“Series RL”。

 随即还会显示 Symbol Editor,接下来很快就会使用该工具。

 5. 您的模型应与下图相似。

Entry information

code

 该模型中有几处值得注意:

 您提供的网络名称(或默认名称)将用来建立元件之间的连接。例如,您可以看到电阻器端口映射部分的引脚 p2 连接到 netRL;电感器端口映射部分的引脚 p1 也连接到 netRL,与预期相符。

 这三个网络的内部声明位于架构部分的顶部。这就是说,在架构之外是看不到这些网络的。

 虽然通用部分和端口部分均包含在生成的模型中,但默认情况下已注释掉。这些内容很容易“取消注释”,并在必要时使用,很快我们就会执行这些操作。另外还提供了如何使用这些部分的注释示例。这些注释仅供参考,必要时可以删除。

 添加引脚连接

 为模型添加引脚(即 VHDL-AMS 中的端口)连接,即用实体端口声明替换内部网络声明。在本例中,我们希望 p1 和 p2 成为该模型的引脚,并将 netRL 保留在架构内部。

 1. 如下所示更改模型:

 a. 取消端口部分起始行的注释 ("port (") 。

 b. 取消端口部分结束行的注释 ("),")

 c. 注释掉架构部分开头的 terminal p1:electrical 和 terminal p2: electrical 两行。

 通常只需从架构部分移除这两行,这些注释仅用于教学目的。

 d. 将 terminal p1: electrical 和 terminal p2: electrical 这两行复制到端口部分。

 要特别注意分号“;” - 最后一个分号出现在端口部分的圆括号之后,不是直接出现在最后一个终端声明之后。

Pay special attention to the semicolons in the code

 2. 将 Symbol Editor 调到前面。

 您添加到该模型中的引脚已自动放置在符号上,现在将重新定位这些引脚,以使符号更美观,使用更便捷。

 3. 出现 Symbol Editor 时,将引脚拖到下图所示位置。

 引脚 p1 应在左侧,p2 应在右侧。

 4. 点击 Symbol Editor 中的 Save 按钮,然后关闭。

 注:点击 Symbol Editor 中的 Save 按钮后,符号将写入 Component Editor。要在 DesignSpark Circuit Simulator 中存储符号更新信息,务必在 Symbol Editor 编辑之后保存 Component Editor。

 该元件现在可以连接到设计中,像其他元件一样使用了。但首先要更新模型,允许从原理图中传递属性。

 允许从原理图向模型传递属性

 现在的情况是,resistance_value 和 inductance_value 属性值固定为生成模型前在原始设计中指定的值(本例中为 20k 和 1m)。下一步您会看到如何更新模型,以便这些值可由用户在原理图级别指定并传递到模型中。这些属性在 VHDL-AMS 中被称为“泛型generics”。

 与之前的端口部分一样,取消注释泛型部分的起始行和结束行。

 添加指定的属性并引用,如下面的缩略列表所示。

 分配给 resistance_value 和 inductance_value 的值现在分别有了 属性(泛型)名称 res 和 ind。

 再次强调,要特别注意分号“;” - 最后一个分号出现在端口部分的圆括号之后,不是直接出现在最后一个终端声明之后。

 如下图所示,可以选择给属性设置默认值,这样无论用户是否在原理图中给属性赋值,模型都会继续仿真。

 注意:直接在模型中添加属性值时,必须遵循 VHDL-AMS 语法。SI 单位前缀(如“m”、 “u”、 “k” 等)在模型中不受支持。例如,“res”在模型中不是指定为“10k”,而是指定为“1.0e4”。

adding in resistance and inductance values

完成基于原理图的模型

 模型现已完成。它包括引脚声明以及可从原理图传入的属性值。模型的最终实体/架构如下所示。内嵌的“说明性”注释已移除。

complete model code

创建并验证模型

 基于原理图的新模型现已完成,应当验证它的功能了。最简单的方法是将其与串联的分立电阻器和电感器元件一起实例化,然后验证它们是否产生相同的仿真结果。

 您可以将生成模型的原始设计作为切入点,并从 Component Browser 的 My Components 类别中拖出新模型的实例。

 如下所示。我们为电阻器和电感器选择了 1 和 1n 的新值,来验证其是否正确传递,以及是否会覆盖 10k 和 1m 的默认值。

 可以看到,在新模型中,通过分立电阻器和电阻器实例的串联电流时间常数是相同的。

Circuit being simulated

摘要和附加说明

 本教程到此结束。有关建模工具的资源链接以及一般 VHDL-AMS 建模说明,请参阅 Component/Symbol Editor Help。下面是一些有关基于原理图的模型的附加说明:

  • 如果您的设计中包含您创建的自定义模型,这些模型列表将复制到所生成模型的顶部。

 这样,生成的模型就能访问所需要的任何自定义模型,生成的模型也就具备了自包含性和可移植性。

 注意:基于原理图的顶层模型始终显示在模型列表的底部。

  •  基于原理图的模型可以嵌套。

 您可以创建一个基于原理图的模型并在设计中使用,然后将它保存为基于原理图的模型。

RS DesignSpark is the go-to platform for students, makers, hobbyists and professional design engineers, providing design resources such as the award winning DesignSpark PCB and DesignSpark Mechanical CAD software. Join the community today at https://www.rs-online.com/designspark/register