pid

创建并行形式的PID控制器,转换为并行形式的PID控制器

语法

C = pid (Kp、Ki Kd, Tf)
C = pid (Kp、Ki Kd, Tf, Ts)
C = pid(系统)
C = pid (Kp)
C = pid (Kp, Ki)
C = pid (Kp、Ki Kd)
C = pid(…、名称、值)
C = pid

描述

C= pid (Kp,Ki,Kd,TF.)创建一个具有比例、积分和导数增益的连续时间PID控制器Kp,Ki,Kd一阶导数滤波时间常数TF.:

C = K p + K 年代 + K d 年代 T f 年代 + 1

这个表示在平行的形式。如果全部Kp,Ki,Kd,TF.是真实的,那是由此产生的C是一个pid控制器对象。如果其中一个或多个系数是可调的(realp要么genmat),然后C是一个可调的广义状态空间(一族)模型对象。

C= pid (Kp,Ki,Kd,TF.,TS.)创建一个带有采样时间的离散时间PID控制器TS.。控制器:

C = K p + K F ( z ) + K d T f + D F ( z )

如果(z),DF(z)是离散积分公式对于积分器和衍生滤波器。默认,

F ( z ) = D F ( z ) = T 年代 z - 1

为了选择不同的离散积分器公式,使用IFormula达格拉姆属性。(见属性欲了解更多关于IFormula达格拉姆)。如果达格拉姆=“ForwardEuler”(默认值)TF.≠0,那么TS.TF.必须满足tf> ts / 2。这一要求确保了一个稳定的导数滤波器极点。

C= pid (sys)转换动态系统sys并行形式pid控制器对象。

C= pid (Kp)创建一个连续时间比例(P)控制器Ki= 0,Kd= 0,TF.= 0。

C= pid (Kp,Ki)创建一个比例和积分(PI)控制器Kd= 0和TF.= 0。

C= pid (Kp,Ki,Kd)创建比例,积分和导数(PID)控制器TF.= 0。

C= pid(...,名称,值)创建控制器或将动态系统转换为pid由一个或多个指定的附加选项的控制器对象名称,值对参数。

C= pid使用。创建P控制器Kp= 1。

输入参数

Kp

比例增益。

Kp可以是:

  • 一个真实和有限的值。

  • 一组实数和有限值。

  • 可调参数(realp)或广义矩阵(genmat)。

  • 用于增益调度调优的可调表面,使用tunableSurface

Kp= 0时,控制器无成比例动作。

默认值:1

Ki

获得积分。

Ki可以是:

  • 一个真实和有限的值。

  • 一组实数和有限值。

  • 可调参数(realp)或广义矩阵(genmat)。

  • 用于增益调度调优的可调表面,使用tunableSurface

Ki= 0时,控制器没有积分作用。

默认值:0

Kd

衍生品收益。

Kd可以是:

  • 一个真实和有限的值。

  • 一组实数和有限值。

  • 可调参数(realp)或广义矩阵(genmat)。

  • 用于增益调度调优的可调表面,使用tunableSurface

Kd= 0,控制器没有衍生动作。

默认值:0

TF.

一阶导数滤波器的时间常数。

TF.可以是:

  • 一个实数、有限的非负值。

  • 一系列真实,有限和非负值。

  • 可调参数(realp)或广义矩阵(genmat)。

  • 用于增益调度调优的可调表面,使用tunableSurface

TF.= 0时,控制器对导数作用没有滤波器。

默认值:0

TS.

样品时间。

创建一个离散时间pid控制器,提供正实值(Ts> 0.)。pid不支持带有未指定采金宝app样时间的离散时间控制器(Ts = 1)。

TS.必须是标量值。在一组pid控制器,每个控制器必须有相同的TS.

默认值:0(连续时间)

sys

SISO动态系统转换为并行pid形成。

sys必须代表一个有效的PID控制器,可以写在平行形式与TF.≥0。

sys也可以是SISO动态系统的数组。

名称-值对的观点

指定可选的,以逗号分隔的对名称,值参数。名称参数name和是相应的价值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数Name1, Value1,…,的家

使用名称,值设置数值积分公式的语法IFormula达格拉姆一个离散时间pid控制器,或设置其他对象属性,如InputNameOutputName。有关可用属性的信息pid控制器对象,看属性

输出参数

C

