当前位置:网站首页>[GNSS] robust estimation (robust estimation) principle and program implementation
[GNSS] robust estimation (robust estimation) principle and program implementation
2022-07-06 12:53:00 【Proletarians】
Robust estimation
The principle of robust estimation
Robust estimation is a category of modern measurement adjustment , Also known as robust estimation (robust estimate), According to academician Yang, the CAS system likes to call it robust estimation , Wu Da likes to call it robust estimation . Our measurements are random variables , According to the normal distribution , If there is gross error (gross error) Words , We will make the result deviate from the true value when we apply the least squares or Kalman filter ( Filter divergence ) The phenomenon of . When we solve gross errors or systematic errors , It can be understood from two aspects , Mean shift or variance inflation , Robust estimation belongs to variance inflation model , That is, the mean value remains unchanged , The phenomenon of variance change . We can reduce the weight of observations with gross errors .
I compare lazy , I don't want to write a formula , You should have seen a similar derivation , In fact, the formula is the same as the minimum second difference , The place of change is the power matrix , Replaced by equivalent weight , Then what affects the equivalent weight is the equivalent weight function , Common are huber、IGG III etc. , I recommend IGG III, The code is easy to implement .
When we do it , This power matrix is very important , The weight matrix is the inverse of what we call the variance matrix , It is divided into independent and non independent , That is, whether the observed values are related , Whether it is relevant also affects the form of the equivalent weight function . Take the simplest example of independent observation distance
Examples of robust estimation
Let's assume that for a distance 10 Sub independent observation ,10 The observed values are :5.09、5.10、5.13、5.09、5.12、5.08、5.46、7.81、5.10、5.11( Unit is m), I made up the data casually .
From the above paragraph , We can know the number of measurements n=10, Necessary observation m=1, The redundant observation is n-m=9. Independent observation, then the weight matrix is diagonal , Prior weight matrix is unit diagonal matrix . And what is visible to the naked eye is 7.81 This observation is a gross error ,5.46 Well, I'm not sure if .
Robust program implementation
matlab Realized
%% function 3- Robust estimation
% % Suppose a length is observed ,5.09 5.10 5.13 5.09 5.12 5.08 5.46 7.81 5.10 5.11
close all
clear all
clc
k0=1.0;k1=2.5;k=1.0;
B=ones(10,1);% Design matrix
l=[5.09 5.10 5.13 5.09 5.12 5.08 6.46 7.81 5.10 5.11]';
% P=diag(ones(10,1));% A priori weight matrix 1, Equivalent weight
P=diag(1./l);% A priori weight matrix 2, Weight according to the reciprocal of length
x_prev=0;
x0=5.10;% Assign initial value to
l=l-x0;
while(1)
W=B'*P*l;
N=B'*P*B;
x=inv(N)*W;% Parameter vector to be evaluated
v=B*x-l;% Residual vector
sigma0=sqrt(v'*P*v/(10-1));% Mean square error of unit weight
disp([' Parameter vector to be evaluated :',num2str(x),' Mean square error of unit weight :',num2str(sigma0)]);
Q=inv(P);
Qvv=Q-B*inv(N)*B';
for i=1:10
v_=v(i)/(sigma0*sqrt(Qvv(i,i)));
if abs(v_)<=k0
k=1.0;
elseif abs(v_)>k1
k=1e-8;
else
k=(k0/abs(v_))*((k1-abs(v_))/(k1-k0))^2;
end
P(i,i)=P(i,i)*k;
end
if x_prev==0
x_prev=x;
continue;
elseif abs(x_prev-x)<0.01
break;
end
x_prev=x;
end
x=x0+x_prev;% Find the final length initial value + Correct number
disp(['length is ',num2str(x)])
The results are as follows :
The result of using equivalent weight is :
Parameter vector to be evaluated :0.309 Mean square error of unit weight :0.8512
Parameter vector to be evaluated :0.042222 Mean square error of unit weight :0.11331
Parameter vector to be evaluated :0.0025 Mean square error of unit weight :0.01472
Parameter vector to be evaluated :-0.00031553 Mean square error of unit weight :0.0084525
length is 5.1025
Using the reciprocal of length to determine the weight, the result is :
Parameter vector to be evaluated :0.2218 Mean square error of unit weight :0.31128
Parameter vector to be evaluated :0.03985 Mean square error of unit weight :0.048702
Parameter vector to be evaluated :0.0024523 Mean square error of unit weight :0.0065128
Parameter vector to be evaluated :-0.0003396 Mean square error of unit weight :0.0037381
length is 5.1025
The first line in the figure is the result of our least squares ,10 Only one of the results is close to the value obtained by the least square , Obviously, it is inconsistent with our measured results , Therefore, the existence of a gross error will have a devastating effect on the result of the least squares . So if we apply robust estimation , after 3 The final result and unit weight mean square error are obtained in the second iteration .
If I'm on the seventh value , Making a change , by 5.46 become 6.46. The results are shown below :
The result of using the unit right is :
Parameter vector to be evaluated :0.409 Mean square error of unit weight :0.91426
Parameter vector to be evaluated :0.1257 Mean square error of unit weight :0.38585
Parameter vector to be evaluated :0.0025 Mean square error of unit weight :0.01472
Parameter vector to be evaluated :-0.00031551 Mean square error of unit weight :0.0084526
length is 5.1025
Using the reciprocal of length to determine the weight, the result is :
Parameter vector to be evaluated :0.2218 Mean square error of unit weight :0.31128
Parameter vector to be evaluated :0.03985 Mean square error of unit weight :0.048702
Parameter vector to be evaluated :0.0024523 Mean square error of unit weight :0.0065128
Parameter vector to be evaluated :-0.0003396 Mean square error of unit weight :0.0037381
length is 5.1025
Conclusion
The accuracy of parameter estimation is improved by using robust estimation , In addition, the results of different prior weight matrices are inconsistent in the iterative process , For this example, the reciprocal of length is used to determine the weight , Whether or not the minimum two difference is applied , The results are close to the real value , The mean square error of unit weight is also small .
Robust estimation of correlation between observations
The main thing is the three-step iteration :
1、 Standardized residuals , Mean square error of unit weight
2、 Variance amplification factor
3、 Equivalent variance
Welcome to exchange ~
Updated on 2020/11/10 14:20:00
In the above example , Use standardized residuals , Thank you for reminding me by Mr. Xiao of China Academy of testing , I haven't seen classic adjustment for a long time , The covariance matrix propagation formula is really forgotten , Ha ha ha .
Expand : In fact, we are gnss spp in , There is also no correlation between the observations , So you see , Find the corresponding parameters and apply them directly .
边栏推荐
- [Yu Yue education] guide business reference materials of Wuxi Vocational and Technical College of Commerce
- (core focus of software engineering review) Chapter V detailed design exercises
- [algorithm] sword finger offer2 golang interview question 1: integer division
- 地球围绕太阳转
- [Nodejs] 20. Koa2 onion ring model ----- code demonstration
- Unity3D摄像机,键盘控制前后左右上下移动,鼠标控制旋转、放缩
- Office提示您的许可证不是正版弹框解决
- There is no red exclamation mark after SVN update
- 3月15号 Go 1.18 正式版发布 了解最新特色以及使用方法
- KF UD分解之UD分解基础篇【1】
猜你喜欢

Latex learning

PR 2021 quick start tutorial, first understanding the Premiere Pro working interface

FairyGUI按钮动效的混用

Office prompts that your license is not genuine pop-up box solution
![[algorithm] sword finger offer2 golang interview question 4: numbers that appear only once](/img/f7/23ffc81ec8e9161c15d863c1a67916.png)
[algorithm] sword finger offer2 golang interview question 4: numbers that appear only once

抗差估计在rtklib的pntpos函数(标准单点定位spp)中的c代码实现

平衡二叉树详解 通俗易懂

idea中导包方法

Expected value (EV)

Database course design: college educational administration management system (including code)
随机推荐
[算法] 剑指offer2 golang 面试题13:二维子矩阵的数字之和
(课设第一套)1-4 消息传递接口 (100 分)(模拟:线程)
1041 be unique (20 points (s)) (hash: find the first number that occurs once)
Agile development helps me
Fabrication of fairygui simple Backpack
Servlet
Conditional probability
Mysql database reports an error: row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT=DY
堆排序【手写小根堆】
[算法] 剑指offer2 golang 面试题7:数组中和为0的3个数字
Naive Bayesian theory derivation
Minio file download problem - inputstream:closed
MySQL shutdown is slow
[Nodejs] 20. Koa2 onion ring model ----- code demonstration
Lean product development - Lean Software Development & lean product development
燕山大学校园网自动登录问题解决方案
What are the functions and features of helm or terrain
Excel导入,导出功能实现
The master of double non planning left the real estate company and became a programmer with an annual salary of 25W. There are too many life choices at the age of 25
[offer18] delete the node of the linked list