QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3928|回复: 0
打印 上一主题 下一主题

[建模教程] 飞行机的精确定位问题

[复制链接]
字体大小: 正常 放大
浅夏110 实名认证       

542

主题

15

听众

1万

积分

  • TA的每日心情
    开心
    2020-11-14 17:15
  • 签到天数: 74 天

    [LV.6]常住居民II

    邮箱绑定达人

    群组2019美赛冲刺课程

    群组站长地区赛培训

    群组2019考研数学 桃子老师

    群组2018教师培训(呼伦贝

    群组2019考研数学 站长系列

    跳转到指定楼层
    1#
    发表于 2020-6-17 09:25 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    问题描述:飞机在飞行过程中,能够收到地面上各个监控台发来的关于飞机当前位置的 信息,根据这些信息可以比较精确地确定飞机的位置。如图3所示,VOR 是高频多向导航设备的英文缩写,它能够得到飞机与该设备连线的角度信息;DME 是距离测量装 置的英文缩写,它能够得到飞机与该设备的举例信息。图中飞机接收到来自 3 个 VOR 给出的角度和 1 个 DME 给出的距离(括号内是测量误差限),并已知这 4 种设备的  x, y 坐标(假设飞机和这些设备在同一平面上)。如何根据这些信息精确地确定当前飞机的 位置?
    + ~+ G9 \- w/ x0 K
    ; j! I/ F+ Q, H( s1 F5 R
    2 ?) [# V* P# L* @% X, z  O" R, s% m' z* H9 a1 q9 [* `6 N

    / N2 n% i6 H( a: ?9 _$ i( k/ |  (1)问题分析 ' B6 ?7 i+ U8 w

    1 n; \3 K8 |! L$ }$ D7 L- o 记 4 种设备 VOR1、VOR2、VOR3、DME 的坐标为  (以 km 为单位),i=1,2,3,4 ;VOR1、VOR2、VOR3 测量得到的角度为 (从图中可以看出,按照航空飞行管理的惯例,该角度是从北开始,沿顺时针方向的角度,取值在  之间),角度的误差限为;DME 测量得到的距离为 (单位:km),距离的误差限为 4 σ。设飞机当前位置的坐标为 ,则问题就是在表 9 的已知数据下计算  
    2 c( k9 ?+ j3 x  {, N6 R9 n0 z
    9 z( ]* ^, R) J) G% k5 o: P
    2 E9 T0 s' c. `/ m3 D; {' H8 b5 L7 U, j8 |) R
    (2)模型 1 及求解
    " W) F+ b) |4 O6 @' f  @
    5 f5 W- E( B8 v  l  t0 ]1 x 图中角度  是点   和点 的连线与 y 轴的夹角(以 y 轴正向为基准,顺时针方向夹角为正,而不考虑逆时针方向的夹角),于是角度 的正切     ( 1 )
    ( X0 \! r! s8 T9 r8 v3 I
    # P9 i5 m9 B! ?/ t, [+ R2 k' G1 a对 DME 测量得到的距离,显然有      ( 2 )3 w- u  r( W1 Q. p4 k/ ~0 E0 s
    : K" ]; A7 e8 U
    直接利用上面得到的 4 个等式确定飞机的坐标 y x, ,这是一个求解超定(非线性) 方程组的问题,在最小二乘准则下使计算值与测量值的误差平方和最小(越接近 0 越 好),则需要求解 ) L% @* ^. e' R0 H" @
    + {& E' X3 s" t, }# x6 ]5 O
    ( 3 )
    7 B+ I$ q! W- V# |式(3)是一个非线性(无约束)最小二乘拟合问题。很容易写出其 LINGO 程序 如下:9 K8 c! S! t) [' |. Y! L( |
    1 D& Z7 s8 W6 I3 k$ Y
    MODEL:   r/ q' v" H5 w7 J% `5 f
    TITLE 飞机定位模型1;
    / o: i& e+ `' |; N! s% f" s2 J& mSETS: , Z  l" \% H" S
    VOR/1..3/:x0,y0,cita,sigma;
    4 I. S. k9 |; X) C4 s( c# _ENDSETS
    9 z# q0 z# ~0 T6 u1 f: e9 \DATA: , n6 c) z, C0 a* t
    x0, y0, cita, sigma =
    / V2 j+ h1 Z8 f( q& O0 z& R; `- S746  1393 161.2   0.8
    # P' N, ]; v. ]9 r! J" F/ m629  375 45.1     0.6 ) g3 i# W4 N2 F, e" F0 {( J
    1571 259 309.0    1.3; - |/ x/ ?' C/ z7 H
    x4 y4 d4 sigma4=155,987,864.3,2.0;
    ) _9 T/ R9 M! a+ WENDDATA
    ) q3 P* I* `" @2 ?. pcalc:
    . E  ^% ?- P6 |3 F@for(VOR:cita=cita*3.14159/180;sigma=sigma*3.14159/180);
    2 P1 I+ Q# D* |2 h; d+ x+ P2 Jendcalc 8 J, K1 R2 F: ~, _+ ]1 j3 s6 ]# A
    min=@sum(VOR:@sqr((x-x0)/(y-y0)-@tan(cita)))+@sqr(d4-@sqrt(@sqr(x -x4)+@sqr(y-y4))); , {7 R8 p7 Q5 n  {' m
    END- o3 z; r# z" b  w: E
    上述程序必须使用全局求解器进行求解,否则求得的是一个局部最优解。用 “LINGO|OPTIONS”菜单命令启动“Global Solver”选项卡上的“Use Global Solver”选项,然后求解,可以得到全局最优解 x=1019.306 ,y= 987.2909  ,对应的目标函3 O; C+ D+ n- R0 Z0 d; P; H2 K
    数值为 0.4729562,这里的解受π 的取值影响很大。 1 ]% C1 H5 L  h' p* I

    % l. A, p' @1 }* @(3)模型 2 及求解
    " `4 j+ E6 H/ L$ c/ V& L
    0 g/ b( N" K6 _注意到这个问题中角度和距离的单位是不一致的(角度为弧度,距离为公里),因 此将这 4 个误差平方和同等对待(相加)不是很合适。并且,4 种设备测量的精度(误差限)不同,而上面的方法根本没有考虑测量误差问题。如何利用测量设备的精度信息? 这就需要看对例中给出的设备精度如何理解。 一种可能的理解是:设备的测量误差是均匀分布的。以 VOR1 为例,目前测得的角度为  ,测量精度为 ,所以实际的角度应该位于区间   内。对其它设备也可以类似理解。由于 很少,即测量精度很高,所以在相应区间内正切函数 tan 的单调性成立。于是可以得到一组不等式:7 v. p3 |6 D/ b, z& h: H
    3 V5 m' |" e4 P! s* n4 h
    ; Y7 j% m0 G& g5 r
    1 y3 _& U& D+ ~
      也就是说,飞机坐标应该位于上述不等式组成的区域内。 由于这里假设设备的测量误差是均匀分布的,所以飞机坐标在这个区域内的每个 点上的可能性应该也是一样的,我们最好应该给出这个区域的 x和 y 坐标的最大值和最小值。于是我们可以分别以 min x ,  max x ,  min y,  max y为目标,以上面的区域限制条件为约束,求出x 和 y 坐标的最大值和最小值。
    6 ?. P1 Z3 D$ w% I" s 以 min x 为例,相应的 LINGO 程序为:  
    ; `- N+ A  ?, G0 k2 V  I& R6 `
    % L: l( `0 `4 W4 M4 H2 S9 M6 KMODEL: / J- |' ]; y/ ^
    TITLE 飞机定位模型2;
    1 t$ T. E5 N; U2 P4 _SETS: VOR/1..3/:x0,y0,cita,sigma; 6 S7 |4 ]( v& G. x' s! A( K
    ENDSETS
    5 d' G3 K& A. `% q( |0 D9 e( I7 @INIT:
    % [' S. f; j* M, U: W* s- Ex=1000; y=900; ( I  }9 G3 y9 S* y: k
    ENDINIT ' J/ f! A5 g1 S, X) P" c
    DATA:
      d8 }$ z# B3 R8 p5 F9 P( Kx0, y0, cita, sigma =
    " d: n! T, {& f2 C1 u746  1393 161.2   0.8
      e# R9 ~6 m- h% n) r" u$ R5 z: ?629  375 45.1     0.6 8 F, D0 w. g9 K% O( _# v, P& V
    1571 259 309.0    1.3;
    ( G7 {2 s' G: X  d7 f7 rx4 y4 d4 sigma4=155,987,864.3,2.0; ; h- Y5 i5 h( z' {
    ENDDATA
    ' i$ `8 o/ s  `3 J* c5 g; icalc: & e" I+ I( t- D4 k. y3 I
    @for(VOR:cita=cita*3.14159/180;sigma=sigma*3.14159/180);
    - N4 z" E; v5 s2 y% M, K- M# xendcalc
    0 X: i# j, }; a; ]min=x;
    & v1 E3 ?/ ~; M6 L, @7 u) W@for(VOR:(x-x0)/(y-y0)>@tan(cita-sigma));
    1 x9 C& G0 ]4 ^6 T& e@for(VOR:(x-x0)/(y-y0)<@tan(cita+sigma)); 1 P1 ?% q3 i' X, |* O  k
    d4-sigma4 <((x-x4)^2+(y-y4)^2)^.5 ;
    2 S$ G# [5 u/ r2 ^, s* j' }0 ?d4+sigma4 >((x-x4)^2+(y-y4)^2)^.5 ;
    3 Y: Q# o; i9 T2 [7 Y( X+ CEND 3 ]! x6 }: ^9 k, c3 q2 s4 V
    注意:用 LINGO9 求解非线性问题,必须对决策变量进行初始化,否则 LINGO 可 能找不到可行解。决策变量的初值也有范围限制,取的不合适也可能找不到可行解。 求得的 x的最小值为 974. 8433。类似地(只需要换目标函数就可以了),可得 到 x的最大值为 982.2005, y 的最小值为 717.1614, y 的最大值为 733.1582。 因此,最后得到的解是一个比较大的矩形区域,大致为 . ' r3 N2 C7 ]# x! A

    7 X; K! @" D, B  (4)模型 3 及求解
    $ l1 n  r8 W6 H* R  H$ {5 O+ Q* {8 r* d, e2 W% Q# @
    模型 2 得到的只是一个很大的矩形区域,仍不能令人满意。实际上,模型 2 假设 设备的测量误差是均匀分布的,这是很不合理的。一般来说,在多次测量中,应该假设设备的测量误差是正态分布的,而且均值为 0。本例中给出的精度 可以认为是测量
    . N  G* f3 R0 w' g( Z' K7 l8 p误差的标准差。 ( K4 I0 W8 j" z. I" d1 Z" n9 o9 W& x

    - l; x/ i# B( O2 z; j8 V6 I/ T2 n在这种理解下,用各自的误差限   对测量误差进行无量纲化(也可以看成是一种加权法)处理是合理的,即求解如下的无约束优化问题更合理。
    9 I& a) u1 v- G2 Z- ]/ [5 a
    7 O; B# C$ d9 t2 D9 Q* ~1 T! g! F8 ?, _
    2 ]9 b: F- F) [& q8 e+ }6 i
    由于目标函数是平方和的形式,因此这是一个非线性最小二乘拟合问题。相应的 LINGO 程序为:
    " M, z2 d' J3 Y3 ^+ X& A; w. T: l: k6 B' v. y) [
    MODEL:
    ) T. m9 W: S. D" b- J* K7 _TITLE 飞机定位模型3;
    ( H( P' ]1 m8 m1 {8 }SETS:
    0 I# x; c7 ~1 Y5 f* @6 Q* o  CVOR/1..3/:x0,y0,cita,sigma,alpha; 3 x' u' W: F; D7 j, c$ i0 Z7 n) t& \+ d
    ENDSETS
    4 K5 [3 E) ], B$ ^; LINIT:
    6 @8 ]# ]. K% Qx=1000; y=900;
    8 k' }3 ~' ?6 ?# ^ENDINIT : K- N" i# k7 ?" f0 f0 l
    DATA:
    ! U- t: z- a. V$ I. L2 \6 Ex0, y0, cita, sigma = ) r- C) y1 Z" A6 F  C
    746  1393 161.2   0.8 " Z3 o# K5 i) K2 v  H( @
    629  375 45.1     0.6   D/ A  n9 _# a* H4 r; O& w
    1571 259 309.0    1.3; . ?8 |: W. v' ~% L1 |+ i
    x4 y4 d4 sigma4=155,987,864.3,2.0; 0 A9 N# n3 ^+ j/ Q$ m5 N
    ENDDATA 4 v( r1 Y- T  U2 ^1 M6 h7 g
    calc:
    6 V& J1 t- k: r$ }$ A@for(VOR:cita=cita*3.14159/180;sigma=sigma*3.14159/180);
    " Q2 r' c& t+ g: E, ?, t3 D5 l: nendcalc
    # a1 b! Z; u# n2 _. G1 }% Zmin=@sum(VOR:((alpha-cita)/sigma)^2)+((d4-((x-x4)^2+(y-y4)^2)^.5 )/ sigma4 )^2; 0 S# ]% h* ]" v& [& |" k; E0 L0 ]* k
    @for(VOR: @tan(alpha)=(x-x0)/(y-y0) ); " y$ E2 a# n' N- n/ d& r
    END3 g8 F% @( {- Y" {% {+ J& O- F$ x
    启动 LINGO 的全局最优求解程序求解,得到全局最优解 x=978.3071,y= 723.9841,对应的目标函数的值为 0.668035。 这里得到的误差比模型 1 的大,这是因为模型 1 中使用的是绝对误差,而这里使用的是相对于精度 的误差。对角度而言,分母  很少,所以相对误差比绝对误差大,这是可以理解的。
    ; K! P9 {) F4 H2 R6 s% ?————————————————* I5 _4 a& O6 f5 [" L
    版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    8 j$ J  g1 @: @. z3 q原文链接:https://blog.csdn.net/qq_29831163/java/article/details/893890445 N. @2 {! J% L' g5 G2 D  z/ S

    7 N5 w: E4 f1 j/ n: t
    * M9 v# R5 h4 ?
    ( c" X- C* D! v+ r! D9 N# m7 `
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-9-13 06:04 , Processed in 0.466717 second(s), 50 queries .

    回顶部