基于卡尔曼滤波器的PID控制-2

news2024/11/15 10:09:30

采用Simulink进行仿真!!

Kalman算法由M函数实现。控制干扰信号wk)和测量噪声信号v(k)幅值均为0.10的白噪声信号,输入信号幅值为1.0、频率为0.5Hz 的正弦信号。采用卡尔曼滤波器实现信号的滤波,取O=1,R=1。仿真结果如图1和2所示。

图1 原始信号y及滤波后的信号ye

图2 原始信号y及带有噪声的原始信号ye

仿真图:

Kalman滤波子程序:chap1_27f.m

%Discrete Kalman filter

%x=Ax+B(u+w(k));

%y=Cx+D+v(k)

function[u]kalman(ul,u2,u3)

persistent A B C D Q R P x

yv=u2;

if u3==0

x-zeros(2,1);

ts-0.001;

a=25;

b=133;

sys=tf(b,[1,a,0]);

A1=[0 1;0 -a];

B1=[0;b];

C1=[1 0];

D1=[0];

[A,B.C,D]=c2dm(A1,B1,CI,D1,ts,z');

Q=1; %Covariances of w

R=1; %Covariances of v

P=B*Q*B'; %Initial error covariance

end

%Measurement update

Mn=P*C/C*P*C'+R);

x=A*x+Mn*(yv-C*A*x);

P=(eye(2)-Mn*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*ul;

P=A*P*A'+B*Q*B';

作图程序:chap1_27plot.m

close all;figure(1);

plot(tyE,1),r,LY(:,2),k:','linewidth',2);

xlabel('time(s)';ylabel(y.ye');

legend('ideal signal','filtered signal');

figure(2);

plot(ty(:,1)T,ty1(:.1).k:'linewidth', 2);

xlabel( 'tim(s));ylabel(y,yv');

legend('ideal signal', 'signal with noise');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/188640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyQt5编程基础 2.1 GUI程序的基本框架

文章目录 创建纯代码GUI程序 创建目录 新建程序 创建GUI程序的基本过程(代码分析) 导入模块 创建应用程序 创建窗体 使用窗体类的GUI程序框架 创建项目目录 窗体设计 修改窗体的windowTitle 放一个label 放一个Push Button 保存窗体 代码设计 将QtApp中的ui文…

【自学Docker】Docker update命令

Docker update命令 大纲 docker update命令教程 docker update 命令可以用于更新一个或多个 Docker容器 的配置。该命令后面的 CONTAINER 可以是容器Id,或者是容器名。 docker update命令语法 haicoder(www.haicoder.net)# docker update [OPTIONS] CONTAINER […

网络编程套接字之UDP实现回显服务器及客户端

目录 前言: 基础理解 传输层协议 UDP TCP Socket API DatagramSocket API DatagramPacket API UDP实现回显服务器 完整代码展现(有详细注释) UDP实现回显客户端 完整代码展现(有详细注释) 小结&#xff1…

使用OpenCV对点集从左上到右下排序

本文实现如何使用OpenCV对点集从左上到右下排序。本文使用的案例图片如下: 需要实现的效果如下: 1.分阶段实现 让我们看看考虑4行的工作流。我考虑的是沿着y轴将图像分成4段,形成4行。对于图像的每一段,找出每一个以该段为中心…

虚拟主机怎么用?香港虚拟主机搭建网站教程

在了解使用方法之前要先明白什么是虚拟主机、它的用处以及服务器、VPS和虚拟主机之间有什么区别。香港虚拟主机也称为网站空间,顾名思义就是存放网站文件的空间。主要用于搭建网站、提供程序运行。下面就介绍一下香港虚拟主机搭建网站的使用方法以及教程。 一、香港…

职场新人应该如何培养项目管理的能力?

李强在一家企业工作,前阵子升任项目经理。但他这两天却一副愁眉不展的样子,像霜打的茄子。原来是因为他缺乏管理经验,设定的工作任务不合理,项目成员职责不清,导致项目混乱,项目进度不清晰。 项目管理涉及…

Redis搭建基于docker跨服务器的一主两从三哨兵集群模式

文章目录1 整体拓扑图2 redis与哨兵配置文件2.1 主节点配置文件2.1.1 主节点redis.conf配置文件2.1.2 主节点哨兵配置文件2.2 从节点配置文件2.1.1 从节点redis.conf配置文件2.1.2 从节点哨兵配置文件3 docke-compose编排文件4 启动并测试查看哨兵日志查看集群状态测试集群是否…

在 Visual Studio 中更好地进行搜索

当在 IDE 中查找特定的代码文件、类、方法或者功能、选项,找到它们并不总是那么容易。有多种搜索方式,到底该选择哪一种才最便捷呢?新的“一站式”搜索(All-In-One Search)将代码和功能搜索合并到同一个 UI 中&#xf…

从GPT到chatGPT(三):GPT3(一)

#GPT3 文章目录前言正文摘要介绍方法模型结构训练数据集训练过程评估小结前言 OpenAI在放出GPT2后,并没有引起业界太大的影响和关注,究其原因,并不是zero-shot这种想法不够吸引人,而是GPT2表现出来的效果依然差强人意&#xff0c…

Unity数据持久化-PlayerPrefs

1. PlayerPrefs 是什么? 是Unity提供的可以用于存储读取玩家数据的公共类 1.1. 存储相关 PlayerPrefs的数据存储类似于键值对存储 一个键对应一个值 提供了存储3种数据的方法int float string 键:string类型 值: int float string对应3种API PlayerPrefs.SetInt(…

如何将宿主机工作文件夹映射到vmware虚拟机内

将宿主机工作文件夹映射到vmware虚拟机内vmware启用共享文件夹在虚拟机中使用vmtools进行挂载虚拟机为linux系统,操作中使用的是凝思系统 vmware启用共享文件夹 在vmware中将需要共享的工作文件夹添加到共享列表中,如图 在虚拟机中使用vmtools进行挂…

Tomcat部署项目及Tomcat间会话同步

目录一、Tomcat中部署项目的相关配置1.相关配置2.测试二、Tomcat间的会话同步1.配置Tomcat2.修改web工程的WEB-INF下的web.xml3.配置Nginx4.测试一、Tomcat中部署项目的相关配置 1.相关配置 在Tomcat中进入conf/tomcat-users.xml文件&#xff0c;将以下代码放到最后 <rol…

本地Exchange备份方案

Exchange Server的Windows服务器备份只能执行基础还原&#xff0c;并且不支持对邮箱项执行粒度还原。在需要恢复单个已删除的电子邮件或文件夹的情况下&#xff0c;本机解决方案提供了一个耗时且低效的过程。Exchange ServerRecoveryManager Plus帮助您克服这些限制。使用Recov…

国内有哪些移动开发平台?各有什么特点

开年找解决方案的时候接触了一批移动开发平台&#xff0c;猛然发现近几年移动开发平台如雨后春笋般出现&#xff0c;于是乎就想针对市场上越来越多的移动开发平台做一次盘点对比&#xff0c;看看他们的基本情况和自身特点优势&#xff0c;也希望能够对有需要的开发者有一定的参…

Docker - 4. 容器常用命令 docker run、exit、ps、rm、start、stop、kill

目录 1. 新建容器并启动 2. 从容器中退回主机 3. 列出所有运行的容器 4. 退出容器 5. 删除容器 6. 启动和停止容器 7. 易混淆地方 1. 新建容器并启动 语法&#xff1a;docker run [可选参数] 镜像名 参数&#xff1a; 参数含义--name "Name" 容器名字&a…

java泛型1

泛型&#xff08;为了集合&#xff09; Java 5增加泛型支持在很大程度上都是为了让集合能记住其元素的数据类型。在没有泛型之前&#xff0c;一旦把一个对象“丢进”Java集合中&#xff0c;集合就会忘记对象的类型&#xff0c;把所有的对象当成Object类型处理。当程序从集合中取…

基于深度学习框架设计的货运管家(功能总结)

项目背景&#xff1a; 在快递行业发达的今天&#xff0c;有数不胜数的货运公司、快递公司&#xff0c;这些公司都有自己的运输车辆&#xff0c;请师傅开车送货。 比如&#xff1a;快递公司、烟草运输公司、货物运输公司等等。 为了能方便管理货车&#xff0c;了解车辆行驶路线…

49.Isaac教程--Cartographer

Cartographer ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录Cartographer数据要求配置启动 Cartographer 示例应用程序监控和可视化输出Cartographer 是 Google 的一个&#xff08;同步定位和映射&#xff09;SLAM 系统&#xff0c;能够…

2023最新前端面试题5(持续更新)

Vue 74、vue 生命周期 74.1、什么是 Vue 生命周期? Vue 实例从创建到销毁的过程&#xff0c;就是生命周期。也就是从开始创建、初始化数据编译模板、挂载 Dom一渲染、更新一渲染、卸载等一系列过程&#xff0c;我们称这是 Vue的生命周期 74.2、Vue 生命周期的作用是什么?…

函数递归+青蛙跳台阶——“C”

各位CSDN的uu们你们好呀&#xff0c;今天小雅兰的内容终于要回到我们的C语言了&#xff0c;在之前&#xff0c;我写函数这篇博客的时候就讲过&#xff0c;会把函数递归的内容单独拿出来&#xff0c;然后呢当时是说下一篇博客就会更函数递归和青蛙跳台阶&#xff0c;由于一系列原…