主要内容

pidTuner

打开 PID 调节器进行 PID 调节

说明

pidTuner(sys,type) 启动 PID 调节器,并为被控对象 sys 设计 type 类型的控制器。

示例

pidTuner(sys,Cbase) 启动 PID 调节器,并附带基线控制器 Cbase,以便您可以在设计的控制器与基线控制器之间进行性能比较。如果 Cbasepidpidstdpid2pidstd2 控制器对象,PID 调节器将设计形式、类型和离散积分器公式与 Cbase 相同的控制器。

示例

pidTuner(sys) 设计并联型 PI 控制器。

pidTuner 以默认被控对象 1 和比例 (P) 控制器 1 启动 PID 调节器。

示例

全部折叠

此示例说明如何从命令行启动 PID 调节器,以调节并联型 PIDF 控制器。

定义一个离散时间零极点增益被控对象。

Gc = zpk([],[-1 -1 -1],1);
Gd = c2d(Gc,0.1);

启动 PID 调节器以设计并联型 PIDF 控制器。

pidTuner(Gd,'pidf')

此示例说明如何启动 PID 调节器以设计标准型 PIDF 控制器。

定义一个离散时间零极点增益被控对象。

Gc = zpk([],[-1 -1 -1],1);
Gd = c2d(Gc,0.1);

使用 BackwardEuler 离散积分器公式创建标准型基线控制器。

Cbase = pidstd(1,2,3,4,'Ts',0.1,...
      'IFormula','BackwardEuler','DFormula','BackwardEuler')

启动 PID 调节器

pidTuner(Gd,Cbase)

PID 调节器会为 Gd 设计一个形式、类型和离散积分器公式与 Cbase 相同的控制器。为了进行比较,您可以在 PID 调节器中点击显示基线复选框,以同时显示 Cbase 的响应图和设计的控制器的响应图。

输入参数

全部折叠

控制器设计的被控对象模型,指定为下列值之一。

  • 任意 SISO LTI 系统(如 sstfzpkfrd)。

  • 任意 System Identification Toolbox™ SISO 线性模型(idtf (System Identification Toolbox)idfrd (System Identification Toolbox)idgrey (System Identification Toolbox)idpoly (System Identification Toolbox)idproc (System Identification Toolbox)idss (System Identification Toolbox))。

  • 连续时间或离散时间模型。

  • 稳定、不稳定或积分型系统。但是,含不稳定极点的被控对象可能无法通过 PID 控制实现稳定。

  • 包含任何类型时滞的模型。但是,时滞较长的被控对象可能无法通过 PID 控制达到足够的性能。

如果被控对象具有不稳定极点,且 sys 属于以下任一类型:

  • frd 模型

  • 具有内部时滞且无法转换为 I/O 延迟的 ss 模型

则您必须指定被控对象中不稳定极点的数量。要执行此操作,请打开 PID 调节器,然后在被控对象菜单中,选择 导入。在“导入线性系统”对话框中,重新导入 sys,并在提示时指定不稳定极点的数量。

要设计的控制器的控制器类型,指定为字符向量。术语控制器类型指控制器动作中包含的项。例如,PI 控制器仅包含比例项和积分项,而 PIDF 控制器包含比例项、积分项和滤波导数项。type 的可选值汇总如下。有关这些控制器类型的更多详细信息,请参阅PID Controller Types for Tuning

单自由度控制器

  • 'P' - 纯比例

  • 'I' - 纯积分

  • 'PI' - 比例和积分

  • 'PD' - 比例和导数

  • 'PDF' - 比例和导数,其中导数项带有一阶滤波器

  • 'PID' - 比例、积分和导数

  • 'PIDF' - 比例、积分和导数,其中导数项带有一阶滤波器

二自由度控制器

  • 'PI2' - 二自由度比例和积分

  • 'PD2' - 二自由度比例和导数

  • 'PDF2' - 二自由度比例和导数,其中导数项带有一阶滤波器

  • 'PID2' - 二自由度比例、积分和导数

  • 'PIDF2' - 二自由度比例、积分和导数,其中导数项带有一阶滤波器

有关二自由度 PID 控制器的详细信息,请参阅二自由度 PID 控制器

