主要内容

离散时间积分器

对信号进行离散积分或累积

  • 库:
  • 金宝appSimulink /常用块

    金宝appSimulink / Discrete

    HDL编码器/离散

    HDL编码器/ HDL浮点运算

  • 离散时间积分器块

描述

使用离散时间积分器块代替积分器块来创建一个纯离散模型。使用离散时间积分器块,您可以:

  • 在块对话框或作为块的输入定义初始条件

  • 定义输入增益(K)值

  • 输出块状态

  • 定义积分的上限和下限

  • 使用附加的复位输入重置状态

输出方程

与第一个时间步骤,块状态N = 0的初始输出y(0) = IC或者初始状态x(0) = IC,视乎初始条件设置参数值。

对于给定的步骤N > 0模拟时间t (n),仿金宝app真软件®更新输出y (n)如下:

  • 正向欧拉法:

    y(n) = y(n-1) + K*[t(n) - t(n-1)]*u(n-1)
  • 逆向欧拉法:

    y(n) = y(n-1) + K*[t(n) - t(n-1)]*u(n)
  • 梯形方法:

    y(n) = y(n-1) + K*[t(n)-t(n-1)]*[u(n)+u(n-1)]/2

金宝appSimulink根据块采样时间自动选择这些输出方程的状态空间实现,该时间可以显式或触发。当使用显式采样时间时,t (n) - t (n - 1)减少到采样时间T对所有N > 0

积分积累法

该块可以使用前向欧拉、后向欧拉或梯形方法对信号进行积分或累积。假设u是输入,y是输出,和x是状态。对于给定的步骤n, 金宝appSimulink更新y (n)而且x (n + 1).在积分模式下,T块采样时间(deltaT在触发采样时间的情况下)。在积累模式下,T = 1.块采样时间决定何时计算输出,而不是输出值。K是增益值。值剪辑根据上限或下限。

正向欧拉法

前向欧拉方法(默认),也称为前向矩形,或左近似

软件近似1 / s作为T / (z 1).步骤中块输出的表达式n是:

x(n+1) = x(n) + K*T*u(n) y(n) = x(n)

该块使用以下步骤来计算输出:

步骤0:y (0) = IC(如果必要夹)x (1) = y (0) + K * T * u(0)步骤1:y (1) = x (1) (2) = x (1) + K * T * u (1) n步:y (n) = x (n) (n + 1) = x (n) + K * T * u (n)(如果必要夹)

这种方式下,输入端口1没有直通。

后向欧拉法

后向欧拉法,又称后向矩形法或右近似法

软件近似1 / s作为T * z / (z 1).步骤中块输出的结果表达式n

y(n) = y(n-1) + K*T*u(n)。

X (n) = y((n)-1).该块使用这些步骤来计算输出。

  • 如果参数初始条件设置设置为输出汽车对于触发子系统和函数调用子系统:

    步骤0:y(0) = IC(必要时剪切)x(1) = y(0)
  • 如果参数初始条件设置设置为汽车对于非触发子系统:

    步骤0:x (0) = IC(必要时剪)x (1) = y (0) (0) = x + K * T * u(0)步骤1:x y (1) = (1) + K * T * u (1) x (2) = y (1) n步:y (n) = x (n) + K * T * u (n) x (n + 1) = y (n)

使用该方法,输入端口1直接馈通。

梯形法

对于这种方法,软件近似1 / s作为T / 2 * (z + 1) / (z 1)

T是固定的(等于采样周期),计算输出的表达式为:

x (n) = y (n - 1) + K * T u (n - 1) / 2 * y (n) = x (n) + K * T / 2 * u (n)
  • 如果参数初始条件设置设置为输出汽车对于触发子系统和函数调用子系统:

    第0步:y(0) = IC(必要时剪掉)x(1) = y(0) + K*T/2*u(0)
  • 如果参数初始条件设置设置为汽车对于非触发子系统:

    步骤0:x (0) = IC(必要时剪)y (0) = x (0) + K * T / 2 * x (1) = y u (0) (0) + K * T / 2 * u(0)步骤1:x y (1) = (1) + K * T / 2 * u (1) x (2) = y (1) + K * T / 2 * u (1) n步:y (n) = x (n) + K * T / 2 * u (n) x (n + 1) = y (n) + K * T / 2 * u (n)

