主要内容

模型中的限定范金宝app围的Simulink函数块

Simulink的范围金宝app®函数是在模型上下文中定义的。如果你放置一个金宝app仿真软件的功能块,则该函数的作用域默认为该模型。的触发功能可见性参数设置为作用域.通过位于以下位置的函数调用者访问函数:

  • 在包含该函数的模型层次结构中。在不限定函数名的情况下调用函数。

  • 在模型之外。通过用模型块实例名而不是模型文件名限定函数名来调用函数。

设置功能可见性对于一个金宝app仿真软件的功能全球允许您从模型或父模型中的任何位置访问函数。因此,带有a的模型金宝app仿真软件的功能块设置为全局不能是多实例的,因为函数名必须是唯一的。

分层解析到函数

将作用域金宝app仿真软件的功能块将限制对函数的访问,并从全局名称空间中删除函数名称。

  • 位于当前模型中的函数调用者。

  • 函数调用者不能放在模型块和金宝app仿真软件的功能块在父模型中,

    如果你把一个函数调用者放在模型块时,Simu金宝applink显示一个错误。发生此错误是因为包含调用者的模型不知道函数的名称。函数调用不能跨模型引用边界。

通过限定解析函数

当你放置一个金宝app仿真软件的功能块在一个模型块时,函数名在模型外部不可访问。但是,您可以通过使用模型块的名字。当函数调用者分层解析为限定函数时,它查找模型块包含函数,使用以下规则:

  • 决议规则1:是模型块在当前模型中的函数调用者?

  • 决议规则2:如果模型块不在当前模型或子系统中,是模型在函数调用者之上一个或多个级别的父或祖父母模型中阻塞?

如果函数调用者解析为模型块,你可以通过限定函数名来调用函数:

  • 函数调用者位于模型阻塞函数之上的一个层次。在这种情况下,函数调用者在当前模型中找到具有作用域函数的Model块(解决规则1)。

  • 在与函数同级别的子系统中的函数调用者。在本例中,函数调用者没有找到模型块在当前子系统中,但它在父模型中找到了Model块(分辨率规则2)。

  • 不能将一个Simulink函数块放在一金宝app个模型块中,而将函数调用者放在另一个模型块中。

    如果你放置一个金宝app仿真软件的功能块和函数调用者在另一个引用模型,Simulink显示一个错误。金宝app的限定函数名导致此错误模型块名称对包含调用者的模型是不可见的。

如果您希望使用此建模模式访问函数,请参阅主题中引用的模型和函数中的函数调用程序块小节和单独模型中的函数调用程序小节金宝app参考模型中的Simulink功能块

用Simulink函数进行多实例建模金宝app

设置功能可见性对于一个金宝app仿真软件的功能作用域将函数封装在模型中,允许您多实例化模型。将模型实例名添加到函数名中会创建一个在父模型中唯一的限定函数名。

  1. 创建一个包含金宝app仿真软件的功能块。

    默认情况下,功能可见性参数的触发块内金宝app仿真软件的功能块被设置为作用域

  2. 从多个模型中引用Simulink函数金宝app模型块。添加一个函数调用子系统块来安排对函数的调用。

  3. 添加函数调用者块的函数调用子系统块。通过用块名称限定函数名,在单独的模型实例中访问函数。

  4. 调试选项卡上,选择信息覆盖.从下拉框中选择功能连接器

    绘制跟踪线可以帮助您从函数调用者导航到函数。

有关使用带有多个实例的Simulin金宝appk函数块的模型,请参见使用多重实例化的Simulink函数建模可重用组件金宝app

另请参阅

相关的话题