您可能知道,将风向传感器的北标与真北完美对齐是非常具有挑战性的。例如,当您在梯子上搬运工具或悬挂在塔上时,您没有空闲的手来握住指南针。当您拧紧螺栓时传感器移动时,事情会变得更加复杂。幸运的是,您可以使用多年来一直采用的方法来简化安装:传感器方向偏移。
当您使用方向偏移时,只要偏移正确,您将获得非常好的数据。例如,传感器可以安装在真北以西 20 度的位置,这样传感器的零度读数实际上是真北以东 20 度。只需对偏移量进行良好测量,然后调整所有读数。对于上面的示例,添加 20 度,因为方向在真北的左侧。安装良好的传感器不会在其安装件中移动。偏移量将一直有效,直到传感器被拆下进行维护。
使用偏移安装角度还有另一个原因。大多数机械风向标都有死区。死区是无法读取的几度的范围,死区通常与北对齐。如果您在现场的盛行风是北风,建议将死区移到下风或顺风方向。
应用偏移量时,您需要考虑过零。如果将 20 的偏移量添加到 350 的读数,则得到 370 度,即超过 360 度。如果偏移量为 -20 且读数为 10,则结果为 -10 度。因此,需要进行一些数学运算才能将其保持在 0 到小于 360 的范围内。
正确应用偏移的一种有效方法是使用一系列 If/Then 语句。例如:
WindDir_Temp = WindDir + WindOffset 'Apply offset in a temporary variable If WindDir_Temp < 0 Then WindDir_Temp += 360 'Add 360 if negative ElseIf WindDir_Temp >= 360 Then WindDir_Temp -= 360 'Subtract 360 if greater than or equal to 360 EndIf WindDir_Corrected = WindDir_Temp 'Copy answer to corrected variable
虽然它很有效,但这种编程可能有点混乱。如果使用 MOD 运算符,编程会简单得多,如下例所示:
WindDir_Corrected = (WindDir + WindOffset + 360) MOD 360
请注意,括号很重要,因为它们将强制执行正确的操作顺序。
应用偏移量时,还要添加 360 以保持结果为正。它可能会使结果超过 360,但不要担心。如果不添加 360,则不允许使用负偏移量。
MOD 运算符除以并返回余数。MOD 360 会将最终结果保持在 360 以下。请考虑以下几点:
-
20 MOD 360 = 20
-
380 MOD 360 = 20
-
740 MOD 360 = 20
添加偏移量的 360 在需要时保持结果为正,在不需要时由 MOD 删除。
因此,使用 MOD 的单个编程行可以替换使用 If/Then 语句的七行。下面提供了一个完整的程序示例:
ConstTable (Configuration) Const WindOffset As Float = 20 EndConstTable Public WindDir Public WindDir_Corrected Units WindDir=degrees 'Main Program BeginProg 'Main Scan Scan(1,Sec,1,0) '03301 Wind Direction Sensor measurement 'WindDir' BrHalf(WindDir,1,mV5000,1,VX1,1,2500,True,20000,60,352,0) If WindDir>=352 OR WindDir<0 Then WindDir=0 'Example using MOD: ' Add 360 with offset to keep value positive. ' MOD 360 divides by 360 and returns remainder. WindDir_Corrected = (WindDir + WindOffset + 360) MOD 360 NextScan EndProg
www.yingyishengtai.com