在这里,x (n + 1)是对下一次产出的最佳估计。在这一点上,它和国家不一样x (n)不等于y (n)

使用该方法,输入端口1直接馈通。

当T是变量时

T是一个变量(例如,从触发次数中获得),块使用这些步骤计算输出。

  • 如果参数初始条件设置设置为输出汽车对于触发子系统和函数调用子系统:

    步骤0:y(0) = IC(必要时剪切)x(1) = y(0)
  • 如果参数初始条件设置设置为汽车对于非触发子系统:

    步骤0:x (0) = IC(必要时剪)x (1) = y (0) (0) = x + K * T / 2 * u(0)步骤1:x y (1) = (1) + T / 2 * (u (1) + u (0)) x (2) = y (1) n步:y (n) = x (n) + T / 2 * (u (n) + u (n - 1)) x (n + 1) = y (n)

定义初始条件

你可以将初始条件定义为块对话框的参数,也可以从外部信号输入:

  • 若要将初始条件定义为块参数,请设置初始条件源参数内部中输入该值初始条件文本框中。

  • 若要从外部源提供初始条件,请设置初始条件源参数外部.块上出现了一个额外的输入端口。

何时使用状态端口

使用状态端口而不是输出端口:

  • 当块的输出通过复位端口或初始条件端口反馈到块时,导致代数循环。有关示例,请参见sldemo_bounce_two_integrators模型。

  • 当您希望将状态从一个有条件执行的子系统传递到另一个子系统时,这可能会导致时间问题。有关示例,请参见建立离合器锁定模型

您可以通过通过状态端口而不是输出端口传递状态来解决这些问题。金宝appSimulink在与输出稍有不同的时间生成状态,这可以保护您的模型免受这些问题的困扰。要输出块状态,请选择显示状态端口复选框。状态端口出现在块的顶部。

求积分的极限

要将输出保持在某些级别内,请选择限制输出复选框,并在相应的文本框中输入限制。这样做会导致块作为一个有限的积分器。当输出达到极限时,积分动作关闭,以防止积分上卷。在模拟过程中,您可以更改限制,但不能更改输出是否受限。该表显示了块如何决定输出。

积分 输出
小于或等于饱和下限输入是负的 饱和下限
之间的饱和下限饱和上限 积分
大于或等于饱和上限输入是正的 饱和上限

若要生成指示状态何时被限制的信号,请选择显示饱和端口复选框。一个新的饱和端口出现在块输出端口下面。

饱和信号有三个值之一:

  • 1表示正在应用上限。

  • 0表示积分不受限制。

  • -1表示应用下限。

重置状态

该块根据外部信号将其状态重置为指定的初始条件。要使块重置其状态,请选择之一外部复位参数选项。出现一个重置端口,指示重置触发器类型。

复位口直通。如果块输出反馈到这个端口,直接或通过一系列具有直接反馈的块,则会产生一个代数循环。要解决此循环,请将块状态端口的输出送入重置端口。要访问块状态,请选择显示状态端口复选框。

重置触发器类型

外部复位参数使您可以确定触发复位的复位信号的属性。触发选项包括:

  • 不断上升的—复位信号有上升沿时复位。例如,该图显示了上升重置触发器对后向欧拉积分的影响。

  • 下降—复位信号有下降沿时复位。例如,该图显示了下落复位触发器对后向欧拉积分的影响。

  • 要么—复位信号上升或下降时复位。例如,下图显示了重置触发器对后向欧拉积分的影响。

  • 水平-复位并保持输出到初始条件,而复位信号是非零。例如,该图显示了关卡重置触发器对后向欧拉积分的影响。

  • 抽样水平—复位信号非零时,将输出复位到初始状态。例如,该图显示了抽样关卡重置触发器对后向欧拉积分的影响。

    抽样水平重置选项需要更少的计算,使其比水平重置选项。

    请注意

    离散时间积分器Block,所有的触发检测都是基于阳性信号。例如,从-1到0变化的信号不被认为是上升边,但从0到1变化的信号被认为是上升边。

