自适应PID参数调整动图及调整过程,真实可用的matlab代码

自适应PID参数调整动图及调整过程,真实可用的matlab代码

PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。
顾名思义,PID控制算法是结合比例、积分和微分三种环节于一体的控制算法,它是连续系统中技术最为成熟、应用最为广泛的一种控制算法。
该控制算法出现于20世纪30至40年代,适用于对被控对象模型了解不清楚的场合。实际运行的经验和理论的分析都表明,运用这种控制规律对许多工业过程进行控制时,都能得到比较满意的效果。
PID控制的实质就是根据输入的偏差值,按照比例、积分、微分的函数关系进行运算,运算结果用以控制输出。

PID有串级PID和并级PID之分,也有模拟式PID和数字式PID。
在实际应用过程中,一定要有P项,可以没有I或者D项。积分环节的作用主要用于消除静差,微分环节的作用能反映偏差信号的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。

下面是一个PID控制结构图
在这里插入图片描述

大伙记得点个赞啊,支持一下作者,才能出更多精品文章。

clc
close all
clear all

p=0:8/1000:8;       %比例系数Kp从08.5
d=0:1/1000:1;      %微分系数Kd从01
i=0:1/1000:1;
n=length(p);  

p1=3.5*ones(n,1);
p2=8.5:-5/1000:3.5;
i1=0.76*ones(n,1);

a = zeros(n,1);
PID=[p',a,a;  p2',a,a;  p1,i',a;   p1,i1,d']; %初始化PID参数
grid on 
for pid=1:1:4*n
    ts=0.005;                  %采样时间=0.005s
    sys=tf(0.998,[0.021,1]);   %建立被控对象传递函数
    dsys=c2d(sys,ts,'z');      %离散化
    [num,den]=tfdata(dsys,'v');   
    e_1=0;                     %前一时刻的偏差      
    Ee=0;                      %累积偏差
    u_1=0.0;                   %前一时刻的控制量
    y_1=0;                     %前一时刻的输出

    %PID参数
    kp=PID(pid,1);    
    ki=PID(pid,2);
    kd=PID(pid,3);
    u=zeros(1,5000);
    time=zeros(1,5000);
    for k=1:1:5000
        time(k)=k*ts;   %时间参数
        r(k)=1500;      %给定量
        y(k)=-1*den(2)*y_1+num(2)*u_1+num(1)*u(k);
        e(k)=r(k)-y(k);   %偏差
        u(k)=kp*e(k)+ki*Ee+kd*(e(k)-e_1);   
        Ee=Ee+e(k);    
        u_1=u(k);    
        y_1=y(k);    
        e_1=e(k);
    end
    p1=plot(time,r,time,y);xlim([0,0.25]);ylim([0,2200])
    title(['Kp=',num2str(kp),' Ki=',num2str(ki),' Kd= ',num2str(kd)]);
    drawnow   
    pause(0.00001);    
end
xlabel('时间t/s');
ylabel('输出量');
legend('r(t)给定值','y(t)输出函数');


在这里插入图片描述

  • 22
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值