主权项 |
1.一种基于双速率的水下无线多跳网络结点三维自定位方法,其特征在于水下无线多跳网络由锚结点和若干普通结点组成,利用低速率传输LM实现无线多跳网络结点间的精确测距,利用高速率传输HM实现网络结点间的其他信息传输;所述锚结点是能够得到其绝对位置信息的网络结点,或无法获得其绝对位置信息但可以作为网络其他结点定位参考的结点;所述普通结点为通过其与锚结点进行通信得到距离信息进而完成自定位的待定位结点;具体步骤如下:步骤1:锚结点N1采用LM模式在t<sub>0</sub>时刻发送hello分组;所述hello分组内包括该分组的类型、发送该hello分组的结点的ID、发送该hello分组的结点的类型、发送该hello分组的时刻等信息;步骤2:在t<sub>i</sub>时刻普通结点i收到该hello分组,i表示普通结点的ID,i=1,2,3....n-1;依据D<sub>i,N1</sub>=T<sub>proc</sub>·v<sub>s</sub>计算该普通结点i与锚结点之间的距离,其中T<sub>proc</sub>表示声信号在水声信道中的传播时延T<sub>proc</sub>=(t<sub>i</sub>-t<sub>0</sub>),v<sub>s</sub>表示声波在水中的传播速度;步骤3:普通结点i依据其结点ID的次序,采用LM模式依次发送其产生的hello分组,每个结点广播hello分组的时刻分别为t′<sub>i</sub>;步骤4:锚结点N1收到来自任意普通结点i的hello分组的时刻为t'<sub>N1,i</sub>,任意普通结点i收到来自任意普通结点j的hello分组的时刻为t′<sub>i,j</sub>,其中j≠i,j=1,2,3....n-1:依据D<sub>N1,j</sub>=(t'<sub>N1,j</sub>-t'<sub>j</sub>)·v<sub>s</sub>计算锚结点N1到任意普通结点j之间的距离;依据D<sub>i,j</sub>=(t′<sub>i,j</sub>-t'<sub>j</sub>)·v<sub>s</sub>计算任意普通结点i到j的距离;步骤5:按照<maths num="0001"><![CDATA[<math><mrow><msub><mi>D</mi><mrow><mi>n</mi><mn>1</mn><mo>,</mo><msup><mi>j</mi><mo>*</mo></msup></mrow></msub><mo>=</mo><mi>max</mi><mo>{</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1,1</mn></mrow></msub><mo>,</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1,2</mn></mrow></msub><mo>,</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1,3</mn></mrow></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1</mn><mo>,</mo><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>}</mo><mo>,</mo></mrow></math>]]></maths>从步骤4得到的锚结点N1到任意普通结点之间的距离中选取距离锚结点N1最远的普通结点作为第二个参考结点N2,即N2=j<sup>*</sup>;N1将获得的全部测距信息{D<sub>N1,1</sub>,D<sub>N1,2</sub>,D<sub>N1,3</sub>,....,D<sub>N1,n-1</sub>}以HM模式发给N2;步骤6:N2依据本地测距信息{D<sub>N2,1</sub>,D<sub>N2,2</sub>,D<sub>N2,3</sub>,....,D<sub>N2,n-1</sub>}及由步骤5中收到来自锚结点N1的测距信息{D<sub>N1,1</sub>,D<sub>N1,2</sub>,D<sub>N1,3</sub>,....,D<sub>N1,n-1</sub>},按照<maths num="0002"><![CDATA[<math><mrow><msub><mi>D</mi><mrow><mi>N</mi><mn>1</mn><mo>,</mo><msup><mi>j</mi><mrow><mo>*</mo><mo>*</mo></mrow></msup></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>2</mn><mo>,</mo><msup><mi>j</mi><mrow><mo>*</mo><mo>*</mo></mrow></msup></mrow></msub><mo>=</mo></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><mi>max</mi><mo>{</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1,1</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>2,1</mn></mrow></msub><mo>,</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1,2</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>2,2</mn></mrow></msub><mo>,</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1,3</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>2,3</mn></mrow></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1</mn><mo>,</mo><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>2</mn><mo>,</mo><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>}</mo><mo>,</mo></mrow></math>]]></maths>选择距离N1与N2之和最大的结点作为第三个参考结点N3,即N3=j<sup>**</sup>,N2将N1和N2的全部测距信息{D<sub>N1,1</sub>,D<sub>N1,2</sub>,D<sub>N1,3</sub>,....,D<sub>N1,n-1</sub>}、{D<sub>N2,1</sub>,D<sub>N2,2</sub>,D<sub>N2,3</sub>,....,D<sub>N2,n-1</sub>}以HM模式发给N3;步骤7:N3依据本地测距信息{D<sub>N3,1</sub>,D<sub>N3,2</sub>,D<sub>N3,3</sub>,....,D<sub>N3,n-1</sub>}及由步骤6中收到来自结点N2的关于N1、N2的测距信息{D<sub>N1,1</sub>,D<sub>N1,2</sub>,D<sub>N1,3</sub>,....,D<sub>N1,n-1</sub>}和{D<sub>N2,1</sub>,D<sub>N2,2</sub>,D<sub>N2,3</sub>,....,D<sub>N2,n-1</sub>},按照<maths num="0004"><![CDATA[<math><mrow><msub><mi>D</mi><mrow><mi>N</mi><mn>1</mn><mo>,</mo><msup><mi>j</mi><mrow><mo>*</mo><mo>*</mo><mo>*</mo></mrow></msup></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>2</mn><mo>,</mo><msup><mi>j</mi><mrow><mo>*</mo><mo>*</mo><mo>*</mo></mrow></msup></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>3</mn><mo>,</mo><msup><mi>j</mi><mrow><mo>*</mo><mo>*</mo><mo>*</mo></mrow></msup></mrow></msub><mo>=</mo></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mrow><mi>max</mi><mo>{</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1,1</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>2,1</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>3,1</mn></mrow></msub><mo>,</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1,2</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>2,2</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>3,2</mn></mrow></msub><mo>,</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1,3</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>2,3</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>3,3</mn></mrow></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>1</mn><mo>,</mo><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>2</mn><mo>,</mo><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><mi>N</mi><mn>3</mn><mo>,</mo><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>}</mo><mo>,</mo></mrow></math>]]></maths>选择距离N1、N2与N3之和最大的结点作为第四个参考结点N4,即N4=j<sup>***</sup>,N3将自身的IDj<sup>**</sup>、第四个参考结点N4的ID j<sup>***</sup>及N2到N3间的距离D<sub>N2,N3</sub>、N2到N4间的距离D<sub>N2,N4</sub>、N3到N4间的距离D<sub>N3,N4</sub>以LM模式发给锚结点N1;步骤8:依据步骤5、6和7得到的三个参考结点N2、N3和N4,锚结点N1建立以锚结点N1为原点的坐标系:以N1为原点,N1与N2的连线作为X轴,N2的坐标为(D<sub>N1,N2</sub>,0,0),Y轴定义为以沿X轴逆时针旋转90度所得的方向线,Z轴为垂直于XY平面的方向线,在以此坐标系下利用D<sub>N1,N2</sub>、D<sub>N1,N3</sub>、D<sub>N1,N4</sub>、D<sub>N2,N3</sub>、D<sub>N2,N4</sub>与D<sub>N3,N4</sub>计算N3与N4的坐标(x<sub>3</sub>,y<sub>3</sub>,z<sub>3</sub>)和(x<sub>4</sub>,y<sub>4</sub>,z<sub>4</sub>),其中<maths num="0006"><![CDATA[<math><mrow><msub><mi>x</mi><mn>3</mn></msub><mo>=</mo><mfrac><mrow><msub><msup><mi>D</mi><mn>2</mn></msup><mrow><msub><mi>N</mi><mn>1</mn></msub><msub><mi>N</mi><mn>2</mn></msub></mrow></msub><mo>+</mo><msub><msup><mi>D</mi><mn>2</mn></msup><mrow><msub><mi>N</mi><mn>1</mn></msub><msub><mi>N</mi><mn>3</mn></msub></mrow></msub><mo>-</mo><msub><msup><mi>D</mi><mn>2</mn></msup><mrow><msub><mi>N</mi><mn>2</mn></msub><msub><mi>N</mi><mn>3</mn></msub></mrow></msub></mrow><mrow><mn>2</mn><msub><mi>D</mi><mrow><msub><mi>N</mi><mn>1</mn></msub><msub><mi>N</mi><mn>2</mn></msub></mrow></msub></mrow></mfrac><mo>,</mo><msub><mi>y</mi><mn>3</mn></msub><mo>=</mo><msqrt><msub><msup><mi>D</mi><mn>2</mn></msup><mrow><msub><mi>N</mi><mn>1</mn></msub><msub><mi>N</mi><mn>3</mn></msub></mrow></msub><mo>-</mo><msub><msup><mi>x</mi><mn>2</mn></msup><mn>3</mn></msub></msqrt><mo>,</mo></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><msub><mi>z</mi><mn>3</mn></msub><mo>=</mo><mn>0</mn><mo>;</mo><msub><mi>x</mi><mn>4</mn></msub><mo>=</mo><mfrac><mrow><msub><msup><mi>D</mi><mn>2</mn></msup><mrow><msub><mi>N</mi><mn>1</mn></msub><msub><mi>N</mi><mn>2</mn></msub></mrow></msub><mo>-</mo><msub><mi>D</mi><mrow><msub><mi>N</mi><mn>2</mn></msub><msub><mi>N</mi><mn>4</mn></msub></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><msub><mi>N</mi><mn>1</mn></msub><msub><mi>N</mi><mn>4</mn></msub></mrow></msub></mrow><mrow><mn>2</mn><msub><mi>D</mi><mrow><msub><mi>N</mi><mn>1</mn></msub><msub><mi>N</mi><mn>2</mn></msub></mrow></msub></mrow></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0008"><![CDATA[<math><mrow><msub><mi>y</mi><mn>4</mn></msub><mo>=</mo><mfrac><mrow><msub><msup><mi>y</mi><mn>2</mn></msup><mn>3</mn></msub><mo>+</mo><msub><mi>D</mi><mrow><msub><mi>N</mi><mn>2</mn></msub><msub><mi>N</mi><mn>4</mn></msub></mrow></msub><mo>-</mo><msup><mrow><mo>(</mo><msub><mi>x</mi><mn>4</mn></msub><mo>-</mo><msub><mi>D</mi><mrow><msub><mi>N</mi><mn>1</mn></msub><msub><mi>N</mi><mn>2</mn></msub></mrow></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>x</mi><mn>4</mn></msub><mo>-</mo><msub><mi>x</mi><mn>3</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><msub><mi>D</mi><mrow><msub><mi>N</mi><mn>3</mn></msub><msub><mi>N</mi><mn>4</mn></msub></mrow></msub></mrow><mrow><mn>2</mn><msub><mi>y</mi><mn>3</mn></msub></mrow></mfrac><mo>,</mo><msub><mi>z</mi><mn>4</mn></msub><mo>=</mo><msqrt><msub><mi>D</mi><mrow><msub><mi>N</mi><mn>2</mn></msub><msub><mi>N</mi><mn>4</mn></msub></mrow></msub><mo>-</mo><msup><mrow><mo>(</mo><msub><mi>x</mi><mn>4</mn></msub><mo>-</mo><msub><mi>D</mi><mrow><msub><mi>N</mi><mn>1</mn></msub><msub><mi>N</mi><mn>2</mn></msub></mrow></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><msub><msup><mi>y</mi><mn>2</mn></msup><mn>4</mn></msub></msqrt><mo>;</mo></mrow></math>]]></maths>步骤9:锚结点N1将上一步骤得到的N1、N2、N3和N4四个参考结点ID及坐标{(x<sub>1</sub>,y<sub>1</sub>,z<sub>1</sub>)、(x<sub>2</sub>,y<sub>2</sub>,z<sub>2</sub>)、(x<sub>3</sub>,y<sub>3</sub>,z<sub>3</sub>)、(x<sub>4</sub>,y<sub>4</sub>,z<sub>4</sub>)}以LM模式发送出去;步骤10:全网其他结点收到参考结点信息之后,网络中任意待定位结点i依据<maths num="0009"><![CDATA[<math><mrow><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>x</mi><mn>1</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mi>i</mi></msub><mo>-</mo><msub><mi>z</mi><mn>1</mn></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>=</mo><msub><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>N</mi><mn>1</mn></mrow></msub><mo>,</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>x</mi><mn>2</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mn>2</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mi>i</mi></msub><mo>-</mo><msub><mi>z</mi><mn>2</mn></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>=</mo><msub><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>N</mi><mn>2</mn></mrow></msub></mrow></math>]]></maths>以及<maths num="0010"><![CDATA[<math><mrow><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>x</mi><mn>3</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mn>3</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mi>i</mi></msub><mo>-</mo><msub><mi>z</mi><mn>3</mn></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>=</mo><msub><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>N</mi><mn>3</mn></mrow></msub><mo>,</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>x</mi><mn>4</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mn>4</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mi>i</mi></msub><mo>-</mo><msub><mi>z</mi><mn>4</mn></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>=</mo><msub><mi>D</mi><mrow><mi>i</mi><mo>,</mo><msub><mi>N</mi><mn>4</mn></msub></mrow></msub></mrow></math>]]></maths>计算得到该待定位结点i的坐标(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>),完成无线多跳网络结点自定位。 |