简化初始化模式下的行为

设置时启用简化初始化模式未指定初始化检测简化在“配置参数”对话框中。如果使用简化的初始化模式,则离散时间积分器块不同于经典的初始化模式。新的初始化行为更加健壮,在以下情况下提供了更加一致的行为:

  • 在代数循环中

  • 启用和禁用

  • 当比较使用触发采样时间与显式采样时间的结果时,其中块以与显式采样时间相同的速率触发

简化的初始化模式使转换更容易连续时间积分器离散时间积分器块,因为初始条件对两个块具有相同的含义。

有关经典和简化初始化模式的更多信息,请参见未指定初始化检测

“初始条件设置”设置为“输出”的“启用和禁用行为”

当您使用简化初始化模式时初始条件设置设置为输出对于触发子系统和函数调用子系统,块的启用和禁用行为简化如下。

在禁用时间td

y (td) = y(td1)

启用时间te

  • 如果父子系统控制端口有启用时的状态设置为重置

    y (te) = c。
  • 如果父子系统控制端口有启用时的状态设置为举行

    y (te) = y(td).

    下图显示了这种情况。

迭代器子系统

使用简化初始化模式时,不能放置离散时间积分器块中的一个迭代器子系统块。

在简化的初始化模式下,Iterator子系统不维护运行时间。因此,如果离散时间积分器块,它需要消耗时间,被放置在迭代器子系统块中,Simulink报告一个错误。金宝app

在函数调用子系统内部的已启用子系统中的行为

假设您有一个函数调用子系统,其中包含一个启用的子系统,该子系统包含一个离散时间积分器块。以下行为适用。

积分器的方法 示例函数调用触发端口的时间类型 的价值δT函数调用子系统在启用后第一次执行 行为原因

向前欧拉

触发

T -起动

当函数调用子系统第一次执行时,积分器算法使用tstart与前面的模拟时间一样。

倒欧拉和梯形

触发

T - T前

当函数调用子系统第一次执行时,积分器算法使用tprevious与前面的模拟时间一样。

前向欧拉,后向欧拉,梯形

周期

函数调用生成器的采样时间

在周期模式下离散时间积分器块使用函数调用生成器的采样时间δT

港口

输入

全部展开

输入信号,指定为标量、向量或矩阵

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|不动点

状态的初始条件,被指定为有限标量、矢量或矩阵。

依赖关系

若要启用此端口,请设置初始条件源外部

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|不动点

输出

全部展开

输入信号的离散时间积分或累积,指定为标量、矢量或矩阵。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|不动点

表示状态何时被限制的信号,指定为标量、向量或矩阵。该信号有三个值之一:

  • 1表示正在应用上限。

  • 0表示积分不受限制。

  • -1指示正在应用下限。

依赖关系

要启用此端口,请选择显示饱和端口复选框。

数据类型:||int8

块状态,输出为标量、向量或矩阵。默认情况下,块将此端口添加到块图标的顶部。在以下情况下使用状态端口:

  • 块的输出通过复位端口或初始条件端口反馈到块中,导致一个代数循环。有关示例,请参见sldemo_bounce_two_integrators模型。

  • 您希望将状态从一个有条件执行的子系统传递到另一个子系统,这可能会导致时间问题。有关示例,请参见sldemo_clutch模型。

有关更多信息,请参见何时使用状态端口

依赖关系

要启用此端口,请选择显示状态端口复选框。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|不动点

参数

全部展开

主要

指定积分或累积方法。看到输出方程而且积分积累法获取更多信息。

编程使用

块参数:IntegratorMethod
类型:特征向量
价值观:“积分:正向欧拉”|“积分:逆向欧拉”|集成:梯形的|“积累:正向欧拉”|“积累:逆向欧拉”|“积累:梯形”
默认值:“积分:正向欧拉”