PID控制器,表示为pid控制器对象,一个数组pid控制器对象,一族对象,或一族数组中。

  • 如果所有的收益Kp,Ki,Kd,TF.有数值,那么C是一个pid控制器对象。当增益为数字数组时,C是一个数组pid控制器对象。控制器类型(P, I, PI, PD, PDF, PID, PIDF)取决于增益的值。例如,当Kd= 0,但KpKi非零,C是PI控制器。

  • 如果一个或多个增益是一个可调参数(realp),广义矩阵(genmat)或可调增益表面(tunableSurface),然后C是广义的状态空间模型(一族)。

属性

Kp、Ki Kd

PID控制器增益。

Kp,Ki,Kd这些性质分别存储着比例、积分和导数的收益。Kp,Ki,Kd都是真实的和有限的。

TF.

导数滤波时间常数。

TF.属性存储的导数滤波器的时间常数pid控制器对象。TF.是真实的,有限的和非负面的。

IFormula

离散积分公式如果(z)对于离散时间的集成商pid控制器C:

C = K p + K F ( z ) + K d T f + D F ( z )

IFormula可以取以下值:

  • “ForwardEuler”- - - - - -如果(z)= T 年代 z - 1

    该公式最适合小的采样时间,而奈奎斯特限值与控制器的带宽相比大。对于更大的采样时间,ForwardEuler即使离散一个连续时间内稳定的系统,公式也会导致系统不稳定。

  • '背面灯'- - - - - -如果(z)= T 年代 z z - 1

    优势BackwardEuler用这个公式离散一个稳定的连续时间系统总是会得到一个稳定的离散时间结果。

  • “梯形”- - - - - -如果(z)= T 年代 2 z + 1 z - 1

    优势梯形用这个公式离散一个稳定的连续时间系统总是会得到一个稳定的离散时间结果。在所有的积分公式中梯形该公式使离散系统的频域特性与相应的连续时间系统的频域特性最接近。

C为连续时间控制器,IFormula''

默认值:“ForwardEuler”

达格拉姆

离散积分公式DF(z)的导数滤波器的离散时间pid控制器C:

C = K p + K F ( z ) + K d T f + D F ( z )

达格拉姆可以取以下值:

  • “ForwardEuler”- - - - - -DF(z)= T 年代 z - 1

    该公式最适合小的采样时间,而奈奎斯特限值与控制器的带宽相比大。对于更大的采样时间,ForwardEuler即使离散一个连续时间内稳定的系统,公式也会导致系统不稳定。

  • '背面灯'- - - - - -DF(z)= T 年代 z z - 1

    优势BackwardEuler用这个公式离散一个稳定的连续时间系统总是会得到一个稳定的离散时间结果。

  • “梯形”- - - - - -DF(z)= T 年代 2 z + 1 z - 1

    优势梯形用这个公式离散一个稳定的连续时间系统总是会得到一个稳定的离散时间结果。在所有的积分公式中梯形该公式使离散系统的频域特性与相应的连续时间系统的频域特性最接近。

    梯形达格拉姆a不行吗pid无导数滤波器的控制器(Tf = 0)。

C为连续时间控制器,达格拉姆''

默认值:“ForwardEuler”

InputDelay

系统输入上的时间延迟。InputDelay总是0的一个pid控制器对象。

OutputDelay

系统输出延迟时间。OutputDelay总是0的一个pid控制器对象。

TS.

样品时间。对于连续时间模型,TS = 0.。对于离散时间模型,TS.为表示采样周期的正标量。属性指定的单位表示此值时髦模型的财产。PID控制器模型不支持未指定的示例时间(金宝appTs = 1)。

更改此属性不会离散或重新抽样模型。使用C2D.D2C.在连续和离散时间表示之间转换。使用D2D.改变一个离散时间系统的采样时间。

默认值:0(连续时间)

时髦

单位为时间变量,即采样时间TS.,以及模型中的任何时间延迟,指定为以下值之一:

  • “纳秒”

  • 微秒的

  • '毫秒'

  • “秒”

  • '分钟'

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

更改此属性对其他属性没有影响,因此更改整体系统行为。使用chgTimeUnit在不改变系统行为的情况下在时间单位之间进行转换。

默认值:“秒”

InputName

输入通道名,指定为字符向量。使用此属性来命名控制器模型的输入通道。例如,指定名称错误到控制器模型的输入C如下。

C.InputName =“错误”;

你可以使用速记符号u参考InputName财产。例如,C.u相当于C.InputName

输入通道名有几种用途,包括:

  • 在模型显示和图上识别通道

  • 在连接模型时指定连接点

默认值:空字符矢量,''

InputUnit

输入通道单位,指定为字符向量。使用此属性来跟踪输入信号单元。例如,分配浓度单位摩尔/ m ^ 3到控制器模型的输入C如下。

