主要内容

符号分辨率

符号

当你创建一个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余弦函数,和A.B必须解析为数值,这些数值可以从相同或不同工作空间中相同或不同类型的项中获取。如果符号解析为数值,则余弦函数返回的值将成为获得参数。

带符号的其他值

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

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

  • 定义数据类型

  • 指定输入数据源

  • 指定记录的数据目标

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

限制信号的分辨率

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

  • 所有

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

  • 没有一个

    不要继续向上搜索层次结构。

  • ExplicitOnly

    仅当符号指定块参数值、数据存储内存(不存在块)或显式需要解析的信号或状态时,才继续向上搜索层次结构。不要继续搜索隐式解析。请参阅显式和隐式符号解析为更多的信息。

如果搜索没有在工作区中找到匹配项,并且因为值为ExplicitOnly或者没有一个,S金宝appimulink将符号作为函数进行计算。如前所述,搜索成功与否取决于评估结果。

显式和隐式符号解析

模型和某些类型的模型实体具有可能影响符号分辨率的相关参数。例如,假设模型包括命名幅度的信号,并且该模型金宝appsimulink.signal.名为“振幅”的对象存在于可访问的工作区中。如果振幅信号信号名称必须解析为Simulink信号对象金宝app选项已选择,信号解析为对象。有关更多信息,请参阅信号特性

如果未选择该选项,则信号可能会或不会解析到对象,具体取决于配置参数>数据有效性>信号的分辨率.即使对象存在,此参数也可以抑制对象的分辨率,或者它可以指定基于单独的名称发生的分辨率。有关更多信息,请参阅模型配置参数:数据有效性诊断>信号的分辨率

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

提示

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

另见

相关话题