建模机器人避路障问题_第1页
建模机器人避路障问题_第2页
建模机器人避路障问题_第3页
建模机器人避路障问题_第4页
建模机器人避路障问题_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、24/24机器人避障问题摘要:本文根据题目要求,主要研究了在一个区域有障碍物的最短路径问题。依题意我们可以认为最短路径一定是由线和最小圆弧组成,圆心在障碍物的顶点。对于问题一首先讨论由O到A的距离,为了到达目标点,我们建立了圆线模型。将路线分为两部分:一部分是平面上的自然最短路径(即直线段),另一部分是限定区域的部分边界的半径至少十个单位以外的圆弧,得到其路径长度为,并用MATLAB程序解得最短路径471.0372对于O到B的距离问题,为了到达目标点,我们需要建立圆与点圆模型,其中由于圆与圆之间的不同的位置关系,又可以分为同向相切与异向相切,同向相切时 ,异向相切时 。由MATLAB程序解得最

2、短路径869.8523。对于O到C,与前者的区别是障碍物大圆视为半径较大的转折弧,为了到达目标点,依旧建立圆圆结构与线圆结构模型,经MATLAB程序解得最短路径为1011.3。对于OABCO的路径问题,除了用了上述提到的圆圆,线圆结构外,还建立了圆心偏移的模型(即点ABC在相对应的弧上),A点偏以后的坐标为(290.9,304.1),B点偏以后的坐标为(108.23,694.32),C点偏以后的坐标为(707.26,633.12),将OABCO分为两部分,一部分为OABCN(730,520)的距离,另一部分为由N回到O的距离,两部分结果之和即为所求路径。OABCN的距离1.7691e+003,

3、N到O为880.7744,总长为2649,6744对于问题二,我们将路线问题转化为规划问题,求的最短时间,目标函数为由LINGO有最短时间为94.22822,切点坐标(69.80,211.98)(77.75,220.14)圆心(82.14,207.92)。关键词: 最短路径最优化模型避障路径规划问题线圆结构一 问题重述机器人从原点O出发且他只能在图中所给出的800*800正方平面场景围活动。且平面场景围的12个不同形状的区域是机器人不能与之发生碰撞的障碍物。在平面场景中,障碍物外指定一点为机器人要到达的目标点(要求目标点与障碍物的距离至少超过10个单位)。规定机器人的行走路径由直线段和圆弧组成

4、,其中圆弧是机器人转弯路径。机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位,否则机器人将无法完成行走。机器人直线行走的最大速度为个单位/秒。机器人转弯时,最大转弯速度为,其中是转弯半径。请建立机器人从区域中一点到达另一点的避障最短路径和最短时间路径的数学模型。对4个点O(0, 0),A(300, 300),B(100, 700),C(700, 640),具体计算:(1) 机器人从O(0, 0)出发,OA、OB、OC和OABCO的最短

5、路径。(2) 机器人从O (0, 0)出发,到达A的最短时间路径。 800800平面场景图二问题分析1、问题一中要求定点机器人按照一定的行走规则绕过障碍物到达目标点的最短路径,由于机器人不能折线拐弯,所以拐弯处必然是一圆弧,我们采用线圆结构的方法建立模型,用这种方法寻找可能的最短路径,然后采用穷举法列出O到目标点的最短路径。这其中我们不能仅仅考虑是经过障碍物拐点的问题(例如由OABCO路径的计算),也应该考虑经过路径中的目标点处转弯的问题,这是简单的线圆结构就不能解决这种问题,我们在拐点与途中目标点处采用最小转弯半径的形式,使机器人能够沿直线通过途中的目标点,然后建立优化模型对此问题进行优化,

6、最终求得最短路径。2、问题二中涉与到机器人的速度问题,这样就不能以最短路径来进行计算,因为拐弯速度与直线速度不一样,这时就需要在加入速度因素,来求得最佳结果。三模型假设1 假设机器人能够抽象成点来处理。2 假设机器人在直线上或弧上均匀速行走。四 符号说明符号符号含义L出发点到目标点的路径长度r转弯半径R经过障碍物圆2处的转弯半径五 模型的建立与求解我们容易得知,起点到目标点无论中间障碍物有多少,最短路径都应该是若干个线圆结构组成。在本题中存在障碍物的状况,我们易知,在求两点之间的最短路径中的拐弯半径我们应该按照最小的转弯半径来计算才能达到最优,所以我们理解为在拐点处的危险区域是一个半径为10的