C.InputUnit =《摩尔/ m ^ 3》;

InputUnit对系统行为没有影响。

默认值:空字符矢量,''

InputGroup

输入通道组。这个属性对于PID控制器模型是不需要的。

默认值:结构体没有田地

OutputName

输出通道名称,指定为字符向量。使用此属性命名控制器模型的输出通道。例如,指定名称控制到控制器模型的输出C如下。

C.OutputName =“控制”;

你可以使用速记符号y参考OutputName财产。例如,研讨会相当于C.OutputName

输入通道名有几种用途,包括:

  • 在模型显示和图上识别通道

  • 在连接模型时指定连接点

默认值:空字符矢量,''

OutputUnit

输出通道单元,指定为字符向量。使用此属性跟踪输出信号单元。例如,分配单位伏特到控制器模型的输出C如下。

C.OutputUnit =“伏”;

OutputUnit对系统行为没有影响。

默认值:空字符矢量,''

OutputGroup

输出通道组。这个属性对于PID控制器模型是不需要的。

默认值:结构体没有田地

名称

系统名称,指定为字符向量。例如,“system_1”

默认值:''

笔记

要与系统关联的任何文本,存储为字符向量的字符串或单元格数组。该属性存储您提供的任何数据类型。例如,如果sys1sys2是动态系统模型,可以设置它们吗笔记属性如下:

sys1.notes =."sys1有一个字符串。";sys2.notes ='sys2有一个字符矢量。';sys1。Notes sys2.Notes
ans = 'sys2有一个字符向量'

默认值:(0×1的字符串)

用户数据

要与系统关联的任何类型的数据,指定为任意MATLAB®数据类型。

默认值:[]

SamplingGrid.

模型数组的采样网格,指定为数据结构。

对于通过抽样一个或多个独立变量派生的模型数组,此属性跟踪与数组中每个模型相关联的变量值。当您显示或绘制模型数组时,将显示此信息。使用这些信息来跟踪结果到独立变量。

将数据结构的字段名设置为抽样变量的名称。将字段值设置为与数组中的每个模型相关联的采样变量值。所有采样变量都应该是数值型和标量型,所有采样值的数组都应该与模型数组的维数相匹配。

例如,假设你创建了一个11乘1的线性模型数组,sysarr,通过在时间拍摄线性时变系统的快照t = 0:10。下面的代码使用线性模型存储时间样本。

sysarr.samplinggrid = struct('时间'0:10)

类似地,假设您创建了一个6乘9的模型数组,,通过独立抽样两个变量,ζw。下面的代码附加了(ζ,w)

[zeta,w] = ndgrid(的<6值>,<9值的w>)m.amplinggrid = struct('Zeta',Zeta,' w 'w)

当你展示时,阵列中的每个条目都包括相应的ζw价值观。

m(:,:,1,1)[zeta = 0.3,w = 5] = 25 ------------- S ^ 2 + 3 s + 25 m(:, :,:2,1)[Zeta = 0.35,w = 5] = 25 --------------- S ^ 2 + 3.5 s + 25 ...

对于线性化Simulink生成的模型数组金宝app®在多个参数值或工作点建模,软件填充SamplingGrid.自动使用与数组中的每个条目对应的变量值。例如,金宝app仿真软件控制设计™命令线性化SLINESERIZER.填充SamplingGrid.以这种方式。

默认值:[]

例子

全部折叠

创建一个具有比例增益和导数增益的连续时间控制器,并对导数项进行滤波。为此,将积分增益设为零。将其他增益和过滤时间常数设置为所需值。

Kp = 1;Ki = 0;%不积分器Kd = 3;Tf = 0.5;C = pid (Kp、Ki Kd, Tf)
C = s Kp + Kd * -------- Tf*s+1与Kp = 1, Kd = 3, Tf = 0.5并行形式的连续时间PDF控制器。

显示器显示控制器类型、公式和参数值,并验证控制器是否没有积分器项。

建立一个具有梯形离散化公式的离散时间PI控制器。

要创建一个离散时间PI控制器,设置的值TS.和离散化公式名称,值语法。

C1 = PID(5,2.4,“t”, 0.1,“IFormula”,“梯形”)% Ts = 0.1s
C1 = Ts*(z+1) Kp + Ki * -------- 2*(z-1)有Kp = 5, Ki = 2.4, Ts = 0.1采样时间:0.1秒并行形式的离散时间PI控制器。

或者,您可以通过以下方法创建相同的离散时间控制器TS.作为四个PID参数后的第五个输入参数,Kp,Ki,Kd,TF.。因为你只想要一个PI控制器,所以设置KdTF.为零。

