通过MATLAB实现PID控制器,积分分离控制器以及滑模控制器

发布于:2024-06-15 ⋅ 阅读:(165) ⋅ 点赞:(1)

目录

1.课题概述

2.系统仿真结果

3.核心程序与模型

4.系统原理简介

5.完整工程文件


1.课题概述

        通过MATLAB实现PID控制器,积分分离控制器以及滑模控制器。通过对比三个算法可知,采用滑模控制算法,其具有最快的收敛性能,较强的鲁棒性,以及较小的超调量。其性能略优于基于积分分离的PID控制器,远优于PID控制器的控制性能。

2.系统仿真结果

(完整程序运行后无水印)

3.核心程序与模型

版本:MATLAB2022a

................................................................
[A,B,C,D] = c2dm(A1,B1,C1,D1,ts,'z'); 
x   = [-0.5;-0.5]; 
r_1 = 0;
r_2 = 0; 
 
for k=1:1:4000 
    time(k) = k; 
    r(k)    = 15; 
    c       = 10;
    eq      = 5;
    q       = 30; 
    Ce      = [c,1]; 
    dr(k)   = (r(k)-r_1)/ts; 
    dr_1    = (r_1-r_2)/ts; 
    r1(k)   = 2*r(k)-r_1; 
    dr1(k)  = 2*dr(k)-dr_1; 
    R       = [r(k);dr(k)]; 
    R1      = [r1(k);dr1(k)]; 
    E       = R-x; 
    e(k)    = E(1); 
    de(k)   = E(2); 
    s(k)    = Ce*E; 
    ds(k)   =-eq*ts*sign(s(k))-q*ts*s(k); 
	u(k)    = inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));    
	x       = A*x+B*u(k); 
	y(k)    = x(1); 
    r_2     = r_1; 
    r_1     = r(k); 
end 

figure;
plot(time,r,'r',time,y,'b'); 
xlabel('Time(second)');
ylabel('(r and y)'); 
save r3.mat y
08_023-1m

4.系统原理简介

        PID控制器、积分分离控制器以及滑模控制器是控制工程中常用的三种控制器类型,它们各自拥有独特的设计原理和应用场合。

        PID 控制器由比例单元( P )、积分单元( I )和微分单元( D )组成。其输入 e (t) 与输出 u (t) 的关系为公式1:

       积分分离控制器是对PID控制器的一种改进,旨在解决PID控制器在大偏差时积分项积累过快导致的饱和问题。在系统出现大偏差时,暂时关闭积分作用,待系统进入稳定区后再启用,以提高系统的稳定性。

       在PI控制中,积分环节的作用是消除静态误差,提高系统的控制精度。如果在误差较大的初始阶段引入积分环节,会造成PI的积分累积,从而引起系统较大的超调。积分分离PI控制器的基本设计思想是当输入有较大变化,指令值与实际反馈的偏差值大于一定阈值时,不进行积分,只进行比例调节。而当偏差值小于一定值时,恢复积分调节以消除系统的静态误差。

       滑模控制(Sliding Mode Control, SMC)是一种非线性控制策略,通过设计一个滑动面,使系统状态沿着该滑动面向目标状态快速收敛。其特点是鲁棒性强,能有效抑制外部扰动和系统不确定性。

      下面介绍一下如何进行滑模控制器的设计。首先,将滑模控制定义一个开关面,将状态控制分成两个具有不同动态特性的子空间,并选择合适的控制规律可以控制系统的状态,一旦从任意一个子空间到达滑模面之后,将沿着滑模面的方向运动并始终保持在滑模面上。设计控制规律必须满足趋近条件,以此保证滑模面的存在。

5.完整工程文件

v

v