无人驾驶二 卡尔曼滤波与PID控制

2023-05-16

链接:https://pan.baidu.com/s/108cN2yyKOiouiABXTYtGOw?pwd=1234 
提取码:1234

卡尔曼滤波形象的描述见:

卡尔曼滤波原理及实现_曦爷的博客-CSDN博客_卡尔曼原理

卡尔曼滤波与目标追踪示例见:

无人驾驶汽车系统入门(一)——卡尔曼滤波与目标追踪_AdamShan的博客-CSDN博客

清晰的推导见:

卡尔曼滤波 -- 从推导到应用(一)_白巧克力亦唯心的博客-CSDN博客_卡尔曼滤波算法

卡尔曼滤波的推导 - Thaurun - 博客园

对差分方程:

注意在离散状态空间方程中,测量方程稍微不同,先进行测量更新,再进行时间更新。

给空间状态参数赋值:

%Kalman filter
%x=Ax+B(u+w(k))
%y=Cx+D+v(k)
clear all;
close all;
 
TS=0.001;
 
%Continuous Plant to discrete-time Plant:
%sys=tf(133,[1,25,0]);
A=[0 1;0 -25];
B=[0;133];
C=[1 0];
D=[0];
[Ad,Bd,Cd,Dd]=c2dm(A,B,C,D,TS,'z');

卡尔曼滤波控制程序:

%Discrete Kalman filter
%x(k+1)=Ax(k)+B(u(k)+w(k));
%y(k)=Cx(k)+D+v(k)
function [u]=kalman(u1,u2,u3)
%u1:输入u
%u2:测量值yv
%u3:时间t
persistent A B C D Q R P x

yv=u2;
if u3==0
   TS=0.001;

   %Continuous Plant to discrete-time Plant:
    %sys=tf(133,[1,25,0]);
    A1=[0 1;0 -25];
    B1=[0;133];
    C1=[1 0];
    D1=[0];
    [A,B,C,D]=c2dm(A1,B1,C1,D1,TS,'z');
    
	%Covariances of w:
    Q=[0.1];

    %Covariances of v:
    R=[0.1];

    %初始估计值:
    x=zeros(2,1);

    %初始估计误差协方差:
    P=B*Q*B';
end
   
%后验,Measurement update:
%根据估计误差协方差和测量噪声协方差计算卡尔曼增益:
Kk=P*C'/(C*P*C'+R);

%计算最优估计值:    
%x=A*x+Mn*(yv-C*A*x);%‘注意本处原文有误!!
x=x+Kk*(yv-C*x);

%计算最优估计值和真实值之间的误差协方差矩阵,为下次递推做准备:
P=(eye(2)-Kk*C)*P;

ye=C*x+D;           %Filtered value

u(1)=ye;    %Filtered signal
u(2)=yv;    %Signal with noise

errcov=C*P*C';      %Covariance of estimation error

%先验,Time update:
%根据系统状态方程计算下一状态预测值:
x=A*x+B*u1;
%预测误差协方差:
P=A*P*A'+B*Q*B';

绘图程序:

close all;
figure(1);
plot(t,y(:,1),'r',t,y(:,2),'k:','linewidth',2);
xlabel('time(s)');ylabel('y,ye');
legend('ideal signal','filtered signal');
 
figure(2);
plot(t,y(:,1),'r',t,y1(:,1),'k:','linewidth',2);
xlabel('time(s)');ylabel('y,yv');
legend('ideal signal','signal with noise');

注意:

If the plant model is direct feedthrough, this will result in an algebraic loop. While Simulink can solve the algebraic loop most of the time, it usually slows down the simulation.

If the blocks in the algebraic loop have a discrete sample time, inserting a Unit Delay is usually the best solution. Of course this will change the dynamic of the system, this is something you need to evaluate and see if this is acceptable for your application.

If the blocks in the loop have a continuous sample time, what many users try is inserting a Memory block. The Memory block is similar to the Unit Delay block in a sense that it delays its input by one time step, however it works with variable-step signals.

However when simulating the model, we quickly notice that it simulates very slowly

