基于迭代扩展卡尔曼滤波算法的倒立摆控制系统matlab仿真

简介: 本课题研究基于迭代扩展卡尔曼滤波算法的倒立摆控制系统,并对比UKF、EKF、迭代UKF和迭代EKF的控制效果。倒立摆作为典型的非线性系统,适用于评估不同滤波方法的性能。UKF采用无迹变换逼近非线性函数,避免了EKF中的截断误差;EKF则通过泰勒级数展开近似非线性函数;迭代EKF和迭代UKF通过多次迭代提高状态估计精度。系统使用MATLAB 2022a进行仿真和分析,结果显示UKF和迭代UKF在非线性强的系统中表现更佳,但计算复杂度较高;EKF和迭代EKF则更适合维数较高或计算受限的场景。

1.课题概述
基于迭代扩展卡尔曼滤波算法的倒立摆控制系统,对比UKF,EKF迭代UKF,迭代EKF四种卡尔曼滤波的控制效果。

2.系统仿真结果

1.png
2.png
3.png
4.png

3.核心程序与模型
版本:MATLAB2022a

X_iukf        = zeros(2, Times1);
X_iukf(:,1)   = state0;
P_iukf        = zeros(2,2,Times1);
P_iukf(:,:,1) = Sigma_;
for i=1:Times1-1
    [X_iukf(:,i+1), P_iukf(:,:,i+1)] = func_iter_EKF(X_iukf(:,i), P_iukf(:,:,i), f, [z_(i,:)]', Q, R, dt);
end
err_ekf  =X_ekf  - theta00(1:dt/dt0:end,:)';
err_iekf = X_iekf - theta00(1:dt/dt0:end,:)';
err_ukf  =X_ukf  - theta00(1:dt/dt0:end,:)';
err_iukf = X_iukf - theta00(1:dt/dt0:end,:)';

figure
subplot(2,2,1)
plot(mod(err_ekf(1,:)-pi, 2*pi).^2)
title('EKF控制误差')
ylabel('theta');
subplot(2,2,2)
plot(mod(err_iekf(1,:)-pi,2*pi).^2)
title('迭代EKF控制误差')
ylabel('theta');
subplot(2,2,3)
plot(mod(err_ukf(1,:)-pi,2*pi).^2)
title('UKF控制误差')
ylabel('theta');
subplot(2,2,4)
plot(mod(err_iukf(1,:)-pi,2*pi).^2)
title('迭代UKF控制误差')
ylabel('theta');

figure
subplot(2,2,1)
plot(err_ekf(2,:))
title('EKF控制误差')
ylabel('theta dot');
subplot(2,2,2)
plot(err_iekf(2,:))
title('迭代EKF控制误差')
ylabel('theta dot');
subplot(2,2,3)
plot(err_ukf(2,:))
title('UKF控制误差')
ylabel('theta dot');
subplot(2,2,4)
plot(err_iukf(2,:))
title('迭代UKF控制误差')
ylabel('theta dot');


P_ekf2  = reshape(P_ekf, [4, Times1]);
P_iekf2 = reshape(P_iekf, [4, Times1]);
P_ukf2  = reshape(P_ukf, [4, Times1]);
P_iukf2 = reshape(P_iukf, [4, Times1]);

figure;
plot(P_ekf2(1,:))
hold on
plot(P_iekf2(1,:))
hold on
plot(P_ukf2(1,:))
hold on
plot(P_iukf2(1,:))
legend('EKF','迭代iEKF','UKF','迭代UKF')
0007

4.系统原理简介
倒立摆控制系统是一种具有挑战性的非线性控制系统,常用于研究控制算法的性能。扩展卡尔曼滤波(EKF)和无迹卡尔曼滤波(UKF)是两种常用的非线性滤波方法,用于估计系统的状态。本文将详细介绍基于迭代扩展卡尔曼滤波算法的倒立摆控制系统,并对比UKF、EKF迭代UKF和迭代EKF的性能。

4.1、UKF(无迹卡尔曼滤波)
UKF是一种基于无迹变换(Unscented Transform,UT)的非线性滤波方法。它通过选择一组确定的sigma点来逼近非线性函数的概率密度函数,从而避免了EKF中对非线性函数进行泰勒级数展开带来的截断误差。

476c5a2e34383ab9bf9f22decb5cc692_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
1d5dcfc72f5615d3d16bb79230f24de1_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

4.2 EKF(扩展卡尔曼滤波)
EKF是一种基于泰勒级数展开的非线性滤波方法。它通过在当前估计值附近对非线性函数进行泰勒级数展开,并保留一阶项来近似非线性函数。然后利用卡尔曼滤波的框架进行状态估计。

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

4.3iEKF(迭代扩展卡尔曼滤波)
iEKF是一种基于迭代思想的扩展卡尔曼滤波方法。它通过多次迭代来改进状态估计的精度。在每次迭代中,利用上一次迭代的估计值对非线性函数进行泰勒级数展开,并更新状态估计,IEKF 的核心思想就是想 提高观测方程的线性化精度,因为我们之前的 EKF 都是把观测方程在IMU得到的 先验状处进行线性化,此时线性化是观测方程为:

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

4.4 iUKF(迭代无迹卡尔曼滤波)
iUKF结合了无迹卡尔曼滤波和迭代思想,通过多次迭代来改进状态估计的精度。在每次迭代中,利用上一次迭代的估计值重新计算sigma点,并通过无迹变换传播sigma点来更新状态估计。

4.5优缺点比较
UKF和iUKF相较于EKF和iEKF,由于采用了无迹变换,对于非线性函数的逼近更为准确,因此在非线性较强的系统中表现更好。然而,UKF和iUKF的计算复杂度相对较高,对于维数较高的系统可能会面临计算上的挑战。

   另一方面,EKF和iEKF在线性化过程中只保留了一阶项,因此在非线性较强时可能会导致较大的估计误差。但是,它们的计算复杂度相对较低,对于维数较高的系统更为实用。此外,通过迭代的方式,iEKF和iUKF可以进一步提高状态估计的精度。

    总结来说,选择UKF、EKF、iUKF还是iEKF取决于具体的系统特性和需求。在非线性较强且维数较低的系统中,UKF和iUKF可能是更好的选择;而在维数较高或对计算复杂度有限制的场景中,EKF和iEKF可能更为实用。
相关文章
|
3天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
5天前
|
安全 调度
电力系统的负荷损失和潮流计算matlab仿真,对比最高度数,最高介数以及最高关键度等节点攻击
本课题研究节点攻击对电力系统稳定性的影响,通过模拟最高度数、最高介数和最高关键度攻击,对比不同攻击方式下的停电规模。采用MATLAB 2022a 进行系统仿真,核心程序实现线路断开、潮流计算及优化。研究表明,节点攻击会导致负荷损失和系统瘫痪,对电力系统的安全构成严重威胁。通过分析负荷损失率和潮流计算,提出减少负荷损失的方法,以提升电力系统的稳定性和安全性。
|
5天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
该算法结合了遗传算法(GA)与分组卷积神经网络(GroupCNN),利用GA优化GroupCNN的网络结构和超参数,提升时间序列预测精度与效率。遗传算法通过模拟自然选择过程中的选择、交叉和变异操作寻找最优解;分组卷积则有效减少了计算成本和参数数量。本项目使用MATLAB2022A实现,并提供完整代码及视频教程。注意:展示图含水印,完整程序运行无水印。
|
4天前
|
算法 决策智能
基于禁忌搜索算法的VRP问题求解matlab仿真,带GUI界面,可设置参数
该程序基于禁忌搜索算法求解车辆路径问题(VRP),使用MATLAB2022a版本实现,并带有GUI界面。用户可通过界面设置参数并查看结果。禁忌搜索算法通过迭代改进当前解,并利用记忆机制避免陷入局部最优。程序包含初始化、定义邻域结构、设置禁忌列表等步骤,最终输出最优路径和相关数据图表。
|
2天前
|
算法
基于最小二乘递推算法的系统参数辨识matlab仿真
该程序基于最小二乘递推(RLS)算法实现系统参数辨识,对参数a1、b1、a2、b2进行估计并计算误差及收敛曲线,对比不同信噪比下的估计误差。在MATLAB 2022a环境下运行,结果显示了四组误差曲线。RLS算法适用于实时、连续数据流中的动态参数辨识,通过递推方式快速调整参数估计,保持较低计算复杂度。
|
5天前
|
编解码 算法 数据挖掘
基于MUSIC算法的六阵元圆阵DOA估计matlab仿真
该程序使用MATLAB 2022a版本实现基于MUSIC算法的六阵元圆阵DOA估计仿真。MUSIC算法通过区分信号和噪声子空间,利用协方差矩阵的特征向量估计信号到达方向。程序计算了不同角度下的MUSIC谱,并绘制了三维谱图及对数谱图,展示了高分辨率的DOA估计结果。适用于各种形状的麦克风阵列,尤其在声源定位中表现出色。
|
2天前
|
机器学习/深度学习 算法 数据可视化
基于QLearning强化学习的机器人避障和路径规划matlab仿真
本文介绍了使用MATLAB 2022a进行强化学习算法仿真的效果,并详细阐述了Q-Learning原理及其在机器人避障和路径规划中的应用。通过Q-Learning算法,机器人能在未知环境中学习到达目标的最短路径并避开障碍物。仿真结果展示了算法的有效性,核心程序实现了Q表的更新和状态的可视化。未来研究可扩展至更复杂环境和高效算法。![](https://ucc.alicdn.com/pic/developer-ecology/nymobwrkkdwks_d3b95a2f4fd2492381e1742e5658c0bc.gif)等图像展示了具体仿真过程。
8 0
|
3天前
|
机器学习/深度学习 传感器 安全
基于模糊神经网络的移动机器人路径规划matlab仿真
该程序利用模糊神经网络实现移动机器人的路径规划,能在含5至7个静态未知障碍物的环境中随机导航。机器人配备传感器检测前方及其两侧45度方向上的障碍物距离,并根据这些数据调整其速度和方向。MATLAB2022a版本下,通过模糊逻辑处理传感器信息,生成合理的路径,确保机器人安全到达目标位置。以下是该程序在MATLAB2022a下的测试结果展示。
|
10天前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
|
5天前
|
数据采集 算法 5G
基于稀疏CoSaMP算法的大规模MIMO信道估计matlab性能仿真,对比LS,OMP,MOMP,CoSaMP
该研究采用MATLAB 2022a仿真大规模MIMO系统中的信道估计,利用压缩感知技术克服传统方法的高开销问题。在稀疏信号恢复理论基础上,通过CoSaMP等算法实现高效信道估计。核心程序对比了LS、OMP、NOMP及CoSaMP等多种算法的均方误差(MSE),验证其在不同信噪比下的性能。仿真结果显示,稀疏CoSaMP表现优异。
18 2