连续时间或离散时间PID控制器
金宝appSimulink / Continuous
的PID控制器块实现了一个PID控制器(PID, PI, PD, P,或I)。该块与离散PID控制器用时间域参数设置为连续时间
.
块输出是输入信号的加权和,输入信号的积分,以及输入信号的导数。权重是比例、积分和导数增益参数。一阶极点过滤了导数作用。
该块支持多种控制器类金宝app型和结构。块中的可配置选项包括:
控制器类型(PID, PI, PD,仅P,或仅I) -请参见控制器参数。
控制器形式(并行或理想)-请参见形式参数。
时域(连续或离散)-请参阅时间域参数。
初始条件和重置触发器-请参见源而且外部复位参数。
输出饱和限制和内置的防卷绕机制-请参阅限制输出参数。
用于无颠簸控制转移和多回路控制的信号跟踪-请参阅开启跟踪模式参数。
当您更改这些选项时,块的内部结构将通过激活不同的变体子系统而发生变化。(见不同的子系统)。要检查块及其变体子系统的内部结构,右键单击块并选择面具>面具下的样子.
在一个通用的实现中PID控制器Block在反馈回路的前馈路径上运行。
块的输入通常是一个误差信号,它是参考信号和系统输出之间的差值。有关允许设定值加权的双输入块,请参见PID控制器(2DOF).
PID控制器系数可手动或自动调节。自动调优要求金宝app®控制设计™软件有关自动调优的更多信息,请参见选择调优方法参数。
Port_1(u)
-错误信号输入参考信号与被控制系统输出之间的差值,如图所示。
当误差信号是矢量时,块分别作用于每个信号,对PID系数进行矢量化,并产生相同维度的矢量输出信号。你可以指定PID系数和其他一些参数作为与输入信号相同维度的向量。这样做相当于为输入信号中的每个条目指定一个单独的PID控制器。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
P
-比例增益比例增益,由块外部的源提供。外部增益输入是有用的,例如,当您想要将不同的PID参数化映射到块的PID增益时。也可以使用外部增益输入来实现增益定时PID控制。在增益调度控制中,您通过逻辑或模型中的其他计算确定PID系数,并将它们馈送到块。
若要启用此端口,请设置控制器参数来外部
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
我
-积分增益从块外部的源提供的积分增益。外部增益输入是有用的,例如,当您想要将不同的PID参数化映射到块的PID增益时。也可以使用外部增益输入来实现增益定时PID控制。在增益调度控制中,您通过逻辑或模型中的其他计算确定PID系数,并将它们馈送到块。
当你在外部提供增益时,积分增益的时间变化也被集成。出现这种结果是因为PID增益在块内实现的方式。详细信息请参见控制器参数参数。
若要启用此端口,请设置控制器参数来外部
,并设置控制器到具有整型动作的控制器类型。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
D
-导数增益从块外部的源提供的导数增益。外部增益输入是有用的,例如,当您想要将不同的PID参数化映射到块的PID增益时。也可以使用外部增益输入来实现增益定时PID控制。在增益调度控制中,您通过逻辑或模型中的其他计算确定PID系数,并将它们馈送到块。
当你在外部提供增益时,导数增益的时间变化也被微分。出现这种结果是因为PID增益在块内实现的方式。详细信息请参见控制器参数参数。
若要启用此端口,请设置控制器参数来外部
,并设置控制器到具有导数动作的控制器类型。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
N
-过滤系数导数滤波系数,由块外部的源提供。外部系数输入是有用的,例如,当您想要将不同的PID参数化映射到块的PID增益时。也可以使用外部输入实现增益定时PID控制。在增益调度控制中,您通过逻辑或模型中的其他计算确定PID系数,并将它们馈送到块。
若要启用此端口,请设置控制器参数来外部
,并设置控制器到具有过滤导数的控制器类型。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
重置
-外部复位触发器触发将积分器和滤波器重置到初始条件。的值外部复位参数确定是否在上升信号、下降信号或电平信号上发生重置。端口图标表示所选的触发器类型。例如,下图显示了一个连续时间PID块外部复位设置为不断上升的
.
触发器发生时,块将积分器和滤波器重置为函数指定的初始条件初始条件而且初始条件参数或我0而且D0港口。
请注意
符合汽车工业软件可靠性协会(MISRA)的要求®)软件标准,您的模型必须使用布尔信号来驱动的外部复位端口PID控制器块。
若要启用此端口,请设置外部复位除了没有一个
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
|布尔
我0
-积分器初始条件积分器初始条件,由外部源提供给块。
若要启用此端口,请设置初始条件来外部
,并设置控制器到具有整型动作的控制器类型。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
D0
-滤波器初始条件导数滤波器的初始条件,由块外部的源提供。
若要启用此端口,请设置初始条件来外部
,并设置控制器到具有导数动作的控制器类型。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
向上
—输出饱和上限块输出的上限,由块外部的源提供。如果比例、积分和衍生动作的加权和超过该端口提供的值,则块输出保持在该值。
若要启用此端口,请选择限制输出并设置输出饱和度源来外部
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
罗
-输出饱和下限块输出的下限,由块外部的源提供。如果比例、积分和衍生动作的加权和低于该端口提供的值,则块输出将保持在该值。
若要启用此端口,请选择限制输出并设置输出饱和度源来外部
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
TR
-跟踪信号控制器输出跟踪的信号。当信号跟踪是主动的,跟踪信号和块输出之间的差被反馈到积分器输入。在两个控制器之间切换的系统中,信号跟踪对于实现无扰动控制转换非常有用。在多回路控制系统中,它也可用于防止块上卷。有关更多信息,请参见开启跟踪模式参数。
要启用此端口,请选择开启跟踪模式参数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
T贸易工业部
-离散积分时间离散积分器时间,作为一个标量提供给块。您可以使用自己的离散时间积分器采样时间值,该值定义块在Simulink或外部硬件上运行的速率。金宝app当块在条件执行的子系统中使用时,离散时间积分器时间的值应该匹配外部中断的平均采样率。
换句话说,您可以指定Ts
对于下面的任何积分器方法,使其值与外部中断的平均采样率匹配。离散时间下,控制器传递函数的导数项为:
在哪里α(z)取决于你用这个参数指定的积分器方法。
向前欧拉
向后欧拉
梯形
有关离散时间积分的更多信息,请参见离散时间积分器块引用页。有关有条件执行子系统的更多信息,请参见有条件执行的子系统概述.
若要启用此端口,请设置时间域来离散时间
并选择PID控制器在一个有条件执行的子系统中选择。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
Port_1(y)
-控制器输出控制器的输出,一般基于输入信号的和、输入信号的积分和输入信号的导数,通过比例、积分和导数增益参数进行加权。一阶极点过滤了导数作用。哪些项出现在控制器信号中取决于您为控制器参数。显示当前设置的基准控制器传递函数补偿器的公式部分的块参数和掩码。属性指定的饱和度限制等其他参数将修改块输出上限而且下限饱和参数。
当任意输入为矢量信号时,控制器输出为矢量信号。在这种情况下,块的作用是N独立PID控制器,其中N是输入向量中信号的个数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
控制器
—控制器类型PID
(默认)|π
|PD
|P
|我
指定哪个比例、积分和导数项在控制器中。
PID
比例、积分和导数作用。
π
比例积分作用。
PD
仅作比例和导数作用。
P
仅限比例动作。
我
只是积分作用。
提示
界面中显示当前设置的控制器传递函数补偿器的公式部分的块参数和掩码。
块参数:控制器 |
类型:字符串,字符向量 |
价值观:“PID” ,“π” ,“PD” ,“P” ,“我” |
默认值:“PID” |
形式
—控制器结构平行
(默认)|理想的
指定控制器结构是并行的还是理想的。
平行
控制器输出是比例、积分和导数动作的和,由独立加权P,我,D,分别。例如,对于连续时间并行形式的PID控制器,传递函数为:
对于离散并行形式控制器,传递函数为:
在哪里积分器的方法而且过滤方法参数确定α(z),β(z),分别。
理想的
比例增益P作用于所有动作的总和。例如,对于连续时间理想形式PID控制器,传递函数为:
对于离散理想型控制器,传递函数为:
在哪里积分器的方法而且过滤方法参数确定一个(z),b(z),分别。
提示
界面中显示当前设置的控制器传递函数补偿器的公式部分的块参数和掩码。
块参数:控制器 |
类型:字符串,字符向量 |
价值观:“平行” ,“理想” |
默认值:“平行” |
时间域
—指定连续时间或离散时间控制器连续时间
(默认)|离散时间
当你选择离散时间
,建议您为该块指定一个显式采样时间。看到采样时间(继承的为-1)参数。选择离散时间
还启用积分器的方法,过滤方法参数。
当PID控制器块位于具有同步状态控制的模型中(请参阅国家控制(高密度脂蛋白编码器)块),则不能选择连续时间
.
请注意
的PID控制器而且离散PID控制器除了该参数的默认值外,块是相同的。
块参数:TimeDomain |
类型:字符串,字符向量 |
价值观:“连续时间” ,“离散” |
默认值:“连续时间” |
PID控制器在一个有条件执行的子系统中
-开启离散积分器时间端口从
(默认)|在
对于离散PID控制器,使离散积分器端口使用自己的离散积分器采样时间值。为确保适当的集成,请使用T贸易工业部
端口为精确的离散时间积分提供一个标量值Δt。
若要启用该参数,请设置时间域来离散时间
.
块参数:UseExternalTs |
类型:字符串,字符向量 |
价值观:“上” ,“关闭” |
默认值:“关闭” |
采样时间(继承的为-1)
-样本之间的离散间隔通过输入正标量值来指定采样时间,例如0.1。默认的离散采样时间为-1意味着该块从上游块继承其采样时间。但是,建议您显式地设置控制器采样时间,特别是当您希望上游块的采样时间发生变化时。控制器系数P、I、D和N的影响取决于采样时间。因此,对于给定的一组系数值,改变采样时间会改变控制器的性能。
看到指定采样时间获取更多信息。
要实现一个连续时间控制器,请设置时间域来连续时间
.
提示
如果您希望使用外部指定的或可变的采样时间运行块,请将该参数设置为-1,并将块放在a中触发子系统.然后,在所需的采样时间触发子系统。
若要启用该参数,请设置时间域来离散时间
.
块参数:SampleTime |
类型:标量 |
价值观:-1 ,正标量 |
默认值:-1 |
积分器的方法
离散控制器中积分的计算方法向前欧拉
(默认)|向后欧拉
|梯形
在离散时间下,控制器传递函数的积分项为我α(z),α(z)取决于你用这个参数指定的积分器方法。
向前欧拉
正矩形(左)近似,
这种方法最适合于小采样次数,其中奈奎斯特极限与控制器的带宽相比较大。对于更大的采样次数,向前欧拉
方法可能导致不稳定,即使离散一个连续时间稳定的系统。
向后欧拉
后向矩形(右)近似,
的一个优势向后欧拉
该方法对一个稳定的连续时间系统进行离散化,得到的结果总是稳定的。
梯形
双线性近似,
的一个优势梯形
该方法对一个稳定的连续时间系统进行离散化,得到的结果总是稳定的。在所有可用的集成方法中,梯形
方法使离散系统的频域特性与相应的连续时间系统的频域特性最匹配。
提示
中显示当前设置的控制器公式补偿器的公式部分的块参数和掩码。
请注意
为BackwardEuler
或梯形
方法,你不能为块生成HDL代码,如果:
限制输出被选中,并且Anti-Windup方法除了没有一个
.
开启跟踪模式被选中。
有关离散时间积分的更多信息,请参见离散时间积分器块引用页。
若要启用该参数,请设置时间域来离散时间
并设置控制器到具有整型动作的控制器类型。
块参数:IntegratorMethod |
类型:字符串,字符向量 |
价值观:“向前欧拉” ,“向后欧拉” ,“梯形” |
默认值:“向前欧拉” |
过滤方法
离散时间控制器中导数的计算方法向前欧拉
(默认)|向后欧拉
|梯形
离散时间下,控制器传递函数的导数项为:
在哪里α(z)取决于你用这个参数指定的筛选方法。
向前欧拉
正矩形(左)近似,
这种方法最适合于小采样次数,其中奈奎斯特极限与控制器的带宽相比较大。对于更大的采样次数,向前欧拉
方法可能导致不稳定,即使离散一个连续时间稳定的系统。
向后欧拉
后向矩形(右)近似,
的一个优势向后欧拉
该方法对一个稳定的连续时间系统进行离散化,得到的结果总是稳定的。
梯形
双线性近似,
的一个优势梯形
该方法对一个稳定的连续时间系统进行离散化,得到的结果总是稳定的。在所有可用的集成方法中,梯形
方法使离散系统的频域特性与相应的连续时间系统的频域特性最匹配。
提示
中显示当前设置的控制器公式补偿器的公式部分的块参数和掩码。
有关离散时间积分的更多信息,请参见离散时间积分器块引用页。
若要启用该参数,请设置时间域来离散时间
并使使用过滤导数.
块参数:FilterMethod |
类型:字符串,字符向量 |
价值观:“向前欧拉” ,“向后欧拉” ,“梯形” |
默认值:“向前欧拉” |
源
-控制器增益和滤波器系数的来源启用参数的外部输入允许您在块外部计算PID增益和滤波系数,并将它们作为信号输入提供给块。
内部
使用块参数指定控制器增益和滤波器系数P,我,D,N.
外部
使用块输入在外部指定PID增益和滤波系数。对于当前控制器类型所需的每个参数,块上出现一个额外的输入端口。
外部增益输入是有用的,例如,当您想要将不同的PID参数化映射到块的PID增益时。也可以使用外部增益输入来实现增益定时PID控制。在增益计划控制中,您通过逻辑或模型中的其他计算确定PID增益,并将其馈送到块。
当外部提供增益时,积分增益值和导数增益值的时间变化分别被积分和微分。出现这种结果是因为在连续时间和离散时间中,增益都是在积分或微分之前应用于信号的。例如,对于具有外部输入的连续时间PID控制器,积分器项的实现如下图所示。
在块内,输入信号u乘以外部提供的积分器增益,我,在积分之前。这个实现产生:
因此,积分器增益包含在积分中。同样,在块的导数项中,在微分之前乘以导数增益,从而得到导数增益D被微分。
块参数:ControllerParametersSource |
类型:字符串,字符向量 |
价值观:“内部” ,“外部” |
默认值:“内部” |
比例(P)
-比例增益为比例增益指定一个有限的实际增益值。当控制器形式是:
平行
-比例作用独立于积分和导数作用。例如,对于连续时间并行PID控制器,传递函数为:
对于离散并行形式控制器,传递函数为:
在哪里积分器的方法而且过滤方法参数确定α(z),β(z),分别。
理想的
-比例增益乘以积分和导数项。例如,对于一个连续时间的理想PID控制器,传递函数为:
对于离散理想型控制器,传递函数为:
在哪里积分器的方法而且过滤方法参数确定α(z),β(z),分别。
可调:是的
若要启用此参数,请在主要选项卡,设置控制器参数源来内部
并设置控制器来PID
,PD
,π
,或P
.
块参数:P |
类型:标量、矢量 |
默认值:1 |
积分(I)
-积分增益为积分增益指定一个有限的实际增益值。
可调:是的
若要启用此参数,请在主要选项卡,设置控制器参数源来内部
,并设置控制器到具有整型作用的类型。
块参数:我 |
类型:标量、矢量 |
默认值:1 |
微分(D)
-导数增益为导数增益指定一个有限的实际增益值。
可调:是的
若要启用此参数,请在主要选项卡,设置控制器参数源来内部
,并设置控制器来PID
或PD
.
块参数:D |
类型:标量、矢量 |
默认值:0 |
使用过滤导数
-对导数项应用过滤器在
(默认)|从
仅对于离散时间PID控制器,清除此选项以将滤波导数替换为未滤波的离散时间微分器。当你这样做时,控制器传递函数的导数项变成:
对于连续时间PID控制器,导数项总是经过滤波的。
若要启用该参数,请设置时间域来离散时间
,并设置控制器一种具有导数作用的类型。
块参数:UseFilter |
类型:字符串,字符向量 |
价值观:“上” ,“关闭” |
默认值:“上” |
过滤系数(N)
-导数滤波系数为滤波器系数指定一个有限的实际增益值。滤波器系数决定了滤波器在块的导数作用中的极点位置。滤极的位置取决于时间域参数。
当时间域是连续时间
,极点位置为s = -N
.
当时间域是离散时间
时,极点位置取决于过滤方法参数。
过滤方法 | 滤极位置 |
---|---|
向前欧拉 |
|
向后欧拉 |
|
梯形 |
该块不支持金宝appN =无穷
(理想的未过滤导数)。当时间域是离散时间
,你可以清除使用过滤导数删除导数过滤器。
可调:是的
若要启用此参数,请在主要选项卡,设置控制器参数源来内部
并设置控制器来PID
或PD
.
块参数:N |
类型:标量、矢量 |
默认值:One hundred. |
选择调优方法
-自动调整控制器系数的工具基于传递函数(PID调谐器App)
(默认)|基于频率响应的
如果你有金宝appSimulink控制设计软件,可以自动调优PID系数。为此,使用该参数选择调优工具,然后单击调优.
基于传递函数(PID调谐器App)
使用PID调谐器,它允许您在检查相关系统响应以验证性能的同时交互式地调整PID系数。默认情况下,PID调谐器与您的植物模型线性化工作。对于不能线性化的模型,可以根据模拟或测量响应数据估计的植物模型调整PID系数。有关更多信息,请参见Simulink中基于模型的PID整定介绍金宝app(金宝appSimulink控制设计).
基于频率响应的
使用基于频率响应的PID调谐器,根据仿真得到的频响估计数据对PID控制器系数进行整定。这种调优方法对于不可线性化或线性化为零的植物特别有用。有关更多信息,请参见根据工厂频率响应数据设计PID控制器(金宝appSimulink控制设计).
这两种调优方法都采用单循环控制配置。金宝appSimulink控制设计软件包括其他适合更复杂配置的调优方法。有关调优a的其他方法的信息PID控制器块,看选择一种控制设计方法(金宝appSimulink控制设计).
启用过零检测
-检测零交叉复位和进入或离开饱和状态在
(默认)|从
过零检测可以准确定位信号不连续,而无需诉诸于可能导致长时间模拟时间的过小时间步长。如果您选择限制输出或激活外部复位在PID控制器块中,激活过零检测可以减少模拟中的计算时间。选择此参数激活过零检测:
初始状态复位
当进入上饱和度或低饱和度状态时
当离开一个较高或较低的饱和状态
有关过零检测的详细信息,请参见讨论二阶导数过零检测.
块参数:ZeroCross |
类型:字符串,字符向量 |
价值观:“上” ,“关闭” |
默认值:“上” |
源
-积分器和导数初始条件的来源内部
(默认)|外部
金宝appSimulink在模拟开始时或在指定的触发事件时使用初始条件初始化积分器和导数-滤波器(或未过滤的导数)输出。(见外部复位参数)。这些初始条件决定了初始块输出。使用此参数选择如何向块提供初始条件值。
内部
属性指定初始条件初始条件而且初始条件参数。如果使用过滤导数未选中时,使用微分电路参数指定未过滤微分器的初始条件,而不是过滤器初始条件。
外部
使用块输入在外部指定初始条件。额外的输入端口我o而且Do出现在方块上。如果使用过滤导数未选中时,为未过滤的微分器提供初始条件Do而不是过滤器的初始条件。
块参数:InitialConditionSource |
类型:字符串,字符向量 |
价值观:“内部” ,“外部” |
默认值:“内部” |
积分器
-积分器初始条件金宝appSimulink使用积分器初始条件在模拟开始时或在指定的触发事件时初始化积分器(参见外部复位).积分器的初始条件和滤波器的初始条件决定了滤波器的初始输出PID控制器块。
积分器的初始条件不能为南
或正
.
要使用此参数,请在初始化选项卡,设置源来内部
,并设置控制器到具有整型作用的类型。
块参数:InitialConditionForIntegrator |
类型:标量、矢量 |
默认值:0 |
过滤器
-滤波器初始条件金宝appSimulink使用筛选器初始条件在模拟开始时或在指定的触发事件时初始化导数筛选器(请参阅外部复位).积分器的初始条件和滤波器的初始条件决定了滤波器的初始输出PID控制器块。
过滤器初始条件不能为南
或正
.
要使用此参数,请在初始化选项卡,设置源来内部
,并使用具有导数滤波器的控制器。
块参数:InitialConditionForFilter |
类型:标量、矢量 |
默认值:0 |
微分电路
-未过滤导数的初始条件当您使用未经过滤的导数时,Simulink将使用此参数在模拟开始时或在指定的触金宝app发事件时初始化微分器(请参阅外部复位).积分器初始条件和导数初始条件决定了函数的初始输出PID控制器块。
导数初始条件不能为南
或正
.
若要使用该参数,请设置时间域来离散时间
,清除使用过滤导数复选框,并在初始化选项卡,设置源来内部
.
块参数:DifferentiatorICPrevScaledInput |
类型:标量、矢量 |
默认值:0 |
初始条件设置
-初始条件应用的位置国家(效率最高)
(默认)|输出
使用此参数指定是否应用初始条件而且初始条件参数设置为相应的块状态或输出。您只能在命令行更改此参数,使用set_param
设置InitialConditionSetting
块参数。
国家(效率最高)
在所有情况下使用此选项,除非块位于触发子系统或函数调用子系统,并且启用了简化初始化模式。
输出
当块位于触发子系统或函数调用子系统中并且启用了简化初始化模式时,请使用此选项。
有关的更多信息初始条件设置参数,请参见离散时间积分器块。
此参数只能通过编程方式访问。
块参数:InitialConditionSetting |
类型:字符串,字符向量 |
价值观:“状态” ,“输出” |
默认值:“状态” |
外部复位
-重置积分器和滤波器值的触发器没有一个
(默认)|不断上升的
|下降
|要么
|水平
指定触发条件,使块将积分器和过滤器重置为初始条件。(如果使用过滤导数未选中时,触发器将积分器和微分器重置为初始条件。)选择除。以外的任何选项没有一个
使重置块上用于外部复位信号的端口。
没有一个
积分器和滤波器(或微分器)输出在模拟开始时设置为初始条件,并且在模拟期间不重置。
不断上升的
当复位信号有上升沿时,复位输出。
下降
当复位信号有下降沿时,复位输出。
要么
当复位信号上升或下降时,复位输出。
水平
复位输出时,复位信号:
在当前时间步长非零
从前一个时间步的非零变为当前时间步的零
当复位信号非零时,该选项将输出保持在初始条件。
若要启用该参数,请设置控制器到具有导数或积分作用的类型。
块参数:ExternalReset |
类型:字符串,字符向量 |
价值观:“没有” ,“上升” ,“下降” ,“不是” ,“水平” |
默认值:“没有” |
线性化时忽略重置
—强制线性化忽略复位从
(默认)|在
选择强制Simulink和金宝app金宝appSimulink控制设计方法中指定的任何重置机制外部复位参数。忽略重置状态允许您围绕操作点线性化模型,即使该操作点导致块重置。
块参数:IgnoreLimit |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
开启跟踪模式
-激活信号跟踪从
(默认)|在
信号跟踪让块输出跟随跟踪信号,你提供在TR端口。当信号跟踪活动时,跟踪信号与块输出之间的差值以增益反馈到积分器输入Kt
,由跟踪增益(Kt)参数。信号跟踪在多回路控制结构中有多种应用,包括无扰动控制传递和避免绕组。
在两个控制器之间切换的系统中,使用信号跟踪来实现无扰动控制转移。假设你想在一个PID控制器和另一个控制器之间转移控制。为此,将控制器输出连接到TR输入如下图所示。
有关更多信息,请参见无颠簸控制转移.
在多回路控制方法中,使用信号跟踪来防止块绕组,如下面的模型所示。
内环子系统包含如下图所示的块。
由于PID控制器跟踪内环输出,其输出永远不会超过饱和内环输出。详情请参见在多循环控制中防止阻塞.
若要启用该参数,请设置控制器到具有整型作用的类型。
块参数:TrackingMode |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
跟踪系数Kt
-信号跟踪反馈回路增益当你选择开启跟踪模式,信号之间的差值TR块输出以增益反馈到积分器输入Kt
.使用此参数指定反馈循环中的增益。
若要启用该参数,请选中开启跟踪模式.
块参数:Kt |
类型:标量 |
默认值:1 |
限制输出
-限制块输出到指定的饱和度值从
(默认)|在
激活此选项将限制块输出,因此您不需要单独的饱和控制器后的块。它还允许您激活块中内置的反结束机制(请参阅Anti-windup方法参数)。属性指定输出饱和度限制下限而且上限参数。您还可以在外部指定作为块输入端口的饱和限制。
块参数:LimitOutput |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
源
-输出饱和限制源使用此参数指定如何提供块输出的上饱和度和下饱和度限制。
内部
属性指定输出饱和度限制上限而且下限参数。
外部
使用块输入端口在外部指定输出饱和限制。额外的输入端口向上而且罗出现在方块上。您可以使用输入端口来实现由Simulink模型中的逻辑或其他计算确定并传递给块的上限和下限输出饱和限制。金宝app
块参数:SatLimitsSource |
类型:字符串,字符向量 |
价值观:“内部” ,“外部” |
默认值:“内部” |
上限
—块输出的饱和上限正
(默认)|标量指定块输出的上限。块输出保存在饱和上限当比例、积分和导数动作的加权和超过该值时。
若要启用该参数,请选中限制输出.
块参数:UpperSaturationLimit |
类型:标量 |
默认值:正 |
下限
—块输出的饱和度下限负
(默认)|标量指定块输出的下限。块输出保存在饱和下限当比例、积分和导数动作的加权和低于该值时。
若要启用该参数,请选中限制输出.
块参数:LowerSaturationLimit |
类型:标量 |
默认值:负 |
线性化时忽略饱和度
-强制线性化忽略输出限制从
(默认)|在
Force 金宝appSimulink和金宝appSimulink控制设计方法中指定的块输出限制上限而且下限参数。忽略输出限制允许您围绕一个工作点线性化模型,即使该工作点导致块超过输出限制。
要启用此参数,请选择限制输出参数。
块参数:LinearizeAsGain |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
Anti-windup方法
-积分器反清盘方法没有一个
(默认)|反演计算
|夹紧
当你选择限制输出并且控制器组件的加权和超过了指定的输出限制,块输出保持在指定的限制。然而,积分器输出可以继续增长(积分器清盘),增加块输出和块分量之和之间的差值。换句话说,即使输出受饱和限制,块中的内部信号也可以是无界的。如果没有防止积分器清盘的机制,可能会出现两种结果:
如果输入信号的符号永不改变,积分器继续积分,直到溢出为止。溢出值是积分器输出数据类型的最大值或最小值。
如果输入信号的符号在加权和增长超过输出限制后发生变化,则可能需要很长时间才能展开积分器并在块饱和限制内返回加权和。
无论哪种情况,控制器的性能都会受到影响。为了对抗没有反上紧机制的上紧的影响,可能需要失调控制器(例如,通过减少控制器增益),导致控制器迟钝。要避免此问题,请使用此参数激活反结束机制。
没有一个
不要使用反上紧机制。
反演计算
当块输出饱和时,通过将饱和和不饱和控制信号的差反馈给积分器来Unwind积分器。下图是连续时间控制器的反计算反馈电路。要查看控制器配置的实际反馈电路,右键单击块并选择面具>面具下的样子.
使用反算系数(Kb)参数指定反上紧反馈电路的增益。凝固通常是令人满意的Kb = I
,或对于具有导数动作的控制器,Kb =√(I*D)
.反计算对于死区时间较大的植物是有效的[1].
夹紧
当块分量之和超过输出限制且积分器输出和块输入具有相同符号时,积分停止。当块分量之和超过输出限制且积分器输出和块输入符号相反时,积分将继续进行。夹紧有时被称为条件积分。
夹紧对停机时间相对较短的植物有用,但对停机时间较大的植物会产生较差的瞬态响应[1].
要启用此参数,请选择限制输出参数。
块参数:AntiWindupMode |
类型:字符串,字符向量 |
价值观:“没有” ,“回算” ,“夹紧” |
默认值:“没有” |
反算系数(Kb)
-反上紧反馈回路的增益系数的反演计算
反缠绕方法在块输出饱和时解开积分器。它通过将饱和和不饱和控制信号之间的差反馈给积分器来实现。使用反算系数(Kb)参数指定反上紧反馈电路的增益。有关更多信息,请参见Anti-windup方法参数。
要启用此参数,请选择限制输出参数,并设置Anti-windup方法参数反演计算
.
块参数:Kb |
类型:标量 |
默认值:1 |
此选项卡中的参数主要用于使用定点设计器™生成定点代码。它们定义了在生成代码时如何存储和处理与块相关的数值量。
如果需要配置定点代码生成的数据类型,请单击开放式定点工具并使用该工具配置选项卡中的其余参数。有关使用定点工具的信息,请参见使用定点工具自动缩放数据对象(定点设计师).
使用定点工具后,如有必要,可以使用此选项卡中的参数对定点数据类型设置进行调整。对于与块相关的每个数量,您可以指定:
浮点或定点数据类型,包括数据类型是否继承自块中的上游值。
数量的最小值和最大值,它们决定了如何对数量进行定点表示。
如需帮助选择合适的值,请单击打开相应数量的数据类型助手。有关更多信息,请参见使用数据类型助手指定数据类型.
数据类型选项卡中列出的具体数量根据PID控制器块的配置方式而有所不同。一般情况下,可以为以下类型的数量配置数据类型:
产品输出——存储在块掩码下进行乘法运算的结果。例如,P产品产量存储将块输入与比例增益相乘的增益块的输出P.
参数-存储数值块参数的值,例如P,我,或D.
块输出-存储位于PID控制器块掩码下的块输出。例如,使用积分器的输出来指定名为Integrator的块的输出数据类型。该块位于积分器子系统的掩码下,用于计算控制器动作的积分器项。
累加器——存储与求和块相关的值。例如,SumI2蓄电池设置与求和块SumI2相关的累加器的数据类型。该块位于Anti-Windup子系统的Back Calculation子系统的掩码下。
一般来说,你可以通过查看PID控制器块掩码和检查它的子系统来找到与任何列出的参数相关联的块。您还可以使用Model Explorer在掩码下搜索列出的参数名,例如SumI2
.(见模型浏览器)。
匹配输入和内部数据类型
默认情况下,块中的所有数据类型都设置为继承:通过内部规则继承
.在此设置下,Simulink选择数据类金宝app型来平衡数值精度、性能和生成的代码大小,同时考虑嵌入式目标硬件的属性。
在某些情况下,块内的数据类型之间可能发生不兼容。例如,在连续时间内,掩码下的积分器块只能接受类型的信号双
.如果块输入信号是一种无法转换的类型双
,例如uint16
,类型继承的内部规则在生成代码时生成错误。
要避免此类错误,可以使用“数据类型”设置强制进行数据类型转换。例如,您可以显式地设置P产品产量,I产品输出,D产品产量来双
,确保到达连续时间积分器的信号是类型的双
.
一般来说,不建议在代码生成应用程序中连续时间地使用块。但是,如果显式地将某些值设置为与块内下行信号约束不兼容的数据类型,则在离散时间中也会发生类似的数据类型错误。在这种情况下,使用数据类型设置来确保所有数据类型都是内部兼容的。
定点操作参数整数舍入模式
-舍入模式的定点操作地板上
(默认)|天花板
|收敛
|最近的
|轮
|简单的
|零
为定点操作指定舍入模式。有关更多信息,请参见舍入(定点设计师).
块参数总是舍入到最接近的可表示值。若要控制块参数的舍入,请使用MATLAB输入表达式®将函数舍入到掩码字段。
块参数:RndMeth |
类型:特征向量 |
价值观:“天花板”|“收敛”|“地板”|“最近”|“圆”|“最简单”|“零” |
默认值:“地板” |
饱和整数溢出
-溢出动作方式从
(默认)|在
指定溢出是饱和还是包裹。
从
-溢出包装为数据类型可以表示的适当值。
例如,数字130不适合有符号的8位整数,它被换行为-126。
在
—溢出饱和到数据类型可以表示的最小值或最大值。
例如,与有符号8位整数相关的溢出可以饱和到-128或127。
提示
当您的模型有可能溢出,并且您想要在生成的代码中显式的饱和保护时,请考虑选择此复选框。
当您希望优化生成代码的效率时,请考虑取消此复选框。
清除此复选框还有助于避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围错误.
选中此复选框后,饱和将应用于块上的每个内部操作,而不仅仅是输出或结果。
通常,代码生成过程可以检测不可能出现溢出的情况。在这种情况下,代码生成器不会产生饱和代码。
块参数:SaturateOnIntegerOverflow |
类型:特征向量 |
价值观:'off' | 'on' |
默认值:“关闭” |
锁定数据类型设置,防止由定点工具更改
—防止定点工具覆盖数据类型从
(默认)|在
选择此参数可防止定点工具覆盖在此块上指定的数据类型。有关更多信息,请参见锁定输出数据类型设置(定点设计师).
块参数:LockScale |
类型:特征向量 |
价值观:'off' | 'on' |
默认值:“关闭” |
该选项卡中的参数主要用于代码生成。
州名(如“职位”)
-连续时间滤波器和积分器状态的名称''
(默认)|字符向量对于连续时间PID控制器,为与积分器或滤波器相关的状态分配一个唯一的名称。(有关离散PID控制器中的状态名称的信息,请参见国家的名字参数)。使用州名,例如:
生成的代码中对应的变量
作为模拟期间记录状态时存储名称的一部分
在线性模型中,通过对块进行线性化得到相应的状态
有效的州名以字母或下划线字符开头,后面跟着字母数字或下划线字符。
若要启用该参数,请设置时间域来连续时间
.
参数:IntegratorContinuousStateAttributes ,FilterContinuousStateAttributes |
类型:特征向量 |
默认值:'' |
国家的名字
-离散时间滤波器和积分器状态的名称为离散PID控制器分配与积分器或滤波器相关的状态的唯一名称。(有关连续时间PID控制器的状态名称的信息,请参见州名(如“职位”)参数)。
有效的州名以字母或下划线字符开头,后面跟着字母数字或下划线字符。使用州名,例如:
生成的代码中对应的变量
作为模拟期间记录状态时存储名称的一部分
在线性模型中,通过对块进行线性化得到相应的状态
有关在代码生成中使用州名的详细信息,请参见模型界面元素的C代码生成配置(金宝app仿真软件编码器).
若要启用该参数,请设置时间域来离散时间
.
参数:IntegratorStateIdentifier ,FilterStateIdentifier |
类型:字符串,字符向量 |
默认值:"" |
状态名必须解析为Simulink信号对象金宝app
-要求状态名解析为信号对象从
(默认)|在
选择此参数要求离散时间积分器或过滤器状态名称解析为Simulink信号对象。金宝app
为离散时间积分器或滤波器状态启用此参数:
集时间域来离散时间
.
为积分器或过滤器指定一个值国家的名字.
设置模型配置参数信号的分辨率到一个值以外没有一个
.
选中此复选框将禁用代码生成存储类对应的积分器或滤波器状态。
块参数:IntegratorStateMustResolveToSignalObject ,FilterStateMustResolveToSignalObject |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
代码生成存储类
-用于代码生成的存储类汽车
(默认)|ExportedGlobal
|ImportedExtern
|ImportedExternPointer
选择用于代码生成的状态存储类。如果不需要连接外部代码,请选择汽车
.
有关更多信息,请参见模型界面元素的C代码生成配置(金宝app仿真软件编码器)而且使用结构存储类将参数数据组织到结构中(嵌入式编码).
为离散时间积分器或滤波器状态启用此参数:
集时间域来离散时间
.
为积分器或过滤器指定一个值国家的名字.
设置模型配置参数信号的分辨率到一个值以外没有一个
.
块参数:IntegratorRTWStateStorageClass ,FilterRTWStateStorageClass |
类型:字符串,字符向量 |
价值观:“汽车” ,“ExportedGlobal” ,“ImportedExtern” |“ImportedExternPointer” |
默认值:“汽车” |
代码生成存储类型限定符
—存储类型限定符“常量”
|“不稳定”
|……指定存储类型限定符,例如常量
或挥发性
.
请注意
该参数将在未来的版本中删除。若要将存储类型限定符应用于数据,请使用自定义存储类和内存段。除非您使用嵌入式编码器的基于ert的代码生成目标®,自定义存储类和内存段不会影响生成的代码。
若要启用该参数,请设置代码生成存储类除了汽车
.
块参数:IntegratorRTWStateStorageTypeQualifier ,FilterRTWStateStorageTypeQualifier |
类型:字符串,字符向量 |
价值观:"" ,“常量” ,“不稳定” |
默认值:"" |
数据类型 |
|
直接引线 |
|
多维信号 |
|
适应信号 |
|
讨论二阶导数过零检测 |
|
[1] Visioli, A.,“PID控制器的改进反上卷方案,”控制理论与应用,第150卷第1期,2003年1月
对于连续时间PID控制器(时间域设置为连续时间
):
考虑使用模型离散化将连续时间块映射到支持代码生成的离散等等物。金宝app中,从模型中访问模型离散化程序应用程序选项卡,在控制系统,点击模型离散化.
不建议用于生产代码。
对于离散PID控制器(时间域设置为离散时间
):
取决于放置在触发子系统层次结构中的绝对时间。
生成的代码依赖于memcpy
或memset
函数(string.h
)在某些条件下。
HDL Coder™提供了影响HDL实现和合成逻辑的额外配置选项。
这个块有一个单一的、默认的HDL体系结构。
ConstrainedOutputPipeline | 通过在设计中移动现有延迟来放置在输出端的寄存器数量。分布式管道不会重新分发这些寄存器。默认为 |
InputPipeline | 要在生成的代码中插入的输入管道阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认为 |
OutputPipeline | 要在生成的代码中插入的输出管道阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认为 |
HDL代码生成仅支持离散时间PID控制器(金宝app时间域设置为离散时间
).
如果积分器的方法设置为BackwardEuler
或梯形
,在以下任何一种情况下,您都不能为该块生成HDL代码:
限制输出被选中,并且Anti-Windup方法除了没有一个
.
开启跟踪模式被选中。
生成HDL代码:
使用离散PID控制器。在时间域节中,指定离散时间.
离开使用过滤导数选中复选框。
内部指定滤波器和积分器的初始条件。在初始化选项卡中,指定源作为内部
.
您可以为HDL代码生成在内部和外部指定过滤器系数。在主要选项卡,源,你可以使用内部
或外部
.
集外部复位来没有一个
.
使用双输入时,不要设置Anti-windup方法来夹紧
.
仅对离散时间PID控制器支持定点代码生成(金宝app时间域设置为离散时间
).
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。