这种模块输出的是已经经过混频和低通滤波的kHz级的信号
哦……刚理解错了……确实应该可以
多普勒效应是波源和观察者相对运动时,观察者接收到的波的频率与波源发出的频率并不相同的现象。对于静止的波源s和运动的反射体r,在波源s处接收到的反射波的频率f满足
$$ f=\frac{v_{0}-v_{r}}{ v_{0}+v_{r}}f_{0} \tag{1}$$式中,v0为波的传播速度;vr为反射体的运动速度(当反射体远离波源时,vr为正);f0为波源发射的波的频率。对于本贴讨论的“微波”来说,它的波速为光速,即v0=c。同时,电磁炮的弹丸运动速度v远远小于光速,所以有
$$|\Delta f|=\frac{2v}{c } f_{0} \tag{2}$$其中|Δf|是波源和反射波的频率差的绝对值。通过测量这个频率差,就可以求出弹丸运动速度。
$$ v = \frac{ c |\Delta f|}{2 f_{0} }=\frac{\lambda }{2 } |\Delta f| \tag{3}$$其中,λ是微波的波长。不过我们一般需要的是弹丸的位置,而不是速度,所以还需要把这个式子再处理一下。速度是“位置对时间的导数”,而频率是“相位对时间的导数”,所以对它两端积一下分,就有
$$ \Delta x = \frac{\lambda}{4\pi} \Delta\varphi \tag{4}$$$$ 位移=波长\times\frac{相位差}{4\pi} \tag{5}$$所以只需要检测波源和反射波之间的相位差,就能知道弹丸的位移。检测相位差的方法被称为“鉴相”。对于“弹丸位置检测”这个应用,我们既不知道反射波的幅度,也不知道它的相位。对此,一般鉴相方法的是,用波源和一个“与波源带90°相差的信号”,分别与反射波相乘。测量两个相乘结果的直流分量,然后代入一个简单的公式里,就能算出波源和反射波的相位差(以及反射波的幅度)。这种方案的好处是,它输出的是一个和弹丸位移相关的模拟量,也就是说原理上可以得到任意高的分辨率。不过这种方案目前市面上没有成品,需要自行制作。现在有些比较方便的芯片可以用,比如这个
做这种几十GHz的系统,对仪器要求非常的高,短期内似乎不会有人来做这个。所以这里介绍另一种方法——过零点计数法
这种方案可以用市面上常见的“微波多普勒模块”来做,如下图。目前这种模块在淘宝上大约是20-30元一个,工作频率为24GHz。
图 1 24GHz微波多普勒模块
The Signal Path 上有关于这个模块的详细的测评。
它的原理框图如下
图 2 微波多普勒模块原理框图以及各点信号波形
其中A为各点信号幅度,可以认为是未知量。发射天线发射的是一个正弦波;接收天线收到的是频率相同,但有额外相移的正弦波。整个模块输出的是相位差的函数,但是由于各点的幅度A未知,所以没法测量得到一个连续的“位置-时间关系”。
不过我们至少知道,当cos(φ)=0时,不论幅度A的值为多少,输出信号都会过一次零。所以,可以通过“数过零点的个数”来计算弹丸的位移,即前面提到的“过零点计数法”。结合图 2和式 4,可以知道弹丸每移动1/4个波长,模块的输出信号就会过一次零。不过需要注意的是,这里的波长不等于真空中的波长,而是要按“波导波长”来算,具体的我们稍后再说。
使用这种模块的时候,最简单的做法是:不加额外的结构,直接让模块的天线正对着炮管。如下图
图 3 最简单的用法
这里的“炮管”是一根内径8.1mm的不锈钢管。“弹丸运动”是通过徒手拉动一根约5mm直径的不锈钢棒来模拟的。场地布置如下
图 4 场地布置
当不锈钢棒在炮管内运动时,模块能输出几十mV级别的信号。如下视频
VID_20181129_090630_Trim.mp4 点击下载
之后可以接一级简单的放大,送给比较器检测过零点,然后传给单片机统计脉冲个数,进而确定弹丸位移。
对于这种无线系统来说,几十mV的信号可以说是非常强了(正常情况下输出信号应当是弱到可以淹没在示波器底噪里的)。这是因为炮管起到了“波导”的作用。不锈钢制的炮管可以当作是一个“圆波导”,能以很低的损耗传递电磁波,所以模块接收到的反射波幅度也会很强。类似于对着井口喊话,听到的回音要比“对着一棵树喊话”强得多,尽管井底的面积比树小得多。
图 5 24GHz的电磁波在8.1mm内径的圆波导中传播
然而“波导”也会带来两个问题。
一个是这种圆波导只允许频率足够高的电磁波在其中传播,如果电磁波频率太低(也就是波长太长),电磁波在进入波导后就会非常迅速地衰减,比如在一两个自由空间波长的距离上衰减几十dB,这个现象称为“截止”,对应的电磁波频率和自由空间波长则称为“截止频率”和“截止波长”。截止波长和波导的尺寸相关,对于圆波导,它的主模(TE11模)截止波长为1.707D,D为圆管的内直径。8.1mm的圆波导,截止波长为1.707*8.1=13.8mm,对应21.7GHz的电磁波,因此内径8.1mm的金属圆管中,只能传播频率高于21.7GHz的电磁波。
另一个问题是,波导会改变电磁波的波长,计算位移时要考虑到这个影响。电磁波在波导中的波长被称为“波导波长”,波导波长的计算方法如下
$$ \lambda_{g}=\frac{\lambda}{\sqrt{1-\left( \frac{\lambda}{\lambda_{c}} \right)^{2}}} \tag{6}$$其中,λ为自由空间(无限大真空)波长,等于“真空中光速/电磁波频率”;λc为截止波长,圆波导主模截止波长为1.707D(D为圆管的内直径)。24GHz电磁波的自由空间波长=3*10^8/(24*10^9)=12.5mm,前文已知8.1mm圆波导的主模截止波长为13.8mm。因此图 4中的波导波长为
$$ \lambda_{g}=\frac{12.5}{\sqrt{1-\left( \frac{12.5}{13.8} \right)^{2}}}=33.1\; \rm mm \tag{7}$$这个计算结果与图 5中的仿真结果(约31mm)基本相符。因此使用24GHz模块和8.1mm内径炮管,弹丸每移动8.3mm,输出信号就会过一次零。
除了波导带来的问题以外,这个方案本身也会带来一些其他问题。比如微波多普勒模块要装在炮管的尾部,弹丸也要从这个地方进入炮管,所以供弹结构会影响到模块的工作。连发炮上使用这个方案的话,可能需要特别设计的机械和微波结构来消除这个影响。
另外根据The Signal Path上的测试,图 1中的这种模块的输出频率会随很多因素改变,如图 6。
图 6 模块输出频率随供电电压的变化
不过好在频率变化不大,只有万分之几,影响基本可以忽略。
[修改于 4年7个月前 - 2020/05/02 20:32:39]
对于速度为恒为正的情况下可以直接将模块输出的信号进行希尔伯特变换后作为Q路信号与原信号一起反正切即可...
这种模块输出的是已经经过混频和低通滤波的kHz级的信号
哦……刚理解错了……确实应该可以
我说的就是这个输出信号啊这个输出应该还有个高通或者电容耦合,不然肯定会有很大的直流分量。
额……似乎还是不行……
希尔伯特变换是“非因果”的,没法实时进行。这样就只能把波形录下来做事后分析,没法实现实时控制。
数学上理想的希尔伯特变换现实上是没办法实现的,现实中一般的做法是用一个滤波器来代替,或者说类似于录下...
刚想了一下,用一般意义上的滤波器做(线性时不变的那种),似乎也不太合适。因为这种滤波器带宽和延时是固定的,而电磁炮发射时模块的输出信号带宽很宽。想要在低频把希尔伯特变换做准的话,高频的时候延时就会大的不可接受。做“时变”的滤波器,实时改频率特性的话,似乎又有些过于麻烦了。
另外对电磁炮来说,低延迟似乎比高精度还要更有用一些。用“根据过零点求的位移”,加上简单的线性外推,或者二次抛物线外推,应该会更合适一些
引用Ball_Lightning发表于9楼的内容请问炮管必须用塑料的话怎么用这个做分析呢?我对这种用多普勒测量弹丸运动设想很感兴趣。因为它不仅能够得...
炮管用塑料的话,应该是没啥简单的办法能用这个方案的,建议放弃。
1. 不锈钢的电阻率极高,是铜的四十多倍,炮管涡流的影响应该不大。可以仿真一下看看用不锈钢的时候,有炮管和没炮管的性能差别。4. 多普勒模块可以放在离线圈很远的地方,只要有金属炮管作为波导,对测试效果应该没啥影响。
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。