Matlab simulink PID Controller PID控制器.docx
《Matlab simulink PID Controller PID控制器.docx》由会员分享,可在线阅读,更多相关《Matlab simulink PID Controller PID控制器.docx(32页珍藏版)》请在冰点文库上搜索。
![Matlab simulink PID Controller PID控制器.docx](https://file1.bingdoc.com/fileroot1/2023-7/17/26a5f7e2-42ad-464b-bd2d-c41c5b38644a/26a5f7e2-42ad-464b-bd2d-c41c5b38644a1.gif)
MatlabsimulinkPIDControllerPID控制器
MatlabsimulinkPIDControllerPID控制器
模拟连续或离散时间的PID控制器
库
连续,离散
说明
在Simulink模型实现一个连续或离散时间控制器(PID,PI,PD,P,I)。
PID控制器的增益是可调的手动或自动方式。
自动调整需要Simulink控制设计软件(PID调谐器或SISO设计工具)。
PIDControllerblock块的输出是输入的加权总和的信号,输入信号的积分,和输入信号的导数。
权重比例,积分和微分增益参数。
一阶极点滤波器的微分动作。
PIDController模块的配置选项包括:
▪控制器的类型(PID,PI,PD,P,或我)
▪控制器形式(并行或理想)
▪时域(连续或离散)
▪初始条件和复位触发
▪输出饱和的限制,并内置抗饱和机制
▪无波动地控制传输的信号跟踪和多回路控制
在一个公共执行方式中,PID控制器块的前馈路径中的反馈环路工作:
块的输入端通常是一个误差信号,这是一个参考信号和所述系统的输出之间的差异。
对于两个输入的块,允许给定值的加权,请参阅)块。
您可以生成代码来实现你的控制器可以使用任何Simulink的数据类型,包括定点数据类型。
(代码生成需要Simulink编码器软件定点的实现需要定点工具箱)。
对于一些应用程序的PIDController块的例子来说明,请参阅下面的仿真演示:
:
▪
▪
数据类型支持
PIDController模块接受Simulink软件支持的任何数值数据类型,包括定点数据类型的实际信号。
Simulink文档了解更多信息,请参见
参数
下表总结了PIDController模块参数,访问模块参数对话框。
课题
参数
Choosecontrollerformandtype.
选择控制器形式和类型。
▪在Main选项卡
▪
Choosediscreteorcontinuoustime.
选择离散或连续的时间。
▪
▪
Chooseanintegrationmethod(discretetime).选择积分方法(离散时间)。
▪
▪
Setandtunecontrollergains.
控制器的增益设置和调整
▪在Main选项卡
▪在Main选项卡
▪在Main选项卡
▪在Main选项卡
Setintegratorandfilterinitialconditions.设置积分器和过滤器的初始条件。
▪在Main选项卡
▪在Main选项卡
▪在Main选项卡
▪在Main选项卡
▪在Main选项卡
Limitblockoutput.
限位块输出。
▪在PIDAdvanced选项卡中
▪在PIDAdvanced选项卡中
▪在PIDAdvanced选项卡中
▪在PIDAdvanced选项卡中
Configureanti-windupmechanism(whenyoulimitblockoutput).配置抗饱和机制(当你在限制块输出)。
▪在PIDAdvanced选项卡中
▪在PIDAdvanced选项卡中
Enablesignaltracking启用信号跟踪。
.
▪在PIDAdvanced选项卡中
▪在PIDAdvanced选项卡中
Configuredatatypes.
配置数据类型。
▪在DataType选项卡
▪在DataType选项
▪在DataType选项
▪在DataType选项
▪在DataType选项
▪在DataType选项
▪在DataType选项
▪在DataType选项
▪在DataType选项
▪在DataType选项
Configureblockforcodegeneration
配置块生成代码。
.
▪在StateAttributes选项卡
▪在StateAttributes选项卡
▪在StateAttributes选项卡
▪在StateAttributes选项卡
Controllerform
选择控制器的形式。
设置
Parallel(默认)
选择的控制器的形式,其中输出是总和的比例,积分和微分作用,加权根据独立的增益参数P,I和D的滤波器系数,N设置微分滤波器的极点位置。
对于一个连续时间并联PID控制器的传递函数是:
对于一个离散时间的并联PID控制器的传递函数的形式如下:
Integratormethod来确定(z)和Filtermethod的B(Z)方法确定(采样时间Ts):
向前欧拉方法
向后欧拉方法
梯度方法
(由积分法测定)
(滤波算法确定)
块“对话框中显示当前设置的控制器的传递函数。
ParallelPIDController
Ideal
选择一个控制器构成的比例增益P作用于所有的动作的总和。
为并行形式的传递函数是相同的,除了使P乘以所有信号。
对于一个连续时间理想的PID控制器,传递函数是:
对于一个离散时间的理想的PID控制器的传递函数是:
ntegratormethod来确定(z)和Filtermethod确定B(Z)如前所述。
IdealPIDController
指定的控制器类型。
设置
PID(默认)
实现控制器与比例,积分和微分作用.
PI
实现一个控制器的比例和积分作用。
PD
实现控制器的比例和微分作用。
P
实现一个控制器比例作用。
I
实现控制器的积分行动。
当前设置模块的控制器的传递函数在对话框中显示。
选择连续或离散时间域。
改变模块的外观,以反映您的选择。
设置
Continuous-time(默认)
选择连续时间表示形式。
Discrete-time
选择离散时间表示。
选择离散时间,您还可以指定
▪Sampletime,这是离散的样本之间的间隔。
离散式积分方法积分器和导数的过滤器使用Integratormethod和Filtermethod的菜单。
.
Integratormethod
(仅适用于当您设定Time-domain的Discrete-time。
)指定的方法来计算积分器的输出。
对于离散时间积分方法的更多信息,请参阅。
设置
ForwardEuler(默认)
选择正向矩形(左侧)逼近。
.
▪此方法最好是较小的采样时间,奈奎斯特极限控制器的带宽相比要大得多。
较大的采样时间,即使在离散系统是稳定的持续时间,在向前欧拉方法可能会导致不稳定。
BackwardEuler
选择向后矩形的(右侧)逼近。
如果您正在生成代码,使用Simulink编码器软件或定点工产品具箱,你激活后计算抗饱和的方法,这种方法可能会导致在你的控制器的代数环。
代数环可能会导致生成的代码速度较慢。
Simulink代数环模型的更多信息,请参阅在Simulink文档的
向后欧拉方法的优点是离散的稳定
Trapezoidal
▪选择双线性逼近。
▪如果您正在生成代码,使用Simulink编码器软件或定点工具箱产品,你激活后计算的抗饱和的方法,这种方法可能会导致在你的控制器的代数环。
代数环可能会导致生成的代码速度较慢。
在Simulink模型的代数环的更多信息,请参阅
▪梯形的方法的一个优点是,使用这种方法在稳定的连续时间系统离散化总是产生一个稳定的离散时间的结果。
所有可用的方法,梯形方法都可以得到最接近的的离散系统和相应的连续时间系统的频域特性。
Filtermethod
(仅适用于当您设定Time-domain的Discrete-time。
)指定的方法使用计算导数过滤器的输出。
对于离散时间积分方法的更多信息,请参阅。
设置
ForwardEuler(默认)
选择正向矩形(左侧)逼近。
.
此方法最好是较小的采样时间,奈奎斯特极限控制器的带宽相比要大得多。
较大的采样时间,即使在离散系统是稳定的持续时间,在向前欧拉方法可能会导致不稳定。
BackwardEuler
选择向后矩形的(右侧)逼近。
如果您正在生成代码,使用Simulink编码器软件或定点工产品具箱,你激活后计算抗饱和的方法,这种方法可能会导致在你的控制器的代数环。
代数环可能会导致生成的代码速度较慢。
Simulink代数环模型的更多信息,请参阅在Simulink文档的
向后欧拉方法的优点是离散稳定的连续时间系统,使用此方法总是产生一个稳定的离散时间的结果。
任何过滤器的参数值N>0用这种方法产生一个稳定的结果。
.
Trapezoidal
▪选择双线性逼近。
▪如果您正在生成代码,使用Simulink编码器软件或定点工具箱产品,你激活后计算的抗饱和的方法,这种方法可能会导致在你的控制器的代数环。
代数环可能会导致生成的代码速度较慢。
在Simulink模型的代数环的更多信息,请参阅
▪梯形的方法的一个优点是,使用这种方法稳定的连续时间系统离散化总是产生一个稳定的离散时间的结果。
任何过滤器的参数值N>0用这种方法产生一个稳定的结果。
所有可用的过滤器的方法,梯形的方法产生的离散化的系统和相应的连续时间系统的频域的之间的属性最接近匹配。
Sampletime(-1forinherited)
(仅当您设定的Time-domain的Discrete-time)。
指定采样的离散时间之间的间隔。
设置
默认:
1
通过默认,模块使用离散采样时间为1。
要指定一个不同的采样时间,输入另一个离散值,如0.1。
如果指定了一个值-1,PID控制器模块继承了来自上游块的采样时间。
不要输入值为0;实现连续时间控制器,选择Time-domain的Discrete-time。
请参阅.
Proportional(P)
(PID,PD,PI和P控制器)指定比例增益P。
默认:
1
输入一个有限的实际增益值成到Proportional(P)的字段。
使用标量或矢量的增益值。
对于并联PID控制器的形式,比例作用是独立的积分和微分作用。
对于一个理想的PID控制器的形式,比例作用充当积分和微分作用。
请参阅。
当你有仿真控制设计安装的软件,你可以使用PID调谐器或SISO设计工具自动调整控制器的增益。
参阅See。
Integral(I)
(PID,PD,PI和P控制器)指定积分增益i
默认:
1
使用标量或矢量的增益值输入一个有限的的实际增益值到IntegralI字段中。
。
当你有仿真控制设计安装的软件,你可以使用PID调谐器或SISO设计工具自动调整控制器的增益。
参考。
Derivative(D)
(可为PID和PD控制器)。
指定微分增益D。
默认:
0
使用标量或矢量的增益值输入一个有限的增益值到Derivative(D)。
。
当你有仿真控制设计安装的软件,你可以使用PID调谐器或SISO设计工具自动调整控制器的增益。
参考.
Filtercoefficient(N)
(PID和PD控制器)指定的滤波器系数N,这就决定了在微分动作的过滤器中极点的位置
在Time-domain中选Continuous-time,滤波器的极点落在S=-N。
离散时间,选择的Filtermethod,取决于它的极点位置(采样时间Ts):
▪ForwardEuler:
▪BackwardEuler:
▪Trapezoidal:
默认:
100.
使用标量或矢量的增益值输入一个有限的增益值到FilterCoefficient(N)字段。
。
需要注意的是PID控制器模块不支持N=的INF(理想未经滤波的导数)。
当你有仿真控制设计安装的软件,你可以使用PID调谐器或SISO设计工具自动调整控制器的增益。
在Simulink控制设计文件中的。
需要自动调整N>0
InitialconditionsSource
(仅适用于控制器的积分或微分动作)。
选择积分的源和过滤器的初始条件。
模拟开始或在一个特定的触发事件(参见),在Simulink的使用的初始条件来初始化的积分器和过滤器的输出。
反过来积分器和过滤器的初始条件确定的初始块输出。
设置
internal(默认)
指定明确地使用theIntegratorInitialcondition和FilterInitialcondition参数积分器和过滤初始条件。
external
外部指定的积分器和过滤器的初始条件。
额外的输入端口会出现在块,输入每个初始条件:
I0的积分器和D0的过滤器:
IntegratorInitialcondition
(仅当InitialconditionsSource是interna内,的控制器具有积分功能。
)指定积分的初始值。
在模拟开始或在指定的触发事件(参见)Simulink使用的初始条件来初始化积分器的输出。
该积分器的初始状态下,连同过滤器的初始条件,确定PID控制器块的最初输出。
默认:
0
Simulink中不允许积分的初始条件是INF或NaN。
FilterInitialcondition
(仅当InitialconditionsSource是internal,控制器具有积分行动。
)指定过滤器的初始值。
在模拟开始或在指定的触发事件(参见),Simulink使用的初始条件来初始化滤波器的输出。
该过滤器的初始状态下,与积分器的初始条件下,一起确定PID控制器的块的初始输出
默认:
0
Simulink的过滤器的初始条件不允许INF或NaN。
Externalreset
选择触发事件,重置的积分器和滤波器输出的IntegratorInitialcondition和FilterInitialcondition字段中指定的初始条件。
以外没有选择任何选项使块的外部复位信号输入,如下所示:
或者,如果InitialconditionsSource是External,
设置
none(默认)
积分器和滤波器输出的初始条件不复位。
rising
复位输出,当沿复位信号上升。
falling
复位输出,当沿复位信号下降。
either
复位信号无论是上升或下降时,复位输出
level
复位并保持输出的初始条件,复位信号同时为非零值。
注意:
要符合汽车工业软件可靠性协会(MISRA)软件的标准,你的模型必须使用布尔信号,以驱动外部复位端口的PIDcontroller模块。
Ignoreresetwhenlinearizing
强制Simulink的线性命令忽略任何您所选择的Externalreset菜单。
忽略复位状态,让在您的工作点附近线性化模型,即在该工作点,使PIDController块复位。
设置
Off(默认)
Simulink的线性命令不忽略相应的复位机制的状态。
On
Simulink的线性的命令无视状态相应的复位机制
Enablezero-crossingdetection
启用过零检测复位后的连续时间模型,在进入或离开饱和的状态。
过零检测可以精确地定位信号的不连续性,而不诉诸过小的时间步长可能会导致冗长的模拟时间。
如果您选择极限输出或激活一个Externalreset的PIDController块,激活零交叉检测,可以减少你的模拟计算时间。
有关详细信息,请
设置
On(默认)
采用过零检测,在任何下列事件:
复位;进入或离开上饱和状态的;进入或离开一个较低的饱和度状态
Off
不采用过零检测,
启用过零检测的PIDControllerPID控制器模块还使过零检测下under-mask块,包括过零检测功能。
Limitoutput
限制块输出的值指定为Lowersaturationlimit和Uppersaturationlimit之间。
激活此选项限制了内部模块的输出于该块,避免了在Simulink模型的控制器需要一个单独的块。
它还允许您激活块内置的抗饱和机制(见抗饱和方法)。
设置
Off(默认)
并不限制块输出,它等于加权总和的比例,积分和微分作用。
On
块输出限制Lowersaturationlimit或theUppersaturationlimit时的加权总和超过这些限制。
允许您选择Anti-windupmethod.。
Lowersaturationlimit
(仅当您选择Limitoutput复选框。
)指定块输出的下限。
块的输出低于该值以下时被保持在Lowersaturationlimit的加权总和的比例,积分和微分作用的值。
默认:
-inf
Uppersaturationlimit
(仅当您选择Limitoutput复选框。
)指定块输出的上限。
块的输出高于该值以上时被保持在Uppersaturationlimit的加权总和的比例,积分和微分作用的值
默认:
inf
Anti-windupmethod
(仅当您选择Limitoutput选项和控制器包括积分行动。
)选择ananti-windupmechanism,积分块履行时饱和,即发生在块组件的总和超过输出限制。
当您选择Limitoutput复选框和控制器组件的加权总和超过指定的输出限制,块输出保持在规定的限值。
然而,积分器的输出可以继续增长(积分结束),增加的块输出和块组件的总和之间的差异。
如果没有一个机制,以防止积分结束,两种结果都是可能的:
▪如果输入信号的符号永远不会改变,积分器将继续,直到它溢出。
溢出值是积分器的输出的数据类型值的最大值或最小值。
如果该符号的输入信号的变化的加权求和一旦超出了输出限制,它可能需要很长的时间运行积分器和返回的加权求和块内的饱和极限。
在这两种情况下,控制器的性能会受到影响。
为了对付没有抗饱和机制的影响,这可能是需要失谐的控制器(例如,通过减少了控制器的增益),导致控制器的缓慢。
激活anti-windupmechanism,可以提高控制器的性能。
设置
none(默认)
不使用抗饱和机制。
此设置可能会导致功能块的内部信号,即在有界的饱和极限无界的输出。
这可能会导致饱和时运行缓慢或意外溢出。
.
back-calculation
块积分的饱和输出的释放,使用积分增益反馈环路:
您也可以指定Back-calculationcoefficient(Kb)值
clamping
块组件的总和超过输出限制和积分器的输出和块输入具有相同的符号时停止积分。
块组件的总和超过输出极限和积分器的输出和块输入有相反的符号重新积分。
块的积分器部分是:
回路实现了必要的逻辑,以确定是否继续积分。
Back-calculationgain(Kb)
(只有当后台计算Anti-windupmethod有效的。
)指定抗饱和的反馈环路的增益系数。
抗饱和的计算方法输出的积分块饱和度,使用一个反馈回路增益系数Kb。
默认:
1
Ignoresaturationwhenlinearizing
强制Simulink的线性命令忽略PIDControlle块输出限制。
忽略输出的限制,让您即使PID控制器块超过输出限制使该工作点的附近仍可线性化模型。
设置
Off(默认)
Simulink的线性命令不要忽略对应的饱和状态。
On
Simulink的线性命令忽略对应的饱和状态。
Enabletrackingmode
(可与积分的任何控制器)启动信号的跟踪,它可以让输出的PIDControlle块跟踪信号。
当您选择Enabletrackingmode,TR端口成为活跃在块中提供的跟踪信号。
当信号跟踪激活,跟踪的信号之间的差和块的输出被反馈到积分器输入端的增益Kt.。
该结构示出一个PI控制器
您也可以指定theTrackingcoefficient(Kt).
无扰控制权转移
使用信号跟踪,例如,实现无扰的两个控制器之间切换的系统中的控制传输。
您可以使一个控制器跟踪其它控制器的输出通过的TR端口连接到您要跟踪的信号。
例如:
在这个例子中,在输出端OUT1和OUT2可以驱动一个控制系统(未示出),通过一个开关,将控制转移到“Activecontroller”块和PIDController块之间。
PIDController模块的信号跟踪功能提供了流畅的操作,控制权从一个控制器移到另一个时,确保这两个控制器具有相同的输出转移的时间。
多回路控制
使用信号跟踪,以防止块中多环控制的方法,如这个例子所示:
内环子系统包含以下模块组成:
在这个例子中,内部循环有一个有效的增益为1,当它是不饱和的。
没有信号跟踪,在饱和内循环结束。
,PID控制器输出信号的跟踪,确保内部循环不超过饱和输出。
设置
Off(默认)
禁用的信号跟踪和删除TR块的输入。
On
使信号跟踪和激活TR的输入。
Trackinggain(Kt)
(仅当您选择Enabletrackingmode)。
指定Kt,这是信号的跟踪反馈环路的增益。
默认:
1
Parameterdatatype
选择数据类型的增益参数P,I,D,N,Kb,Kt。
请参见
设置
Inherit:
Inheritviainternalrule(默认)
Simulink软件选择的组合输出定标和数据类型,需要的最小内存量。
此内存要求可容纳所计算的输出范围,并保持为模型指定的目标硬件实现的块和字大小的输出精度。
如果Devicetype参数设置为ASIC/FPGAHardwareImplementation配置参数“窗格中,Simulink软件选择输出数据类型不考虑硬件的限制。
否则,Simulink软件可用的硬件选择最小的数据类型能够满足的范围和精度的限制。
例如,如果该块由INT16和ASIC/FPGA被指定为目标的硬件类型的增益相乘类型int8的输入,输出数据类型是sfix24。
如果未指定(假设32位通用)(通用32位微处理器)是指定的目标硬件,输出数据类型为Int32。
Inherit:
Inheritviabackpropagation
使用的驱动块的数据类型。
Inherit:
Sameasinput
使用输入信号的数据类型。
double
single
int8
uint8
int16
uint16
int32
uint32
fixdt(1,16)
fixdt(1