Balloons behaving oddly at high altitudes #640
Replies: 9 comments 17 replies
-
I suspect this may be coming from the turbulence code. I see in
FGWinds.cpp that the turbulence is set to ttMilspec when I think it
should be ttNone.
That's my first guess. Anyone else have another guess?
Dave
…On 6/3/22 11:32, jAllyn-ACTA wrote:
I have been working with a high-altitude balloon model but it has been
behaving very oddly when it is at high altitudes. All of the balloon
models I have used work well at low altitudes, but at altitudes above
~60k feet, the balloons stop reacting correctly to winds. I have tried
using my own model as well as the provided weather balloon model:
https://github.com/JSBSim-Team/jsbsim/blob/master/aircraft/weather-balloon/weather-balloon.xml
The balloons move at a constant velocity when the winds are constant
(as expected), but they do not actually follow the winds. The balloons
will travel only straight north or straight east. I am inputting the
winds using the following code block:
`
|<run start="0" end="1" dt="0.1"> <event name="Winds"
continuous="true"> <condition>simulation/sim-time-sec ge
0.0</condition> <set name="atmosphere/wind-north-fps" value="4.7983"
/> <set name="atmosphere/wind-east-fps" value="32.9567" /> <set
name="atmosphere/wind-down-fps" value="0" /> </event> </run> |
`
I am unsure if this is a bug with JSBSim or if I am doing something
wrong. Any help would be greatly appreciated!
Some extra information:
I am running Octave to set up the winds depending on altitude. My
octave code sets up the initial conditions, calls JSBSim, captures the
output, and sets up the initial conditions for a new JSBSim run. The
winds are calculated using GFS forecast data. Balloon path information
is saved into a CSV file.
—
Reply to this email directly, view it on GitHub
<#640>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AFDBF2OTVKTVZYURXPDZSYTVNJFUBANCNFSM5XZZZGRA>.
You are receiving this because you are subscribed to this
thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
I just made a test flight through 75K feet with an aircraft model and the wind direction and speed did not vary from the initial conditions (70 degrees, 40 knots for this test). It looks like the wind changes are not coming from the atmosphere or wind models. I will next try a balloon model, but I have no experience doing this, so it may take some time to figure it out. It could be that the problem is in the balloon code - how it reacts to the wind might have a discontinuity at about 60K feet? @bcoconni Sorry about the noise. I think initializing with the ttMilspec turbulence model is fine as long as there is no way to "accidentally" have it supply perturbations, and you're right - there doesn't seem to be a way to accidentally do this. @ermarch In Flightgear you're probably using the the Flightgear atmosphere and weather system (the default) and last I looked there are some non-standard-atmosphere effects that you can't turn off. |
Beta Was this translation helpful? Give feedback.
-
I ran a test using the "weather-balloon" model that is included with the JSBSim aircraft directory. I edited the initialization file, reset10.xml, to include some wind: winddir 70.0 (sorry, can't get the actual code to appear correctly here) I changed the script, scripts/weather-balloon.xml, to report the ground track and ground speed: <notify>
<property>position/h-agl-ft</property>
<property>velocities/vg-fps</property>
<property>flight-path/psi-gt-rad</property>
<property>metrics/radius-ft</property>
</notify> I also changed the script to terminate when exceeding 80K feet altitude. The ground speed and track held steady all the way. I'm not able to duplicate the error you're seeing. |
Beta Was this translation helpful? Give feedback.
-
@dpculp take a look at the triple back-tick formatting options and the syntax highlighting option - https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks I typically use it with python, c++ and sh (for showing output from say JSBSim executable, showing a command line example etc.). |
Beta Was this translation helpful? Give feedback.
-
I was also wondering if the air density would not be too thin above 60kft for the wind to produce a significant drag ? I mean the weather balloon example uses the good old jsbsim/aircraft/weather-balloon/weather-balloon.xml Lines 217 to 238 in 59389f6 |
Beta Was this translation helpful? Give feedback.
-
@jAllyn-ACTA could you post the contents of the initialization file that you're using with the default balloon model in JSBSim which demonstrates the issue you're seeing, with the relevant properties being logged which show the unexpected velocities you're seeing versus what you would expect. Which would then make it easier for us to reproduce the issue, otherwise a fair bit of time is wasted trying to setup a test to try and reproduce what you're seeing and often fail to capture the exact requirements that are needed to reproduce the issue. |
Beta Was this translation helpful? Give feedback.
-
Initialization file: <?xml version="1.0" encoding="utf-8"?>
<initialize name="cruise">
<altitude unit="FT">100000.0</altitude>
<vt unit="FT/SEC">0</vt>
<gamma unit="DEG">0</gamma>
<latitude unit="DEG">36.9297</latitude>
<longitude unit="DEG">-111.4489</longitude>
<phi unit="DEG">0</phi>
<psi unit="DEG">0</psi>
<beta unit="DEG">0</beta>
</initialize> Script file: <?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://jsbsim.sf.net/JSBSimScript.xsl"?>
<runscript xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://jsbsim.sf.net/JSBSimScript.xsd"
name="Balloon Flight">
<use aircraft="weather-balloon" initialize="balloonInit"/>
<run start="0" end="1" dt="0.01">
<event name="Winds" continuous="true">
<condition>simulation/sim-time-sec ge 0.0</condition>
<set name="atmosphere/wind-north-fps" value="0" />
<set name="atmosphere/wind-east-fps" value="0" />
<set name="atmosphere/wind-down-fps" value="0" />
</event>
</run>
<output name="Output/example_output.csv" type="CSV" rate="100" file="../scripts/unitconversions.xml">
<property caption="Latitude"> position/lat-gc-deg </property>
<property caption="Longitude"> position/long-gc-deg </property>
<property caption="Altitude (sea level)"> position/h-sl-ft </property> <!-- height above sea level -->
<property caption="Altitude (ground level)"> position/h-agl-ft </property> <!-- height above ground level -->
<property caption="Airspeed (ft/s)">velocities/vt-fps</property>
<property apply="convert-rad-To-deg" caption="Phi (deg)">attitude/phi-rad</property>
<property apply="convert-rad-To-deg" caption="Theta (deg)">attitude/theta-rad</property>
<property apply="convert-rad-To-deg" caption="Psi (deg)">attitude/psi-rad</property>
<property caption="Beta (deg)">ic/beta-deg</property>
<property caption="Gamma (deg)">ic/gamma-deg</property>
<property caption="Qbar (psf)">aero/qbar-psf</property>
</output>
</runscript> Example output file: |
Beta Was this translation helpful? Give feedback.
-
Hmm, does seem like a fairly convoluted setup now that you've shared more details. I see in the meantime @bcoconni has made some suggestions in terms of wind table lookups for a single JSBSim run. When I initially saw your Octave JSBSim setup with multiple runs of JSBSim to handle updating the wind at different altitudes as the balloon's altitude changed my thinking was an option along these lines. import jsbsim
fdm = jsbsim.FGFDMExec()
fdm.load_model('weather-balloon')
fdm['ic/h-sl-ft'] = 100000
fdm.run_ic()
while fdm['position/h-sl-ft'] > 0.1:
windN, windE, windD = lookupWind(fdm['position/h-sl-ft'])
fdm['atmosphere/wind-north-fps'] = windN
fdm['atmosphere/wind-east-fps'] = windE
fdm['atmosphere/wind-down-fps'] = windD
fdm.run()
# Log state to csv file |
Beta Was this translation helpful? Give feedback.
-
@bcoconni @seanmcleod Thank you both for your help and suggestions. Using the wind table method solved the issue. The weather balloon model is performing as expected now. |
Beta Was this translation helpful? Give feedback.
-
I have been working with a high-altitude balloon model but it has been behaving very oddly when it is at high altitudes. All of the balloon models I have used work well at low altitudes, but at altitudes above ~60k feet, the balloons stop reacting correctly to winds. I have tried using my own model as well as the provided weather balloon model:
https://github.com/JSBSim-Team/jsbsim/blob/master/aircraft/weather-balloon/weather-balloon.xml
The balloons move at a constant velocity when the winds are constant (as expected), but they do not actually follow the winds. The balloons will travel only straight north or straight east. I am inputting the winds using the following code block:
I am unsure if this is a bug with JSBSim or if I am doing something wrong. Any help would be greatly appreciated!
Some extra information:
I am running Octave to set up the winds depending on altitude. My octave code sets up the initial conditions, calls JSBSim, captures the output, and sets up the initial conditions for a new JSBSim run. The winds are calculated using GFS forecast data. Balloon path information is saved into a CSV file.
Beta Was this translation helpful? Give feedback.
All reactions