matlab导线平差代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
function [zjbl1 kp ukp sp sa ss pn pn1 rlf12 x y x1 y1 k1 k2 k3 ma ms1 ms2 angles zjbl2 k11 k22 s]=readdata;
global zjbl1 kp ukp sp sa ss pn pn1 rlf12 x y x1 y1 k1 k2 k3 ma ms1 ms2 angles zjbl2 k11 k22 s;
[filename,pathname]=uigetfile('*.dat;*.txt','¶ÁÈ¡Êý¾Ý');
if filename~=0
[fid1 msg]=fopen(strcat(pathname,filename),'rt');
if fid1>0
kp=fscanf(fid1,'%f',1);
ukp=fscanf(fid1,'%f',1);
sp=kp+ukp;
sa=fscanf(fid1,'%f',1);
ss=fscanf(fid1,'%f',1);
pn=fscanf(fid1,'%s',[1 sp]);
pn1=pn;
rlf12=fscanf(fid1,'%f',2);
rlf12=de_to_rad(rlf12);
x=fscanf(fid1,'%f',1);
y=fscanf(fid1,'%f',1);
x1=zeros(1,2);
x1(2)=x(1);
y1=zeros(1,2);
y1(2)=y(1);
ma=fscanf(fid1,'%f',1);
ms1=fscanf(fid1,'%f',1);
ms2=fscanf(fid1,'%f',1);
zjbl1=fscanf(fid1,'%s%s%s%f',[4 sa]); %Öмä±äÁ¿
zjbl1=zjbl1';
k1=zjbl1(:,1);
k2=zjbl1(:,2);
k3=zjbl1(:,3);
angles=zjbl1(:,4);
angles=de_to_rad(angles);
zjbl2=fscanf(fid1,'%s%s%f',[3 ss]); %Öмä±äÁ¿
zjbl2=zjbl2';
k11=zjbl2(:,1);
k22=zjbl2(:,2);
s=zjbl2(:,3);
fclose(fid1);
k1=chkdat(sp,pn,k1);
k2=chkdat(sp,pn,k2);
k3=chkdat(sp,pn,k3);
k11=chkdat(sp,pn,k11);
k22=chkdat(sp,pn,k22);
x1(1)=x1(2)-s(1)*cos(rlf12(1));
y1(1)=y1(2)-s(1)*sin(rlf12(1));
else
error(msg);
end
end
function [x1 y1]=calculatex0y0(ukp,rlf12,angles,k1,x1,y1,s)
for i=1:ukp
if i==1
rlf(i)=rlf12(1)+rlf12(2)-pi;
else
rlf(i)=rlf(i-1)+angles(i)-pi;
end
if rlf(i)<0
rlf(i)=rlf(i)+2*pi;
elseif rlf(i)>2*pi
rlf(i)=rlf(i)-2*pi;
else
rlf(i)=rlf(i);
end
x1(k1(i+1))=x1(k1(i))+s(i)*cos(rlf(i));
y1(k1(i+1))=y1(k1(i))+s(i)*sin(rlf(i));
end
function [B L]=calculatebl(sa,ss,s,sp,x1,y1,k1,k2,k11,k22,k3,kp,angles); B=(zeros(sa+ss,sp*2));
p=206264.80624709;
for i=1:sa
detx1=x1(k2(i))-x1(k1(i));
dety1=y1(k2(i))-y1(k1(i));
s1=solvedis(x1(k1(i)),x1(k2(i)),y1(k1(i)),y1(k2(i)));
T1=fangweijiao(x1(k1(i)),x1(k2(i)),y1(k1(i)),y1(k2(i)));
detx2=x1(k3(i))-x1(k1(i));
dety2=y1(k3(i))-y1(k1(i));
s2=solvedis(x1(k1(i)),x1(k3(i)),y1(k1(i)),y1(k3(i)));
T2=fangweijiao(x1(k1(i)),x1(k3(i)),y1(k1(i)),y1(k3(i)));
B(i,2*k1(i)-1)=p*(dety1/(s1^2)-dety2/(s2^2));
B(i,2*k1(i))=-p*(detx1/(s1^2)-detx2/(s2^2));
B(i,2*k2(i)-1)=-p*(dety1/(s1^2));
B(i,2*k2(i))=p*(detx1/(s1^2));
B(i,2*k3(i)-1)=p*(dety2/(s2^2));
B(i,2*k3(i))=-p*(detx2/(s2^2));
if k1(i)<=kp
B(i,2*k1(i)-1)=0;
B(i,2*k1(i))=0;
end
if k2(i)<=kp
B(i,2*k2(i)-1)=0;
B(i,2*k2(i))=0;
end
if k3(i)<=kp
B(i,2*k3(i)-1)=0;
B(i,2*k3(i))=0;
end
T(i)=T1-T2;
if T(i)<0
T(i)=T(i)+2*pi;
elseif T(i)>2*pi
T(i)=T(i)-2*pi;
else
T(i)=T(i);
end
L(i)=(angles(i)-T(i))*206264.80624709;%ת»¯ÎªÃ뵥λ£»
end
for ii=1:ss
detx11=x1(k22(ii))-x1(k11(ii));
dety11=y1(k22(ii))-y1(k11(ii));
s11=solvedis(x1(k11(ii)),x1(k22(ii)),y1(k11(ii)),y1(k22(ii))); s21(ii)=s11;
B(sa+ii,2*k11(ii)-1)=-(detx11/(s11));
B(sa+ii,2*k11(ii))=-(dety11/s11);