创建一个标准形式的PID控制器,转换成标准形式的PID控制器
C = pidstd (Kp、钛、Td, N)
C = pidstd(KP,TI,TD,N,Ts)的
C = pidstd(系统)
C = pidstd (Kp)
C = pidstd (Kp、钛)
C = pidstd (Kp、钛、Td)
C = pidstd(...,名称,值)
C = pidstd
创建一个连续时间PIDF(PID与一阶导数滤波器)以标准形式控制器对象。该控制器具有比例增益C
= pidstd(Kp
,钛
,TD
,N
)Kp
,积分和微分时间钛
和TD
和一阶导数滤波器除数N
:
用样本时间创建一个离散时间控制器C
= pidstd(Kp
,钛
,TD
,N
,TS
)TS
。离散时间控制器是:
如果(z)和DF(z)是离散积分公式积分器和微分滤波器。默认情况下,
若要选择不同的离散积分器公式,请使用IFormula
和DFormula
输入。(见属性有关详细信息,IFormula
和DFormula
)。如果DFormula
=“ForwardEuler”
(默认值)和N
≠天道酬勤
,然后TS
,TD
,N
必须满足TD / N> TS / 2
。这一要求保证了一个稳定的导数滤波器极点。
转换动态系统C
= pidstd(SYS
)SYS
以标准形式pidstd
控制器对象。
创建一个连续时间比例(P)控制器C
= pidstd(Kp
)钛
=天道酬勤
,TD
= 0,并且N
=天道酬勤
。
创建具有比例和积分(PI)控制器C
= pidstd(Kp
,钛
)TD
= 0和N
=天道酬勤
。
创建一个比例,积分和微分(PID)控制器C
= pidstd(Kp
,钛
,TD
)N
=天道酬勤
。
创建一个控制器或动态系统转换为C
= pidstd (…名称,值
)pidstd
与由一个或多个指定的附加选项控制器对象名称,值
对参数。
|
比例增益。
默认值:1 |
|
积分器。
默认值: |
|
微分时间。
什么时候 默认值:0 |
|
导数过滤因子。
什么时候 默认值: |
|
样品时间。 要创建一个离散时间
默认值:0(连续时间) |
|
SISO动态系统转换为标准
|
指定可选的逗号分隔的对名称,值
参数。名称
参数名和价值
是对应的值。名称
必须出现在引号内。可以按任意顺序指定多个名称和值对参数名1,值1,...,NameN,值N
。
使用名称,值
语法设置数值积分公式IFormula
和DFormula
的离散时间pidstd
控制器,或设置其他对象属性,如InputName
和OutputName
。的可用属性的信息pidstd
控制器对象,见属性。
|
控制器类型(P, PI, PD, PDF, PID, PIDF)取决于的值 当输入 |
|
比例增益。 |
|
积分时间。 |
|
微分时间。 |
|
导数过滤因子。 |
|
离散积分公式如果(z)对于离散时间的积分器
什么时候 默认值: |
|
离散积分公式DF(z)作为离散时间的导数滤波器
什么时候 默认值: |
|
在系统输入的时间延迟。 |
|
系统输出的时间延迟。 |
|
样品时间。对于连续时间模型, 更改此属性不离散或重新采样模式。使用 默认值: |
|
单位为时间变量,采样时间
更改此属性对其他性能没有影响,因此改变了整个系统的行为。使用 默认值: |
|
输入通道名称,指定为字符向量。使用此属性来命名控制器模型的输入通道。例如,分配名称 C.InputName ='错误';
你可以使用速记符号 输入通道名称有多种用途,包括:
默认值:空的特征向量, |
|
输入信道单元,指定为字符向量。使用此属性来跟踪输入信号的单位。例如,分配的浓度单位 C。我nputUnit =《摩尔/ m ^ 3》;
默认值:空的特征向量, |
|
输入通道组。PID控制器模型不需要此属性。 默认值: |
|
输出通道名称,指定为字符向量。使用此属性来命名控制器模型的输出通道。例如,分配名称 C.OutputName='控制';
你可以使用速记符号 输入通道名称有多种用途,包括:
默认值:空的特征向量, |
|
输出通道单位,指定为字符向量。使用此属性跟踪输出信号单元。例如,分配单元 C。OutputUnit =“伏”;
默认值:空的特征向量, |
|
输出通道组。PID控制器模型不需要此属性。 默认值: |
|
系统名称,指定为特征向量。例如, 默认值: |
|
要在系统,存储为一个字符串或字符向量单元阵列相关联的任何文本。该属性存储数据为准键入你提供。举例来说,如果 sys1。笔记=“SYS1有一个字符串。”;sys2.Notes =“SYS2具有字符向量”。;sys1.Notes sys2.Notes ans =“sys1有一个字符串”,ans =“sys2有一个字符向量”。 默认值: |
|
任何类型的数据要与系统相关联,指定为任何MATLAB®数据类型。 默认值: |
|
抽样模型阵列网格,指定为数据结构。 对于采样一个或多个独立变量派生的模型数组,此属性跟踪与数组中每个模型关联的变量值。当您显示或绘制模型阵列所出现这个信息。使用此信息来跟踪结果反馈给独立变量。 设置数据结构的字段名的采样变量的名称。设置字段值与阵列中的每个模型相关联的采样的变量值。所有采样变量应该是数字和标量值,并且采样值的所有阵列应当匹配模型阵列的尺寸。 例如,假设你创建了一个11乘1的线性模型数组, sysarr.SamplingGrid =结构('时间',0:10)
类似地,假设创建一个6×9模型排列, [zeta,w] = ndgrid(<6个zeta>值,<9个w>值)M。SamplingGrid =结构(“ζ”,泽塔,' w ',W) 当您显示 米 (::1,- 1)(ζ= 0.3 w = 5) = 25 - - - - - - - - - - - - - - - - s ^ 2 + 3 s + 25米(:,:,2,1)(ζ= 0.35 w = 5) = 25 - - - - - - - - - - - - - - - - - s ^ 2 + 3.5 s + 25… 用于线性化Simulink生成的模型数组金宝app®模型在多个参数值或工作点,软件填充 默认值: |
创建具有比例增益1,微分时间3,和为6的过滤器除数连续时间标准形式的PDF控制器。
C = pidstd(1,天道酬勤,3,6);
C = s Kp * (1 + Td *——)(Td/N)*s+1,其中Kp = 1, Td = 3, N = 6为标准形式的连续时间PDF控制器
显示器显示控制器类型、公式和系数值。
若要创建离散时间控制器,请设置TS
运用名称,值
语法。
C = pidstd(1,0.5,'TS',0.1,“IFormula”,“梯形”)% Ts = 0.1s
该命令产生的结果:
标准形式的离散时间PI控制器:1 Ts*(z+1) Kp *(1 + - * -) Ti 2*(z-1),其中Kp = 1, Ti = 0.5, Ts = 0.1
或者,您可以通过提供以下内容来创建相同的离散时间控制器TS
作为第五参数后的所有四个PID参数Kp
,钛
,TD
,N
。
C = pidstd(5,2.4,0,天道酬勤,0.1%,“IFormula”,“梯形”);
创建一个PID控制器和组动态系统属性InputName
和OutputName
。
C = pidstd (1、0.5、3、'InputName','E','OutputName',“u”);
创建PI控制器的与比例增益范围从1-2和积分时间为5-9的2×3的网格。
创建一个PI控制器网格与比例增益变化行到行和积分时变列到列。为此,从表示收益的数组开始。
KP = [1 1 1 2 2 2];TI = [5:2:9; 5:2:9];pi_array = pidstd(KP,TI,'TS',0.1,“IFormula”,'BackwardEuler');
这些命令生成一个2×3的离散时间数组pidstd
对象。所有pidstd
在阵列中的对象必须具有相同的采样时间,离散积分公式,和动态系统性能(如InputName
和OutputName
)。
另外,您也可以使用堆栈
命令的生成阵列pidstd
对象。
C = pidstd (1、5、0.1)% PID控制器Cf = pidstd (1、5、0.1、0.5)%PID控制器过滤器pid_array =栈(2,C,CF);%堆栈沿第二数组维数
这些命令产生一个1×2阵列控制器。输入以下命令:
大小(pid_array)
查看结果
1×2阵列的PID控制器。每个PID具有1个输出和1个输入。
pid
控制器以标准格式并行PID形式根据比例、积分和导数增益来表示控制器动作Kp,K我,Kd和滤波器的时间常数Tf。您可以将并行形式控制器parsys
以标准形式使用pidstd
,条件是:
parsys
不是一个纯粹的积分器(I)控制器。
的收益Kp
,Ki
,Kd
的parsys
所有具有相同的符号。
parsys = pid (2、3、4、5);%标准型控制器stdsys = pidstd(parsys)
这些命令产生一个平行形式的控制器:
标准形式的连续时间PIDF控制器:1 1 s Kp * (1 + - * - + Td * -) Ti s (Td/N)*s+1, Kp = 2, Ti = 0.66667, Td = 2, N = 0.4
pidstd
连续时间动态系统的控制器动态系统
表示的PID控制器。使用pidstd
获得H(年代)来表示标准形式的PID参数Kp,T我,Td。
H = ZPK([ - 1,-2],0,3);C = pidstd(H)
这些命令产生以下结果:
连续时间PID控制器的标准形式:11的Kp *(1 + ---- * --- + TD * S)的Ti s的的Kp = 9,TI = 1.5,TD = 0.33333
pidstd
离散动态系统的控制器你可以转换一个表示PID控制器微分滤波器标准离散时间动态系统pidstd
形成。
%PIDF控制器ZPK形式表示SYS = ZPK([ - 0.5,-0.6],[1 -0.2],3,'TS',0.1);
所结果的pidstd
对象取决于你指定的离散积分公式IFormula
和DFormula
。
例如,如果使用默认值ForwardEuler
对于这两个公式:
C = pidstd(系统)
你得到的结果是:
离散时间控制器PIDF标准形式:1 TS 1的Kp *(1 + ---- * ------ + TD * ---------------)钛Z-1(TD / N)+ TS /(Z-1)用的Kp = 2.75,TI = 0.045833,TD = 0.0075758,N = 0.090909,在Ts = 0.1
对于这个特定的SYS
你不能写SYS
在标准的PID的形式使用BackwardEuler
公式DFormula
。这样做的结果是N
< 0,这是不允许的。在这种情况下,pidstd
返回一个错误。
同样地,你不能写SYS
在标准形式中使用梯形
两个积分器的公式。这样做的结果是负面的钛
和TD
,它也返回一个错误。
pidstd
调节器首先,使用“zoh”
的方法C2D
。
Cc = pidstd (1、2、3、4);%连续时间PIDF控制器Cd1 =汇集(Cc, 0.1,“zoh”)
离散时间PIDF控制器标准形式:1 Ts 1 Kp * (1 + - - - - - - - - - - - * + * - - - - - - - - - - - - - - - - - - Td) Ti z 1 (Td / N) + Ts / (z 1) Kp = 1, Ti = 2, Td = 3.2044, N = 4, Ts = 0.1
将得到的离散时间控制器的用途ForwardEuler
(T年代/(z1)) 对彼此而言IFormula
和DFormula
。
离散控制器的离散积分公式依赖于C2D
离散化方法,如提示。要使用不同的IFormula
和DFormula
,直接设置TS
,IFormula
,DFormula
到所需的值:
CD2 =抄送;Cd2.Ts = 0.1;Cd2.IFormula ='BackwardEuler';Cd2.DFormula ='BackwardEuler';
这些命令不计算离散控制器的新参数值。要查看这个,请输入:
CD2
得到结果:
标准形式离散时间控制器PIDF:1个TS * Z 1的Kp *(1 + ---- * ------ + TD * -----------------)钛Z-1(TD / N)+ TS * Z /(Z-1)用的Kp = 1,的Ti = 2,TD = 3,N = 4,在Ts = 0.1
使用pidstd
无论是创建pidstd
从公知的PID增益,积分和微分时间,和过滤器除数,或一个动态系统模型转换为控制器对象pidstd
对象。
创建数组pidstd
控制器通过:
在一排pidstd
控制器,每个控制器必须具有相同的采样时间TS
和离散积分公式IFormula
和DFormula
。
若要创建或转换为并行形式的控制器,请使用pid
。并行形式以比例、积分和导数增益的形式表示控制器动作Kp,K我和Kd和滤波器的时间常数Tf:
有两种方法来离散连续时间pidstd
控制器:
使用C2D
命令。C2D
计算离散化控制器的新参数值。离散控制器的离散积分公式依赖于C2D
离散化方法使用,如图所示下表。
C2D 离散化方法 |
IFormula |
DFormula |
---|---|---|
“zoh” |
ForwardEuler |
ForwardEuler |
“呸” |
梯形 |
梯形 |
“tustin” |
梯形 |
梯形 |
'冲动' |
ForwardEuler |
ForwardEuler |
“匹配” |
ForwardEuler |
ForwardEuler |
如果你需要不同的离散积分器公式,你可以通过直接设置来离散控制器TS
,IFormula
,DFormula
达到期望的值。(有关更多信息,请参见离散化连续时间pidstd控制器。)然而,该方法不适用于离散控制器计算新的增益和滤波器常数的值。因此,该方法可能产生的连续时间和离散时间之间较差的匹配pidstd
控制器比使用C2D
。