指定与积分器输入相乘的标量、向量或矩阵。增益的每个元素都必须是正实数。

  • 指定一个不是1.0(默认值)的值在语义上等同于将增益块连接到积分器的输入。

  • 有效条目包括:

    • 双(1.0)

    • 单(1.0)

    • [1.1 2.2 3.3 4.4]

    • [1.1 - 2.2;3.3 - 4.4)

提示

使用此参数指定输入增益可以消除生成代码中的乘法操作。但是,这个参数必须是不可调的才能实现这个好处。如果要调优输入增益,请将该参数设置为1.0,并使用外部增益块指定输入增益。

编程使用

块参数:gainval
类型:特征向量
价值观:标量|向量
默认值:“1.0”

选择将状态重置为初始条件的触发事件类型:

  • 没有一个—不要将状态重置为初始状态。

  • 不断上升的—复位信号有上升沿时复位。

  • 下降—复位信号有下降沿时复位。

  • 要么—复位信号上升或下降时复位。

  • 水平-复位并保持输出到初始条件,而复位信号是非零。

  • 抽样水平—复位信号非零时,将输出复位到初始状态。

有关更多信息,请参见重置状态而且重置触发器类型

编程使用

块参数:ExternalReset
类型:特征向量
价值观:“没有”|“上升”|“下降”|“不是”|“水平”|“抽样水平”
默认值:“没有”

初始条件选择来源:

  • 内部得到状态的初始条件初始条件块参数。

  • 外部从外部块中获取状态的初始条件集成电路输入端口。

依赖关系

选择内部使初始条件参数。

选择外部禁用初始条件参数,并启用集成电路输入端口。

编程使用

块参数:InitialConditionSource
类型:字符向量,字符串
价值观:“内部”|“外部”
默认值:“内部”

指定块状态的初始条件。最小值和最大值由输出最小而且输出最大块的参数。

提示

金宝appSimulink软件不允许此块的初始条件为

依赖关系

若要启用此参数,请设置初始条件源内部

编程使用

块参数:InitialCondition
类型:字符向量,字符串
价值观:标量|向量|矩阵
默认值:' 0 '

属性的值选择是否应用初始条件参数设置为块状态或块输出。初始条件也是重置值。

  • 汽车- Block选择应用的位置初始条件参数。

    • 如果块在一个未触发的子系统中积分器的方法设置为积分方法,设置初始条件:

      x(0) = IC

      重置:

      x(n) = IC

    • 如果块在触发子系统或函数调用子系统中积分器的方法是否设置了积分方法,设置初始条件如输出被选中。

  • 输出-当块位于触发子系统或函数调用子系统时,使用此选项积分器的方法设置为积分方法。

    设置初始条件:

    y(0) = IC

    重置:

    y(n) = IC

  • 兼容性—该选项提供向后兼容性。不能选择此选项离散时间积分器block,但是你可金宝app以选择它离散时间积分器库中的块。使用此选项可保持与R2014a之前创建的Simulink模型的兼容性。金宝app

    在R2014a之前,选项汽车被称为仅限州(最有效).的选项输出被称为状态和输出.带有选项的块的行为兼容性如下所示。

    • 如果未指定初始化检测设置为经典,初始条件设置参数的行为为汽车

    • 如果未指定初始化检测设置为简化,初始条件设置参数的行为为输出

请注意

这个参数被命名为使用初始条件作为初始值和重置值在R2金宝app014a之前的Simulink中。

编程使用

块参数:InitialConditionSetting
类型:特征向量
值:“汽车”|“输出”|“兼容性”
默认值:“汽车”

输入步骤之间的离散时间间隔。

缺省情况下,该块使用离散采样时间1.若要设置不同的采样时间,请输入另一个离散值,例如0.1。

看到指定采样时间获取更多信息。

提示

  • 不要指定采样时间为0。此值指定了离散时间积分器块不支持的连续采样时间。金宝app

  • 没有指定采样时间因为这些值不是离散的。

  • 如果指定-1从上游块继承采样时间,请验证上游块使用离散采样时间。例如,离散时间积分器块不能继承采样时间为0。

编程使用

块参数:SampleTime
类型:特征向量
价值观:标量|向量
默认值:' 1 '

