创建标准形式的PID控制器,转换为标准形式的PID控制器
C = pidstd(Kp,Ti,Td,N)
C = pidstd(Kp,Ti,Td,N,Ts)
C = pidstd(sys)
C = pidstd(Kp)
C = pidstd(Kp,Ti)
C = pidstd(Kp,Ti,Td)
C = pidstd(…,Name,Value)
C = pidstd
创建一个标准形式的连续时间PIDF(带一阶导数滤波器的PID)控制器对象。控制器具有比例增益C
= pidstd (Kp
,“透明国际”
,道明
,N
)Kp
,积分和导数的时间“透明国际”
而且道明
,和一阶导数滤波除数N
:
创建具有采样时间的离散时间控制器C
= pidstd (Kp
,“透明国际”
,道明
,N
,Ts
)Ts
.离散时间控制器为:
如果(z),DF(z)是离散积分公式对于积分器和导数滤波器。默认情况下,
要选择不同的离散积分器公式,请使用IFormula
而且DFormula
输入。(见属性欲了解更多有关IFormula
而且DFormula
).如果DFormula
=“ForwardEuler”
(默认值)和N
≠正
,然后Ts
,道明
,N
必须满足Td/N > Ts/2
.这一要求确保了一个稳定的导数滤波器极。
转换动态系统C
= pidstd (sys
)sys
变成标准形式pidstd
控制器对象。
创建一个连续时间比例(P)控制器C
= pidstd (Kp
)“透明国际”
=正
,道明
= 0,和N
=正
.
创建一个比例积分(PI)控制器C
= pidstd (Kp
,“透明国际”
)道明
= 0和N
=正
.
创建一个比例,积分和导数(PID)控制器C
= pidstd (Kp
,“透明国际”
,道明
)N
=正
.
创建控制器或将动态系统转换为C
= pidstd(…名称,值
)pidstd
具有一个或多个指定的附加选项的控制器对象名称,值
对参数。
|
比例增益。
默认值:1 |
|
积分器。
默认值: |
|
微分时间。
当 默认值:0 |
|
导数滤波除数。
当 默认值: |
|
样品时间。 创建一个离散时间
默认值:0(连续时间) |
|
SISO动态系统转换为标准
|
的可选逗号分隔对名称,值
参数。的名字
参数名称和价值
对应的值。的名字
必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
使用名称,值
语法来设置数值积分公式IFormula
而且DFormula
离散时间的pidstd
控制器,或设置其他对象属性,如InputName
而且OutputName
.的可用属性的信息pidstd
控制器对象,请参见属性.
|
控制器类型(P, PI, PD, PDF, PID, PIDF)取决于 当输入 |
|
比例增益。 |
|
积分时间。 |
|
微分时间。 |
|
导数滤波除数。 |
|
离散积分公式如果(z)为离散时间积分器
当 默认值: |
|
离散积分公式DF(z)为离散时间的导数滤波器
当 默认值: |
|
系统输入的时间延迟。 |
|
系统输出的时间延迟。 |
|
样品时间。对于连续时间模型, 更改此属性不会对模型进行离散化或重新采样。使用 默认值: |
|
时间变量的单位是采样时间
更改此属性不会对其他属性产生影响,因此会改变整个系统行为。使用 默认值: |
|
输入通道名称,指定为字符向量。使用此属性可命名控制器模型的输入通道。例如,分配名称 C.InputName =“错误”;
你可以用速记法 输入通道名有几种用途,包括:
默认值:空字符向量, |
|
输入通道单位,指定为字符向量。使用此属性跟踪输入信号单位。例如,指定浓度单位 C.InputUnit =《摩尔/ m ^ 3》;
默认值:空字符向量, |
|
输入通道组。PID控制器模型不需要此属性。 默认值: |
|
输出通道名称,指定为字符向量。使用此属性可命名控制器模型的输出通道。例如,分配名称 C.OutputName =“控制”;
你可以用速记法 输入通道名有几种用途,包括:
默认值:空字符向量, |
|
输出通道单位,指定为字符向量。使用此属性跟踪输出信号单元。例如,分配单元 C.OutputUnit =“伏”;
默认值:空字符向量, |
|
输出通道组。PID控制器模型不需要此属性。 默认值: |
|
系统名称,指定为字符向量。例如, 默认值: |
|
希望与系统关联的任何文本,存储为字符串或字符向量的单元格数组。属性存储您提供的任何数据类型。例如,如果 sys1。笔记=sys1有一个字符串。;sys2。笔记=sys2有一个字符向量;sys1。笔记sys2。笔记 Ans = "sys1有一个字符串" Ans = " sys2有一个字符向量" 默认值: |
|
您希望与系统关联的任何类型的数据,指定为任何MATLAB®数据类型。 默认值: |
|
模型数组的采样网格,指定为数据结构。 对于通过对一个或多个自变量采样而得到的模型数组,此属性跟踪与数组中每个模型相关的变量值。当您显示或绘制模型数组时,将显示此信息。使用这些信息将结果追溯到自变量。 将数据结构的字段名设置为采样变量的名称。将字段值设置为与数组中的每个模型相关联的采样变量值。所有抽样变量都应该是数值和标量值,所有抽样值的数组都应该匹配模型数组的维度。 例如,假设你创建了一个11 × 1的线性模型数组, sysarr。SamplingGrid = struct(“时间”0:10)
类似地,假设你创建一个6 × 9的模型数组, [zeta,w] = ndgrid(zeta> <6个值,w > <9个值)“ζ”ζ,' 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®在多个参数值或工作点建模,软件进行填充 默认值: |
创建一个连续时间标准格式PDF控制器,其比例增益为1,导数时间为3,滤波除数为6。
C = pidstd(1,Inf,3,6);
C = s Kp * (1 + Td * ------------) (Td/N)*s+1,其中Kp = 1, Td = 3, N = 6连续时间PDF控制器的标准形式
显示器显示控制器类型、公式和系数值。
如果要创建离散时间控制器,可以设置的值Ts
使用名称,值
语法。
C = pidstd(1,0.5,“t”, 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
,“透明国际”
,道明
,N
.
C = pidstd(5,2.4,0,Inf,0.1,“IFormula”,“梯形”);
创建PID控制器,设置系统动态属性InputName
而且OutputName
.
C = pidstd(1,0.5,3,“InputName”,“e”,“OutputName”,“u”);
创建一个2乘3的PI控制器网格,比例增益范围为1-2,积分时间范围为5-9。
创建一个PI控制器的网格,以行与行成比例的增益变化和列与列的积分时间变化。为此,从表示增益的数组开始。
Kp = [1 1 1;2 2 2];Ti = [5:2:9;5:2:9];pi_array = pidstd(Kp,Ti,“t”, 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 = stack(2,C,Cf);%沿第二数组维度堆栈
这些命令生成一个1 × 2的控制器数组。输入命令:
大小(pid_array)
看看结果
PID控制器的1x2数组。每个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控制器标准形式:1 1 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,“t”, 0.1);
由此产生的pidstd
对象取决于指定的离散积分器公式IFormula
而且DFormula
.
例如,如果您使用默认值ForwardEuler
对于这两个公式:
C = pidstd(sys)
得到的结果是:
离散时间PIDF控制器标准形式:1 Ts 1 Kp * (1 + ---- * ------ + Td * ---------------) Ti 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
在标准形式中使用梯形
两个积分器的公式。这样做的结果是消极的“透明国际”
而且道明
,它也会返回一个错误。
pidstd
控制器方法将控制器离散化“zoh”
的方法汇集
.
Cc = pidstd(1,2,3,4);%连续时间pidf控制器Cd1 = c2d(Cc,0.1,“zoh”)
离散时间PIDF控制器标准形式:1 Ts 1 Kp * (1 + ---- * ------ + 道明 * ---------------) 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
.
离散控制器的离散积分器公式依赖于汇集
离散化方法,如提示.使用不同的IFormula
而且DFormula
,直接设置Ts
,IFormula
,DFormula
到期望值:
Cd2 = Cc;张cd。Ts=0.1;张cd。如果或mula =“BackwardEuler”;张cd。DF或mula =“BackwardEuler”;
这些命令不会为离散化控制器计算新的参数值。要查看这个,输入:
张
得到结果:
离散时间PIDF控制器标准形式:1 t * z 1 Kp * (1 + ---- * ------ + 道明 * -----------------) Ti 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
控制器:
使用汇集
命令。汇集
为离散化控制器计算新的参数值。离散控制器的离散积分器公式依赖于汇集
您使用的离散化方法,如下表所示。
汇集 离散化方法 |
IFormula |
DFormula |
---|---|---|
“zoh” |
ForwardEuler |
ForwardEuler |
“呸” |
梯形 |
梯形 |
“tustin” |
梯形 |
梯形 |
“冲动” |
ForwardEuler |
ForwardEuler |
“匹配” |
ForwardEuler |
ForwardEuler |
如果你需要不同的离散积分器公式,你可以通过直接设置离散控制器Ts
,IFormula
,DFormula
到期望的值。(有关更多信息,请参见离散化连续时间pid控制器)。但是,该方法不需要为离散控制器计算新的增益和滤波常数值。因此,这种方法可能在连续时间和离散时间之间产生较差的匹配pidstd
控制器比使用汇集
.