具有固定设定点权重的二自由度控制器

  • 'I-PD' - 二自由度 PID,其中 b = 0、c = 0

  • 'I-PDF' - 二自由度 PIDF,其中 b = 0、c = 0

  • 'ID-P' - 二自由度 PID,其中 b = 0、c = 1

  • 'IDF-P' - 二自由度 PIDF,其中 b = 0、c = 1

  • 'PI-D' - 二自由度 PID,其中 b = 1、c = 0

  • 'PI-DF' - 二自由度 PIDF,其中 b = 1、c = 0

有关固定设定点权重二自由度 PID 控制器的更多详细信息,请参阅PID Controller Types for Tuning

控制器形式

当您使用 type 输入时,PID 调节器会设计并联型控制器。如果要设计标准型控制器,请改用输入 Cbase 而非 type,或者从形式菜单中选择标准。有关并联型和标准型的详细信息,请参阅 pidpidstd 参考页。

如果 sys 是具有采样时间 Ts 的离散时间模型,则 PID 调节器使用 ForwardEuler 离散积分器公式设计离散时间 pid 控制器。要设计采用不同离散积分器公式的控制器,请执行以下操作:

  • 改用输入参量 Cbase 而非 type。PID 调节器会从基线控制器 Cbase 中读取控制器类型、形式和离散积分器公式。

  • 在 PID 调节器中,点击选项以打开“控制器选项”对话框。从积分公式导数公式菜单中选择离散积分器公式。

有关离散积分器公式的详细信息,请参阅 pidpidstd 参考页。

表示基线控制器的动态系统,允许您将设计的控制器的性能与 Cbase 的性能进行比较。

如果 Cbasepidpidstd 对象,PID 调节器还会使用它来配置设计的控制器的类型、形式和离散积分器公式。设计的控制器:

  • 是由 Cbase 表示的类型。

  • 是并联型控制器(如果 Cbasepid 控制器对象)。

  • 是标准型控制器(如果 Cbasepidstd 控制器对象)。

  • 是并联型二自由度控制器(如果 Cbasepid2 控制器对象)。

  • 是标准型二自由度控制器(如果 Cbasepidstd2 控制器对象)。

  • Cbase 具有相同的 Iformula 值和 Dformula 值。有关 IformulaDformula 的详细信息,请参阅 pidpidstd 参考页。

如果 Cbase 是任何其他动态系统,PID 调节器将设计并联型 PI 控制器。您可以在启动 PID 调节器后,使用 形式类型菜单更改控制器的形式和类型。

提示

  • 如果 typeCbase 指定的是单自由度 (1-DOF) PID 控制器,则 pidTuner 将针对如图所示的单位反馈环设计控制器:

  • 如果 typeCbase 指定的是二自由度 (2-DOF) PID 控制器,则 pidTuner 将按照下图反馈环所示设计二自由度控制器:

  • PID 调节器的默认目标相位裕度为 60 度,并会自动调节 PID 增益以平衡性能(响应时间)与稳健性(稳定裕度)。使用响应时间带宽相位裕度滑块,根据您的需求调节控制器的性能。提高性能通常会降低稳健性,反之亦然。

  • 响应菜单中选择响应图以分析控制器的性能。

  • 如果您提供了 Cbase,请选中显示基线以显示基线控制器的响应。

  • 有关这些使用 PID 调节器的更多详细信息,请参阅用 PID 调节器设计 PID 控制器

  • 有关实时编辑器中的交互式 PID 调节,请参阅调节 PID 控制器实时编辑器任务。此任务可以交互方式设计 PID 控制器,并为实时脚本自动生成 MATLAB® 代码。

算法

有关 MathWorks® PID 调节算法的信息,请参阅 PID 调节算法

备选方法

您可以从 MATLAB 桌面的 App 选项卡中打开 PID 调节器。在您执行此操作时,请使用 PID 调节器中的被控对象菜单来指定您的被控对象模型。

要在命令行中进行 PID 调节,请使用 pidtunepidtune 命令可以一次为多个被控对象设计控制器。

有关实时编辑器中的交互式 PID 调节,请参阅调节 PID 控制器实时编辑器任务。此任务可以交互方式设计 PID 控制器,并为实时脚本自动生成 MATLAB 代码。

版本历史记录

在 R2014b 中推出