参考:

Why you should never break a continuous algebraic loop with a Memory block » Guy on Simulink - MATLAB & Simulink

P=5; I=1; D=0.1; N=100;yd=sin(2*pi*0.05t)

不用卡尔曼滤波PID控制结果如下:

采用卡尔曼滤波后结果如下:

simulink仿真注意事项:

1、求解器采用离散系统求解器,定步长0.001s

 2、离散系统模型设置变量

3、卡尔曼滤波子程序模块设置

4、运行simulink模型前,先运行离散模型求解代码,得到离散系统的参数

5、PID控制器模块的采样时间设为0.001

 6、如果仿真输出设为对象"out",绘图代码需做更改

 

 

7、matlab的变量名、m文件名、模型文件名不用同名 !!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无人驾驶二 卡尔曼滤波与PID控制 的相关文章

  • 51单片机-宏晶STC程序调试、烧录、硬仿真

    内容包括STC单片机内部硬件介绍 xff08 寄存器 xff09 与程序的调试 硬仿真 xff0c STC15F硬仿真及其错误处理 xff0c MCS 51仿真介绍 xff0c 全自动下载介绍等 紫色文字是超链接 xff0c 点击自动跳转至
  • STM32单片机-汇编指令2

    目录 xff1a 11 STMFD和LDMFD指令 1 xff09 STMFD SP R0 R7 xff0c LR 2 xff09 LDMFD SP R0 R7 xff0c LR 99 伪指令 1 xff09 PROC伪指令 2 xff09
  • 多个switch case如何优化

    这段时间一直在整改代码圈复杂度 xff0c 我们的要求是每个函数方法圈复杂度不得大于5 xff0c 以下是整改的部分截图 希望对整改代码的你有所提示或帮助 xff0c 如果有更好的整改方法 xff0c 还望您不吝赐教哦 xff01
  • OPENCV检测矩形并计算其中心

    include 34 cv h 34 include 34 highgui h 34 include lt stdio h gt include lt math h gt include lt string h gt pragma comm
  • Jetson Xavier NX/AGX快速安装Intel Realsense SDK并使用D455

    Jetson Xavier NX AGX快速安装Intel Realsense SDK并使用D455 环境搭建及测试 1 安装脚本下载 xff1a github链接 xff1a https github com jetsonhacks in
  • AirSim无人机键盘控制

    AirSim仿真中实现多键盘按键控制 前言本文实现效果一 环境依赖二 多按键检测1 Pygame中的常用的键盘鼠标事件2 利用Pygame实现的多按键检测 AirSim中键盘控制实现下期预告 前言 有时候为了方便在AirSim调试无人机 x
  • 使用多电脑进行AirSim联合仿真

    文章目录 前言一 什么时候适合用两台电脑进行仿真 xff1f 二 怎么使用多电脑联合仿真 局域网内 1 获取UE4渲染端的IP地址2 修改程序接口 前言 随着仿真无人机数量的增加 xff0c 单台电脑越来越难以做到实时渲染 xff0c 这时
  • H.265编码原理入门

    视频编码的目的是为了压缩原始视频 xff0c 压缩的主要思路是从空间 时间 编码 视觉等几个主要角度去除冗余信息 由于 H 264 出色的数据压缩比率和视频质量 xff0c 成为当前市场上最为流行的编解码标准 而 H 265 是在 H 26
  • Go语言 GMP面试题(GMP调度示例)

    GMP面试题 第一段第二段 第一段 span class token keyword package span main span class token keyword import span span class token strin
  • 卡尔曼滤波里观测值凭什么用观测方程来表示?

    观测方程Z k 61 H X k 43 V k 为什么是由状态值和误差决定的 xff1f 不应该是由传感器输进去的吗 为啥只赋了一个初值 xff0c 就不再输入了 xff1f 在师兄解释下 xff0c 我终于明白了 因为这是仿真 xff01
  • Linux 内核的面向对象设计思想

    使用C语言实现面向对象设计的方法 Linux内核用C语言实现了面向对象的设计思想 即使用了三方面的特性 xff1a 封装 继承 多态 使用结构体实现了对对象的封装 xff1b 某一结构体成员中含有其他结构体的实例 xff0c 实现了一个结构
  • Win11安装OBS Studio的详细步骤图文教程

    Win11安装OBS Studio的详细步骤图文教程分享 一些用户为了进行更方便的视频直播录制功能 xff0c 需要在电脑上安装OBS Studio 但是自己对这款软件比较陌生 xff0c 而且因为它是英文的 xff0c 不知道怎么安装 接
  • Win11系统怎么安装到虚拟机的方法分享

    Win11系统怎么安装到虚拟机的方法分享 有的用户想要在自己的虚拟机里面去安装Win11系统来进行使用 这样就可以在虚拟机里面去测试系统了 xff0c 系统有一些问题也可以不用担心 那么怎么在虚拟机里面去安装Win11系统呢 xff1f 接
  • 上传文件超过限制,造成长时间无响应的解决方案

    在上传大文件 xff0c 造成长时间没有响应的情况的解决方案 xff1a 上传大文件时 xff0c 因为http协议的响应问题 xff0c 造成长时间不能向客户端发送响应请求头 解决方案 xff1a 1 向服务器发送上传大文件的reques
  • checkbox的jsTree的一个调用

    lt DOCTYPE HTML PUBLIC 34 W3C DTD HTML 4 01 Transitional EN 34 gt lt html gt lt head gt lt meta http equiv 61 34 Content
  • 灵活使用递归算法,生成Excel文件中的复合表头

    最近 xff0c 在开发中 xff0c 需要导出数据到excel文件 xff0c 文件的表头的格式是不一致的 有复合表头 xff0c 也有单表头 xff0c 那么如何灵活地生成excel文件中的复合表头 首先有一个JSON字符串格式的字段描
  • 在 ibm http server 和 websphere 之间配置 ssl

    在WebSphere的环境中 xff0c 配置SSL xff0c 有一些细节需要注意 xff1a 1 最好是先安装 ibm http server7 32bit xff0c websphere7 再安装插件 2 http server 需要
  • Ext4使用总结(二)简单的hbox布局

    布局的合理利用 xff1a 如图 xff1a xtype 39 container 39 margins 39 5 0 0 0 39 layout align 39 stretch 39 type 39 hbox 39
  • 凤凰涅槃-在2016年的我

    2016年已经过去 xff0c 在过去的一年 xff0c 有许多的收获 xff0c 也有许多的不足 xff0c 过去的2016年 xff0c 我想到的一个词语来概括2016 xff0c 就是 34 凤凰涅槃 34 凤凰涅槃 xff1a 凤凰
  • 图床个人使用

    在这里插入图片描述

