这个怎么对增量式PID进行整定呢

img

img


这个怎么对增量式PID进行整定呢?使用临界比例度法对他进行整定,先对kp得出值然后根据经验公式对他整定吗?

从而抑制过调和振荡。

对于使用临界比例度法来整定增量式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);

在得到临界比例度法计算得到的参数值之后,可以通过仿真测试来进一步验证调整结果。