万博1manbetx®允许您指定信号和离散状态的初始值,即信号和离散状态的值在开始时间模拟的。您可以使用信号对象来指定模型中任何信号或离散状态的初始值。此外,对于某些区块,例如:外港,数据存储内存,或内存,可以使用信号对象或块参数,也可以同时使用两者来指定块状态或输出的初始值。在这种情况下,Simulink万博1manbetx检查以确保信号对象指定的值和参数是一致的。有关初始化总线信号的信息,请参见指定总线元素的初始条件
在为信号或离散状态初始化指定信号对象时,或将变量指定为块参数的值时,Simulink将指定的名称解析为适当的对象或变量,如万博1manbetx符号解析.
给定的信号在任何情况下最多只能与一个信号对象相关联。信号可以多次引用该对象,但每次引用都必须解析为完全相同的对象。具有完全相同属性的不同信号对象将不能满足唯一性的要求。如果模型将多个信号对象与任何信号关联,则会发生编译时错误。有关更多信息,请参见万博1manbetx仿真软件。信号
和合并块。
对于具有初始值或初始条件参数的块,您可以使用该参数来初始化信号。例如,下面的块参数对话框将初始条件为0的单位延迟块的信号初始化。
要访问这些块参数,请选择以下技术之一:
有关访问块参数(包括控制信号和状态初始化的参数)的技术的更多信息,请参见设置属性和参数.
可以使用具有其他存储类的信号对象“汽车”
或者,当您将相应数据类别的默认存储类设置为默认的
(默认设置)在代码映射编辑器,“模型默认”
初始化:
带有初始条件参数的离散状态
模型中的信号,除了总线信号和输出恒定值的块
要指定初始值,请使用Model Explorer或MATLAB®执行以下命令:
创建信号对象。
在模型资源管理器工具栏上,选择添加>万博1manbetx仿真软件的信号.信号对象以默认名称出现在基本工作区中。将对象重命名为S1
.或者,在命令提示符处使用此命令:
S1 = 万博1manbetxSimulink.Signal;
信号对象的名称必须与该对象正在初始化的信号的名称相同。虽然不是必需的,但可以考虑设置信号名称必须解析为Simulink信号对象万博1manbetx选项中的“信号属性”。此设置使MATLAB工作区中的信号对象与模型中出现的信号一致。
考虑使用数据对象向导创建信号对象。“数据对象向导”将在模型中搜索不存在信号对象的信号。然后,您可以通过一个操作选择性地为搜索结果中列出的多个信号创建信号对象。有关数据对象向导的详细信息,请参见使用数据对象向导为模型创建数据对象.
将信号对象存储类设置为汽车
或模型的默认
.在模型资源管理器内容窗格中,选择信号对象。在“对话框”窗格中,设置存储类来ExportedGlobal
.或者,在命令提示符处使用此命令:
S1.CoderInfo。StorageClass =“ExportedGlobal”;
设置初始值。可以指定计算为数值标量值或数组的MATLAB表达式(包括工作区变量的名称)。
Simu万博1manbetxlink引擎转换初始值,使类型、复杂性和维度与相应的块参数值一致。如果指定的值或表达式无效,则在更新模型时将出现错误消息。
在“模型资源管理器对话框”窗格中,设置初始值来0.5
.或者,在命令提示符处使用此命令:
S1。InitialValue =“0.5”
如果你也可以使用block参数来设置信号或状态的初始值,你应该将参数设置为空([]
)或与信号对象的初始值相同的值。如果将参数值设置为空,Simulink将使用信号对象指定的值来初始化信号或状态。万博1manbetx如果将参数设置为任何其他值,Simulink将参数值与信号对象值进行比较,如果不一致则显示万博1manbetx错误。
下面的示例显示了一个信号对象,该对象指定启用的子系统的初始输出。
信号年代
初始化为4.5。为避免一致性错误,启用的子系统的初始值外港Block必须为[]
或4.5。
如果需要信号对象及其初始值设置在Simulink会话之间保持,请参见万博1manbetx创建持久数据对象.
一些初始值设置可能取决于初始化模式。有关更多信息,请参见未指定初始化检测.
经典初始化模式:在这种模式下,表示以下信号和状态的信号对象的初始值设置如果未定义(指定为[]
):
有条件执行的子系统和Merge块的输出信号
阻塞状态
简化初始化模式:在这种模式下,与以下块的输出相关联的信号对象的初始值将被忽略。取而代之的是相应块的初始值。
有条件执行子系统的输出信号
合并模块
万博1manbetxSimulink允许您使用信号对象作为参数对象的替代品(请参阅万博1manbetx仿真软件。参数
)来调优块输出的初始值和可通过可调参数指定的状态。若要使用信号对象调优初始值,请创建与信号或状态同名的信号对象,并将信号对象初始值设置为包含MATLAB工作区中定义的变量的表达式。然后,您可以在模拟期间通过更改相应的工作空间变量的值来优化初始值。
例如,假设您想调优a的初始值内存块状态命名M1
.为此,您可以创建一个名为M1
,将其存储类设置为“ExportedGlobal”
,将初始值设置为K
(M1。InitialValue =“K”
),K
为MATLAB工作空间中的一个工作空间变量,并设置内存块[]
避免一致性错误。你可以改变初始值内存的值,在模拟过程中随时改变块状态K
在MATLAB命令行,并更新框图(例如,通过输入Ctrl + D).
下面的模型和表格显示了可以初始化的不同类型的信号和离散状态,以及每种信号和状态产生的模拟行为。
信号或离散状态 | 描述 | 行为 |
---|---|---|
S1 | 根输入端口 |
|
X1 | 单位延迟block -具有初始条件的离散状态的块 |
|
X2 | 数据存储内存块 |
|
S2 | 已启用的子系统的输出 |
|
S3 | 持续的信号 |
|