1、控 制 测 量 学 课 程 设 计学 校: 河 南 城 建 学 院 班 级: 测 绘 工 程 (1) 班 姓 名: 刘 英 坤 学 号: 组 别: 第 一 组 指导老师: 张 杰 实习时间: .05.11-.05.23 目 录一、实习目标及意义11.1 实习目标11.2 实际意义1三、实习过程23.1 手算结果23.2 Excel表格程序设计23.2.1 总体计划设计23.2.2 具体过程33.2.3 程序调试和运行结果53.3 MATLAB程序设计53.3.1 总体计划设计53.3.2 具体过程63.3.3 程序调试和运行结果6四、实习总结和结论7五、参考文件8附 录9一、实习目标及意义1.
2、1 实习目标控制测量学是测绘学中一门关键基础学科,控制测量关键服务对象包含多种工程建设,城镇建设和土地计划和管理等工作。在控制测量中内业包含数据处理、控制网布设技术设计等工作,外业包含控制点布设工作。控制测量学课程设计意在经过Excel表格、C/C+或MATLAB等汇编语言编写测量学或测量平差中部分基础公式程序,巩固和掌握测量学或测量平差中基础概念和基础技能,提升实际动手能力,并经过实际编程加深对控制测量学了解和掌握。1.2 实际意义测量数据处理是测量工作中一项关键内容,在实际工作中,面对上百点水准网或导线网,经过手工计算不仅需要很大人力和时间,而且在平差过程中牵扯到几何、三角函数运算,大大增
3、加了平差难度和精度,将相同规模网型平差数据放到电脑上,只需几分钟便能够完成全部计算,极大提升了工作效率,更是测量数据处理肯定趋势。二、实习任务经过Excel和其它编程语言,以小组为单位,以抽签方法对下列选题进行程序设计:任务1:测量学教材P193附合导线(第9题)平差计算;任务2:附合导线平差计算;(图2.1);任务3:测量学教材P193闭合导线(第8题)平差计算;图2.1 附和导线计算算例图2.2 闭合导线计算算例任务4:闭合导线平差计算(图2.2);任务5:坐标正反算P13 ;测边交会P171测角交会P172;任务6:坐标正反算P13 ;边角交会P174;任务7:测量平差教材P99水准网(
4、条件平差)平差计算;(要求MATLAB调用EXCEL或文本)任务8:测量平差教材P99水准网(间接平差)平差计算; (要求MATLAB调用EXCEL或文本)三、实习过程3.1 手算结果经过手动推算该闭合导线,首先是为了重新理清闭合导线近似坐标平差方法基础方法和公式,其次经过计算结果,能够检验程序运行结果是否正确。计算结果以下:图3.1 手动计算结果3.2 Excel表格程序设计3.2.1 总体计划设计(1)程序设计步骤图图3.2.1 Excel程序设计步骤图(2)数据结构设计图3.2.2 Excel表格结构设计3.2.2 具体过程(1)数据输入将已知数据和观察数据以此输入到表格对应位置。(2)
5、公式编制1)观察角度之和B22=INT(SUM(B8:B20)+SUM(C8:C20)/60+INT(SUM(D8:D20)/3600)C22=IF(SUM(C8:C16)+INT(SUM(D8:D16)/60)60,(SUM(C8:C16)+INT(SUM(D8:D16)/60),SUM(C8:C16)+INT(SUM(D8:D16)/60),INT(SUM(C8:C16)+INT(SUM(D8:D16)/60)D22=IF(SUM(D8:D16)360,INT(SUM(I7*3600+J7*60+K7,F8*3600+G8*60+H8)-180*3600)/3600)-INT(INT(SU
6、M(I7*3600+J7*60+K7,F8*3600+G8*60+H8)-180*3600)/3600)/360),IF(INT(SUM(I7*3600+J7*60+K7,F8*3600+G8*60+H8)-180*3600)/3600)0,INT(SUM(I7*3600+J7*60+K7,F8*3600+G8*60+H8)-180*3600)/3600)+360,INT(SUM(I7*3600+J7*60+K7,F8*3600+G8*60+H8)-180*3600)/3600);J9=INT(INT(SUM(I7*3600+J7*60+K7,F8*3600+G8*60+H8)-180*360
7、0)-I9*3600)/60);K9=(INT(SUM(I7*3600+J7*60+K7,F8*3600+G8*60+H8)-180*3600)-I9*3600-J9*60);I11,I13,I15计算公式和I9雷同;J11,J13,J15计算公式和J9雷同;K11,K13,K15和K9计算公式雷同;只需改变计算公式中对应表格行号即可。5)纵横坐标增量计算依据平差后坐标方位角可计算出坐标增量。纵坐标增量(X)计算公式为:M7=L7*COS(I7+J7/60+K7/3600)*PI()/180);M9,M11,M13,M15和M7计算公式类似。横坐标增量(Y)计算公式为:N7=L7*SIN(I7
8、+J7/60+K7/3600)*PI()/180);N9,N11,N13,N15和N7计算公式类似。6)辅助计算边长之和计算公式:L22 =SUM(L7:L19);纵坐标闭合差fx计算公式:M22= SUM(M7:M19);横坐标闭合差fy计算公式:N22 =SUM(N7:N19);导线全长闭合差f计算公式:J29=SQRT(SUM(POWER(ABS(M22),2),POWER(ABS(N22),2);导线全长相对闭合差T计算公式:导线全长相对闭合差T为分子为1分式所以只需计算分母即可,计算公式为:O27=INT(L22/J29);7)更正后纵横坐标增量计算纵坐标增量更正数计算:O7 =IF
9、(M22=0,ABS(M22)*L7/L22,-M22*L7/L22);更正后纵坐标增量计算:O8 =M7+O7;O9,O11,O13,O15计算公式和O7相同;O10,O12,O14,O16计算公式和O8相同。横坐标增量更正数计算:P7 =IF(N22= (40*sqrt(row) msgbox(角度闭合差超限,请重新测量!); return;endrAngel = cAngel - disAngel/row;if Model =0 Azimulen = length(Azimu); for i=1:Azimulen dAzimu(i) = fix(Azimu(i); mAzimu(i) =
10、 fix(Azimu(i)-dAzimu(i)*100); sAzimu(i) = (Azimu(i)-dAzimu(i)*100-mAzimu(i)*100; cAzimu(i) = dAzimu(i)+mAzimu(i)/60+sAzimu(i)/3600; end %rAzimu=Azimusure(cAzimu);else cAzimu =zeros(1,row+1); cdCoord = Coord(1,1)- Coord(2,1); clCoord = Coord(1,2)-Coord(2,2); if cdCoord =0 & clCoord 0 cAzimu(1) = 90;
11、elseif cdCoord =0 & clCoord 0 & clCoord =0 cAzimu(1) = atan(abs(clCoord/cdCoord); elseif cdCoord 0 cdCoord = abs(cdCoord); cAzimu(1) =(pi-atan(abs(clCoord/cdCoord)*180/pi; elseif cdCoord 0 & clCoord 0 & clCoord =360 cAzimu(i+1) = cAzimu(i+1)-fix(cAzimu(i+1)/360)*360; elseif cAzimu(i+1)=360 cAzimu(i+
12、1) = cAzimu(i+1)-fix(cAzimu(i+1)/360)*360; elseif cAzimu(i+1) 0.00001 errordlg(计算坐标方位角未闭合,请检验数据是否存在粗差!,系统提醒,on);endrAzimu(row+1) =;-%坐标增量计算及调整function rCoordX rCoordY = CoordValue(Disnce,rAzimu,Coord,Model)%format longlen = length(Disnce);if Model=0 | Model=2 for i=1:len cIncrenX(i) = Disnce(i)*cos(
13、rAzimu(i)*pi/180); cIncrenY(i) = Disnce(i)*sin(rAzimu(i)*pi/180); end Disncesure = sqrt(sum(cIncrenX)2 + (sum(cIncrenY)2); if Disncesure/sum(Disnce) 1/ msgbox(距离闭合差超限,请重新测量距离!); return end row col =size(Disnce); rCoordX = Coord(:,1); rCoordY = Coord(:,2); for i=1:row rIncrenX(i)=vpa(cIncrenX(i)-sum(
14、cIncrenX)*Disnce(i)/sum(Disnce),6); rCoordX(i+1)=rIncrenX(i) + rCoordX(i); rIncrenY(i)= vpa(cIncrenY(i)-sum(cIncrenY)*Disnce(i)/sum(Disnce),6); rCoordY(i+1) = rCoordY(i) + rIncrenY(i); endendif Model=1 for i=1:len cIncrenX(i) = Disnce(i)*cos(rAzimu(i+1)*pi/180); cIncrenY(i) = Disnce(i)*sin(rAzimu(i+
15、1)*pi/180); end sum(cIncrenX) sum(cIncrenY) Disncesure = sqrt(sum(cIncrenX)2 + (sum(cIncrenY)2); if Disncesure/sum(Disnce) 1/ msgbox(距离闭合差超限,请重新测量距离!); return end row col =size(Disnce); rCoordX(1,1:col) = Coord(:,1); rCoordY(1,1:col) = Coord(:,2); for i=1:col rIncrenX(i)=vpa(cIncrenX(i)-sum(cIncrenX
16、)*Disnce(i)/sum(Disnce),6); rCoordX(i+1)=rIncrenX(i) + rCoordX(i); rIncrenY(i)= vpa(cIncrenY(i)-sum(cIncrenY)*Disnce(i)/sum(Disnce),6); rCoordY(i+1) = rCoordY(i) + rIncrenY(i); endend-%导线概略图显示function hWnd=drawskhMap (x,y,Title,Model)ScreenSize = get(0,ScreenSize);len = length(x);hWnd = figure(Color
17、,1,1,0.5,. Position,(ScreenSize(3)-650)/2,(ScreenSize(4)-500)/2,650,500,. Menu,none,. NumberTitle,off,. Name,Title);if Model =0h=plot(y(1),x(1),y(2:len-1),x(2:len-1),o,y(len),x(len),y,x,Color,g,LineWidth,2,MarkerSize,12);elseh=plot(y(1:2),x(1:2),y(3:len-1),x(3:len-1),o,y(len),x(len),y,x,Color,g,Line
18、Width,2,MarkerSize,12);endpause(0.2);-%计算结果保留function Preser(rAzimu,rAngel,disAngel,rCoord,pathfilename)if ischar(pathfilename) error(该参数为字符串,请输入字符串!);endfilelen = length(pathfilename);str = pathfilename(filelen-3:filelen);%dstr = length(data);fid = fopen(pathfilename,w+);len = length(rCoord);reCoor
19、d = reshape(rCoord,len/2,2);r=length(rAngel);if strcmp(str,.txt) fprintf(fid,观察更正后值为:rn); fprintf(fid, %5f rn,rAngel); fprintf(fid,角度闭合差为:n); fprintf(fid, num2str(3600*disAngel),); fprintf(fid, 角度闭合差限差为:n); fprintf(fid,num2str(40*sqrt(r), rn); fprintf(fid,坐标方位角为:rn); fprintf(fid, %5f rn,rAzimu); fpr
20、intf(fid,待定点坐标为:rn); fprintf(fid, 横坐标(X/m) 纵坐标(Y/m)rn); fprintf(fid, %3f %3frn,reCoord);endif strcmp(str,.xls) xlswrite(pathfilename,观察更正后值,A1:A1); xlswrite(pathfilename,rAngel,A2:A,num2str(r+2); PA = A,num2str(r+4),:A,num2str(r+4); xlswrite(pathfilename,角度闭合差,PA); PB = B,num2str(r+4),:B,num2str(r+4
21、); xlswrite(pathfilename,num2str(3600*disAngel),PB); PB = C,num2str(r+4),:C,num2str(r+4); xlswrite(pathfilename,角度闭合差限差,PC); PD =D,num2str(r+4),:D,num2str(r+4); xlswrite(pathfilename,num2str(40*sqrt(r),PD); xlswrite(pathfilename,坐标方位角,B1:B1); xlswrite(pathfilename,rAzimu,B2:B,num2str(dstr-1)/3); xlswrite(pathfilename,待定点坐标,D1:D1); xlswrite(pathfilename,reCoord,D2:F,num2str(dstr-1)/3);end -%转化十进制角度function