-
大小: 7KB文件類型: .m金幣: 2下載: 1 次發(fā)布日期: 2021-08-27
- 語言: Matlab
- 標(biāo)簽: matlab??最小二乘??坐標(biāo)變換??gps??
資源簡介
通過matlab對gps 數(shù)據(jù)進行計算分析,以期得到較好的結(jié)果,使用最小二乘數(shù)據(jù)擬合
代碼片段和文件信息
%在以前的數(shù)據(jù)中空吊時的重量大概值為2.2-2.4之間
%在對鋼卷的作業(yè)過程中,對草堆的作業(yè)不作記錄,或者說對鋼卷作業(yè)時不存在作業(yè)時重量數(shù)據(jù)的緩慢變化,這里面的參數(shù)應(yīng)該能取大一些(重量變化數(shù)據(jù)更明顯一些),
%可能出現(xiàn)的情況少一些
weight=xlsread(‘E:\中儲\GPS數(shù)據(jù)\0729.xls‘‘j2:j65536‘);%讀取重量傳感器的重量數(shù)據(jù)
d=xlsread(‘E:\中儲\GPS數(shù)據(jù)\新平行軌道計算結(jié)果.xls‘‘u2:u32769‘);%讀取已換算好的龍門吊位置數(shù)據(jù)
xo2=60.680511163727;%龍門吊始點的坐標(biāo)(60.6805111637270)
d=d-xo2;%坐標(biāo)平移龍門吊行走的軌道為X軸
w=zeros(327681);
for?i=1:32768
????w(i)=weight(2*i-1);%因之前在我的EXCEL表里面重量數(shù)據(jù)是每隔0.5秒一個GPS位置是每隔1秒一個為讓數(shù)據(jù)在同一時間點相對應(yīng)
end
xlswrite(‘E:\中儲\GPS數(shù)據(jù)\628提需求點.xls‘w‘e2:e32769‘);
zuoye=zeros(10003);%記錄實際作業(yè),第一列記錄作業(yè)的時刻(即數(shù)據(jù)的序號),第二列記錄是提貨還是卸貨,第三列記錄在求龍門吊位置時參于均值計算的個數(shù)
zuoye2=zeros(327683);%第一列記錄在第i處是否有作業(yè),
dengdai=0;%對異常點,用于等待判斷標(biāo)志
k=1;%記錄實際作業(yè)過程
for?i=15:32768
????if?abs(w(i)-w(i-1))>0.2;%有的貨輕此時重量變化緩慢.(在對鋼卷作業(yè)的過程中可能是對草堆作業(yè)這個差值以后應(yīng)該差大)
????????if?mean(w(i-4:i-1))<2.45?&&?mean(w(i+1:i+4))>2.6?&&?w(i-3)<2.5?&&?w(i+3)>2.6%符合條件的為提貨時刻(因為在提貨的前一段時間應(yīng)該為空吊此時重量值、均值較小提貨的后一段時間的重量值、均值較大)
????????????k=k+1;%(滿足提貨作業(yè)條件,增加一條作業(yè)記錄)
????????????zuoye2(i1)=1;zuoye(k1)=i;zuoye(k2)=1;%提貨標(biāo)志為“1”
????????????if?abs(sum(zuoye2(i-2:i1)))==2?%針對重量緩變的情況的多次計算以及在提貨不久后抖動的情況,消掉后面的記錄
???????????????????zuoye2(i1)=0;zuoye(k1)=0;zuoye(k2)=0;k=k-1;
????????????else?if?zuoye(k2)==zuoye(k-12)&&zuoye(k2)==1
???????????????????????????dengdai=1;%連續(xù)兩次提貨,數(shù)據(jù)有些異常,需要后面的值來進一步判斷究竟哪一次是真的提貨,但下面同時先記錄下可能需要的信息
???????????????????????????m=sum(d(i-98:2:i+100));n=100;?%mn為記錄龍門吊作業(yè)位置的均值
????????????for?p=1:100
????????????????if?abs(d(i+2*p-100)-d(i))>2?%為記錄作業(yè)時刻的位置取均值作準(zhǔn)備
????????????????????m=m-d(i+2*p-100);n=n-1;
????????????????end
????????????end
????????????zuoye2(i2)=m/n;zuoye2(i3)=n;zuoye(k3)=n;%得到位置均值,及記錄參于計算均值的數(shù)據(jù)個數(shù)
????????????????else?%初步判斷為正常提貨,下面對需要的信息進行記錄
????????????m=sum(d(i-98:2:i+100));n=100;?%mn為記錄龍門吊作業(yè)位置的均值
????????????for?p=1:100
????????????????if?abs(d(i+2*p-100)-d(i))>2
????????????????????m=m-d(i+2*p-100);n=n-1;
????????????????end
????????????end
????????????zuoye2(i2)=m/n;zuoye2(i3)=n;zuoye(k3)=n;
????????????????????end
????????????end
????????else?%此刻為非提貨時刻,下面需要判斷是否為卸貨時刻
????????????if?mean(w(i-4:i-1))>2.6?&&?mean(w(i+1:i+4))<2.45?&&?w(i-3)>2.6?&&?w(i+3)<2.5%符合條件的為卸貨時刻,(因為在提貨的前一段時間應(yīng)該為載貨吊此時重量值、均值較大卸貨的后一段時間的重量值、均值較小)
??????????????????k=k+1;%初步滿足卸貨時刻
??????????????zuoye2(i1)=-1;zuoye(k1)=i;zuoye(k2)=-1;%卸貨標(biāo)志為“-1”
????????????if?abs(sum(zuoye2(i-2:i1)))==2?%%針對重量緩變的情況的多次計算以及在提貨不久后抖動的情況,消掉后面的記錄
???????????????????zuoye2(i1)=0;zuoye(k1)=0;zuoye(k2)=0;k=k-1;?%在這些記錄里,只記錄k=k-1應(yīng)該就可以了
????????????else?if?zuoye(k2)==zuoye(k-12)&&zuoye(k2)==-1%連續(xù)兩次卸貨,數(shù)據(jù)有些異常,需要進一步判斷究竟哪一次是真的卸貨
??????????????????????????if?abs(mean(w(zuoye(k-21)+1:zuoye(k-11)-1))-mean(w(zuoye(k-11)+1:zuoye(k1)-1)))>1?%通過前一段作業(yè)時間的重量均值與后一時間段的重量均值相比,確定真的卸貨點(此刻為前一個卸貨點為真的卸貨點)
???????????????????????????????????zuoye2(i1)=0;zuoye(k1)=0;zuoye(k2)=0;k=k-1;?%消掉后面的卸貨記錄,總的作業(yè)次數(shù)減少一次
???????????????????????????????else?zuoye2(zuoye(k-11)1)=0;zuoye2(zuoye(k-11)2)=0;zuoye(k-11)=i;zuoye(k2)=0;k=k-1;%表明此時后一個卸貨點為真的卸貨點,消掉前一個點的卸貨記錄,總的作業(yè)次數(shù)減少一次
??????
- 上一篇:matlab信號分析濾波求包絡(luò)
- 下一篇:OQPSK的matlab程序
評論
共有 條評論