主要内容

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,特遣部队)创建了一个连续时间PID控制器的比例、积分和微分收益Kp,Ki,Kd和一阶微分滤波器时间常数特遣部队:

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

这表示是平行的形式。如果所有的Kp,Ki,Kd,特遣部队是真实的,那么结果呢C是一个pid控制器对象。如果一个或多个这些系数可调(realpgenmat),然后C是一个可调广义状态空间(一族)模型对象。

C= pid (Kp,Ki,Kd,特遣部队,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

选择不同的离散积分公式,使用IFormulaDFormula属性。(见属性更多信息IFormulaDFormula)。如果DFormula=“ForwardEuler”(默认值)特遣部队≠0,那么Ts特遣部队必须满足Tf > Ts / 2。这个需求可以确保一个稳定的导数过滤柱。

C= pid (sys)将动态系统sys一个平行的形式pid控制器对象。

C= pid (Kp)创建了一个连续时间的比例(P)控制器Ki= 0,Kd= 0,特遣部队= 0。

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

C= pid (Kp,Ki,Kd)创建一个比例、积分和微分(PID)控制器特遣部队= 0。

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

C= pid创建一个P控制器Kp= 1。

输入参数

Kp

比例增益。

Kp可以是:

  • 一个真正的和有限的价值。

  • 真正的和有限的值的数组。

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

  • gain-scheduled调优的可调的表面,使用创建的tunableSurface

Kp= 0,控制器没有比例作用。

默认值:1

Ki

获得积分。

Ki可以是:

  • 一个真正的和有限的价值。

  • 真正的和有限的值的数组。

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

  • gain-scheduled调优的可调的表面,使用创建的tunableSurface

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

默认值:0

Kd

衍生品收益。

Kd可以是:

  • 一个真正的和有限的价值。

  • 真正的和有限的值的数组。

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

  • gain-scheduled调优的可调的表面,使用创建的tunableSurface

Kd= 0,控制器没有微分作用。

默认值:0

特遣部队

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

特遣部队可以是:

  • 一个真正的、有限的和非负价值。

  • 数组的、有限的和非负价值。

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

  • gain-scheduled调优的可调的表面,使用创建的tunableSurface

特遣部队= 0,控制器没有过滤微分作用。

默认值:0

Ts

样品时间。

创建一个离散时间pid控制器,提供积极的实际价值(t > 0)。pid不支持离散时间控制金宝app器与未指明的样品时间(Ts = 1)。

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

默认值:0(连续时间)

sys

输出动态系统转换为并行pid的形式。

sys必须代表一个有效的PID控制器,可以编写并行形式特遣部队≥0。

sys也可以输出数组的动态系统。

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

使用名称,值语法设置数值积分公式IFormulaDFormula一个离散时间pid控制器,或设置其他对象属性等InputNameOutputName。可用的属性信息pid控制器对象,看到属性

输出参数

C

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

  • 如果所有的收益Kp,Ki,Kd,特遣部队有数值,然后C是一个pid控制器对象。当收益数字数组,C是一个数组的pid控制器对象。控制器类型(P, I,π,PD、PDF、PID, PIDF)取决于收益的价值。例如,当Kd= 0,但KpKi非零,C是一个PI控制器。

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

属性

Kp、Ki Kd

PID控制器增益。

Kp,Ki,Kd属性存储比例、积分和微分收益,分别。Kp,Ki,Kd是真实的和有限的。

特遣部队

微分滤波器时间常数。

特遣部队属性存储的微分滤波器时间常数pid控制器对象。特遣部队是真实的、有限的和负的。

IFormula

离散积分公式如果(z离散时间的积分器pid控制器C:

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

IFormula可以采取以下值:

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

    这个公式是最适合小样本时,奈奎斯特极限很大的带宽相比控制器。对于较大的样品时间,ForwardEuler公式会导致不稳定,即使离散化连续时间系统,该系统是稳定的。

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

    的一个优势BackwardEuler公式离散化稳定的连续时间系统使用这个公式总是产生一个稳定的离散时间的结果。

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

    的一个优势梯形公式离散化稳定的连续时间系统使用这个公式总是产生一个稳定的离散时间的结果。所有可用的积分公式的梯形公式之间的收益率最接近的匹配离散系统的频域特性和相应的连续时间系统。

C是一个连续时间控制器,IFormula

默认值:“ForwardEuler”

DFormula

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

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

DFormula可以采取以下值:

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

    这个公式是最适合小样本时,奈奎斯特极限很大的带宽相比控制器。对于较大的样品时间,ForwardEuler公式会导致不稳定,即使离散化连续时间系统,该系统是稳定的。

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

    的一个优势BackwardEuler公式离散化稳定的连续时间系统使用这个公式总是产生一个稳定的离散时间的结果。

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

    的一个优势梯形公式离散化稳定的连续时间系统使用这个公式总是产生一个稳定的离散时间的结果。所有可用的积分公式的梯形公式之间的收益率最接近的匹配离散系统的频域特性和相应的连续时间系统。

    梯形DFormula不可用的吗pid控制器没有导数过滤器(Tf = 0)。

C是一个连续时间控制器,DFormula

默认值:“ForwardEuler”

InputDelay

时间延迟对系统输入。InputDelay总是为0pid控制器对象。

OutputDelay

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

Ts

样品时间。对于连续时间模型,t = 0。对于离散时间模型,Ts是一个积极的标量表示采样周期。这个值是表示在指定的单位TimeUnit模型的属性。PID控制器模型不支持未指明的样品时间(金宝appTs = 1)。

改变这个属性不离散化或重新取样模型。使用汇集d2c连续和离散时间表示形式之间的转换。使用d2d改变样本的离散时间系统。

默认值:0(持续时间)

TimeUnit

单位时间变量,样品时间Ts在模型中,任何时间延迟,指定为以下值之一:

  • “纳秒”

  • 微秒的

  • 的毫秒

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

改变对其他属性,这个属性没有影响,因此改变整个系统的行为。使用chgTimeUnit时间单位,无需修改系统行为之间的转换。

默认值:“秒”

InputName

输入通道名称,指定为一个特征向量。使用这个属性名称输入通道的控制器模型。例如,指定名称错误控制器的输入模型C如下。

C.InputName=“错误”;

您可以使用速记符号u来指InputName财产。例如,C.u相当于C.InputName

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

  • 识别频道模型显示和阴谋

  • 当互连模型指定连接点

默认值:空的特征向量,

InputUnit

输入通道单位,指定为一个特征向量。使用这个属性来跟踪输入信号的单位。例如,指定浓度单位摩尔/ m ^ 3控制器的输入模型C如下。

C。我nputUnit =《摩尔/ m ^ 3》;

InputUnit没有对系统行为的影响。

默认值:空的特征向量,

InputGroup

输入通道组。此属性不需要PID控制器模型。

默认值:结构体没有字段

OutputName

输出通道名称,指定为一个特征向量。使用这个属性名称输出通道的控制器模型。例如,指定名称控制控制器的输出模型C如下。

C.OutputName=“控制”;

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

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

  • 识别频道模型显示和阴谋

  • 当互连模型指定连接点

默认值:空的特征向量,

OutputUnit

输出通道单位,指定为一个特征向量。使用这个属性来跟踪输出信号单元。例如,分配单位控制器的输出模型C如下。

C。OutputUnit =“伏”;

OutputUnit没有对系统行为的影响。

默认值:空的特征向量,

OutputGroup

输出通道组。此属性不需要PID控制器模型。

默认值:结构体没有字段

的名字

系统名称、指定为一个特征向量。例如,“system_1”

默认值:

笔记

任何你想要的文本关联系统,存储为一个字符串或一个单元阵列的特征向量。您提供的属性存储任何数据类型。例如,如果sys1sys2动态系统模型,您可以设置他们的吗笔记属性如下:

sys1。笔记=“sys1字符串。”;sys2。笔记=sys2有一个特征向量。;sys1。笔记sys2。笔记
ans =“sys1字符串。”ans = sys2有一个特征向量。

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

用户数据

任何你想要的类型的数据与系统,指定为任何MATLAB®数据类型。

默认值:[]

SamplingGrid

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

抽样模型推导出来的数组的一个或多个自变量,这个属性追踪与数组中的每个模型相关的变量值。这个信息显示或绘制模型时出现数组。使用此信息来跟踪结果返回给独立变量。

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

例如,假设您创建一系列11-by-1的线性模型,sysarr,通过一个线性时变系统的快照t = 0:10。下面的代码存储时间和样品线性模型。

sysarr。SamplingGrid =结构(“时间”0:10)

同样的,假设你创建一个6-by-9模型数组,独立采样两个变量,ζw。下面的代码高度(ζ,w)

[ζ,w] = ndgrid(< 6的值ζ>、< 9 w的值>)。SamplingGrid =结构(“ζ”ζ,' w '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…

生成的模型阵列的线性化模型金宝app®模型在多个参数值或操作点,软件填充SamplingGrid自动变量的值,对应于每个条目数组中。例如,金宝app仿真软件控制设计™命令线性化(金宝app仿真软件控制设计)slLinearizer(金宝app仿真软件控制设计)填充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”,“梯形”)% s t = 0.1
C1 = t * (z + 1) Kp + Ki * - - - - - - - - - - 2 * (z 1) Kp = 5, Ki = 2.4, t = 0.1样品时间:0.1秒离散PI控制器并联形式。

或者,您可以创建相同的离散时间控制器通过提供Ts第五个输入参数毕竟四PID参数,Kp,Ki,Kd,特遣部队。因为你只需要一个PI控制器,集Kd特遣部队为零。

C2 = pid (5, 2.4, 0, 0, 0.1,“IFormula”,“梯形”)
C2 = t * (z + 1) Kp + Ki * - - - - - - - - - - 2 * (z 1) Kp = 5, Ki = 2.4, t = 0.1样品时间:0.1秒离散PI控制器并联形式。

显示器显示C1C2都是一样的。

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

C = pid (1、2、3、“InputName”,“e”,“OutputName”,“u”)
C = 1 Kp + Ki * - - - - - - + Kd *年代年代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”,“BackwardEuler”);大小(pi_array)
2 x3的PID控制器。每个PID 1输出和输入。

另外,使用堆栈命令来构建一个数组的PID控制器。

C = pid (1、5、0.1)% PID控制器
C = 1 Kp + Ki * - - - - - - + Kd *年代年代Kp = 1, Ki = 5, Kd = 0.1连续PID控制器并联形式。
Cf = pid (1、5、0.1、0.5)% PID控制器与过滤器
Cf = 1 s Kp + Ki * - + Kd * - - - - - - - - - - Tf *年代与Kp + 1 = 1, Ki = 5, Kd = 0.1, = 0.5特遣部队连续时间PIDF控制器并联形式。
pid_array =堆栈(2 C Cf);%堆栈沿着二维数组

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

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

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

将一个标准形式pidstd控制器并联形式。

标准PID形式表达控制器动作的整体比例增益Kp、积分和微分时间常数“透明国际”道明,过滤因子N。你可以转换任何标准形式控制器并行形式使用pid命令。例如,考虑以下标准形式控制器。

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

这个控制器转换为并行的形式使用pid

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

转换一个连续时间动态系统,代表一个PID控制器并联pid的形式。

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

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

创建一个zpk模型H。然后使用pid命令来获取HPID的收益Kp,Ki,Kd

H = zpk ([1, 2] 0 3);C = pid (H)
C = 1 Kp + Ki * - - - - - - + Kd *年代年代Kp = 9, Ki = 6, Kd = 3连续PID控制器并联形式。

转换一个离散时间动态系统,代表了一种PID控制器与微分滤波器并行pid的形式。

创建一个离散时间zpk模型代表一个PIDF控制器(两个0和两极,包括积分器杆z= 1)。

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

当你转换sysPID形式,离散积分公式的结果取决于您指定的转换。例如,使用默认的,ForwardEuler积分器和衍生品。

《= pid(系统)
Cfe = Ts 1 Kp + Ki * - - - - - - + Kd * - - - - - - - - - - - - z 1 + Ts /特遣部队(z 1) Kp = 2.75, Ki = 60 Kd = 0.0208, Tf = 0.0833, t = 0.1样品时间:0.1秒离散PIDF控制器并联形式。

现在转换使用梯形公式。

Ctrap = pid (sys,“IFormula”,“梯形”,“DFormula”,“梯形”)
Ctrap = t * (z + 1) 1 Kp + Ki * - - - - - - - - - - + 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控制器和积分和微分滤波公式。

创建一个连续时间控制器使用的零阶保持器方法和离散化它汇集命令。

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

显示器显示汇集计算新的离散控制器PID增益。

离散积分公式的离散控制器依赖汇集离散化方法,如中描述提示。为zoh方法,IFormulaDFormulaForwardEuler

Cdis1.IFormula
ans = ' ForwardEuler '
Cdis1.DFormula
ans = ' ForwardEuler '

如果你想使用不同的公式返回的汇集,那么你可以直接设置Ts,IFormula,DFormula控制器所需的值的属性。

Cdis2 = Ccon;Cdis2。Ts= 0。1;Cdis2。如果或mula =“BackwardEuler”;Cdis2。DF或mula =“BackwardEuler”;

然而,这些命令不计算新的离散PID增益控制器。看到这,检查Cdis2和比较系数CconCdis1

Cdis2
Cdis2 = t * z 1 Kp + Ki * - - - - - - + Kd * - - - - - - - - - - - - - z 1 Tf + Ts * z / (z 1) Kp = 1, Ki = 2, Kd = 3, Tf = 4, Ts = 0.1样品时间:0.1秒离散PIDF控制器并联形式。

提示

  • 使用pid:

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

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

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

  • 为特定的植物设计PID控制器,使用pidtunepidTuner。创建一个可调设计PID控制器作为控制块,使用tunablePID

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

    • 指定数组的值Kp,Ki,Kd,特遣部队

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

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

    一个数组的pid控制器,每个控制器必须具有相同的样品时间Ts和离散积分公式IFormulaDFormula

  • 创建或转化为标准形式控制器,使用pidstd。标准形式表达控制器动作的整体比例增益Kp、积分和微分时间TTd,过滤因子N:

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

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

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

      汇集离散化方法 IFormula DFormula
      “zoh” ForwardEuler ForwardEuler
      “呸” 梯形 梯形
      “tustin” 梯形 梯形
      “冲动” ForwardEuler ForwardEuler
      “匹配” ForwardEuler ForwardEuler

      更多信息汇集离散化方法,请参阅汇集参考页面。更多信息IFormulaDFormula,请参阅属性

    • 如果你需要不同的离散积分公式,你可以通过直接离散化控制器设置Ts,IFormula,DFormula到所需的值。(见离散化一个连续时间PID控制器)。然而,这种方法并不计算新的增益和filter-constant值离散控制器。因此,这种方法可能产生贫困的连续和离散时间之间的匹配pid控制器比使用汇集

介绍了R2010b