积分器
集成信号
- 库:
金宝appSimulink /常用块
金宝appSimulink / Continuous
描述
的积分器Block输出其输入信号对时间的积分值。
金宝app®将积分器Block是一个动态系统,只有一个状态。块体动力学由式给出:
地点:
u是块输入。
y是块输出。
x是块状态。
x0的初始条件是x.
虽然这些方程在连续时间内定义了精确的关系,但Simulink使用数值逼近方法以有限精度对它们进行评估。金宝app金宝appSimulink可以使用几种不同的数值积分方法来计算块的输出,每种方法在特定应用中都具有优势。使用解算器面板中的“配置参数”对话框(参见解算器窗格中)以选择最适合您的应用程序的技术。
的输出积分器块在当前时间步长,使用当前输入值和前一个时间步长的状态值。为了支金宝app持这个计算模型积分器块在当前时间步保存其输出,供求解器用于计算下一个时间步的输出。该块还为求解器提供初始条件,用于在模拟开始时计算块的初始状态。初始条件的默认值为0。使用块参数对话框为初始条件指定另一个值,或在块上创建一个初始值输入端口。
使用参数对话框:
定义积分的上下限
创建一个输入,根据输入的变化将块的输出(状态)重置为其初始值
创建一个可选的状态输出,以便块的输出值可以触发块重置
使用离散时间积分器块来创建一个纯粹的离散系统。
定义初始条件
您可以将初始条件定义为块对话框的参数,也可以从外部信号输入初始条件:
要将初始条件定义为块参数,请指定初始条件源参数,
内部
输入值初始条件字段。若要从外部源提供初始条件,请指定初始条件源参数,
外部
.在块输入下出现一个额外的输入端口。请注意
如果积分器限制其输出(参见积分的极限),初始条件必须落在积分器的饱和极限内。如果初始条件超出块饱和限制,则块显示错误消息。
积分的极限
若要防止输出超出可指定的级别,请选择限制输出复选框,并在适当的参数字段中输入限制。这个动作导致块作为一个有限的积分器。当输出达到极限时,积分动作关闭,以防止积分上发条。在模拟过程中,您可以更改限制,但不能更改输出是否受限。该块确定输出如下:
当积分小于等于饱和下限,则输出保存在饱和下限.
当积分在饱和下限和饱和上限,输出就是积分。
当积分大于等于饱和上限,则输出保存在饱和上限.
若要生成指示状态何时被限制的信号,请选择显示饱和端口复选框。饱和端口出现在块输出端口下面。
信号有三个值之一:
1表示正在应用上限。
0表示积分不受限制。
-1表示应用下限限制。
当选择此复选框时,该块有三个过零点:一个是进入饱和上限检测,一个是进入饱和下限检测,一个是离开饱和检测。
请注意
为积分器有限块,默认情况下,限制输出被选中时,饱和上限设为1
,饱和下限设为0
.
缠绕循环态
一些物理现象在本质上是循环的、周期的或旋转的。表现出旋转运动和振荡的物体或机械就是这种现象的例子。
在Simulink中对这些现象进行建模包括对周期或循环信金宝app号的变化率进行积分以获得运动状态。
然而,这种方法的缺点是,在很长的模拟时间跨度内,表示周期或循环信号的状态积分到很大的值。此外,由于角度减小,计算这些信号的正弦或余弦值需要越来越多的时间。较大的信号值也会对求解器的性能和精度产生负面影响。
克服这个缺点的一种方法是将角度状态重置为0
当它达到2π(或者当它达到π时达到-π,为了数值对称)。这种方法提高了正弦和余弦计算的精度,减少了减角时间。但它也需要过零检测,并引入求解器重置,这会减慢变步长求解器的模拟速度,特别是在大型模型中。
为了消除在包装点的解算器重置,Integrator块支持可以通过检查启用的包装状态金宝app包装状态在块参数对话框中。当你启用包装状态时,块图标将更改,以指示该块具有包装状态。
金宝appSimulink允许由被包装状态的上下限参数限定的包装状态。确定包裹状态的算法为:
地点:
xl是包装状态的较低值。
xu是包装状态的上限值。
y是输出。
对包装状金宝app态的支持提供了这些优势。
它消除了模型接近大角度和大状态值时的模拟不稳定性。
它减少了仿真过程中求解器重置的次数,消除了对过零检测的需要,从而缩短了仿真时间。
它消除了大角度值,加快了角态三角函数的计算速度。
它提高了求解器的精度和性能,并实现了无限的模拟时间。
复位状态
块可以根据外部信号将其状态重置为指定的初始条件。要使块重置其状态,请选择其中一个外部复位选择。触发端口出现在块的输入端口下方,并指示触发类型。
选择
不断上升的
当复位信号从负值或零值上升到正值时,复位状态。选择
下降
当复位信号从正数降为零或负值时,复位状态。选择
要么
当复位信号从零变为非零值、从非零值变为零或改变符号时,复位状态。选择
水平
当复位信号在当前时间步长为非零或在前一时间步长由非零变为当前时间步长为零时,复位状态。选择
保持水平
当当前时间步长复位信号非零时,复位状态。
复位端口有直接馈通。如果区块输出直接或通过一系列直接反馈的区块反馈到该端口,则会产生一个代数循环(参见代数循环概念).使用Integrator块的状态端口来反馈块的输出,而不创建代数循环。
请注意
符合汽车工业软件可靠性协会(MISRA)的要求®)软件标准,您的模型必须使用布尔信号来驱动Integrator模块的外部复位端口。
关于国家港口
选择显示状态端口复选框会导致一个额外的输出端口,即状态端口,出现在Integrator块的顶部。
状态端口的输出与块的标准输出端口的输出相同,除了以下情况。如果块在当前时间步骤中被重置,则状态端口的输出是在块未被重置时在块的标准输出中出现的值。状态端口的输出在时间步中比Integrator块的输出端口的输出出现得更早。使用状态端口可以避免在这些建模场景中创建代数循环:
自复位积分器(参见创建自复位积分器)
将状态从一个启用的子系统传递到另一个启用的子系统(参见在启用的子系统之间切换状态)
请注意
在更新模型时,Simulink检查状态端口是否金宝app适用于这两种场景之一。如果没有,则出现错误消息。此外,您不能在以加速器模式执行的引用模型中记录该端口的输出。如果为端口启用了日志记录,则在引用模型执行期间,Simulink会生成“金宝app未找到信号”警告。
创建自复位积分器
Integrator块的状态端口可帮助您在创建基于其输出值重置自身的积分器时避免代数循环。例如,考虑下面的模型。
该模型试图通过将积分器的输出(从1中减去)输入积分器的复位端口来创建一个自复位积分器。然而,该模型创建了一个代数循环。为了计算积分器块的输出,Simulink软件需要知道块的复位信号的值,反之亦然。金宝app因为这两个值是相互依赖的,所以Simulink软件无法确定其中任何一个。金宝app因此,如果您尝试模拟或更新此模型,将出现错误消息。
以下模型使用积分器的状态端口来避免代数循环。
在这个版本中,复位信号的值取决于状态端口的值。状态端口的值在当前时间步长中比积分器块的输出端口的值更早可用。因此,Simulink金宝app可以在计算块的输出之前确定块是否需要重置,从而避免了代数循环。
在启用的子系统之间切换状态
状态端口帮助您在两个启用的子系统之间传递状态时避免代数循环。例如,考虑下面的模型。
已启用的子系统A和B包含以下模块:
子系统的一个 | 子系统B |
---|---|
|
|
在这个模型中,一个恒定的输入信号驱动两个使能的子系统来集成这个信号。脉冲发生器产生使能信号,使执行在两个子系统之间交替进行。每个子系统的启用端口被设置为重置,这将导致子系统在激活时重置其集成器。重置积分器将导致积分器读取其初始条件端口的值。每一分系统中积分器的初始条件端口连接到另一分系统中积分器的输出端口。
这种连接的目的是在两个子系统之间交替执行时,支持输入信号的持续集成。然而,这个连接创建了一个代数循环。为了计算A的输出,Simulink需要知道B的输出,反之金宝app亦然。因为输出是相互依赖的,所以Simulink无法计算输出值。金宝app因此,如果您尝试模拟或更新此模型,将出现错误消息。
以下版本相同的模型使用积分器状态端口,以避免在传递状态时创建代数循环。
已启用的子系统A和B包含以下模块:
子系统的一个 | 子系统B |
---|---|
|
|
在该模型中,A中积分器的初始条件取决于B中积分器状态端口的值,反之亦然。在仿真时间步中,状态端口的值比积分器输出端口的值更新得更早。因此,在不知道另一个积金宝app分器的最终输出值的情况下,Simulink可以计算任意一个积分器的初始条件。有关使用状态端口在有条件执行的子系统之间切换状态的另一个示例,请参阅sldemo_clutch
模型。
指定块输出的绝对容差
默认情况下,Simul金宝appink软件使用配置参数对话框中指定的绝对容差值(参见变步解算器的容错性)计算积分器块的输出。如果此值不能提供足够的错误控制,请在绝对的宽容字段中的“积分器块”对话框。您指定的值用于计算所有块输出。
选择所有选项
当您选择所有选项时,块图标看起来像这样。
港口
积分器块接受并输出类型的信号双
在其数据端口上。外部复位端口接受类型的信号双
或布尔
.
输入
输出
参数
模型的例子
块特征
数据类型 |
|
直接引线 |
|
多维信号 |
|
适应信号 |
|
讨论二阶导数过零检测 |
|