使用金宝app仿真软件。信号
要指定和控制信号属性的对象
一个金宝app仿真软件。信号
对象使您能够分配或验证信号或离散状态的属性,例如其数据类型、数值类型、维度等。有关编程和参考信息,请参见金宝app仿真软件。信号
.
使用信号对象分配或验证信号属性
本节描述如何使用信号对象来分配或验证信号属性。同样的技术也适用于离散状态。使用信号对象来分配或验证信号属性值:
创建一个
金宝app仿真软件。信号
对象,该对象与要向其分配属性或要验证其属性的信号同名。打开模型资源管理器。
在Model Hierarchy窗格中,选择Base工作区或Model工作区节点,这取决于您想为信号对象选择的上下文。如果您在模型工作区中创建信号对象,您必须设置存储类参数
汽车
.选择添加>金宝app仿真软件的信号.
设置对象的属性,这些属性对应信号源未指定的属性,或者对应您想要验证的属性。看到属性对话框获取详细信息。
启用显式或隐式信号解析:
明确的决议:在信号的“信号属性”对话框中,启用信号名称必须解析为Simulink信号对象金宝app.这是首选的技术。看到显式和隐式符号解析更多信息。
当您使用这种技术时,设置>诊断>数据有效性>信号分辨率的值
没有一个
.若要仅使用显式解析(最佳实践),请将参数设置为明确的只
.隐式的决议:设置>诊断>数据有效性>信号分辨率的选项
显性和隐性
或显式和警告隐式
.显式解析是首选技术。
将信号对象分配给工作空间变量。
将信号对象与源信号关联。
为信号指定与引用信号对象的工作空间变量相同的名称。
可以使用各种技术将信号对象与信号关联起来。有关示例,请参见使用信号对象初始化信号和离散状态,使用信号对象调优初始值,向数据元素应用内置和自定义存储类(嵌入式编码)。
验证
当信号与信号对象不匹配时的结果取决于几个因素。金宝app动态仿真模块®软件可以在更新图表时验证信号属性,同时运行模拟,或者两者同时进行。何时以及如何进行验证取决于可能更改的内部规则,有时也取决于配置参数设置。
不是所有的信号验证都比较信号源属性和信号对象属性。例如,如果您指定最低而且最大使用信号对象的信号值,信号源必须指定与信号对象相同的值(或从对象继承值),但这种验证只涉及到源和对象之间的一致,而不是在模拟过程中强制执行最小值和最大值。
的值配置参数>诊断>数据有效性>模拟范围检查是没有一个
(默认值),在模拟过程中,Si金宝appmulink不会强制执行任何最小和最大信号值,即使信号对象提供或验证了它们。若要在模拟过程中强制执行最小和最大信号值,请设置仿真范围检查来警告
或错误
.看到信号范围而且模型配置参数:数据有效性诊断更多信息。
多个信号对象
你可以把一个给定的信号对象如果信号对象的存储类为,则使用多个信号汽车
或可重用的
.如果存储类为汽车
你明确了优化,比如信号存储复用因此,生成的代码为所有相关的信号分配内存,每个信号都作为包含信号和状态数据的全局结构的唯一命名字段出现。如果对象的存储类不是汽车
或可重用的
,可以将信号对象与一个以上的信号关联。
你可以把一个给定的信号只有一个信号对象。信号可以多次引用信号对象,但每个引用必须解析为完全相同的信号对象。引用两个具有完全相同属性的不同信号对象会导致编译时错误。
如果模型将多个信号对象与任何信号关联,则会发生编译时错误。为了防止错误,决定信号要使用哪个对象,然后删除或重新配置对任何其他信号对象的所有引用,以便所有剩余的引用解析为所选的信号对象。看到突出信号源和目的地有关可用于跟踪信号的全部范围的技术的说明。
信号规格块:替代金宝app仿真软件。信号
你可以使用信号规范Block而不是a金宝app仿真软件。信号
对象来分配信号源未指定的属性。每种技术各有优缺点:
使用信号对象简化了模型,允许您在不编辑模型的情况下更改信号属性值,但是不能直接在框图中显示信号属性值。
使用Signal Specification块直接在框图中显示信号属性值,但是会使模型复杂化,并且需要编辑它来更改信号属性值。
下面的两个模型说明了两种为信号分配属性的方法各自的优点。
在第一个例子中,信号对象命名为Sig1
指定输入端口发出的信号的采样时间和数据类型三机一体
.
确定的性质Sig1
信号,您可以在模型资源管理器中查看信号对象。在该模型中,采样时间为-1
数据类型是汽车
.
使用信号对象指定信号的采样时间和数据类型属性Sig1
允许您更改示例时间或数据类型,而不必编辑模型。例如,你可以使用模型资源管理器,MATLAB®命令行或MATLAB程序来改变这些属性。
第二个示例使用Signal Specification块指定输入端口发出的信号的采样时间和数据类型In2
.Signal Specification块在图中显示数据类型和信号采样时间属性,在本例中为uint8
而且4
,分别。
总线支持金宝app
使用总线对象作为数据类型
金宝app仿真软件。信号
金宝app支持非虚拟总线作为输出数据类型。
如果你设置数据类型的信号对象为总线对象,则不能将信号对象与非总线信号关联。
使用结构作为初始值
如果使用总线对象作为数据类型,请设置初始值来0
或与总线对象匹配的MATLAB结构。
指定的结构必须包含总线对象所表示的总线的每个元素的值。
您可以使用金宝appSimulink.Bus.createMATLABStruct
创建与总线对应的完整结构。
你可以用金宝appSimulink.Bus.createObject
从MATLAB结构创建一个总线对象。
属性对话框
有关的示例和编程信息金宝app仿真软件。信号
,请参阅金宝app仿真软件。信号
.
- 数据类型
-
信号的数据类型。默认条目,
汽车
,指定由Simulink确定数据类金宝app型。使用相邻的下拉列表指定内置数据类型(例如,uint8
).要指定自定义数据类型,请输入指定该类型的MATLAB表达式(例如,引用类的基本工作空间变量)金宝app仿真软件。NumericType
对象)。要指定总线对象作为信号对象的数据类型,请使用
总线:< object_name >
选择。看到总线支持金宝app有关在指定总线对象为数据类型时需要执行的操作的详细信息。单击显示数据类型助手按钮来显示数据类型助手,这可以帮助你设置数据类型参数。(见使用数据类型助手指定数据类型.)
- 复杂性
-
信号的数字类型。有效值为
汽车
(由Simulink确定),金宝app真正的
,或复杂的
. - 维
-
这个信号的尺寸。有效值为
-1
(默认值)指定任何尺寸,N
指定大小的矢量信号N
,或(mn)
指定一个麦根
矩阵信号。 - 维模式
-
此信号的尺寸模式。从下拉列表中选择
自动-允许可变大小和固定大小的信号。
Fixed -只允许固定大小的信号。不允许可变大小的信号。
变量-只允许可变大小的信号。
- 样品时间
-
该信号值的计算速率。看到指定采样时间获取详细信息。
- 最低
-
信号应该具有的最小值。默认值为
[]
(不明)。指定一个有限的、实数的、双精度的标量值。请注意
如果指定总线对象作为信号的数据类型,则不要在信号属性对话框中设置总线数据的最小值。金宝appSimulink忽略此设置。相反,为指定为数据类型的总线对象的总线元素设置最小值。有关总线元素的Minimum属性的信息,请参见
金宝app仿真软件。BusElement
.金宝appSimulink使用该值的方式如下:
当更新图表或开始模拟时,如果信号的初始值小于最小值或最小值超出信号数据类型的范围,Simulink将产生金宝app错误。
启用仿真范围检查在模拟过程中,如果信号值金宝app小于最小值(参见仿真范围检查).
- 最大
-
信号应该具有的最大值。默认值为
[]
(不明)。指定一个有限的、实数的、双精度的标量值。请注意
如果指定总线对象作为信号的数据类型,则不要在信号属性对话框中设置总线数据的最大值。金宝appSimulink忽略此设置。相反,为指定为数据类型的总线对象的总线元素设置最大值。有关总线元素的Maximum属性的信息,请参见
金宝app仿真软件。BusElement
.金宝appSimulink使用该值的方式如下:
当更新图表或开始模拟时,如果信号的初始值大于最大值或最大值超出信号数据类型的范围,Simulink将产生金宝app错误。
启用仿真范围检查在模拟过程中,如果信号值金宝app大于最大值(参见仿真范围检查).
- 存储整数最小值
-
对于具有定点数据类型的信号对象,为信号应具有的最小值,指定为存储的整数值。该值来源于真实世界的值最低.此属性仅在属性对话框中可用。
- 存储整数最大值
-
对于具有定点数据类型的信号对象,信号应具有的最大值指定为存储的整数值。该值来源于真实世界的值最大.此属性仅在属性对话框中可用。
- 初始值
-
信号或状态值之前,模拟采取其第一个时间步。您可以指定计算为数值标量值或数组的任何MATLAB表达式,包括工作空间变量的名称。
您可以使用MATLAB命令提示符为信号提供一个初始值。即使使用数字,也要将初始值指定为字符向量。
mySigObject.InitialValue = ' 5.3 ';
mySigObject。InitialValue = 'myNumericVariable';
为信号指定一个初始值,该信号使用数值数据类型而不是
双
,将初始值转换为信号数据类型。例如,您可以指定单(73.3)
使用73.3
作为数据类型信号的初始值单
.如果使用总线对象作为信号对象的数据类型,请设置初始值到包含其中之一的字符向量
0
或与总线对象匹配的MATLAB结构。看到总线支持金宝app获取详细信息。如果初始值计算为MATLAB结构,则在配置参数对话框,设置未指定的初始化检测来
简化
.如果有必要,Simulink金宝app将转换初始值,以确保类型、复杂性和尺寸与相应的块参数值一致。如果指定的值或表达式无效,则在更新模型时出现错误消息。此外,Sim金宝appulink执行初始值的范围检查。当信号的初始值超出其指定的最小值和最大值和数据类型的范围时,软件会提醒您。
经典初始化模式:在这种模式下,表示以下信号和状态的信号对象的初始值设置如果未定义(指定为
[]
):有条件执行的子系统和Merge块的输出信号
阻塞状态
简化初始化方式:在这种模式下,与下列块相关联的信号对象的初始值将被忽略。取而代之的是相应块的初始值。
外港有条件执行的子系统块
合并块
- 单位
-
表示该信号值的物理单位(例如,英寸)。要指定一个单元,请开始在文本框中键入。当您键入时,参数将显示潜在的匹配单元。有关更多信息,请参见Simulink模型中的单元规范金宝app.
- 存储类
-
此信号的存储类。有关更多信息,请参见对单个信号、状态和参数数据元素应用存储类(金宝appSimulink Coder)和向数据元素应用内置和自定义存储类(嵌入式编码)。
如果您在模型工作区中创建信号对象,您必须将对象存储类设置为
汽车
. - 别名
-
此信号的备用名称。金宝appSimulink忽略此设置。此属性用于代码生成。
- 对齐
-
数据对齐边界,以字节数指定。为该信号分配的数据的起始内存地址将是的倍数对齐设置。默认值为
-1
,它指定代码生成器应该根据使用情况确定最佳对齐方式。否则,指定一个2的幂且不超过128的正整数。此字段用于金宝app仿真软件编码器™软件看到代码替换的数据对齐(嵌入式编码)。金宝appSimulink软件忽略此设置。 - 描述
-
该信号的描述。此字段用于记录此信号。此属性由Simulink报表生成器使用并用于代码生成。金宝app
如果你有嵌入式编码器®许可证,您可以在生成的代码中添加信号描述作为变量声明的注释。
为除。以外的信号对象指定存储类
汽车
.在代码生成>评论在“模型配置参数”对话框中,选择模型配置参数金宝appSimulink数据对象描述.有关更多信息,请参见金宝appSimulink数据对象描述(金宝app仿真软件编码器)。