主要内容

符号解析

符号

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

符号的其他值

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

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

  • 定义数据类型

  • 指定输入数据源

  • 指定记录的数据目标

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

限制信号的分辨率

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

  • 所有

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

  • 没有一个

    不要继续搜索层次结构。

  • ExplicitOnly

    只有在符号指定块参数值时,才会继续搜索层次结构,数据存储存储器(其中没有块),或明确需要分辨率的信号或状态。不要继续搜索隐式解决方案。看显式和隐式符号分辨率为更多的信息。

如果搜索没有在工作区中找到匹配项,并且因为值为ExplicitOnly或者没有一个,S金宝appimulink将符号评估为函数。如前所述,搜索成功或失败,根据评估的结果。

显式和隐式符号分辨率

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

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

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

提示

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

也可以看看

相关话题