2026a

# loopshapingPID


选择 pid 控制器的参数 (并联形式),频率 被移动

函数库: TyControlSystems

# 描述

选择 pid 控制器的参数使开环传函数 L = PC 在频率 ω 处的 Nyquist 曲线与 T = PC / (1+PC) 的幅值为 Mt 时的圆相切。 ϕt 表示实轴与切点之间的正夹角,以度数为单位。

对于具有惯性的过程,选择 Mt 和 ϕt 的默认值是为了给出良好的设计,对于更简单的过程可能需要调优。

所得控制器的增益通常随着 ω 和 Mt 的增加而增加。

# 语法

C, kp, ki, kd, CF = loopshapingPID(P0, ω; form, Mt, ϕt, lb, ub, Tf, verbose, F)

# 说明

loopshapingPID 通过调整 PID 控制器参数使开环传函数 L = PC 在频率 ω 处的 Nyquist 曲线与 T = PC/(1+PC) 的幅值为 Mt 时的圆相切。ϕt 表示实轴与切点之间的正夹角,以度数为单位。

Mt 是闭环系统幅频特性的谐振峰值(最大幅值)。通过使 Nyquist 曲线与 Mt 圆相切,可以确保闭环系统在频率 ω 处具有准确的幅值 Mt,并且由于相切条件,该点是幅频特性的极值点(通常是最大值)。Mt 影响了系统的超调量和阻尼特性。

频率 ω 是谐振频率,即闭环系统响应达到峰值时的频率。通过选择 ω,可以调整系统的带宽和响应速度。

角度 ϕt 定义了切点处开环频率响应的相位。这个相位角影响了系统的稳定性和鲁棒性,并与PID控制器的相位贡献相关。通过适当选择 Mt 和 ϕt,可以间接确保足够的相位裕度和增益裕度,提高系统稳定性。

相切条件意味着在频率 ω 处,闭环幅值响应是平坦的(即导数为零),这表明系统对该频率附近的参数变化最不敏感,从而增强了鲁棒性。同时,与 Mt 圆相切通常对应着闭环灵敏度函数的最小化,减少了系统对扰动和模型不确定性的敏感性。

# 示例

通过指定频率确定 PID 控制器参数

考虑以下被控对象模型

using TyControlSystems
using TyPlot
pkg_dir = pkgdir(TyControlSystems)
source_path = pkg_dir * "/examples/resources/System Synthesis/Classical Control Method/LoopshapingPID/DoubleMassModel.jl"
include(source_path)
sys;
ω = 100;

根据系统在给定频率下的响应特性计算PID控制器

C, kp, ki, kd, CF = loopshapingPID(tf(sys), ω);

C为控制器对象,CF为控制器与被控对象的串联,可视为系统的开环传递函数。

查看闭环系统的阶跃响应

csys = feedback(CF)
step(csys)
xlim(0,3e-12)
通过指定频率及对应的幅值相角确定控制器

考虑以下被控对象模型

using TyControlSystems
using TyPlot
pkg_dir = pkgdir(TyControlSystems)
source_path = pkg_dir * "/examples/resources/System Synthesis/Classical Control Method/LoopshapingPID/DoubleMassModel.jl"
include(source_path)
sys;
ω = 5;
Mt = 1.3;
phit = 80;

根据系统在给定频率下的响应特性计算PID控制器

C, kp, ki, kd, CF = loopshapingPID(tf(sys), ω; Mt, phit);

C为控制器对象,CF为控制器与被控对象的串联,可视为系统的开环传递函数。

查看闭环系统的阶跃响应

csys = feedback(CF)
step(csys)
xlim(0,1e-8)

# 输入参数

P0 - 动态系统
传递函数模型 | 零极点增益模型 | 状态空间模型

动态系统,指定为 SISO 或 MIMO 动态系统模型。所支持的动态系统包括:

连续时间或离散时间数值 LTI 模型,如 tfzpkss 模型。

ω - 谐振频率
正实数

谐振频率,即闭环系统响应达到峰值时的频率,指定为正实数。通过选择 ω,可以调整系统的带宽和响应速度。

数据类型: Float | Int

# 名称-值对组参数

form - PID 控制器的形式
字符串 | 符号

所生成 PID 控制器的形式,指定为以下字符串或符号之一::standard、:parallel,默认为 :standard。

数据类型: String | Symbol

Mt - 谐振峰值
正实数

闭环系统幅频特性的谐振峰值(最大幅值),指定为正实数,默认为 1.3。通过使 Nyquist 曲线与 Mt 圆相切,可以确保闭环系统在频率 ω 处具有准确的幅值 Mt,并且由于相切条件,该点是幅频特性的极值点(通常是最大值)。通过选择 Mt,可以控制系统的超调量和阻尼特性。

数据类型: Float | Int

ϕt - 相位条件
实数

角度 ϕt 定义了切点处开环频率响应的相位,指定为实数,默认为 75。相位条件 ϕt 影响了系统的稳定性和鲁棒性,并与 PID 控制器的相位贡献相关。

数据类型: Float | Int

lb - PID 控制器微分增益下界
实数

PID 控制器微分增益的下界,以 10 为底的对数表示,指定为实数,默认为 -10。

数据类型: Float | Int

ub - PID 控制器微分增益上界
实数

PID 控制器微分增益的上界,以 10 为底的对数表示,指定为实数,默认为 10。

数据类型: Float | Int

Tf - 二阶滤波器的时间常数
实数

二阶滤波器的时间常数或参数,指定为实数,默认为 ω/1000。Tf 可以使所生成的 PID 控制器严格因果,对于物理控制器,所设置的 Tf 通常比默认值慢。所使用二阶滤波器的形式由关键字参数 F 决定。

数据类型: Float | Int

verbose - 参数检测标志
布尔值

进行参数检测的标志位,指定为布尔值,默认为 true。

数据类型: Bool

F - 预设计滤波器
传递函数模型 | 零极点增益模型 | 状态空间模型

预设计滤波器,指定为 SISO 或 MIMO 动态系统模型,默认为 tf(1, [Tf^2, 2*Tf/sqrt(2), 1])。所支持的动态系统包括:

连续时间或离散时间数值 LTI 模型,如 tfzpkss 模型。

# 输出参数

C - PID 控制器
单自由度并联型 PID 控制器 | 单自由度标准型 PID 控制器模型

PID 控制器,返回为单自由度并联型 PID 控制器或单自由度标准型 PID 控制器模型,其类型由 form 关键字参数指定。

kp - PID 控制器的比例增益
实数

PID 控制器的比例增益,返回为实数。

数据类型: Float | Int

ki - PID 控制器的积分系数
实数

PID 控制器的积分增益或积分时间常数,返回为实数,其含义由 form 关键字参数决定。

数据类型: Float | Int

kd - PID 控制器的微分系数
实数

PID 控制器的微分增益或微分时间常数,返回为实数,其含义由 form 关键字参数决定。

数据类型: Float | Int

CF - 开环系统
传递函数模型 | 零极点增益模型 | 状态空间模型

开环系统,返回为与 P0 类型相同的动态系统模型。

# 另请参阅

stabregionPID | placePI