matlab导线平差代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档