資源簡介
GPS接收機采集衛星星歷數據和偽距觀察信息,結合CORS站的偽距觀察值和真實位置,計算偽距修正參數進行偽距修正,從而實現單點定位。(請將ECEF2ENU函數注釋)

代碼片段和文件信息
%?function:?pesudorange?difference?positioning
clear
%?close?all
clc
tic
load?2018090301GPSCORS.mat
PositioningResultECEF?=?[];
PositioningResult?=?[];
PositioningResultCartesian?=?[];
centerLLH?=?[29.5356087972239;106.603976292981;407.150738388300];
centerXYZ?=?[-1587130.712661975322574.903550253125890.16305581];
ENU?=?[];
MAXITER?=?20;
realStamp?=?1;
corsRealRecord?=?[];
pesudorangeDiffRecord?=?[];
diffRealReceCORS?=?[];
for?timestamp?=?1?:?length(Receiver)
????%?get?current?observation?data
????currentReceiverData?=?cell2mat(Receiver(timestamp));
????currentCORSData?=?cell2mat(CORS(timestamp));
????ReceID?=?currentReceiverData(:?2);
????GPSID?=?SatelliteData(:?3);
????CORSID?=?currentCORSData(:?2);
????currentTime?=?currentReceiverData(1?1);
????x_hat?=?zeros(4?1);
????
????resultFlag?=?1;
????
????for?iter?=?1:MAXITER
????????
????????actualLength?=?0;
????????dataLength?=?size(currentReceiverData?1);
????????????????
????????b_data?=?zeros(dataLength?1);
????????H_data?=?zeros(dataLength?4);
????????cov_data?=?zeros(dataLength?1);
????????
????????for?index?=?1:dataLength
????????????resultRece?=?currentReceiverData(index?2);
????????????resultGPS?=?find(SatelliteData(:?3)?==?resultRece);
????????????resultCORS?=?find(currentCORSData(:?2)?==?resultRece);
????????????
????????????if?(isempty(resultGPS)?||?isempty(resultCORS))
????????????????continue;
????????????end
????????????
????????????actualLength?=?actualLength?+?1;
????????????%?calculate?initial?distance
????????????currentSatellitePosition?=?parseSatellitePosition(currentTime?SatelliteData(resultGPS?:));
????????????distance?=?norm(currentSatellitePosition?-?x_hat(1:3)‘);
????????????
????????????%??--------compute?H?design?matrix?--------
????????????H_data(actualLength?1)?=?-?(currentSatellitePosition(1)?-?x_hat(1))?/?distance;
????????????H_data(actualLength?2)?=?-?(currentSatellitePosition(2)?-?x_hat(2))?/?distance;
????????????H_data(actualLength?3)?=?-?(currentSatellitePosition(3)?-?x_hat(3))?/?distance;
????????????H_data(actualLength?4)?=?1.0;
????????????
????????????%?calcuate?pseudorange?fix?data?deltaP
????????????realDistance?=?norm(currentSatellitePosition?-?ReferenceStation);
????????????deltaP?=?currentCORSData(resultCORS?3)?-?realDistance;
????????????
????????????
????????????%?compute?psudorange
????????????pseudorange?=?currentReceiverData(index?5);
????????????std?=?currentReceiverData(index?8);
????????????cov_data(actualLength?1)?=?std?*?std;
????????????b_data(actualLength?1)?=?pseudorange?-?deltaP?-??distance?-?x_hat(4);
????????????
???????????if?resultRece?==?5
????????????????temp?=?[currentTime?resultRece?pseudorange?-?currentCORSData(resultCORS?3)];
????????????????pesudorangeDiff?=?temp;
????????????end
????????end
????????
????????if?(?actualLength?4?)
???????????fprintf(‘observation?number?is?less?than?4\n‘);
???????????resultFlag?=?0;
???????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????106550??2018-08-24?17:01??2018082401GPSCORS.mat
?????文件????????5798??2018-09-11?15:30??main.m
?????文件????????5366??2018-07-30?15:55??parseSatellitePosition.m
?????文件????????1379??2018-09-10?17:27??wgs84_ecef2llh.m
- 上一篇:sigm激活函數
- 下一篇:水平集方法的matlab源代碼
評論
共有 條評論