7、圆弧。以下图为例,1) 点圆模型 如上图,设A( QUOTE * MERGEFORMAT 错误!未找到引用源。为起点,B( QUOTE * MERGEFORMAT 错误!未找到引用源。为目标点,C( QUOTE * MERGEFORMAT 错误!未找到引用源。和D( QUOTE * MERGEFORMAT 错误!未找到引用源。分别为机器人经过拐点分别于隔离危险线拐角小圆弧的切点,圆心为O( QUOTE * MERGEFORMAT 错误!未找到引用源。,圆的半径为r,AB的长度为a,AO的长度为b,BO的长度为c,角度= QUOTE * MERGEFORMAT 错误!未找到引用源。, = QUO

8、TE * MERGEFORMAT 错误!未找到引用源。, = QUOTE * MERGEFORMAT 错误!未找到引用源。,.求A QUOTE * MERGEFORMAT 错误!未找到引用源。B的长度,设为L.解法如下:如上图可得有以下关系:在:在中:所以:从而可得:我们就可以这样认为,起点到目标点无论中间障碍物有多少,最短路径都应该是若干个点圆结构所组成。在本题中存在障碍物的状况,且障碍物在拐点处的危险区域是一个半径为10的圆弧,所以结合上述结论,我们易知,求两点之间的最短路径中的转弯半径我们应该按照最小的转弯半径来算才能达到最优。2)线圆模型 而对于下图两种情况我们不能直接采用线圆的结构来

9、解决,需要做简单的变换。 情况一(同向):这里我们依然设圆心坐标分别为和,半径均为r,这样我们可以得到:此段路径就是由两段狐与两段直线的组合加圆心距的总长。这样我们就可以利用1)中的方法,先求A到E,再求D到B,最后减去DE的长度,这样分两段就可以求解。同理如果有更多的转弯,我们同样可以按照此种方法分解。情况二(反向): 我们假设两圆心坐标分别为和,半径均为r,M点坐标为,那么我们很容易可以求得:M点坐标利用M将图上分解成两个线圆结构,利用上述方法进行计算,易得出结果。3)圆心偏移模型在处理路径中,由于需要使处在路径上,所以寻找所对应弧的圆心,建立模型如图所示,E为O1O2的中点,图中的E为题

10、中的ABC,O1为各点所在弧的圆心,利用LINGO找出使点落在最短路径上所对应的圆心,利用此圆心为拐点,用上述的方法进行计算。问题一以下给出了机器人到个目标点的可能路径的最短路径:如下图就是机器人由O到目标点的最短路线 1)O到目标点A的最短路径求解,通过计算,机器人从障碍物5的上方走的最短路径大于机器人从障碍物5下方走的最优路径,机器人行走的最优路线的可能性已经列出,附录中给出两种方案的求解结果。 最小结果对应的行走路路线乃是黑线所示,就是O到A的最短路径471.0372。 2)O到目标点B的最短路径求解,我们在附录中给出三种路径的求解过程,分别为:(1)由O路过障碍物5,8到达B,如图中虚

11、线所示由O路过障碍物6的上端,到7,8最后到达B点,如图中黑实线所示(3)由O路过障碍物6的下端,到7,8最后到达B点,图中间隔线所示。附录中给出三种方案的结果,最终比较得到最短路径为路径(2)即图中黑实线所示路径长度为869.8523。O到目标点C的最短路径求解,我们在附录中给出三种路径的求解过程,分别为:(1)由O路过障碍物5的上端,3,2,11到达C,黑线所示;(2)由O路过障碍物5的下端,到3,2,11最后到达C点,如图中虚线所示。 由附录中给出的结果,最终比较得到最短路径为路径(1),图中黑实线所示,路径长度为1.0113e+003。4)OABCO的最短路径求解,通过计算OA,OC,

