1. 推进控制器PID结构辨识与整定目标设定
为什么整定前必须先做结构辨识
推进转速环的PID整定不是"试参数",而是"按对象特性配参数"。给定船舶推进电机与螺旋桨负载后,真正决定闭环动态的是从控制器输出(转矩/电流指令)到转速之间的等效惯性环节。螺旋桨负载转矩随转速近似二次增长(\(T_L \approx K_Q \omega^2\)),在工作点附近线性化后表现为一个附加阻尼,因此推进轴系在低速段常呈明显一阶惯性,在包含电机电磁时间常数与轴系扭振时则需用二阶(或一阶+延迟)描述。辨识的目的就是拿到增益 \(K\)、时间常数 \(T\)(或 \(T_1,T_2\))与纯延迟 \(\tau\),再据此反推可实现的带宽与超调目标。
给定对象与辨识方法
设推进电机采用转矩闭环(电流环已整定为近似1:5以上带宽比),则从转速指令侧看,被控对象可写为:
- 一阶模型:\(G(s)=\dfrac{K}{Ts+1}e^{-\tau s}\),其中 \(K\) 为转速/转矩指令稳态增益(rpm per N·m 或 rad/s per N·m),\(T\) 为机电时间常数。
- 二阶模型:\(G(s)=\dfrac{K}{(T_1 s+1)(T_2 s+1)}e^{-\tau s}\),\(T_1\) 为机电主导时间常数,\(T_2\) 为电磁或轴系次要时间常数。
工程上最稳妥的辨识手段是阶跃响应两点法:在稳定工作点施加小幅度转矩指令阶跃(例如额定转矩的5%~10%,避免螺旋桨进入强非线性区),记录转速响应,读取达到稳态值28.3%与63.2%的时间 \(t_{0.283}\)、\(t_{0.632}\)。对一阶+延迟模型有:
T = 1.5 * (t_0.632 - t_0.283)
tau = t_0.632 - T
K = Δn_ss / ΔT_cmd
若响应出现明显S形拐点或二次斜率变化,则用二阶拟合:先由拐点切线法估出 \(\tau\),再用 \(t_{0.632}/T\) 与 \(T_2/T_1\) 的查表关系分离两个时间常数。下面给出一个可直接运行的辨识脚本(Python,仅依赖标准库),输入为实测或仿真采样序列。
import math
def identify_first_order(t, y, u_step, y0=None):
"""两点法辨识 K/(Ts+1)e^(-tau s)"""
y0 = y[0] if y0 is None else y0
yss = y[-1]
dn = yss - y0
K = dn / u_step
t283 = t632 = None
for i in range(1, len(y)):
f = (y[i] - y0) / dn
if t283 is None and f >= 0.283:
t283 = t[i]
if t632 is None and f >= 0.632:
t632 = t[i]
break
T = 1.5 * (t632 - t283)
tau = t632 - T
return {"K": K, "T": T, "tau": max(tau, 0.0), "yss": yss}
# 示例:仿真采样(dt=0.02s,转矩阶跃 200 N·m,稳态转速上升 30 rpm)
dt = 0.02
t = [i * dt for i in range(400)]
K_true, T_true, tau_true = 0.15, 1.2, 0.08
u_step = 200.0
y = []
for ti in t:
td = ti - tau_true
if td <= 0:
y.append(0.0)
else:
y.append(K_true * u_step * (1 - math.exp(-td / T_true)))
res = identify_first_order(t, y, u_step)
print(res)
该示例的预期输出约为 {'K': 0.15, 'T': 1.2, 'tau': 0.08, ...},说明两点法在无噪声条件下能准确还原参数;实际数据需先做滑动平均滤波再辨识。
由辨识参数反推整定目标
拿到 \(K,T,\tau\) 后,整定目标不应凭感觉设定,而应按可实现性约束给出。对一阶+延迟对象,PI闭环的相位裕度约束给出带宽上限的近似关系:目标穿越频率 \(\omega_c\) 应满足 \(\omega_c \tau + \arctan(\omega_c T) \le 60°\)(留约60°相位裕度)。据此可先算出一个保守带宽,再结合螺旋桨负载的二次阻尼特性下调。
| 辨识结果 | 推导目标 | 设定值(示例) | 依据 |
|---|---|---|---|
| K=0.15 rpm/(N·m),T=1.2 s,τ=0.08 s | 目标带宽 ωc | 0.8~1.0 rad/s | 相位裕度≥60°,且低于轴系扭振一阶频率的1/5 |
| 同上 | 转速阶跃超调 | ≤5% | 避免螺旋桨推力突变引起轴系冲击 |
| 同上 | 抗扰恢复时间 | ≤8 s(恢复到±2%带内) | 约6~8倍主导时间常数,兼顾海况扰动抑制 |
注意:带宽目标必须与执行机构能力匹配。若电流环带宽仅约5 rad/s,则转速环目标带宽不应超过1 rad/s,否则电流环动态会被激发成振荡。抗扰恢复时间则用负载转矩阶跃(模拟螺旋桨进水/出水)来验证,而不是用转速指令阶跃。
目标设定的三条硬约束
- 带宽不能超过执行链能力:转速环带宽应低于电流环带宽的1/5,否则电流环延迟会吃掉相位裕度,表现为转速振荡而非快速响应。
- 超调目标要服从机械约束:螺旋桨推力与转速近似二次关系,5%转速超调对应约10%推力超调,轴系与齿轮箱的扭矩冲击需在此范围内评估。
- 抗扰恢复时间用负载阶跃验证:用转速指令阶跃验证跟踪性能,用负载转矩阶跃(模拟进水/出水、系泊突变)验证抗扰性能,两者不可混用同一组指标。