主要内容

符号解析

符号

当你创建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没有一个, 金宝appSimulink将符号作为函数计算。搜索成功或失败取决于前面描述的计算结果。

显式和隐式符号解析

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

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

由于诸如。之类的选项而发生的解决信号名称必须解析为Simulink信号对象金宝app需要它被调用显式符号解析。调用仅基于名称匹配而没有显式规范的解析隐式符号解析

提示

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

另请参阅

相关的话题