主要内容

符号解析

符号

当你创建一个Simulink金宝app®模型中,您可以使用符号为模型中的许多类型的实体提供值和定义。可以用符号定义的模型实体包括块参数、配置集参数、数据类型、信号、信号属性和总线体系结构。

提供值或定义的符号必须是合法的MATLAB®标识符。这样的标识符以字母字符开始,然后是字母数字或下划线字符,直到函数给出的长度namelengthmax.你可以使用这个函数isvarname以确定符号是否合法的MATLAB标识符。

符号在Simulink模型中提供了一个值或定义,它对应于以下内容:金宝app

  • 存在于可访问的工作区中

  • 有和符号匹配的名字吗

  • 提供所需信息

符号解析过程

找到与符号相对应的项的过程被调用符号解析解决符号.匹配项可以直接提供所需的信息,或者它本身可以是一个符号。符号必须解析为提供该信息的其他项。

当Simulink金宝app软件编译一个模型时,它尝试解析模型中的每个符号,除了在回调或作为掩码初始化的一部分运行的MATLAB代码中的符号。根据具体情况,符号解析的项可以是变量、对象或函数。

金宝appSimulink试图通过在可访问的工作区中按层次顺序搜索名称与符号相同的MATLAB变量或Simulink对象来解析符号。

每个符号的搜索路径都是相同的。搜索从使用该符号的块开始,或以该符号命名的信号源开始,并向上进行。除非模拟是通过sim卡命令,搜索顺序为:

  1. 任何掩码工作区,按从块向上的顺序排列(参见屏蔽原理).

  2. 包含块的模型的模型工作区(参见模型的工作区).

  3. MATLAB的基本工作空间(见创建和编辑变量),或者,如果模型链接到数据字典,则字典(参见什么是数据字典?).如果数据字典中有启用对基本工作区的字典访问属性选中时,搜索将字典和基本工作空间视为单个名称空间。

请注意

如果模型引用存储在基本工作空间中的配置集,则搜索从基本工作空间开始。与附加到模型的配置集不同,基本工作空间中的配置集不能访问模型工作空间。

输入初始状态参数不会从数据字典加载数据。当模型使用数据字典并禁用模型对基本工作空间的访问时,输入初始状态参数仍然访问基本工作区中的数据。

如果S金宝appimulink在搜索过程中找到了匹配项,搜索将在此时成功终止,符号解析为匹配项。结果就像按字面意思显示该项的值而不是解析为该项的符号一样。在较低层次定义的对象会使在较高层次定义的对象产生阴影。

如果在搜索路径上不存在匹配项,Simulink将尝试以函数的形式计算符号。金宝app如果定义了函数并返回适当的值,则该符号将解析为函数返回的任何值。否则,该符号仍然无法解析,并发生错误。当分层搜索在没有找到匹配的工作区变量的情况下终止时,将作为最后一步进行函数求值。

如果包含符号的模型是引用模型,并且搜索到达了模型工作区,但在那里没有成功,那么搜索将直接跳转到基本工作区或数据字典没有尝试在任何父模型的工作空间中解析符号。因此,给定的符号将解析为相同的项,而不管包含该符号的模型是否是引用模型。有关模型引用的信息,请参见模型引用

带符号的数值

您可以通过提供可以包含符号和文字值的文字值、符号或表达式来指定任何需要数值的块参数。每一个符号都是单独分解的,就好像其他符号都不存在一样。因此,表达式中的不同符号可以解析为不同工作空间中的项,以及不同类型的项。

当单个符号出现并成功解析时,它的值提供参数的值。当表达式出现,并且所有符号都成功解析时,表达式的值提供参数的值。如果无法解析任何符号,或解析为不合适类型的值,则会发生错误。

例如,假设获得的参数为因为(* (2 + 2)).符号因为将解析为MATLAB余弦函数,和一个b必须解析为数值,这些数值可以从相同或不同工作空间中的相同或不同类型的项获得。如果符号解析为数值,则余弦函数返回的值将成为获得参数。

其他带有符号的值

大多数使用它们的符号和表达式提供数值,但提供数值的相同技术也可以提供适合其上下文的任何类型的值。

符号的另一个常见用法是为提供某种定义的对象命名。例如,信号名称可以解析为信号对象(金宝app仿真软件。信号)来定义信号的属性,而a总线的创造者数据类型参数可以命名总线对象(金宝app仿真软件。公共汽车)来定义总线的属性。你可以在很多场合使用符号,包括:

  • 定义数据类型

  • 指定输入数据源

  • 指定记录的数据目的地

对于分层符号解析,所有这些符号的不同用法,无论是单独使用还是在表达式中使用,都是相同的。如果可能的话,将独立于任何其他符号解析每个符号,并且在符号出现的地方可以获得结果。一种符号和另一种符号之间的唯一区别是该符号所解决的特定项目和该项目的使用。唯一的要求是每个符号必须解析为某个可以合法出现在符号所在位置的东西。

限制信号的分辨率

默认情况下,分层符号解析将遍历整个搜索路径。属性可以截断搜索路径允许分层解析选择任何子系统。该选项控制如果搜索到达该子系统而不解析到工作区变量时发生的情况。的允许分层解析值:

  • 所有

    继续在工作区层次结构中搜索,尝试解析该符号。这是默认值。

  • 没有一个

    不要继续在层次结构中搜索。

  • ExplicitOnly

    只有当符号指定了块参数值、数据存储内存(不存在块)或显式需要解析的信号或状态时,才能继续在层次结构中搜索。不要继续寻找隐含的解决方案。看到显式和隐式符号解析为更多的信息。

如果搜索没有在工作区中找到匹配项,并且因为值为ExplicitOnly没有一个, 金宝appSimulink以函数的形式计算符号。如前所述,搜索的成功或失败取决于评估的结果。

显式和隐式符号解析

模型和某些类型的模型实体具有可能影响符号解析的相关参数。例如,假设一个模型包含一个名为幅值的信号,并且金宝app仿真软件。信号对象振幅存在于可访问的工作区中。如果振幅信号是信号名称必须解析为Simulink信号对象金宝app选项被选中时,信号将解析为该对象。有关更多信息,请参见信号特性

如果未选择该选项,则信号可能会或不会解析到对象,具体取决于配置参数>数据的有效性>信号的分辨率.该参数可以禁止对对象进行解析,即使对象存在,或者它可以指定仅根据名称匹配进行解析。有关更多信息,请参见模型配置参数:数据有效性诊断>信号的分辨率

由于诸如信号名称必须解析为Simulink信号对象金宝app要求它被调用明确的符号解析.将调用仅基于名称匹配而没有显式规范的解析隐式符号解析

提示

隐式符号解析对于快速原型化非常有用。然而,当您完成原型时,请考虑使用显式的符号解析,因为隐式解析降低了性能,使模型验证复杂化,并可能产生不确定性影响。

另请参阅

相关的话题