matlab学习位置式和增量式PID

参考了(19条消息) 位置式PID与增量式PID区别浅析_Z小旋-CSDN博客_增量式pid

PID 实指“比例 proportional”、“积分 integral”、“微分 derivative”,这三项构 成 PID 基本要素。每一项完成不同任务,对系统功能产生不同的影响。它的结构简单,参数易 于调整,是控制系统中经常采用的控制算法。

PID:比例单元(P)、积分单元(I)和微分单元(D)组成

PID控制公式

其中:u(t)为控制器输出的控制量;(输出)

e(t)为偏差信号,它等于给定量与输出量之差;(输入)

KP 为比例系数;(对应参数 P)

TI 为积分时间常数;(对应参数I)

TD 为微分时间常数。(对应参数 D) 
 

位置式 PID 算法 :

pid算法中位置型和增量型有什么区别,分析两者优缺点

 e(k): 用户设定的值(目标值) -  控制对象的当前的状态值 

比例P :    e(k)

积分I :   ∑e(i)     误差的累加

微分D :  e(k) - e(k-1)  这次误差-上次误差

也就是位置式PID是当前系统的实际位置,与你想要达到的预期位置的偏差,进行PID控制
 

Matlab例子:

clc
clear

%假设目标为100,当前为0;
target = 100;
init = 0;

kp = 0.1;
ki = 0.2;
kd = 0.3;

length = 100;
e = zeros(length+1,1);
e(1) = target - init;
e(2) = e(1);
u = zeros(length,1);
for i = 2:length
   u(i) = kp*e(i) + ki*sum(e) + kd*(e(i)-e(i-1));
   e(i+1) = target - u(i);  
end

figure(1)
plot(u)
hold on

增量式PID:

pid算法中位置型和增量型有什么区别,分析两者优缺点

比例P :    e(k)-e(k-1)   这次误差-上次误差

积分I :   e(i)     误差   

微分D :  e(k) - 2e(k-1)+e(k-2)   这次误差-2*上次误差+上上次误差

 增量式PID根据公式可以很好地看出,一旦确定了 KP、TI  、TD,只要使用前后三次测量值的偏差, 即可由公式求出控制增量

而得出的控制量▲u(k)对应的是近几次位置误差的增量,而不是对应与实际位置的偏差     没有误差累加

也就是说,增量式PID中不需要累加。控制增量Δu(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果,并且在系统发生问题时,增量式不会严重影响系统的工作

clc
clear

%假设目标为100,当前为0;
target = 100;
init = 0;

kp = 0.1;
ki = 0.2;
kd = 0.1;

length = 100;
du = zeros(length,1);
u = zeros(length,1);
e = zeros(length,1);
e(1) = target - init;
e(2) = e(1);
e(3) = e(1);
for i = 3:length
    du(i) = kp*(e(i)-e(i-1)) + ki*e(i) +...
            kd*(e(i)-2*e(i-1)+e(i-2));
    u(i) = sum(du);
    e(i+1) = target - u(i);  
end

figure(1)
plot(u)
% hold on

figure(2)
plot(du)
% hold on

串级PID:

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值