二阶积分器
二阶积分器
类型: SecondOrderIntegrator
图书馆中的路径:
|
说明
程序块 二阶积分器 执行二阶积分。该程序块的行为由以下方程描述:
其中 是输入信号。因此,该模块代表了一个具有两个连续状态的动态系统: 和 。
这两个状态有一个数学关系,即 是 的导数。为了在模拟过程中实现这种关系,Engee 对程序块的参数和行为施加了各种限制。 |
这些方程描述了连续时间内输出对输入的精确依赖关系。数值近似方法用于以有限的精度对其进行估计。在 Engee 中,有几种类型的求解器,它们采用不同的数值积分方法来计算块输出。根据具体问题的不同,每种求解器都有自己的优势。
所选求解器利用当前输入值和上一时间步的状态值计算当前时间步的块 二阶积分器 的输出。
初始值 和 可以在程序块参数对话框中设置。
国家限制
在对二阶系统建模时,可能需要对模块的状态进行限制。例如,活塞在气缸内的运动受牛顿第二定律支配,活塞位置受 约束。在程序块 * 二阶积分器 * 中,可以对状态 和 进行独立约束。需要遵循的一条重要规则是,上限必须严格大于相应的下限。
仅限制 x
您可以通过选择 极限 x 复选框并在相应参数中输入限制条件来限制 的状态。
程序块定义的状态值如下:
-
当 小于或等于下限时, 的值保持在下限, 设置为零。
-
当 介于下限和上限之间时,两种状态都对应于给定的二阶 ODU。
-
当 大于或等于其上限时, 的值保持在其上限, 设置为零。
当 达到上限时,您可以使用新值重新初始化 。
仅限制 dx/dt
您可以通过选择复选框 极限 dx/dt 并在相应参数中输入限制条件来限制 的状态。
如果只限制 , 的状态,程序块会定义 的值如下:
-
当 小于或等于下限时, 的值将保持在下限。
-
当 介于下限和上限之间时,两种状态都对应于给定的二阶 ODU。
-
当 大于或等于其上限时, 的值将保持在其上限。
-
当状态 保持在上限或下限时, 的值由一阶初始值任务决定:
,
,
其中
-
- 是限值 (上限或下限);
-
- 达到该上限的时间;
- 在 时刻的状态值。
两种状态的极限
当您限制两种状态时,Engee 通过限制 允许的上下限值来保持状态之间的数学一致性。这种限制对于满足以下限制是必要的:
-
当 在限制范围内时, 的值必须为零。
-
要使 超过上限, 的值必须严格为负。
-
要超出下限, 的值必须严格为正。
在这种情况下, 的上限必须严格为正,而 的下限必须严格为负。
当两个状态都有界限时,程序块按以下方式确定状态:
-
每当 达到极限时,所产生的行为与本节所述相同。 仅限制 x.
-
每当 达到其极限之一时,所产生的行为包括当 保持在其极限之一时,使用一阶 ODE 计算 。在这种情况下,每当 达到其中一个极限时,它就会保持在该极限,而 则设为零。
-
每当两者同时达到各自的极限时, 的状态行为会覆盖 的行为,以保持状态的一致性。
限制两种状态时,可以选择在 状态达到饱和时重新初始化 。如果重新初始化的值超出了指定的限制 ,那么 将被重新初始化为最接近的有效值,并计算出一组一致的初始条件。
港口
输入
#
u
—
输入信号
标量 | 向量 | 矩阵
Details
以标量、向量或矩阵形式输入积分器的信号 u。
数据类型 |
|
复数支持 |
无 |
参数
参数
#
初始条件 x —
初始状态值 x
Scalar / array of real numbers
Details
x 区块的初始状态值。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
极限 x —
状态限值 x
Logical
Details
将程序块输出限制在参数 下限 x 和 上限 x 之间的数值。默认情况下,该复选框未被选中。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
上限 x —
状态值上限 x
Scalar / array of real numbers
Details
指定状态值的上限 x 。
x 的状态上限必须严格大于下限。
依赖关系
要使用此参数,请选择复选框 极限 x 。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
下限 x —
状态值下限 x
Scalar / array of real numbers
Details
指定状态值的下限值 x 。
状态 x 的下限必须严格小于上限。
依赖关系
要使用此参数,请选择复选框 极限 x 。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
缠绕 x —
接通转换开关 x
Logical
Details
在参数值 包络上限 x 和 Wrapped Lower 值 x 之间启用携带状态 x 。启用携带状态后,无需进行过零检测,减少了求解器重置次数,提高了求解器性能和精度,并在模拟旋转和循环状态轨迹时增加了仿真时间。
如果将 包络上限 x 指定为 "inf",将 Wrapped Lower 值 x 指定为 "inf",则不会发生携带状态。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
包络上限 x —
转运上限值 x
Scalar / array of real numbers
Details
指定 x 的上限值。 x 的上限值必须大于下限值。
依赖关系
要使用该参数,请选择复选框 缠绕 x 。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
包络下限值 x —
转让价值较低 x
Scalar / array of real numbers
Details
指定 x 的下限值。 x 的下限值必须小于上限值。
依赖关系
要使用该参数,请选择复选框 缠绕 x 。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
参数
#
初始条件 dx/dt —
初始状态值 dx/dt
Scalar / array of real numbers
Details
初始状态值 dx/dt .
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
极限 dx/dt —
状态限值 dx/dt
Logical
Details
将程序块输出限制在参数 下限值 dx/dt 和 上限 dx/dt 之间的数值。默认情况下,该复选框未被选中。
如果状态限制设置为 x ,参数 下限值 dx/dt 和 上限 dx/dt 定义的区间必须为零。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
上限 dx/dt —
状态值上限 dx/dt
Scalar / array of real numbers
Details
指定状态值的上限 dx/dt 。
依赖关系
如果限制 x ,则该参数必须为严格意义上的正值。
要使用该参数,请勾选 极限 dx/dt 。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
下限值 dx/dt —
条件下限 dx/dt
Scalar / array of real numbers
Details
指定状态下限 dx/dt 。
依赖关系
如果限制 x ,则该参数必须为严格意义上的负值。
要使用该参数,请选择复选框 极限 dx/dt 。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |