m基于PID+kalman滤波的控制器性能MATLAB仿真

简介: m基于PID+kalman滤波的控制器性能MATLAB仿真

1.算法描述

   PID控制器,即控制器的控制方式为P比例调整,I积分调整以及D微分调整三个部分构成,PID控制器是目前为止应用最为广泛的控制方式。PID控制器具有结构简单,性能稳定,参数设置简单等优势。PID控制器适用于各种控制对象无法进行测量获得系统参数的情况,其根据控制对象的输出和参考控制变量的输入差进行实时的调整实现对未知参数控制对象的有效控制。PID控制器由比例调整模块,积分调整模块以及微分调整模块三个部分构成,那么其输入的误差信号e(t)与输出u(t)的关系为公式6:

eba3391b3f99f8bdf6644abf7435be90_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
4e7decc443e80245c223f761374517ce_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

    公式中,参数kp表示的是比例调整模块的系数,其作用是将系统的反馈误差e(t)根据参数 kp进行调节,使得调整后的控制对象的反馈误差减小。当比例系数kp取较大值的时候,那么控制器的调整速度较快,但是其抖动也较大,从而导致系统了不稳定性。当比例系数kp取较小值的时候,那么控制器调整速度较慢,但调整过程较为稳定。

   参数ki表示的是积分调整模块的系数,其作用将消除系统中存在的稳态误差,当存在稳态误差的时候,通过积分调节模块进行调节,直到完全消除稳态误差为止,之后积分调节功能停止工作,积分调节模块输出一个固定值。当积分调制系数ki较小的时候,积分调节作用越强,反之,积分调节作用较弱,系统调整速度较慢。

  参数kd表示的是微分调整模块的系数,其主要是对系统反馈误差的变化率进行调整,其具有超前调整功能,可以预测系统反馈误差的变化率,因此可以在反馈误差产生之间将误差消除,因此通过设置微分调整参数,可以降低PID控制器的超调量,并加快系统的调整速度。

————————————————

   卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
   数据滤波是去除噪声还原真实数据的一种数据处理技术,Kalman滤波在测量方差已知的情况下能够从一系列存在测量噪声的数据中,估计动态系统的状态。由于它便于计算机编程实现,并能够对现场采集的数据进行实时的更新和处理,Kalman滤波是目前应用最为广泛的滤波方法,在通信,导航,制导与控制等多领域得到了较好的应用。

状态估计

  状态估计是卡尔曼滤波的重要组成部分。一般来说,根据观测数据对随机量进行定量推断就是估计问题,特别是对动态行为的状态估计,它能实现实时运行状态的估计和预测功能。比如对飞行器状态估计。状态估计对于了解和控制一个系统具有重要意义,所应用的方法属于统计学中的估计理论。最常用的是最小二乘估计,线性最小方差估计、最小方差估计、递推最小二乘估计等。其他如风险准则的贝叶斯估计、最大似然估计、随机逼近等方法也都有应用。

状态量

  受噪声干扰的状态量是个随机量,不可能测得精确值,但可对它进行一系列观测,并依据一组观测值,按某种统计观点对它进行估计。使估计值尽可能准确地接近真实值,这就是最优估计。真实值与估计值之差称为估计误差。若估计值的数学期望与真实值相等,这种估计称为无偏估计。卡尔曼提出的递推最优估计理论,采用状态空间描述法,在算法采用递推形式,卡尔曼滤波能处理多维和非平稳的随机过程。

理论

  卡尔曼滤波理论的提出,克服了威纳滤波理论的局限性使其在工程上得到了广泛的应用,尤其在控制、制导、导航、通讯等现代工程方面。

2.仿真效果预览
matlab2022a仿真结果如下:

第一个图不加滤波器

第二个图为加滤波器

c49beb307e5de0f5e6bef521018a93e9_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

B1=[0;b];
C1=[1 0];
D1=[0];
[A,B,C,D]=c2dm(A1,B1,C1,D1,ts,'z');
 
Q=1;               %Covariances of w
R=1;               %Covariances of v
 
P=B*Q*B';          %Initial error covariance
x=zeros(2,1);      %Initial condition on the state
u_1=0;u_2=0;
y_1=0;y_2=0;
ei=0;
error_1=0;
for k=1:N
  time(k)=k*ts;
rin(k)=1;
kp=8.0;ki=0.80;kd=0.20;
......................................................................
    
x=A*x+Mn*(yv(k)-C*A*x);
ye(k)=C*x+D;     %Filtered value
    
if M==1          %Not using filter
     yout(k)=yv(k);
end
if M==2      %Using filter
   yout(k)=ye(k);
end
error(k)=rin(k)-yout(k);
ei=ei+error(k)*ts;
u(k)=kp*error(k)+ki*ei+kd*(error(k)-error_1)/ts;   %PID
u(k)=u(k)+w(k);
相关文章
|
5月前
|
数据可视化
基于MATLAB的OFDM调制发射与接收仿真
基于MATLAB的OFDM调制发射与接收仿真
|
4月前
|
5G
基于IEEE 802.11a标准的物理层MATLAB仿真
基于IEEE 802.11a标准的物理层MATLAB仿真
279 0
|
4月前
|
算法
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
|
4月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
4月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
5月前
|
传感器 算法 数据挖掘
基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合
基于协方差交叉(CI)的多传感器融合算法,通过MATLAB仿真对比单传感器、SCC与CI融合在位置/速度估计误差(RMSE)及等概率椭圆上的性能。采用MATLAB2022A实现,结果表明CI融合在未知相关性下仍具鲁棒性,有效降低估计误差。
291 15
|
5月前
|
监控
基于MATLAB/Simulink的单机带负荷仿真系统搭建
使用MATLAB/Simulink平台搭建一个单机带负荷的电力系统仿真模型。该系统包括同步发电机、励磁系统、调速系统、变压器、输电线路以及不同类型的负荷模型。
916 5
|
5月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的XGBoost序列预测算法matlab仿真
基于WOA优化XGBoost的序列预测算法,利用鲸鱼优化算法自动寻优超参数,提升预测精度。结合MATLAB实现,适用于金融、气象等领域,具有较强非线性拟合能力,实验结果表明该方法显著优于传统模型。(238字)
|
5月前
|
算法 新能源 测试技术
基于PID控制器和电流控制器的电池充电比较研究(Matlab代码实现)
基于PID控制器和电流控制器的电池充电比较研究(Matlab代码实现)
195 3
|
5月前
|
机器学习/深度学习 存储 算法
【水下机器人建模】基于QLearning自适应强化学习PID控制器在AUV中的应用研究(Matlab代码实现)
【水下机器人建模】基于QLearning自适应强化学习PID控制器在AUV中的应用研究(Matlab代码实现)
398 0

热门文章

最新文章