C2 = pid (5, 2.4, 0, 0, 0.1,“IFormula”,“梯形”)
C2 = TS *(Z + 1)kp + ki * -------2 *(z-1)带有kp = 5,ki = 2.4,ts = 0.1采样时间:0.1秒离散时间pi控制器并行形式。

显示屏显示了C1C2都是一样的。

当你创建一个PID控制器,设置动态系统属性InputNameOutputName。这是有用的,例如,当您使用。连接PID控制器与其他动态系统模型连接命令。

C = pid(1、2、3、“InputName”,“e”,'outputname',“u”)
C = 1 Kp + Ki *——+ Kd * s s与Kp = 1, Ki = 2, Kd = 3并行形式的连续时间PID控制器。

该显示器不显示PID控制器的输入和输出名称,但是您可以检查属性值。例如,验证控制器的输入名称。

C.InputName
ans =1 x1单元阵列{' e '}

创建一个2乘3的PI控制器网格,其比例增益从1到2跨越数组行,积分增益从5到9跨越列。

要构建PID控制器数组,请从表示增益的阵列开始。

kp = [1 1 1; 2 2 2];ki = [5:2:9; 5:2:9];

当你将这些阵列传递到pid命令,该命令返回数组。

pi_array = pid (Kp,吻,“t”, 0.1,“IFormula”,'背面灯');尺寸(pi_array)
2x3阵列的PID控制器。每个PID有1个输出和1个输入。

或者,使用堆栈命令构建一个PID控制器阵列。

C = pid(1、5、0.1)% PID控制器
C = 1 kp + ki * --- + kd * s s用kp = 1,ki = 5,kd = 0.1以并行形式的连续时间PID控制器。
Cf = pid(1、5、0.1、0.5)具有滤波器的%PID控制器
Cf = 1 s Kp + Ki *—+ Kd * -------- s Tf*s+1与Kp = 1, Ki = 5, Kd = 0.1, Tf = 0.5并行形式的连续时间PIDF控制器。
PID_ARRAY =堆栈(2,C,CF);%沿第2个阵列维度堆叠

这些命令返回一个1乘2的控制器数组。

大小(pid_array)
1x2 PID控制器数组。每个PID有1个输出和1个输入。

数组中的所有PID控制器必须具有相同的采样时间、离散积分器公式和动态系统特性,例如InputNameOutputName

转换标准格式pidstd控制器到并行形式。

标准PID表单在整体比例增益方面表达了控制器动作Kp,时间常数的积分和导数TI.一个,和filter除数N。控件可以将任何标准表单控制器转换为并行表单pid命令。例如,考虑下面的标准表单控制器。

Kp = 2;Ti = 3;Td = 4;N = 50;C_std = pidstd (Kp、钛、Td, N)
C_std = 1 1 s Kp *(1 + ---- *——+ Td * ------------) Ti s (Td/N)*s+1与Kp = 2, Ti = 3, Td = 4, N = 50连续时间标准形式的PIDF控制器

将此控制器转换为并行形式pid

C_par = pid (C_std)
C_par = 1 s Kp + Ki *—+ Kd * -------- s Tf*s+1, Kp = 2, Ki = 0.667, Kd = 8, Tf = 0.08并行形式的连续时间PIDF控制器。

将代表PID控制器的连续时间动态系统转换为并行系统pid形成。

下面的动态系统,带有一个积分器和两个零,就相当于一个PID控制器。

H ( 年代 ) = 3. ( 年代 + 1 ) ( 年代 + 2 ) 年代

创建一个zpk模型H。然后使用pid命令来获取H用PID增益表示Kp,Ki,Kd

H = zpk ([1, 2] 0 3);C = pid (H)
C = 1 Kp + Ki *—+ Kd * s s与Kp = 9, Ki = 6, Kd = 3并行形式的连续时间PID控制器。

将一个代表带导数滤波器的PID控制器的离散时间动态系统转换为并行系统pid形成。

创建一个离散的zpk模型,它表示一个PIDF控制器(两个零和两个极点,包括积分器极点z= 1)。

sys = zpk([-0.5,-0.6],[1 -0.2],3,“t”, 0.1);

当你转换时sys对于PID形式,结果取决于您为转换指定的离散积分器公式。例如,使用默认值,ForwardEuler,对于积分器和导数。

《= pid(系统)
Cfe = Ts 1 Kp + Ki * ------ + Kd * ----------- z-1 Tf+Ts/(z-1)具有Kp = 2.75, Ki = 60, Kd = 0.0208, Tf = 0.0833, Ts = 0.1采样时间:0.1秒并行形式的离散时间pid控制器。