随机推荐

  • 软件开发者的精力管理(一)

    精力管理对于软件开发者来讲是非常重要的 不希望自己被长周期的项目拖垮 xff0c 不希望被连续的加班所累 我个人认为泛义的时间管理是涉及到多个方面的 而心理学 精力管理则是非常重要的 作为一名从事了多年软件开发的从业者 xff0c 我的一个
  • 如何高效能地学习和使用"工具"?

    在软件开发中 xff0c 应该注意工具的合理使用 xff0c 使得自己变得高效起来 1 工具也是产品 xff0c 有许多的工具是产品化的 既然是产品 xff0c 就很多的服务 xff0c 例如帮助文档 xff0c 论坛 xff0c 咨询人员
  • Ext4使用总结(十二) 采用 CellEditing 方式的Grid,如何取得修改的单元格数据值

    使用cellediting方式编辑数据的grid在保存数据时 xff0c 需要进行数据的处理 xff0c 所以数据处理的方式需要特别注意 cellEditing 插件的事件 listeners edit function editor e
  • 树莓派——开机指南

    1 准备 硬件准备 树莓派一块 SD卡 xff08 小卡 xff09 读卡器 树莓派电源或安卓手机电源 xff08 功率10w以上 xff0c 不然会导致电压不足会影响其性能 xff09 一台电脑 xff08 可以没有显示屏和鼠标键盘 xf
  • cmakelist.txt编写总结

    简述 前期进行autoware auto中泊车代码移植 xff0c 考虑到auto基于ros2编写 xff0c 而代码使用环境为ros1 xff0c 需要进行cmakelist的重写 xff1a 难点为ros2编译指令向ros1迁移 xff
  • [解题报告] CSDN竞赛第15期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 29 1 求并集 题目 由小到大输出两个单向有序链表的并集 如链表 A 1 gt 2 gt 5 gt 7 链表 B 3 gt 5 gt
  • [解题报告] CSDN竞赛第17期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 31 1 判断胜负 题目 已知两个字符串A B 连续进行读入n次 每次读入的字符串都为A B 输出读入次数最多的字符串 解题报告 模拟
  • [解题报告] CSDN竞赛第18期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 32 1 单链表排序 题目 单链表的节点定义如下 xff08 C 43 43 xff09 xff1a class Node publi
  • [解题报告] CSDN竞赛第22期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 36 1 c 43 43 难题 大数加法 题目 大数一直是一个c语言的一个难题 现在我们需要你手动模拟出大数加法过程 请你给出两个大整
  • [解题报告] CSDN竞赛第23期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 37 1 排查网络故障 题目 A地跟B地的网络中间有n个节点 xff08 不包括A地和B地 xff09 xff0c 相邻的两个节点是通
  • Python3中的configparser模块

    configparser模块简介 该模块适用于配置文件的格式与windows ini文件类似 xff0c 可以包含一个或多个节 xff08 section xff09 xff0c 每个节可以有多个参数 xff08 键 61 值 xff09
  • CSDN竞赛第24期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 38 这次写完第一道题时遇到一个奇怪的情况 xff1a 一直在 运行中 xff0c 然后发现每道题输入做任意代码都出现一直运行中 跟小
  • [Python开发] 使用python读取图片的EXIF

    使用python读取图片的EXIF 方法 使用PIL Image读取图片的EXIF 使用https pypi python org pypi ExifRead 读取图片的EXIF xff0c 得到EXIF标签 xff08 dict类型 xf
  • Partial Least Squares Regression 偏最小二乘法回归

    介绍 定义 偏最小二乘回归 多元线性回归分析 43 典型相关分析 43 主成分分析 输入 xff1a n m 的预测矩阵 X n p 的响应矩阵 Y 输出 X 和 Y 的投影 分数 矩阵 T U R n l 目标 xff1a 最大化 cor
  • 唐诗生成器

    使用唐诗语料库 xff0c 经过去噪预处理 分词 生成搭配 生成主题等过程 xff0c 生成唐诗 csdn下载地址 xff1a http download csdn net detail lijiancheng0614 9840952 gi
  • 使用TensorFlow-Slim进行图像分类

    参考 https github com tensorflow models tree master slim 使用TensorFlow Slim进行图像分类 准备 安装TensorFlow 参考 https www tensorflow o
  • 使用TensorFlow Object Detection API进行图像物体检测

    参考 https github com tensorflow models tree master object detection 使用TensorFlow Object Detection API进行图像物体检测 准备 安装Tensor
  • 双网卡下使用udp带来的问题

    今天在工程人员现场布置程序时 xff0c 出了一个疑难问题 xff0c 客户端发送的UDP包服务程序能收到 xff0c 但是服务程序收到的包的ip地址很随机 xff0c 造成在生成唯一ID的时候出现问题 xff0c 经过仔细排查 xff0c
  • 帧融合的功能(慢镜头的制作)

    转自 xff1a http mc2109 blog 163 com blog static 253694620087217213706 帧融合的功能 xff08 慢镜头的制作 xff09 2008 08 21 19 02 13 分类 xff
  • 无人驾驶二 卡尔曼滤波与PID控制

    链接 xff1a https pan baidu com s 108cN2yyKOiouiABXTYtGOw pwd 61 1234 提取码 xff1a 1234 卡尔曼滤波形象的描述见 xff1a 卡尔曼滤波原理及实现 曦爷的博客 CSD