精华内容
下载资源
问答
  • 使用S-function搭建的车辆状态估计simulink模型,包含EKF和CKF
  • 状态估计算法 MATLAB 内附readme 详细说明了使用方法和步骤 有专门的txt文件 可以输入自己的bus阵 line阵等 即可进行状态估计
  • 程序通过最小二乘法与快速分解法,以实现电力系统状态估计(电力网系统辨识) 代码内容其实是对之前已经上传代码的重构,修改内容包括: 1.以面向对象形式封装程序,在类函数中同时整合了最小二乘法与快速分解...
  • % 基于_当前_统计模型的目标状态估计% 主要靠 kalman滤波实现对物体运动轨迹的估计%已知运动状态%初始速度6001.匀速10s2.加速度5,持续10s 3. 匀速5s%采样周期1s% 程序代写&算法设计,联系qq:380238062,转载时请...

    % 基于_当前_统计模型的目标状态估计

    % 主要靠 kalman滤波实现对物体运动轨迹的估计

    %已知运动状态

    %初始速度

    600 1.匀速10s 2.加速度5,持续10s 3. 匀速5s

    %采样周期 1s

    % 程序代写&算法设计,联系qq:380238062,转载时请保留

    clc

    clear

    close all

    jiasudu=5;%加速度

    R1=40; %观测噪声方差

    R2=50;

    V1=normrnd(0,R1,[25 1]); % A 观测噪声,服从高斯分布,零均值,方差为R1

    V2=normrnd(0,R2,[25,1]);

    for i=1:25

    if

    i<=10 %匀速

    X(1,i)=600*i; %位置

    X(2,i)=600; %速度

    X(3,i)=0; %加速度

    elseif

    i<=20 %匀加速

    X(1,i)=6000+600*(i-10)+0.5*jiasudu*(i-10)^2;

    X(2,i)=600+jiasudu*(i-10);

    X(3,i)=jiasudu;

    else

    %匀速

    X(1,i)=14500+650*(i-20);

    X(2,i)=650;

    X(3,i)=0;

    end

    end

    [weizhi1,P_P1,X_X1]=kalman_f(X,R1,V1,jiasudu); % kalman滤波

    [weizhi2,P_P2,X_X2]=kalman_f(X,R2,V2,jiasudu);

    for k=1:25

    P1=P_P1{k};

    P2=P_P2{k};

    X1=X_X1{k};

    X2=X_X2{k};

    X_zuiyou(:,k)=pinv(P1+P2)*(P2*X1+P1*X2);

    %最优加权估计 end

    % 程序代写&算法设计,联系qq:380238062,转载时请保留

    error1=X(1,:)'-weizhi1';%估计误差

    error2=X(1,:)'-weizhi2';

    error3=X(1,:)'-X_zuiyou(1,:)';

    figure;

    plot(error1);

    hold on

    plot(error2);

    plot(error3,':');

    text(3,2000,'最优加权误差 - - - - - - - - - - - - - -')

    title('估计误差');

    function [weizhi,P_P,X_X]=kalman_f(X,R1,V1,jiasudu);

    % kalman滤波算法的实现

    % 程序代写&算法设计,联系qq:380238062,转载时请保留

    a=1/60;

    fai=[1 1 (-1+a+exp(a))/(a^2);0 1 (1-exp(-a))/a;0 0

    exp(-a)]; % Φ

    U=[(-1+a/2+(1-exp(-a))/a)/a 1-(1-exp(-a))/a 1-exp(-a)]';

    H=[1 0 0];

    I=ones(3,3);

    q11=(1-exp(-2*a)+2*a+2*(a^3)/3-2*(a^2)-4*a*exp(-a))/(2*a^5);

    q12=(1+exp(-2*a)-2*exp(-a)+2*a*exp(-a)-2*a+a^2)/(2*a^4);

    q13=(1-exp(-2*a)-2*a*exp(-a))/(2*a^3);

    q22=(4*exp(-a)-3-exp(-2*a)+2*a)/(2*a^3);

    q23=(exp(-2*a)+1-2*exp(-a))/(2*a^3);

    q33=(1-exp(-2*a))/(2*a);

    Q=[q11 q12 q13;

    q12 q22

    q23;

    q13 q23

    q33];

    X0=[0 600 0]';

    P0=1; %初始值

    for k=1:25

    if

    i<=10

    a_k=0;

    elseif

    i<=20

    a_k=jiasudu;

    else

    a_k=0;

    end

    a_mean=X(1,k)/(k*k); %"当前"平均加速度

    if

    a_mean==0

    sigma_a=1;

    else

    sigma_a=(4-pi)*(a_mean^2)/2;%“当前”加速度方差

    end

    Q=2*a*sigma_a*Q;

    x_k_k_1=fai*X0+U*a_k;

    p_k_k_1=fai*P0*(fai')+Q;

    k_k=p_k_k_1*H'/(H*p_k_k_1*H'+R1);

    y_k=H*X(:,k)+V1(k);

    x_k_k=x_k_k_1+k_k*(y_k-H*x_k_k_1);

    p_k_k=(I-k_k*H)*p_k_k_1;

    X0=x_k_k;

    P0=p_k_k;

    P_P{k}=P0;

    X_X{k}=x_k_k_1;

    weizhi(k)=x_k_k_1(1);

    end

    展开全文
  • 电力系统状态估计快速分解法MATLAB程序 输入数据矩阵 运行可得结果
  • 基于加权最小二乘算法和快速分解法的电力系统状态估计程序
  • 稳健的电力系统状态估计器对于监控应用至关重要。 根据我们的经验,我们发现使用投影统计的鲁棒广义最大似然(GM)估计是文献中最好的方法之一。 它对多个交互和一致的不良数据、不良杠杆点、不良零注入以及某些类型...
  • 最小二乘状态估计

    2017-10-10 10:27:24
    基于最小二乘法编写的MATLAB状态估计程序,附有14节点和30节点算例。
  • 多个式重采样matlab代码通过传感器融合进行状态估计 数据采集 加速度计和GPS数据是通过Matlab Mobile App使用移动电话收集的。 超声波传感器数据是通过通过Arduino Mega安装在x轴上具有感应方向的超声波传感器来收集...
  • 请参阅电力系统:分析、安全和放松管制,作者为 Venkatesh P.、Manikandan BV、Raja S. Charles、Srinivasan A.,了解此处解决的问题和更多信息。
  • 该代码中使用的算法从以下引用: S Gillijns 等人“什么是集成卡尔曼滤波器以及它的工作情况如何?” 2006 年美国控制会议论文集,美国明尼苏达州明尼阿波利斯,2006 年 6 月 14-16 日,第 4448-4453 页。
  • 双击 BatteryModeling.prj 设置 MATLAB 路径。 html 索引包含打开每个示例的链接。 演示: 1. 3S-1P电池组CCV充电,被动平衡。 具有被动平衡的充电/放电循环,包括热效应。 2. 电动汽车电池冷却。 汽车电池组的...
  • 为方便读者快速掌握子滤波的精髓,本 书采用原理介绍 书采用原理介绍 +实例应用 +MATLAB +MATLAB +MATLAB 程序仿真 +中文注释相结合的方式, 中文注释相结合的方式, 向读者介绍滤波的原理和实现过程。 向读者介绍...
  • 通过序列计算马尔可夫的k步转移矩阵的MATLAB程序,初学请指教
  • 【官网程序】IEEE30节点测试系统matlab M文件,包含各节点信息.rar
  • 基于研究卡尔曼滤波算法在锂电池荷电状态估计和监测中应用效果的目的,本文通过建立Thevenin电池模型,结合锂电池恒定电流充放电实验数据,有效模拟出电池实际工作特性,并分别采用传统卡尔曼滤波(KF)和扩展卡尔曼...
  • 用Kalman滤波方法估计目标航迹的Matlab程序
  • 在这个程序中,我们开发了一个多窗口移动地平线估计策略 (MW-MHE),它利用约束不活动来减少长期估计问题中的问题规模。 使用无约束的完整信息近似计算到达成本估计器到达成本以保证技术的稳定性。 基于时间远程状态...
  • 111.完成传感器对目标状态的kalman滤波估计;2.对传感器的状态估计进行SCC和CI融合;3.画出位置及速度的估计和融合误差曲线、真实航迹及融合后航迹、K=1时刻的协方差椭圆
  • 该实验室旨在在拖尾的两轮汽车上执行状态估计和运动计划。 第一步是将data文件夹中的文件和paperbot.ino草图上传到Arduino。 该草图提供了一个与Arduino交互的Web界面。 它还从IMU传感器和LIDAR读取数据值,并将它们...
  • kalman的matlab实现

    2018-05-29 20:02:55
    kalman滤波器在噪声过程为高斯过程时是所有滤波器中最好的滤波器,除了系统噪声和量测噪声为高斯白噪声且已知其二阶矩之外,kalman滤波不需要任何其他条件,因而完全适用于非平稳、多维的随机序列的估计问题。...
  • matlab坐标正算代码EST-NLSS:一种用于对状态分布进行扩展偏斜T(EST)近似的非线性状态空间估计的工具包。 背景 有关估算程序的文件可从此处获得:(或此处引文为:) 安装 从以下位置下载源ZIP: 将代码提取到本地...
  • 以IEEE30节点系统为例,采用同步测量方法测量支路的谐波电流和节点的谐波电压,分别用Matlab和基于奇异值分解(SVD)的最小二乘估计程序进行仿真。结果表明,用SVD算法对系统进行谐波状态估计时较为准确。
  • 程序实现了基于蒙特卡洛的含源配电网随机潮流计算,并通过平滑核密度函数重构了状态变量的分布情况。
  • 在这种情况下,使用状态观测器估计系统实际状态是非常常见的做法 以系统的状态空间表达式为例,下述状态观测器的设计方法: 举例说明 给定线性定常系统 仿真测试 x1状态的观测 线性扩张状态观测器详解 - SGH...

    引言

    实际工程应用中,系统内部的状态难以使用传感器直接测量,
    在这种情况下,使用状态观测器估计系统实际状态是非常常见的做法
    以系统的状态空间表达式为例,下述状态观测器的设计方法:

    举例说明

    在这里插入图片描述
    给定线性定常系统
    在这里插入图片描述
    在这里插入图片描述

    仿真测试

    在这里插入图片描述
    x1状态的观测
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在模型输出加入随机噪声后:
    在这里插入图片描述
    在这里插入图片描述

    线性扩张状态观测器详解 - SGH8224的文章 - 知乎
    https://zhuanlan.zhihu.com/p/108466027
    https://wenku.baidu.com/view/4709a15f804d2b160b4ec024.html

    展开全文
  • 使用局部估计的正则化状态空间模型插值(ReSMILE)方法进行LPV系统识别的工具箱。 要进行10分钟的介绍,请在此处观看有关此项目的讨论: 要求 MathWorks MATLAB(测试版:GNU / Linux上的R2019b,Windows 10上的R...
  • 状态观测器是现代控制理论的重要组成部分[1-2],它是从系统状态空间方程出发,利用原系统的输入和输出信号获得原系统状态变量估值的方法,在传感器噪声处理、系统相移抑制以及高性能控制系统的设计中应用得非常普遍[2-3...

    状态观测器是现代控制理论的重要组成部分[1-2],它是从系统状态空间方程出发,利用原系统的输入和输出信号获得原系统状态变量估值的方法,在传感器噪声处理、系统相移抑制以及高性能控制系统的设计中应用得非常普遍[2-3]。扩张状态观测器(ExtendedStateObserv-er)是自抗扰控制器(ActiveDisturbanceRejectionCon-troller)的核心部分[4-5],它不像通常的状态观测器如隆伯格观测器(LuenbergerObserver)[2]需要预先知道系统模型,也不关心系统是线性系统还是非线性系统,因此避免了使用过程中对模型的依赖[6]。本文通过Matlab[7]对扩张状态观测器进行数值仿真,给出并比较了ESO对二阶系统在线性参数和非线性参数下的观测效果,考察了系统存在高斯加性白噪声条件下的观测效果,并对观测结果进行了分析。1扩张状态观测器的基础理论对于常见的二阶系统,设其输入信号为u,输出信号为y,系统对输入信号的作用为b,此系统表达式记为:?x(2)+f(x(1),x)=buy=x(1)引入状态变量x1=x,x2=x(1)改写为状态空间表达式,并以Ts为采样周期进行离散化可得相应的离散状态方程:???x1(k+1)=x1(k)+Tsx2(k)x2(k+1)=x2(k)+Ts(-f(x2(k),x1(k))+bu(k))y(k)=x1(k)(2)依照文献[4]可用离散系统:?????e1(k)=z1(k)-y(k)z1(k)=z1(k-1)+Ts(z1(k)-01e(k))z2(k)=z2(k-1)+Ts(z3(k)-02fal(e1(k),0.5,)+bu(k))z3(k)=-03fal(e1(k),0.25,)(3)来观测原系统的状态变量。式(3)中:z1和z2分别为x1和x2的观测值;z3为系统扩张出来的状态变量;01,02,03和则为需要设定的参数。函数fal()定义为:fal(e,,)={e-1,|e||e|sign(e),|e|>(4)式中sign()是符号函数。以上推导过程见文献[4,8]。2扩张状态观测器的计算机仿真及结果比较分析仿真采用M语言[9]进行,仿真的系统选择为常见的二阶系统,其传递函数为[3]:G(s)=2s2+2s+2(5)引入状态变量并以Ts为周期离散化后可得离散状态空间方程:???x1(k)=x1(k-1)+Tsx2(k)x2(k)=x2(k-1)+Ts(-(2x2(k)+x1(k))+2u(k))y(k)=x1(k)(6)根据式(3)对该系统建立扩张状态观测器。仿真时,采样周期Ts设定为1ms,系统的阻尼系数设定为0.5,系统谐振频率f设定为3Hz。系统的输入信号正弦信号(幅度设定为1,频率设定为1Hz)。仿真结果做如下约定:,红色曲线为真实的系统状态,黑色曲线为观测出来的系统状态。仿真时设ESO中b为已知并保持不变,始终满足b=23,查看此时01,02,03为线性参数和非线性参数时的仿真结果。2.1无噪声时线性观测和非线性观测的观测效果线性估计时,可参考文献[10]进行,01=1Ts,02=1(3T)2s,03=2(8T)3s,fal()函数中的=1Ts;非线性估计时,参数需要做出适当的调整,目前只有通过试凑法进行,可以在线性估计的基础上进行,可选01=1Ts,02=1(3T)2s20,03=2(8)2T3s202,fal()函数中的=1Ts2,结果如图1、图2所示。图1无噪声时正弦信号的线性观测效果从仿真结果可看出,线性观测的效果略好于非线性观测的效果,而采用非线性估计时,E

    展开全文
  • Matlab之Kalman:用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法 目录 问题探究 卡尔曼滤波及数据滤波 代码实现 问题探究 用线性系统状态方程,通过系统输入输出观测...

    Matlab之Kalman:用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法

     

     

    目录

    问题探究

    卡尔曼滤波及数据滤波

    代码实现


     

     

     

    问题探究

    用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。

     

     

     

    卡尔曼滤波及数据滤波

           卡尔曼滤波(Kalman filtering)一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
           斯坦利·施密特(Stanley Schmidt)首次实现了卡尔曼滤波器。卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。 关于这种滤波器的论文由Swerling (1958), Kalman (1960)与 Kalman and Bucy (1961)发表。
           数据滤波是去除噪声还原真实数据的一种数据处理技术, Kalman滤波在测量方差已知的情况下能够从一系列存在测量噪声的数据中,估计动态系统的状态. 由于, 它便于计算机编程实现, 并能够对现场采集的数据进行实时的更新和处理, Kalman滤波是目前应用最为广泛的滤波方法, 在通信, 导航, 制导与控制等多领域得到了较好的应用

     

     

    代码实现

    clear all;
    clc;
    close all;
    
    
    N=2000;
    gv=0.0332;
    m=500;
    a=[-1.6 1.46 -0.616 0.1525];
    Q2=0.005;%观测噪声方差
    w=zeros(m*4,N);
    alpher=zeros(m,N);
    
    for j=1:m
        
        
    v=randn(1,N)*sqrt(gv);
    
    u=filter(1,a,v);
    
    
    F=eye(4,4);
    d=u;
    C=zeros(4,N);
    for i=5:N
        C(:,i)=[u(i-1);u(i-2);u(i-3);u(i-4)];
    end
    C(:,1)=[0;0;0;0];
    C(:,2)=[d(1);0;0;0];
    C(:,3)=[d(2);d(2);0;0];
    C(:,4)=[d(3);d(2);d(1);0];
    
    p_esti=eye(4,4);%状态误差自相关矩阵
    
    for i=2:N
        w([4*j-3,4*j-2,4*j-1,4*j],i)=w([4*j-3,4*j-2,4*j-1,4*j],i-1);%一步预测误差
        alpher(j,i)=d(i)-C(:,i)'*w([4*j-3,4*j-2,4*j-1,4*j],i).'';%计算信息过程
        p_pre=p_esti;%一步预测误差自相关矩阵
        A=C(:,i)'*p_pre*C(:,i)+Q2;%新息过程自相关矩阵
        k=p_pre*C(:,i)/A;
        w([4*j-3,4*j-2,4*j-1,4*j],i)=w([4*j-3,4*j-2,4*j-1,4*j],i)+k*alpher(j,i);%状态估计
        p_esti=p_pre-k*C(:,i)'*p_pre;%状态估计误差自相关矩阵
    end
    
    end
    
    
    MSE=sum(alpher.^2)/m;
    MSE=MSE/max(MSE);
    MSE=10*log10(MSE);
    figure(1)
    plot(MSE);
    title(' 均方误差变化曲线');
    xlabel('迭代次数n');ylabel('MSE');
    
    w_aver=zeros(4,N);
    for i=1:m
        w_aver(1,:)=w_aver(1,:)+w(4*i-3,:);
        w_aver(2,:)=w_aver(2,:)+w(4*i-2,:);
        w_aver(3,:)=w_aver(3,:)+w(4*i-1,:);
        w_aver(4,:)=w_aver(4,:)+w(4*i,:);
    end
    
    w_aver=w_aver/m;
    figure(2) 
    hold on;
    plot(w_aver(1,:),'b');
    plot(w_aver(2,:),'b');
    plot(w_aver(3,:),'b');
    plot(w_aver(4,:),'b');
    title('权向量的估计');
    xlabel('迭代次数n');ylabel('抽头权值');
    hold off;
    

     

     

     

    展开全文
  • 系统辨识最小二乘参数估计matlab.doc 《系统辩识与自适应控制》最小二乘参数估计摘要:最小二乘的一次性完成辨识算法(也称批处理算法),他的特点是直接利用已经获得的所有(一批)观测数据进行运算处理。这种算法在...
  • 《自适应滤波器设计及Matlab实现附程序代码》由会员分享,可在线阅读,更多相关《自适应滤波器设计及Matlab实现附程序代码(7页珍藏版)》请在人人文库网上搜索。1、自适应滤波器设计及Matlab实现,附程序代码维纳...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,274
精华内容 1,309
关键字:

matlab状态估计程序

matlab 订阅