现在转换使用梯形公式。

ctrap = pid(sys,“IFormula”,“梯形”,'dformula',“梯形”)
Ctrap = t * (z + 1) 1 Kp +吻  * -------- + Kd  * ------------------- 2 * (z 1) Tf + Ts / 2 * (z + 1) / (z 1) Kp = -0.25, Ki = 60 Kd = 0.0208, Tf = 0.0333, t = 0.1样品时间:0.1秒离散PIDF控制器并联形式。

显示器显示了产生的系数值和函数形式的差异。

对于这个特定的动态系统,您不能写入sys在并行PID形式使用BackwardEuler导数滤波器的公式。这样做会导致Tf < 0这是不允许的。在这种情况下,pid返回一个错误。

对连续时间PID控制器进行离散化,并设置积分和导数滤波公式。

创建一个连续时间控制器,并使用的零阶保持器方法离散它C2D.命令。

Ccon = pid(1、2、3、4);%连续时间PIDF控制器Cdis1 =汇集(Ccon, 0.1,“zoh”)
Cdis1 = Ts 1 Kp + Ki * ------ + Kd * ----------- z-1 Tf+Ts/(z-1) with Kp = 1, Ki = 2, Kd = 3.04, Tf = 4.05, Ts = 0.1采样时间:0.1秒并行形式的离散时间pid控制器。

显示屏显示了C2D.为离散时间控制器计算新的PID增益。

离散控制器的离散积分器公式依赖于C2D.离散化方法,如提示。为zoh方法,IFormula达格拉姆ForwardEuler

cdis1.formula.
ans = ' ForwardEuler '
Cdis1.DFormula
ans = ' ForwardEuler '

如果您想使用由返回的不同公式C2D.,然后你可以直接设置TS.,IFormula,达格拉姆属性设置为所需的值。

Cdis2 = Ccon;Cdis2。TS.= 0。1;Cdis2。如果要么mula ='背面灯';cdis2.dformula ='背面灯';

然而,这些命令不能为离散控制器计算新的PID增益。要了解这一点,请仔细检查Cdis2把系数和CCON.Cdis1

Cdis2
CDIS2 = TS * Z 1 KP + KI * ------ + KD * ------------ Z-1 TF + TS * Z /(Z-1)带KP = 1,Ki=2,Kd=3.,TF. = 4, Ts = 0.1 Sample time: 0.1 seconds Discrete-time PIDF controller in parallel form.

提示

  • 使用pid:

    • 创建一个pid控制器对象由已知的PID增益和滤波时间常数组成。

    • 把一个pidstd控制器对象转换为标准形式pid控制器对象。

    • 将其他类型的动态系统模型转换为pid控制器对象。

  • 为了设计一个PID控制器为特定的工厂,使用pidtune要么pidTuner。创建一个可调PID控制器作为控制设计块,使用tunablePID

  • 创建数组pid控制器对象:

    • 指定数组值Kp,Ki,Kd,TF.

    • 指定动态系统的数组syspid控制器对象

    • 使用堆栈从单个控制器或更小的数组构建数组

    在一组pid控制器,每个控制器必须具有相同的采样时间TS.和离散积分器公式IFormula达格拉姆

  • 若要创建或转换为标准表单控制器,请使用pidstd。标准形式用总体比例增益表示控制器的动作Kp,积分和衍生时间TTd,和filter除数N:

    C = K p ( 1 + 1 T 1 年代 + T d 年代 T d N 年代 + 1 )

  • 有两种方法离散连续时间pid控制器:

    • 使用C2D.命令。C2D.为离散控制器计算新的参数值。离散控制器的离散积分器公式依赖于C2D.您使用的离散化方法,如下表所示。

      C2D.离散化方法 IFormula 达格拉姆
      “zoh” ForwardEuler ForwardEuler
      'foh' 梯形 梯形
      “tustin” 梯形 梯形
      “冲动” ForwardEuler ForwardEuler
      “匹配” ForwardEuler ForwardEuler

      欲了解更多关于C2D.离散化方法,见C2D.参考页面。欲了解更多关于IFormula达格拉姆,请参阅属性

    • 如果你需要不同的离散积分器公式,你可以通过直接设置来离散控制器TS.,IFormula,达格拉姆到所需的值。(见离散化连续时间PID控制器。)但是,此方法不计算离散控制器的新增益和滤波器常数值。因此,这种方法可能会在连续和离散时间之间产生较差的匹配pid控制器比使用C2D.

介绍了R2010b