pidstd

创建一个标准形式的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

描述

C= pidstd(Kp,,TD,N)创建一个连续时间PIDF(PID与一阶导数滤波器)以标准形式控制器对象。该控制器具有比例增益Kp,积分和微分时间TD和一阶导数滤波器除数N:

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

C= pidstd(Kp,,TD,N,TS)用样本时间创建一个离散时间控制器TS。离散时间控制器是:

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

如果(z)和DF(z)是离散积分公式积分器和微分滤波器。默认情况下,

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

若要选择不同的离散积分器公式,请使用IFormulaDFormula输入。(见属性有关详细信息,IFormulaDFormula)。如果DFormula=“ForwardEuler”(默认值)和N天道酬勤,然后TS,TD,N必须满足TD / N> TS / 2。这一要求保证了一个稳定的导数滤波器极点。

C= pidstd(SYS)转换动态系统SYS以标准形式pidstd控制器对象。

C= pidstd(Kp)创建一个连续时间比例(P)控制器=天道酬勤,TD= 0,并且N=天道酬勤

C= pidstd(Kp,)创建具有比例和积分(PI)控制器TD= 0和N=天道酬勤

C= pidstd(Kp,,TD)创建一个比例,积分和微分(PID)控制器N=天道酬勤

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

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

输入参数

Kp

比例增益。

Kp可以是:

  • 一个实的有限的值。

  • 实值和有限值的数组。

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

  • 使用创建的可调表面,用于获得预定的调优tunableSurface

默认值:1

积分器。

可以是:

  • 一个真实的正的值。

  • 实值和正值的数组。

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

  • 使用创建的可调表面,用于获得预定的调优tunableSurface

默认值:天道酬勤

TD

微分时间。

TD可以是:

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

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

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

  • 使用创建的可调表面,用于获得预定的调优tunableSurface

什么时候TD= 0,控制器无微分作用。

默认值:0

N

导数过滤因子。

N可以是:

  • 一个真实的正的值。

  • 实值和正值的数组。

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

  • 使用创建的可调表面,用于获得预定的调优tunableSurface

什么时候N=天道酬勤,该控制器对微分作用没有滤波。

默认值:天道酬勤

TS

样品时间。

要创建一个离散时间pidstd控制器,提供了一个正的实值(TS> 0)。pidstd不支持的离散时间控金宝app制器未定样品时间(Ts = 1)。

TS必须是一个标量值。在一排pidstd控制器,每个控制器必须具有相同的TS

默认值:0(连续时间)

SYS

SISO动态系统转换为标准pidstd形成。

SYS必须表示可以用?以标准形式编写的有效控制器> 0,TD≥0,和N> 0。

SYS也可以是一组SISO动态系统。

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。名称参数名和价值是对应的值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数名1,值1,...,NameN,值N

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

输出参数

C

pidstd对象,表示标准形式的单输入单输出PID控制器。

控制器类型(P, PI, PD, PDF, PID, PIDF)取决于的值Kp,,TD,N。例如,当TD=天道酬勤Kp是有限的和为零,C是一个PI控制器。输入的getType(C)获取控制器类型。

当输入Kp,,TD,N或输入SYS是数组,C是一个数组pidstd对象。

属性

Kp

比例增益。Kp必须是真实的和有限的。

积分时间。必须是实的,有限的,大于等于零的。

TD

微分时间。TD必须是实的,有限的,大于等于零的。

N

导数过滤因子。N必须是真实的,并且大于或等于零。

IFormula

离散积分公式如果(z)对于离散时间的积分器pidstd调节器C:

C = K p ( 1 + 1 T F ( z ) + T d T d N + 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)作为离散时间的导数滤波器pidstd调节器C:

