从而抑制过调和振荡。
对于使用临界比例度法来整定增量式PID,可以按照以下步骤进行:
1.根据系统的传递函数,先确定比例环节的系数Kp。临界比例度法是基于试控法的,需要将Kp先设定为1,然后进行下一步的调整。
2.将系统的传递函数变换为增量式传递函数,在matlab中可以使用c2d函数进行离散化处理。得到增量式传递函数之后,再根据控制器的离散时间间隔进行调整,比如常用的Ziegler–Nichols法则,即取采样周期的1-2倍作为临界周期。
3.根据临界比例度法的原则,将系统的反馈系数设定为1。然后通过试控的方法来调整积分环节的系数Ki和微分环节的系数Kd,使得系统产生临界振荡的状态。
4.记录下达到临界振荡的比例系数Kp、积分系数Ki和微分系数Kd,经过计算即可得到合适的参数值。
下面是一个简单的matlab示例代码,用于实现临界比例度法的整定方法。
% 系统参数
num = [1 5];
den = [1 9 14];
% 将系统传递函数变换为增量式传递函数
Ts = 0.2;
sysd = c2d(tf(num, den), Ts, 'zoh');
[numd, dend] = tfdata(sysd, 'v');
% 设定比例系数Kp为1
Kp = 1;
% 利用试控法来寻找临界振荡的状态
t = 0:Ts:20;
u = ones(1, length(t));
y = zeros(1, length(t));
ei = 0;
ed = 0;
for i = 2:length(t)
% 计算控制量
u(i) = u(i-1) + Kp*(y(i-1)-y(i-2)) + ei + ed;
% 限制控制量
if u(i) > 1
u(i) = 1;
elseif u(i) < -1
u(i) = -1;
end
% 计算系统响应
y(i) = -dend(2)*y(i-1) - dend(3)*y(i-2) + numd(2)*u(i-1) + numd(3)*u(i-2);
% 计算积分作用和微分作用
ei = ei + Kp*0.2*(y(i-1)-y(i-2));
ed = Kp*(y(i-1)-2*y(i-2)+y(i-3))/0.2;
end
% 绘制系统响应曲线
plot(t, y);
在得到临界比例度法计算得到的参数值之后,可以通过仿真测试来进一步验证调整结果。