可配置子系统
表示从用户指定的块库中选择的任何块
图书馆
端口与子系统
![](http://www.tianjin-qmedu.com/help/releases/R2018a/simulink/slref/configurable_subsystem_block_icon.png)
描述
可配置子系统块表示包含在指定块库中的一组块中的一个。块的上下文菜单允许您选择可配置子系统所代表的块。
可配置子系统块简化了表示设计族的模型的创建。例如,假设您想要建模一辆提供多种发动机选择的汽车。要对这样的设计建模,首先要创建汽车可用的发动机类型的模型库。然后,您将在汽车模型中使用一个可配置子系统块来表示发动机的选择。要为基本汽车设计的特定变体建模,用户只需要使用可配置发动机块的对话框选择发动机类型。
要在模型中创建可配置子系统,您必须首先创建一个包含主可配置子系统和它所表示的块的库。然后,您可以通过从库中拖动主子系统的副本并将它们放入模型中来创建主子系统的可配置实例。
您可以将任何类型的块添加到主可配置子系统库中。万博1manbetx动态仿真模块®通过从所有选项的端口名称中创建一个惟一的列表,来派生可配置子系统的端口名称。但是,Simuli万博1manbetxnk对非子系统块选择使用默认端口名称。
请注意,您不能破坏可配置子系统中的库链接,因为当您选择新的配置时,Simulink使用这些链接来重新配置子系统。万博1manbetx只有当您不打算重新配置子系统时,断开链接才有用。在这种情况下,您可以用实现永久配置的不可配置子系统替换可配置子系统。
创建主可配置子系统
创建一个主可配置子系统:
创建一个表示可配置子系统的各种配置的块库。
拯救图书馆。
在库中创建可配置子系统块的实例。
为此,从Simulink Ports & Subsystem库中将可配置子系统块的副本拖到您在上一步中创建的库中。万博1manbetx
通过双击显示可配置子系统块对话框。对话框显示库中其他块的列表。
下块选项列表在对话框中,选择代表您正在创建的可配置子系统的各种配置的块。
单击好吧按钮以应用更改并关闭对话框。
选择块的选择从可配置子系统块的上下文菜单。
上下文菜单显示一个子菜单,列出子系统可以表示的块。
选择您希望子系统默认表示的块。
拯救图书馆。
请注意
如果您从库中添加或删除块,您必须重新创建使用该库的任何可配置子系统块。
如果您修改的库块是可配置子系统的默认块选择,则更改不会立即传播到可配置子系统。要传播此更改,请执行以下操作之一:
将默认块选择更改为子系统中的另一个块,然后将默认块选择更改回原始块。
重新创建可配置的子系统块,包括将更新的块作为默认块的选择。
如果模型中的可配置子系统包含到库块的断开链接,则编辑链接并保存模型不会在下次打开模型时修复断开链接。要修复可配置子系统中损坏的库链接,请使用以下方法之一。
将可配置子系统转换为可变子系统。右键单击可配置子系统,并选择子系统和模型参考>将子系统转换为>不同的子系统.
从主可配置子系统库中删除库块,将库块添加回主可配置子系统库,然后重新保存主可配置子系统库。
创建可配置子系统的实例
在模型中创建一个可配置子系统的实例:
打开包含主可配置子系统的库。
将master的副本拖到模型中。
选择块的选择从副本的上下文菜单。
选择您希望可配置子系统表示的块。
可配置系统的实例显示它所代表的块的图标和参数对话框。
设置实例块参数
与其他块一样,您可以使用可配置子系统实例的参数对话框以交互方式设置实例的参数set_param
命令从MATLAB中设置参数®命令行或MATLAB文件。如果你使用set_param
的第一个参数,必须指定可配置子系统当前块选择的完整路径名set_param
,例如:
curr_choice = get_param('mymod/myconfigsys', 'BlockChoice');Curr_choice = ['mymod/myconfigsys/' Curr_choice];set_param(curr_choice, 'MaskValues',…);
映射I/O端口
可配置的子系统显示一组输入和输出端口,对应于所选库中的输入和输出端口。万博1manbetxSimulink使用以下规则将库端口映射到可配置子系统块端口:
将库中每个唯一命名的输入/输出端口映射到可配置子系统块上同名的单独输入/输出端口。
将库中所有同名的输入/输出端口映射到可配置子系统块上相同的输入/输出端口。
使用终止器/接地块终止当前所选库块未使用的任何输入/输出端口。
此映射允许用户更改由可配置子系统块表示的库块,而无需重新连接到可配置子系统块。
例如,假设一个库包含两个块一个
而且B
这个块一个
输入端口已标记一个
,b
,c
和一个输出端口标记d
这个块B
输入端口已标记一个
而且b
和一个输出端口标记e
.
基于这个库的可配置子系统块将有三个标记的输入端口一个
,b
,c
,分别和两个输出端口标记d
而且e
.
本例中为port一个
在可配置子系统块上连接到端口一个
无论所选的是哪个库块。另一方面,波特酒c
仅当库块A被选中时,可在可配置子系统块上运行。否则,它就会终止。
请注意
可配置子系统块不提供与非i /O端口对应的端口,例如在已触发和已启用的子系统上的触发器和启用端口。因此,您不能直接使用可配置子系统块来表示具有此类端口的块。但是,您可以通过将这些块包装在子系统块中,这些子系统块具有连接到非i /O端口的输入或输出端口。
转换为变体子系统
右键单击可配置子系统并选择子系统和模型参考>将子系统转换为>不同的子系统.
在转换过程中,Simulink会执行以万博1manbetx下操作:
取代了子系统块不同的子系统阻塞,保留端口和连接。
控件中添加原始子系统作为变体选择不同的子系统块。
覆盖了不同的子系统块来使用最初是主动选择的子系统。
保存到库的链接。对于链接子系统,Simulink添加了链接子系万博1manbetx统作为变体选择。
万博1manbetxSimulink还保留了子系统块掩码,并将掩码复制到变体选择中。
看到不同的子系统有关变体选择的更多信息。
数据类型支持万博1manbetx
可配置子系统块接受并输出它当前所代表的块所接受或输出的相同类型的信号。数据类型可以是Simulink支持的任何数据类型,包括定点数据万博1manbetx类型。万博1manbetx
有关更多信息,请参见Simulink支持的万博1manbetx数据类型万博1manbetx在Simuli万博1manbetxnk文档中。
参数
- 块选项列表
-
选择您想要包括作为可配置子系统成员的块。您可以将用户定义的子系统包含为块。
- 港口的名字
-
成员块的输入和输出端口列表。说明如果有多个端口,可以单击图标,重新排列所选端口的位置向上而且下来按钮。
特征
一个可配置子系统块具有它当前所表示的块的特征。双击该块将打开当前所代表的块的对话框。
数据类型 |
Double | Single | Boolean | Base Integer | Fixed-Point |枚举|总线 |
多维信号 |
是的 |
适应信号 |
是的 |
代码生成 |
是的 |