基于kalman的PID控制.ppt
第二十一章,MATLAB优化算法案例分析与应用,第21章 基于kalman的PID控制,第二十一章,MATLAB优化算法案例分析与应用,21.1 PID控制原理,在模拟控制系统中,控制器最常用的控制规律是PID控制。模拟PID控制系统原理框图如图21-1所示。系统由模拟PID控制器和被控对象组成。,图21-1 模拟PID控制系统原理框图,第二十一章,MATLAB优化算法案例分析与应用,21.1 PID控制原理,简单来说,PID控制器各校正环节的作用如下:比例环节:成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。Kp 越大,系统的响应速度越快,调节精度越高,但是容易产生超调,超过一定范围会导致系统振荡加剧甚至不稳定。积分环节:主要用于消除静差,提高系统的无差度,可使系统稳定性下降,动态响应变慢。积分作用的强弱取决于积分时间常数 T1,T1 越大,积分作用越弱,系统的静态误差消除越快,但是容易在初期产生积分饱和现象,从而引起响应过程的较大超调。微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。微分环节的作用是在回应过程中抑制偏差向任何方向的变化,对偏差变化进行提前预测。但是会使响应过程提前制动,从而延长调节时间。,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,在现代随机最优控制和随机信号处理技术中,信号和噪声往往是多维非平稳随机过程。因其时变性,功率谱不固定。在1961年初提出了卡尔曼滤波理论,该理论采用时域上的递推算法在数字计算机上进行数据滤波处理。,离散卡尔曼滤波器递推算法为,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,卡尔曼滤波器结构如图21-2所示。,图21-2 卡尔曼滤波器结构图,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.1 含噪音信号的滤波常见处理方法,典型模拟滤波器有:巴特沃斯(Butterworth)滤波器具有单调下降的幅频特性;切比雪夫(Chebyshev)滤波器:幅频特性在通带或阻带有波动,提高选择性;贝塞尔(Bessel)滤波器:通带内较好的线性相位;椭圆(ElliPse)滤波器:较好的线性相位。不同的滤波器设计针对不同的信号分析处理,以期达到实时处理的效果,提高系统效率。,(1)LMS 滤波器,权向量更新:,期望信号的估计:,估计误差:,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.1 含噪音信号的滤波常见处理方法,(1)LMS 滤波器,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.1 含噪音信号的滤波常见处理方法,(1)LMS 滤波器,滤波器进行100次独立实验,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.1 含噪音信号的滤波常见处理方法,(1)LMS 滤波器,图21-8 误差曲线,图21-7参数逼近,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.1 含噪音信号的滤波常见处理方法,(1)FIR 滤波器,重复100次,产生样本经由 FIR 滤波器,用 RLS 算法实现 u(n)的线性预测,采用 RLS 算法迭代运算如下:,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.1 含噪音信号的滤波常见处理方法,(1)FIR 滤波器,重复100次,,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.1 含噪音信号的滤波常见处理方法,卡尔曼滤波理论,该理论采用时域上的递推算法在数字计算机上进行数据滤波处理。通过不断的更新和矫正协方差值,通过不断的获取系统测量值,不断的把covariance递归,从而估算出最优估计值。Kalman滤波具有实时性,通过测量跟踪实现信号的分析处理,较 LMS 滤波器和 FIR 滤波器,具有误差小、实时效果好、滤波平滑等特点,广泛应用于动态多变量系统状态建模中。,具体的kalman滤波流程图如图2-11所示。,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.2 采用卡尔曼滤波器实现信号的滤波,%Measurement update Mn=P*C/(C*P*C+R);P=A*P*A+B*Q*B;P=(eye(2)-Mn*C)*P;x=A*x+Mn*(yv(k)-C*A*x);ye(k)=C*x+D;%滤波值 errcov(k)=C*P*C;%估计量协方差值%Time update x=A*x+B*u(k);u_2=u_1;u_1=u(k);y_2=y_1;y_1=ye(k);,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.2 采用卡尔曼滤波器实现信号的滤波,图21-12 原始信号及带有加性噪声的信号,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.2 采用卡尔曼滤波器实现信号的滤波,图21-13 原始信号及滤波后的信号,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.2 采用卡尔曼滤波器实现信号的滤波,图21-14 误差协方差的变化,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.3 采用卡尔曼滤波进行测量温度的跟踪,图21-15 原始信号及加有噪音的信号,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.3 采用卡尔曼滤波进行测量温度的跟踪,图21-16 kalman滤波信号和平滑处理后的信号,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.3 采用卡尔曼滤波的PID控制系统,图21-17 基于卡尔曼的PID控制系统结构,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.3 采用卡尔曼滤波PID控制,采用卡尔曼滤波器的PID控制,如下列对象:,y(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;yv(k)=y(k)+v(k);%Measurement updateMn=P*C/(C*P*C+R);P=A*P*A+B*Q*B;P=(eye(2)-Mn*C)*P;x=A*x+Mn*(yv(k)-C*A*x);ye(k)=C*x+D;%滤波值,第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.3 采用卡尔曼滤波PID控制,图21-18 无滤波器时PID控制阶跃响应(M=1),第二十一章,MATLAB优化算法案例分析与应用,21.2 基于卡尔曼滤波器的PID控制,21.2.3 采用卡尔曼滤波PID控制,图21-19 加入卡尔曼滤波器后的PID控制阶跃响应(M=2),