将块的输出限制在饱和下限而且饱和上限参数。

  • 选中此复选框将块的输出限制为饱和下限而且饱和上限参数。

  • 清除此复选框不会限制块的输出值。

依赖关系

选择此参数将启用饱和下限而且饱和上限参数。

编程使用

块参数:LimitOutput
类型:特征向量
价值观:“关闭”|“上”
默认值:“关闭”

将积分的上限指定为标量、向量或矩阵。的值之间指定一个值输出最小而且输出最大参数值。

依赖关系

要启用此参数,请选择限制输出复选框。

编程使用

块参数:UpperSaturationLimit
类型:字符向量,字符串
价值观:标量|向量|矩阵
默认值:“正”

将积分的下限指定为标量、向量或矩阵。的值之间指定一个值输出最小而且输出最大参数值。

依赖关系

要启用此参数,请选择限制输出复选框。

编程使用

块参数:LowerSaturationLimit
类型:字符向量,字符串
价值观:标量|向量|矩阵
默认值:“负”

选中此复选框可向块添加饱和输出端口。清除此复选框时,该块没有饱和输出端口。

依赖关系

选择此参数将启用饱和输出端口。

编程使用

块参数:ShowSaturationPort
类型:字符向量,字符串
价值观:“关闭”|“上”
默认值:“关闭”

选中此复选框可向块添加状态输出端口。清除此复选框时,该块没有状态输出端口。

依赖关系

选择此参数将启用状态输出端口。

编程使用

块参数:ShowStatePort
类型:字符向量,字符串
价值观:“关闭”|“上”
默认值:“关闭”

选择此复选框可使Simulink线性化命令将此块视为不可重置金宝app的,并且对其输出没有限制,无论块重置和输出限制选项设置如何。

提示

忽略限制和重置允许您围绕一个工作点线性化模型。这一点可能导致积分器复位或饱和。

编程使用

块参数:IgnoreLimit
类型:特征向量
价值观:“关闭”|“上”
默认值:“关闭”

信号的属性

Simulink检查的输出范围的较低值。金宝app

金宝appSimulink使用最小值来执行:

请注意

输出最小不饱和或剪辑实际输出信号。使用饱和块来代替。

编程使用

块参数OutMin
类型:字符向量
“[]”|标量
默认的“[]”

Simulink检查的输出范围的最大值。金宝app

金宝appSimulink使用最大值执行:

请注意

输出最大不饱和或剪辑实际输出信号。使用饱和块来代替。

编程使用

块参数OutMax
类型:字符向量
“[]”|标量
默认的“[]”

选择输出的数据类型。类型可以被继承、直接指定或表示为数据类型对象,例如金宝app仿真软件。NumericType.有关更多信息,请参见控制信号的数据类型

当你选择一个继承的选项时,块的行为如下:

  • 继承:通过内部规则继承Si金宝appmulink选择一种数据类型来平衡数值精度、性能和生成的代码大小,同时考虑嵌入式目标硬件的属性。如果更改嵌入式目标设置,则内部规则选择的数据类型可能会更改。例如,如果块乘以类型的输入int8通过增加int16而且ASIC / FPGA指定为目标硬件类型时,输出数据类型为sfix24.如果未指定(假设32位通用)即通用的32位微处理器,指定为目标硬件,则输出数据类型为int32.如果目标微处理器提供的字长都不能满足输出范围,Simulink软件将在诊断查看器中显示错误。金宝app

    软件并不总是能够同时优化代码效率和数值精度。如果内部规则不能满足您对数值精度或性能的特定需求,请使用以下选项之一:

    • 显式地指定输出数据类型。

    • 使用简单的选择Inherit:与input相同

    • 显式地指定默认数据类型,例如fixdt(1, 32岁,16)然后使用定点工具为你的模型提出数据类型。有关更多信息,请参见fxptdlg(定点设计师)

    • 要指定自己的继承规则,请使用继承:通过反向传播继承然后使用数据类型传播块。如何使用此块的示例可在Signal Attributes库中找到数据类型传播示例块。

  • 继承:通过反向传播继承—使用驱动块的数据类型。

