mirror of
https://gitee.com/xiaohuolufeihua/bizhang_-obav.git
synced 2026-05-22 01:12:31 +00:00
Update SDP3x Airspeed Correction (#8242)
Update the model for the standard configuration based on the model from Sensirion and add also an option to do the tube pressure loss correction from Sensirion for other configurations.
This commit is contained in:
committed by
Daniel Agar
parent
85a7a0a86a
commit
a5cc4bcd08
@@ -30,18 +30,29 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
|
||||
# formula for metal pitot tube with round tip as here: https://drotek.com/shop/2986-large_default/sdp3x-airspeed-sensor-kit-sdp31.jpg
|
||||
# and tubing as provided by px4/drotek (1.5 mm diameter)
|
||||
|
||||
|
||||
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
P_cal=96600. #Pa
|
||||
P_amb=96600. #dummy-value, use absolute pressure sensor!!
|
||||
|
||||
|
||||
## differential pressure, sensor values in Pascal
|
||||
dp_SDP33=np.linspace(0,800,100)
|
||||
dp_SDP33_raw=np.linspace(0,80,100)
|
||||
|
||||
|
||||
|
||||
|
||||
dp_SDP33=dp_SDP33_raw*P_cal/P_amb
|
||||
|
||||
|
||||
## total length tube in mm = length dynamic port+ length static port; compensation only valid for inner diameter of 1.5mm
|
||||
l_tube=400
|
||||
l_tube=450
|
||||
|
||||
## densitiy air in kg/m3
|
||||
rho_air=1.29
|
||||
@@ -50,19 +61,21 @@ rho_air=1.29
|
||||
## flow through sensor
|
||||
flow_SDP33=(300.805 - 300.878/(0.00344205*dp_SDP33**0.68698 + 1))*1.29/rho_air
|
||||
|
||||
## additional dp through pitot tube
|
||||
dp_Pitot=28557670. - 28557670./(1 + (flow_SDP33/5027611)**1.227924)
|
||||
|
||||
|
||||
## additional dp through pitot tube
|
||||
dp_Pitot=(0.0032*flow_SDP33**2 + 0.0123*flow_SDP33+1.)*1.29/rho_air
|
||||
|
||||
## pressure drop through tube
|
||||
dp_Tube=flow_SDP33*0.000746124*l_tube*rho_air
|
||||
dp_Tube=(flow_SDP33*0.674)/450*l_tube*rho_air/1.29
|
||||
|
||||
## speed at pitot-tube tip due to flow through sensor
|
||||
dv=0.0331582*flow_SDP33
|
||||
dv=0.125*flow_SDP33
|
||||
|
||||
## sum of all pressure drops
|
||||
dp_tot=dp_SDP33+dp_Tube+dp_Pitot
|
||||
|
||||
|
||||
## computed airspeed without correction for inflow-speed at tip of pitot-tube
|
||||
airspeed_uncorrected=np.sqrt(2*dp_tot/rho_air)
|
||||
|
||||
@@ -74,18 +87,24 @@ airspeed_corrected=airspeed_uncorrected+dv
|
||||
airspeed_raw=np.sqrt(2*dp_SDP33/rho_air)
|
||||
|
||||
|
||||
|
||||
|
||||
plt.figure()
|
||||
plt.plot(dp_SDP33,airspeed_corrected/airspeed_raw)
|
||||
plt.plot(dp_SDP33,airspeed_corrected)
|
||||
plt.xlabel('differential pressure raw value [Pa]')
|
||||
plt.ylabel('correction factor [-]')
|
||||
plt.ylabel('airspeed_corrected [m/s]')
|
||||
plt.show()
|
||||
|
||||
|
||||
|
||||
plt.figure()
|
||||
plt.plot(airspeed_corrected,(airspeed_corrected-airspeed_raw)/airspeed_corrected)
|
||||
plt.xlabel('airspeed [m/s]')
|
||||
plt.ylabel('relative error [-]')
|
||||
plt.show()
|
||||
##plt.figure()
|
||||
##plt.plot(dp_SDP33,airspeed_corrected/airspeed_raw)
|
||||
##plt.xlabel('differential pressure raw value [Pa]')
|
||||
##plt.ylabel('correction factor [-]')
|
||||
##plt.show()
|
||||
##
|
||||
##
|
||||
##
|
||||
##plt.figure()
|
||||
##plt.plot(airspeed_corrected,(airspeed_corrected-airspeed_raw)/airspeed_corrected)
|
||||
##plt.xlabel('airspeed [m/s]')
|
||||
##plt.ylabel('relative error [-]')
|
||||
##plt.show()
|
||||
Reference in New Issue
Block a user