12、OB,我们容易得出OABCO的最短路径如下图所标,求解过程有两部分组成,先计算由O到N点的距离,再求N到O点的距离,最终结果为二者之和,结果为2649,6744。问题二设目标函数为由LINGO可得出所求,最短时间为94.22822,切点坐标(69.80,211.98)(77.75,220.14)圆心(82.14,207.92)。六、模型评价一、模型优点 1、模型优化后用解析几何,三角形中各个之间的关系进行求解,精确度较高。2、模型简单易懂,便于实际检验与应用。3、二、模型缺陷 1、此模型适于全局规划,获得精确解却失去了效率。2、在障碍物较多时,且形状不规则时,模型需要进一步改进。 3、在程序设

13、计时,较复杂,需要繁琐的编辑过程。七、参考文献1新社 ,高等数学 , : 中国科学技术大学 2009.72启源,数学模型,:高等教育,2003.3金星 薛毅 ,优化建模与LINGO ,:清华大学,2005年4来福 曾文艺 ,数学模型与数学建模, :师大学 2003.八、附录附录一:问题一中用matlab解一 OA长度求解1)%求解一次转弯所经路线总长1 %O:初始点 E:转弯圆弧圆心 A:到达点 function result=zongchang(O,E,A,r)OE=sqrt(O(1)-E(1)2+(O(2)-E(2)2);AE=sqrt(A(1)-E(1)2+(A(2)-E(2)2);OA

14、=sqrt(O(1)-A(1)2+(O(2)-A(2)2);alpha1=acos(OE2+AE2-OA2)/(2*AE*OE);alpha2=acos(r/AE);alpha3=acos(r/OE);alpha4=2*pi-alpha1-alpha2-alpha3;%alpha4为转弯圆心角result=sqrt(AE2-r2)+sqrt(OE2-r2)+r*alpha4;将(0,0),(80,210),(300,300)代入求得长度为ans = 471.03722 %O:初始点 F:转弯圆弧圆心 A:到达点 function result=zongchang(O,E,A,r)OE=sqrt

15、(O(1)-F(1)2+(O(2)-F(2)2);AF=sqrt(A(1)-F(1)2+(A(2)-F(2)2);OA=sqrt(O(1)-A(1)2+(O(2)-A(2)2);alpha1=acos(OF2+AF2-OA2)/(2*AF*OF);alpha2=acos(r/AF);alpha3=acos(r/OF);alpha4=2*pi-alpha1-alpha2-alpha3;%alpha4为转弯圆心角result=sqrt(AE2-r2)+sqrt(OE2-r2)+r*alpha4;将(0,0),(230,60),(300,300)代入求得长度为ans = 498.42592)计算OB

16、路径1%O:初始点 E,F,G,H,D :转弯圆弧圆心 M,N:为距离中点 B:到达点 function result=zongchang(O,E,F,G,H,D,M,N,B,r)OE=sqrt(O(1)-E(1)2+(O(2)-E(2)2);OF=sqrt(O(1)-F(1)2+(O(2)-F(2)2);EF=sqrt(E(1)-F(1)2+(E(2)-F(2)2);MF=sqrt(M(1)-F(1)2+(M(2)-F(2)2);ME=sqrt(M(1)-E(1)2+(M(2)-E(2)2);MG=sqrt(M(1)-G(1)2+(M(2)-G(2)2);GH=sqrt(G(1)-H(1)2

17、+(G(2)-H(2)2);GN=sqrt(G(1)-N(1)2+(G(2)-N(2)2);MH=sqrt(M(1)-H(1)2+(M(2)-H(2)2);NH=sqrt(N(1)-H(1)2+(N(2)-H(2)2);BN=sqrt(B(1)-N(1)2+(B(2)-N(2)2);DN=sqrt(D(1)-N(1)2+(D(2)-N(2)2);BD=sqrt(B(1)-D(1)2+(B(2)-D(2)2);alpha1=acos(OE2+EF2-OF2)/(2*OE*EF);alpha2=acos(r/OE);alpha3=1.5*pi-alpha1-alpha2;alpha4=acos(E

18、F2+MF2-ME2)/(2*EF*MF);alpha5=acos(r/MF);alpha6=1.5*pi-alpha4-alpha5;alpha7=acos(MG2+GH2-MH2)/(2*MG*GH);alpha8=acos(r/MG);alpha9=1.5*pi-alpha7-alpha8;alpha10=acos(NH2+GH2-GN2)/(2*NH*GH);alpha11=acos(r/NH);alpha12=1.5*pi-alpha10-alpha11;alpha13=acos(BD2+DN2-BN2)/(2*BD*DN);alpha14=acos(r/BD);alpha15=ac

19、os(r/DN);alpha16=2*pi-alpha13-alpha14-alpha15;TS1=sqrt(OE2-r2);TS2=EF;TS3=sqrt(MF2-r2);TS4=GH;TS5=sqrt(NH2-r2);TS6=sqrt(DN2-r2);TS7=sqrt(BD2-r2);S1S1hu=r*alpha3;S1S2hu=r*alpha6;S1S3hu=r*alpha9;S1S4hu=r*alpha12;S1S5hu=r*alpha16;result=TS1+TS2+2*TS3+TS4+TS5+TS6+TS7+S1S2hu+S1S4hu+S1S3hu+S1S1hu+S1S5hu;将

20、0,0,160,300,150,435,220,470,220,530,150,600,185,452.5,175,565,100,700,10)代入可求得ans = 869.85232%O:初始点 E F:转弯圆弧圆心 B:到达点 function result=zongchang(O,E,F,B,r)OE=sqrt(O(1)-E(1)2+(O(2)-E(2)2);OF=sqrt(O(1)-F(1)2+(O(2)-F(2)2);FE=sqrt(F(1)-E(1)2+(F(2)-E(2)2);FB=sqrt(F(1)-B(1)2+(F(2)-B(2)2);BE=sqrt(B(1)-E(1)2+

21、(B(2)-E(2)2);alpha1=acos(OE2+FE2-OF2)/(2*OE*FE);alpha2=acos(r/OE);alpha3=1.5*pi-alpha1-alpha2;alpha4=acos(FB2+FE2-BE2)/(2*FB*FE);alpha5=acos(r/FB);alpha6=1.5*pi-alpha4-alpha5;TS1=sqrt(OE2-r2);S2W=sqrt(FB2-r2);S1S2hu=r*alpha3;S3W=FES1S3hu=r*alpha6;result=TS1+S2W+S1S2hu+S3W+S1S3hu;将(0,0,230,60,270,680

22、,100,700,10)代入可求的ans = 1.0584e+0033%O:初始点 E,F,G,H,D :转弯圆弧圆心M,N:为距离中点 B:到达点 function result=zongchang(O,E,F,G,H,M,N,B,r)OE=sqrt(O(1)-E(1)2+(O(2)-E(2)2);OM=sqrt(O(1)-M(1)2+(O(2)-M(2)2);ME=sqrt(M(1)-E(1)2+(M(2)-E(2)2);MF=sqrt(M(1)-F(1)2+(M(2)-F(2)2);FG=sqrt(F(1)-G(1)2+(F(2)-G(2)2);NF=sqrt(N(1)-F(1)2+(N

23、(2)-F(2)2);NG=sqrt(N(1)-G(1)2+(N(2)-G(2)2);MG=sqrt(M(1)-G(1)2+(M(2)-G(2)2);BN=sqrt(B(1)-N(1)2+(B(2)-N(2)2);NH=sqrt(N(1)-H(1)2+(N(2)-H(2)2);BH=sqrt(B(1)-H(1)2+(B(2)-H(2)2);EF=sqrt(E(1)-F(1)2+(E(2)-F(2)2);GH=sqrt(G(1)-H(1)2+(G(2)-H(2)2);alpha1=acos(OE2+ME2-OM2)/(2*OE*ME);alpha2=acos(r/OE);alpha3=acos(

24、r/ME);alpha4=2*pi-alpha1-alpha2-alpha3;alpha5=acos(FG2+MF2-MG2)/(2*FG*MF);alpha6=acos(r/MF);alpha7=1.5*pi-alpha5-alpha6;alpha8=acos(FG2+NG2-NF2)/(2*FG*NG);alpha9=acos(r/NG);alpha10=1.5*pi-alpha8-alpha9;alpha11=acos(NH2+BH2-BN2)/(2*NH*BH);alpha12=acos(r/NH);alpha13=acos(r/BH);alpha14=2*pi-alpha11-alp

25、ha12-alpha13;TS1=sqrt(OE2-r2);S1W=0.5*EF;S2W=0.5*GH;TS2=sqrt(S1W2-r2);TS3=sqrt(S1W2-r2);TS4=FG;TS5=sqrt(S2W2-r2);TS6=sqrt(BN2-r2);S1Shu=r*alpha4;S2Shu=r*alpha7;S3Shu=r*alpha10;S4Shu=r*alpha14;result=TS1+TS2+TS3+TS4+2*TS5+TS6+S1Shu+S2Shu+S3Shu+S4Shu;将(0,0,230,60,235,600,220,470,220,530,150,600,185,56

26、5,100,700,10)代入可求得ans = 1.2170e+0033)计算OC路径1%O:初始点 E,F,G,H,D :转弯圆弧圆心 M,N:为距离中点 C:到达点 function result=zongchang(O,E,F,G,H,D,M,N,C,r,R)OE=sqrt(O(1)-E(1)2+(O(2)-E(2)2);OM=sqrt(O(1)-M(1)2+(O(2)-M(2)2);EM=sqrt(E(1)-M(1)2+(E(2)-M(2)2);MF=sqrt(M(1)-F(1)2+(M(2)-F(2)2);FN=sqrt(F(1)-N(1)2+(F(2)-N(2)2);MN=sqrt

27、(M(1)-N(1)2+(M(2)-N(2)2);GH=sqrt(G(1)-H(1)2+(G(2)-H(2)2);GN=sqrt(G(1)-N(1)2+(G(2)-N(2)2);DH=sqrt(D(1)-H(1)2+(D(2)-H(2)2);NH=sqrt(N(1)-H(1)2+(N(2)-H(2)2);CD=sqrt(C(1)-D(1)2+(C(2)-D(2)2);CH=sqrt(C(1)-H(1)2+(C(2)-H(2)2);GD=sqrt(G(1)-D(1)2+(G(2)-D(2)2);alpha1=acos(OE2+EM2-OM2)/(2*OE*EM);alpha2=acos(r/OE

28、);alpha3=acos(r/EM);alpha4=2*pi-alpha1-alpha2-alpha3;alpha5=acos(FN2+MF2-MN2)/(2*FN*MF);alpha6=acos(r/MF);alpha7=acos(r/FN);alpha8=2*pi-alpha5-alpha6-alpha7;alpha9=acos(GN2+GH2-NH2)/(2*GN*GH);alpha10=acos(R/GN);alpha11=acos(R-r)/GH);alpha12=2*pi-alpha9-alpha10-alpha11;alpha13=acos(GH2+DH2-GD2)/(2*GH

29、*DH);alpha14=pi-alpha11;alpha15=1.5*pi-alpha14-alpha13;alpha16=acos(CD2+DH2-CH2)/(2*CD*DH);alpha17=acos(r/CD);alpha18=1.5*pi-alpha16-alpha17;TS1=sqrt(OE2-r2);TS2=2*sqrt(EM2-r2);TS3=sqrt(FN2-r2);TS7=sqrt(GN2-R2)TS4=sqrt(GH2-(R-r)2);TS5=DH;TS6=sqrt(CD2-r2);S1S1hu=r*alpha4;S1S2hu=r*alpha8;S1S3hu=r*alph

30、a15;S1S4hu=R*alpha12;S1S5hu=r*alpha18;result=TS1+TS2+TS5+TS6+S1S1hu+S1S2hu+S1S3hu+S1S5hu+TS4+S1S4hu+TS3+TS7;将(0,0,230,60,400,330,550,450,720,520,720,600,315,195,416.67,343.33,700,640,10,80)代入可求得ans = 1.1444e+0032%O:初始点 E,F,G,H,D :转弯圆弧圆心 N:为距离中点 C:到达点 function result=zongchang(O,E,F,G,H,D,N,C,r,R)OE=

31、sqrt(O(1)-E(1)2+(O(2)-E(2)2);OF=sqrt(O(1)-F(1)2+(O(2)-F(2)2);EF=sqrt(E(1)-F(1)2+(E(2)-F(2)2);EN=sqrt(E(1)-N(1)2+(E(2)-N(2)2);FN=sqrt(F(1)-N(1)2+(F(2)-N(2)2);GH=sqrt(G(1)-H(1)2+(G(2)-H(2)2);GN=sqrt(G(1)-N(1)2+(G(2)-N(2)2);DH=sqrt(D(1)-H(1)2+(D(2)-H(2)2);NH=sqrt(N(1)-H(1)2+(N(2)-H(2)2);CD=sqrt(C(1)-D(

32、1)2+(C(2)-D(2)2);CH=sqrt(C(1)-H(1)2+(C(2)-H(2)2);GD=sqrt(G(1)-D(1)2+(G(2)-D(2)2);alpha1=acos(OE2+EF2-OF2)/(2*OE*EF);alpha2=acos(r/OE);alpha3=1.5*pi-alpha1-alpha2;alpha4=acos(EF2+FN2-EN2)/(2*EF*FN);alpha5=acos(r/FN);alpha6=1.5*pi-alpha4-alpha5;alpha7=acos(GN2+GH2-NH2)/(2*GN*GH);alpha8=acos(R/GN);alph

33、a9=acos(R-r)/GH);alpha10=2*pi-alpha9-alpha7-alpha8;alpha11=acos(GH2+DH2-GD2)/(2*GH*DH);alpha12=pi-alpha11;alpha13=1.5*pi-alpha11-alpha12;alpha14=acos(CD2+DH2-CH2)/(2*CD*DH);alpha15=acos(r/CD);alpha16=1.5*pi-alpha14-alpha15;TS1=sqrt(OE2-r2);TS2=EF;TS3=sqrt(FN2-r2);TS7=sqrt(GN2-R2);TS4=sqrt(GH2-(R-r)2

34、);TS5=DH;TS6=sqrt(CD2-r2);S1S1hu=r*alpha3;S1S2hu=r*alpha6;S1S3hu=r*alpha13;S1S4hu=R*alpha10;S1S5hu=r*alpha16;result=TS1+TS2+TS5+TS6+S1S1hu+S1S2hu+S1S3hu+S1S5hu+TS4+S1S4hu+TS3将(0,0,80,210,400,330,550,450,720,520,720,600,416.67,343.33,700,640,10,80)代入可求得ans = 1.0113e+003所以应采取2路线3)计算OABCO路径将此路线分为两段进行计算

35、之前需要找到可以使ABC落于圆上的圆心坐标使用LINGO软件进行最优化处理输入Min=sqrt(x-80)2+(y-210)2)+sqrt(x-220)2+(y-530)2);(x-300)2+(y-300)2=100;可得Local optimal solution found. Objective value: 467.6803 Extended solver steps: 5 Total solver iterations: 105 Variable Value Reduced Cost X 290.8834 0.000000 Y 304.1095 0.000000 Row Slack

36、or Surplus Dual Price 1 467.6803 -1.000000 2 0.000000 0.6650490E-01再次输入Min=sqrt(x-150)2+(y-600)2)+sqrt(x-370)2+(y-680)2);(x-100)2+(y-700)2=100;可得 Local optimal solution found. Objective value: 365.3162 Extended solver steps: 5 Total solver iterations: 133 Variable Value Reduced Cost X 108.2292 0.000

37、000 Y 694.3184 0.000000 Row Slack or Surplus Dual Price 1 365.3162 -1.000000 2 0.000000 0.8527221E-01最后输入min=sqrt(x-670)2+(y-730)2)+sqrt(x-720)2+(y-600)2);(x-700)2+(y-640)2=100;可得Local optimal solution found. Objective value: 139.2839 Extended solver steps: 5 Total solver iterations: 91 Variable Val

38、ue Reduced Cost X 707.2603 0.000000 Y 633.1233 0.000000 Row Slack or Surplus Dual Price1 139.2839 -1.000000 2 0.000000 0.000000所以取得三个坐标(290.9, 304.1),(108.23 694.32)(707.26 633.12)第一部分长度输入% 初始值clear allclcA= 0 0 0; 80 210 0; 290.9 304.1 2; 220 530 1; 150 600 2; 108.23 694.32 1; 270 680 1; 370 680 2;

39、 430 680 1; 540 730 2; 670 730 1; 707.26 633.12 2; 720 600 2; 720 530 3;% 230 60 0;% 410 100 1;% 500 200 2;% 720 520 2;% 720 600 1;% 700 640 3;r=10;m,n=size(A);i=1;while i=m-2p1=A(i,1:2); p2=A(i+1,1:2); p3=A(i+2,1:2); p12=norm(p1-p2); p23=norm(p2-p3); p13=norm(p1-p3); alpha3=acos(p122+p232-p132)/(2*

40、p12*p23);if i=1 alpha1=acos(10/p12); L1=p12*sin(alpha1);endif A(i+2,3)=1 alpha2=pi/2; sita=2*pi-alpha1-alpha2-alpha3; L2=p23+10*sita;%外切圆-同侧elseif A(i+2,3)=2 alpha2=acos(2*r/p23);%切圆-两侧 sita=2*pi-alpha1-alpha2-alpha3;L2=r*sita+p23*sin(alpha2);else alpha2=acos(r/p23);%点 sita=2*pi-alpha1-alpha2-alpha3

41、; L2=p23*sin(alpha2)+r*sita;end L=L1+L2;L1=L; alpha1=alpha2; i=i+1;endL可得结果L = 1.7691e+003第二部分输入function result=zongchang(O,E,F,G,H,D,N,C,r,R)OE=sqrt(O(1)-E(1)2+(O(2)-E(2)2);OF=sqrt(O(1)-F(1)2+(O(2)-F(2)2);EF=sqrt(E(1)-F(1)2+(E(2)-F(2)2);EN=sqrt(E(1)-N(1)2+(E(2)-N(2)2);FN=sqrt(F(1)-N(1)2+(F(2)-N(2)2

42、);GH=sqrt(G(1)-H(1)2+(G(2)-H(2)2);GN=sqrt(G(1)-N(1)2+(G(2)-N(2)2);DH=sqrt(D(1)-H(1)2+(D(2)-H(2)2);NH=sqrt(N(1)-H(1)2+(N(2)-H(2)2);CD=sqrt(C(1)-D(1)2+(C(2)-D(2)2);CH=sqrt(C(1)-H(1)2+(C(2)-H(2)2);GD=sqrt(G(1)-D(1)2+(G(2)-D(2)2);alpha1=acos(OE2+EF2-OF2)/(2*OE*EF);alpha2=acos(r/OE);alpha3=1.5*pi-alpha1-

43、alpha2;alpha4=acos(EF2+FN2-EN2)/(2*EF*FN);alpha5=acos(r/FN);alpha6=1.5*pi-alpha4-alpha5;alpha7=acos(GN2+GH2-NH2)/(2*GN*GH);alpha8=acos(R/GN);alpha9=acos(R-r)/GH);alpha10=2*pi-alpha9-alpha7-alpha8;alpha11=acos(GH2+DH2-GD2)/(2*GH*DH);alpha12=pi-alpha11;alpha13=1.5*pi-alpha11-alpha12;alpha14=acos(CD2+DH2-CH2)/(2*CD*DH);alpha15=acos(r/CD);alpha16=1.5*pi-alpha14-alpha15;TS1=sqrt(OE2-r2);TS2=EF;TS3=sqrt(FN2-r2);TS7=sqrt(GN2-R2);TS4=sqrt(GH2-(R-r)2);TS5=DH;TS6=sqrt(CD2-r2);S1S1hu=r*alpha3;S1S2hu=r*al

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论