主要内容

符号解析

符号

当您创建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仿真软件。信号)定义信号的属性,以及总线的创造者数据类型参数可以命名一个总线对象(金宝app仿真软件。公共汽车),定义总线的属性。符号可以用于多种用途,包括:

  • 定义数据类型

  • 指定输入数据源

  • 指定记录的数据目标

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

限制信号的分辨率

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

  • 所有

    继续搜索工作空间层次结构,试图解析符号。这是默认值。

  • 没有一个

    不要继续搜索层次结构。

  • ExplicitOnly

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

如果搜索在工作空间中没有找到匹配的,并且由于值是而终止ExplicitOnly没有一个,S金宝appimulink将符号评估为函数。如前所述,搜索成功或失败,根据评估的结果。

显式和隐式符号分辨率

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

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

等选项导致的分辨率信号名称必须解析为Simulink信号对象金宝app要求它被称为明确的符号解析.只根据名称匹配而没有明确说明的解析将被调用隐式符号解析

小费

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

也可以看看

相关的话题