编程使用

块参数OutDataTypeStr
类型:字符向量
继承:通过内部规则继承|“继承:通过反向传播继承”|“双”|“单一”|“int8”|“uint8”|“int16”|“uint16”|“int32”|“uint32”|“int64”|“uint64”|“fixdt(16)”|“fixdt(0) 1, 16日”|“fixdt(1, 16日2 ^ 0,0)”|'<数据类型表达式>'
默认的“继承:通过内部规则继承”

选择此参数可防止定点工具覆盖输出您在块上指定的数据类型。有关更多信息,请参见使用锁输出数据类型设置(定点设计师)

编程使用

块参数:LockScale
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

选择其中一种舍入模式。

天花板

将正数和负数四舍五入到正无穷。等价于MATLAB®装天花板函数。

收敛

将数字舍入到最接近的可表示值。如果出现平局,则舍入到最接近的偶数。相当于定点设计器™收敛函数。

地板上

将正数和负数四舍五入到负无穷。等价于MATLAB地板上函数。

最近的

将数字舍入到最接近的可表示值。如果出现平局,则四舍五入为正无穷。相当于定点设计器最近的函数。

将数字舍入到最接近的可表示值。如果出现平局,则将正数四舍五入到正无穷,将负数四舍五入到负无穷。相当于定点设计器函数。

简单的

自动在朝向下限的四舍五入和朝向零的四舍五入之间进行选择,以生成尽可能高效的四舍五入代码。

把数字舍入到零。等价于MATLAB修复函数。

编程使用

块参数RndMeth
类型:字符向量
“天花板”|“收敛”|“地板”|“最近的”|“圆”|“简单”|“零”
默认的“地板”

另请参阅

有关更多信息,请参见舍入(定点设计师)

指定溢出是饱和还是包裹。

  • -溢出包装为数据类型可以表示的适当值。

    例如,数字130不适合有符号的8位整数,它被换行为-126。

  • —溢出饱和到数据类型可以表示的最小值或最大值。

    例如,与有符号8位整数相关的溢出可以饱和到-128或127。

提示

  • 当您的模型有可能溢出,并且您想要在生成的代码中显式的饱和保护时,请考虑选择此复选框。

  • 当您希望优化生成代码的效率时,请考虑取消此复选框。

    清除此复选框还有助于避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围错误

  • 选中此复选框后,饱和将应用于块上的每个内部操作,而不仅仅是输出或结果。

  • 通常,代码生成过程可以检测不可能出现溢出的情况。在这种情况下,代码生成器不会产生饱和代码。

编程使用

块参数:SaturateOnIntegerOverflow
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

状态属性

使用此参数为块状态分配唯一的名称。默认为' '.当此字段为空时,不分配名称。使用此参数时,请记住以下注意事项:

  • 有效标识符以字母或下划线字符开头,后面跟着字母数字或下划线字符。

  • 状态名称仅应用于所选块。

有关更多信息,请参见模型界面元素的C代码生成配置(金宝app仿真软件编码器)

依赖关系

的值时国家的名字并点击应用,则启用状态名必须解析为Simulink信号对象金宝app参数。

编程使用

参数:StateName
类型:特征向量
价值观:唯一的名称
默认值:

指定是否需要将状态名解析为Simulink信号对象。金宝app如果选中,则如果指定的状态名称与Simulink信号对象的名称不匹配,则软件将在运行时生成错误。金宝app

依赖

当您给出参数时启用国家的名字值并设置模型配置参数信号的分辨率到一个值以外没有一个

选中此复选框将禁用代码生成存储类

编程使用

块参数StateMustResolveToSignalObject
类型:字符向量
“关闭”|“上”
默认的“关闭”

块特征

数据类型

|不动点|整数|

直接引线

是的

多维信号

没有

适应信号

没有

讨论二阶导数过零检测

没有

扩展功能

PLC代码生成
使用Simulink®PLC Coder™生成结构化文本代码。金宝app

定点转换
使用定点设计器设计和模拟定点系统。

另请参阅

主题

R2006a之前介绍