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