UKF、CKF的目标跟踪仿真.rar

  • shuashuaoo
    了解作者
  • matlab
    开发工具
  • 2KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 12
    下载次数
  • 2020-02-28 11:00
    上传日期
利用经典的目标跟踪模型,分别对CKF和UKF进行了仿真,为相关算法的研究提供了参考。
UKF、CKF的目标跟踪仿真.rar
  • UKF、CKF的目标跟踪仿真
  • CKF.m
    1.6KB
  • nonlinear_targettracking.m
    2.3KB
  • UKF.m
    1.8KB
内容介绍
clear all; close all; monte = 100; % Monte-Carlo times tf = 100; dt = 1; Q = [dt^3/3 dt^2/2 0 0 0; dt^2/2 dt 0 0 0; 0 0 dt^3/3 dt^2/2 0; 0 0 dt^2/2 dt 0; 0 0 0 0 1.75/10^3*dt]; R = diag([1000;100/10^6]); xk = zeros(5,1); Pkk1 = zeros(5,5); xk0 = [1000;300;1000;0;-2]; Pkk1 = diag([100;10;100;10;100/10^6]); y = zeros(2,1); rms_ukf = zeros(5,101,monte); for i = 1:1:monte xk = xk0; xkk1 = sqrt(Pkk1)*randn(5,1)+xk; xkarr = xk; % UKF xkhatarr_ukf = xkk1; xkk1_ukf = xkk1; Pkk1_ukf = Pkk1; l = 1; for t = dt:dt:tf %% true state value %tic; F = [1 sin(xk(5))/xk(5) 0 (cos(xk(5))-1)/xk(5) 0; 0 cos(xk(5)) 0 -sin(xk(5)) 0; 0 (1-cos(xk(5)))/xk(5) 1 sin(xk(5))/xk(5) 0; 0 sin(xk(5)) 0 cos(xk(5)) 0; 0 0 0 0 1]; x = F*xk + sqrt(Q)*randn(5,1); xk = x; y(1,1) = sqrt(xk(1)^2+xk(3)^2); y(2,1) = atan2(xk(3),xk(1)); y = y+sqrt(R)*randn(2,1); %t0(i,l) = toc; %% nonlinear filters % UKF or CKF [ xkk1_ukf,Pkk1_ukf] = UKF( xkk1_ukf, Pkk1_ukf, y, Q, R); % [ xkk1_ukf,Pkk1_ukf] = CKF( xkk1_ukf, Pkk1_ukf, y, Q, R); xkarr = [xkarr xk]; xkhatarr_ukf = [xkhatarr_ukf xkk1_ukf]; l = l+1; end rms_ukf(:,:,i) = xkarr-xkhatarr_ukf; end mse_ukf = zeros(5,101); mse_ukf_pos = zeros(101,1); mse_ukf_vel = zeros(101,1); for i = 1:1:101 for j=1:1:monte mse_ukf(1,i) = mse_ukf(1,i)+(rms_ukf(1,i,j))^2; mse_ukf(2,i) = mse_ukf(2,i)+(rms_ukf(2,i,j))^2; mse_ukf(3,i) = mse_ukf(3,i)+(rms_ukf(3,i,j))^2; mse_ukf(4,i) = mse_ukf(4,i)+(rms_ukf(4,i,j))^2; mse_ukf(5,i) = mse_ukf(5,i)+(rms_ukf(5,i,j))^2; end mse_ukf_pos(i) = sqrt((mse_ukf(1,i)+mse_ukf(3,i))/monte); mse_ukf_vel(i) = sqrt((mse_ukf(2,i)+mse_ukf(4,i))/monte); mse_ukf(5,i) = sqrt(mse_ukf(5,i)/monte); end k=1:1:101; figure;plot(k,mse_ukf_pos(k)); figure;plot(k,mse_ukf_vel(k)); figure;plot(k,mse_ukf(5,k));
评论
    相关推荐
    • rsi-bot
      发送采购订单并跟踪头寸表现。 超过预设的盈亏水平后平仓 安装依赖项 对于此程序,我们将使用websocket,json,pprint,talib,numpy,datetime,os,binance.client和twilio.rest 要设置所需的软件包,请在确保...
    • DiscordBot:Discord Bot跟踪学生是否在线
      该Discord机器人正在跟踪学生是否在线。 安装 要在本地启动机器人,请执行以下操作: npm install npm start 注意:因此,您需要自己一个机器人,并将您的Bot Secret Token插入index.js中,如下所示: bot.login...
    • slacktheme_bot
      .oauth和.giphy是未跟踪的文件,其密钥/令牌分别用于slack和giphy。 perl取决于: cpanm Class::Tiny WebService::Slack::WebApi 验证码 使用创建 将“ Bot用户Oauth访问令牌”粘贴到.oauth 范围:需要chat:write...
    • JobClock:PythonTwisted bot 用于跟踪任务工作花费的时间
      Python/Twisted bot 用于跟踪任务/作业花费的时间 安装 安装 Python 2.7 安装 Virtualenv git clone https://github.com/blha303/JobClockBot cd JobClockBot; virtualenv env env/bin/pip install -r ...
    • figma-version-bot:电报bot,用于跟踪Figma中的文件版本
      Telegram机器人,用于跟踪Figma中的文件版本。 基于 安装和本地启动 安装 克隆此仓库: git clone https://github.com/rushelex/figma-version-bot 更改.env文件中的环境变量 在根文件夹中运行yarn 运行./start-...
    • teams-attendance-bot:Microsoft Teams Bot通过位置跟踪出勤情况
      团队出勤机器人会跟踪出勤统计信息,还可以捕获提交其出勤的用户的位置。 入门 该项目来自ms-teams-hello-world nodejs示例。 它使用以下额外的内容使开发更容易 nodemon在文件更改时自动重新启动服务器 序列化...
    • 电影跟踪机器人
      Movie Tracker Bot是一种电报机器人,可以跟踪一个人观看或假装观看的电影。 范围 目标:协助用户跟踪电影 特征: 与IMDB的电影数据库集成 跟踪感兴趣的电影 马克看过电影 按类型过滤电影 从列表中选择随机电影 ...
    • Winnie_Bot:针对作者的Discord机器人,具有挑战,目标跟踪和提示功能
      Winnie允许用户跟踪目标,互相挑战以进行文字战和冲刺,并获得提示以协助他们进行写作。 将Winnie添加到您的Discord服务器 如果要在服务器上运行Winnie,则可以邀请公共Winnie_Bot帐户,也可以使用Winnie的代码设置...
    • PackageTrackerBot:电报包跟踪Bot
      PackageTracker机器人 快速开始 docker run -e BOT_ID=YOUR_ID -v /data/ptb:/usr/app/db indexyz/packagetrackerbot
    • discord_bot_apex:Discord Bot用于跟踪Apex传说统计
      跟踪器横幅示例 不和谐命令 以下是该漫游器当前可用的所有命令。 请注意,默认命令前缀为“ !!”。 可以在运行时通过环境变量自定义。 指令 争论 描述 help 没有任何 向用户发送直接消息,列出所有可用的bot命令...