C = K p ( 1 + 1 T F ( z ) + T d T d N + 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不适用于一个pidstd没有导数滤波器的控制器(N = Inf文件)。

什么时候C是一个连续时间控制器,DFormula''

默认值:“ForwardEuler”

InputDelay

在系统输入的时间延迟。InputDelay始终为0的pidstd控制器对象。

OutputDelay

系统输出的时间延迟。OutputDelay始终为0的pidstd控制器对象。

TS

样品时间。对于连续时间模型,t = 0。对于离散时间模型,TS是表示采样周期的正标量。该值在由指定为单位表示TIMEUNIT模型的属性。PID控制器机型不支持未指定的采样时间(金宝appTs = 1)。

更改此属性不离散或重新采样模式。使用C2Dd2c在连续和离散时间表示之间进行转换。使用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'

默认值:''

笔记

要在系统,存储为一个字符串或字符向量单元阵列相关联的任何文本。该属性存储数据为准键入你提供。举例来说,如果SYS1系统2是动态系统模型,可以自己设置吗笔记属性如下:

sys1。笔记=“SYS1有一个字符串。”;sys2.Notes =“SYS2具有字符向量”。;sys1.Notes sys2.Notes
ans =“sys1有一个字符串”,ans =“sys2有一个字符向量”。

默认值:[0×1串]

用户数据

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

默认值:[]

SamplingGrid

抽样模型阵列网格,指定为数据结构。

对于采样一个或多个独立变量派生的模型数组,此属性跟踪与数组中每个模型关联的变量值。当您显示或绘制模型阵列所出现这个信息。使用此信息来跟踪结果反馈给独立变量。

设置数据结构的字段名的采样变量的名称。设置字段值与阵列中的每个模型相关联的采样的变量值。所有采样变量应该是数字和标量值,并且采样值的所有阵列应当匹配模型阵列的尺寸。

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

sysarr.SamplingGrid =结构('时间',0:10)

类似地,假设创建一个6×9模型排列,通过对两个变量进行独立抽样,泽塔w。下面的代码附加了(ζ电,w)的

[zeta,w] = ndgrid(<6个zeta>值,<9个w>值)M。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…

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

默认值:[]

例子

创建连续时间标准格式PDF控制器

创建具有比例增益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控制器

显示器显示控制器类型、公式和系数值。

梯形离散式创建离散时间PI控制器

若要创建离散时间控制器,请设置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控制器并设置系统属性

创建一个PID控制器和组动态系统属性InputNameOutputName

C = pidstd (1、0.5、3、'InputName','E','OutputName',“u”);

创建标准形式的PID控制器网格

创建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在阵列中的对象必须具有相同的采样时间,离散积分公式,和动态系统性能(如InputNameOutputName)。

另外,您也可以使用堆栈命令的生成阵列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,Kdparsys所有具有相同的符号。

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连续时间动态系统的控制器

动态系统

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

表示的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对象取决于你指定的离散积分公式IFormulaDFormula

例如,如果使用默认值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)) 对彼此而言IFormulaDFormula

离散控制器的离散积分公式依赖于C2D离散化方法,如提示。要使用不同的IFormulaDFormula,直接设置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对象。

  • 来调谐PID控制器,用于特定植物,使用pidtunepidTuner

  • 创建数组pidstd控制器通过:

    • 指定数组值Kp,,TD,N

    • 指定动态系统的阵列SYS转换成标准的PID形式

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

    在一排pidstd控制器,每个控制器必须具有相同的采样时间TS和离散积分公式IFormulaDFormula

  • 若要创建或转换为并行形式的控制器,请使用pid。并行形式以比例、积分和导数增益的形式表示控制器动作Kp,KKd和滤波器的时间常数Tf:

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

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

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

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

      有关C2D离散化方法,请参阅C2D参考页。有关IFormulaDFormula,请参阅属性

    • 如果你需要不同的离散积分器公式,你可以通过直接设置来离散控制器TS,IFormula,DFormula达到期望的值。(有关更多信息,请参见离散化连续时间pidstd控制器。)然而,该方法不适用于离散控制器计算新的增益和滤波器常数的值。因此,该方法可能产生的连续时间和离散时间之间较差的匹配pidstd控制器比使用C2D

介绍了R2010b