Falcon BMS Forum
    • Register
    • Login
    • Search
    • Categories
    • Unread
    • Recent
    • Unsolved
    • Popular
    • Website
    • Wiki

    Missile aerodynamics project

    Community Mods & Tools
    19
    93
    4989
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Jags
      Jags last edited by

      This all started over a year ago, when while watching recordings of my BVR adder defense practice in tacview. I noticed that the missiles bled speed very slowly, and did not exhibit any additional speed bleed when turning. The result made defense against even long range BVR shots difficult using conventional tactics such as beaming and staying at corner speed for a turn into the missile were useless. The “crossing technique”, which normally should only be used for missiles fired at your front quarter at short range as a last resort, worked pretty well. But even then I saw adders that were fired at me from 27nm do a complete 180 and run me down from behind after dodging them at full burner!

      That is when I started checking the forums, and came across some updated missile data files from SpbGoro, OSD, and Molni. After reading their posts, looking at the data files, and a LOT of googling, I started doing some testing with the missile data files and came to some conclusions.

      First, although the stock BMS missile aero data files are in “normal and axial force” format, it became obvious that the program was actually using the data in “Lift and Drag” format like it does for the aircraft files. Next(thanks to Molni on this one), that the way falcon BMS reads the data file, the launch weight of the missiles is the sum of the “weight of missile” and “weight of propellant”. The stock files list the total launch weight of the missiles in the “weight of missile” category, leading to much too high launch weights that affect both the decreased total velocity attained and decreased deceleration rate. Finally, even after fixing these first two problems, the missiles had too much max speed, and not enough deceleration. So after much testing, I found that reducing the thrust by 75% and increasing the drag multiplier(used to be axial mult) by 33% led to pretty accurate results(at least for the missiles I can get data on). According to the data I have on aim-7 and aim-9 flyout performances at 20k, the missiles are pretty close now. Data used was what can be freely gathered from the internet. This is by no means perfect and is an ongoing process as I do more testing and or find new data, but I think the missiles now behave much better aerodynamically.

      The best part of this mod is that not only are real world tactics effective now, but that long range amraam shots at the AI are no longer automatic “magic missiles”. There is actually a good reason to wait for a closer shot, especially a shot in NEZ range if you want to have a high pk on fighter aircraft. This can result in more dogfights that you would be used to in campaigns.

      To install, first back-up your Data/Sim/Misdata folder as this file is multiplayer critical! Next copy my Misdata folder to your Data/Sim folder and overwrite all files. I recommend using the Generic Mod Enabler instead, which makes enabling/disabling mods very easy. I have updated pretty much all the missiles the f-16 uses as well as the missiles that will be used against you.

      https://www.dropbox.com/sh/3j5waaofakr5kr1/AAC_cGYze-X26Y4uo2ZYZbG5a

      Thanks goes out to SpbGoro, Molni, and OSD for their work on improving the missiles, the RP5 manual, Google, the guy who created the documentation for the SAM Simulator(lots of data on thrust, burn times, weights and missile performance on older SAMS), and of course the BMS team and Microprose for making this all possible. This really took me an inordinate amount of time to get to this point(it really is rocket science after all;)), so I really got a better appreciation of the work these and other people put into on our sims.

      1 Reply Last reply Reply Quote 0
      • FreqiMANN
        FreqiMANN last edited by

        thanks. anything that potentially makes the game more realistic is something i am always for. i will start playing around immediately. where did you get your information on missile performance data? i would like to take a look.

        thanks for the tip on the Generic Mod Enabler. i use silent hunter as well. i didn’t know i could use that with other programs.

        Jags 1 Reply Last reply Reply Quote 0
        • molnibalage
          molnibalage last edited by

          I will check some files but you should know something. A part of my changes and recommendations were mede by the following considerations:

          • I had excact thrust data about AIM-7F and AIM-9M with at least a very limited kinematics data with aspect dependency.
          • OSD and SpbGoro also provided some exact data about Russians AAMs.
          • Mav-jp has stated that missile code has many flaws, you cannot set even a close kinematics on all altitudes, therefor I selected the med. alt what is the typical zone of air combat. This is why pointless (from my aspect) calculate the forces and coeffs, it seemed to me easier and much faster select the typical alt and achive the same performance on this level as RL. The rest of performance is simply extrapolation which means in every other alt. the missile kinematics is under- or over modeled.*
          • As I can remember for all SRAAM I gave the same areo data what AIM-9M got because in the level of Falcon ther shape are so close that likely their aero coeffs are not so different. I simply do not have data…
          • I had exact data about propellant weight only for some AAMs and AGMs. After checked all of them I discovered is a typical total/burnout weight ratio which is only sliglty different even between SRAMM and AIM-54. I applied more or less tha same ratio for all AAM in the same size class. Literally the world of AAMS “are built around” the AIM-9L/M and AIM-7F/M.
          • I also had exact data about total impulse of different Russian AAMs which also reveled some data about the total impulse/weight of propellant ratio.
          • All AAMs and AGM which are used in campaigns or frequently in TE has the right total weight by the sum of two weight data but with the assumed/gueesed/estimated launch/burnout weight ration.
          • The Russain SAMs with two stages are special. In short I set the corrent weigth data for 2nd stage but the total impluse and prop weight is set accorcing to 1+2st stage and adjusted as the booster stage thrust to get the right burnout speed. With this aspect I was able to achieve about 5% difference from RL test launch speed-time char. IMHO on the level of Falcon and considerng the workhours what were needed to get this seems to me more than acceptable. Even just 5-10% general inacc. is better then the current totally inaccurate red SAM kinematics and capability modeling.

          *This is what F4.0 can provide. This is even better then LOMAC/DCS can support becuse until the recent upgrades even DCS did not have any missile areo modeling and even now has the code the data what is used are not good…

          Dee-Jay 2 Replies Last reply Reply Quote 0
          • Dee-Jay
            Dee-Jay @molnibalage last edited by

            I am being working on missiles. Your work may (will) help me … thank you!

            ASUSTeK ROG MAXIMUS X HERO / Intel Core i5-8600K (4.6 GHz) / NVIDIA GeForce RTX 3080 Ti FE 12GB / 32GB DDR4 Ballistix Elite 3200 MHz / Samsung SSD 970 EVO Plus 2TB / Be Quiet! Straight Power 11 1000W Platinum / Windows 10 Home 64-bit / HOTAS Cougar FSSB R1 (Warthog grip) / SIMPED / MFD Cougar / ViperGear ICP / SimShaker JetPad / Track IR 5 / Curved LED 27'' Monitor 1080p Samsung C27F396 / HP Reverb G2 VR Headset.

            1 Reply Last reply Reply Quote 0
            • Dee-Jay
              Dee-Jay @molnibalage last edited by

              @Jags:

              So after much testing, I found that reducing the thrust by 75% and increasing the drag multiplier(used to be axial mult) by 33% led to pretty accurate results

              Did you characterized that on several missiles (which ones?) or based on one single conclusion (single missile test)?

              ASUSTeK ROG MAXIMUS X HERO / Intel Core i5-8600K (4.6 GHz) / NVIDIA GeForce RTX 3080 Ti FE 12GB / 32GB DDR4 Ballistix Elite 3200 MHz / Samsung SSD 970 EVO Plus 2TB / Be Quiet! Straight Power 11 1000W Platinum / Windows 10 Home 64-bit / HOTAS Cougar FSSB R1 (Warthog grip) / SIMPED / MFD Cougar / ViperGear ICP / SimShaker JetPad / Track IR 5 / Curved LED 27'' Monitor 1080p Samsung C27F396 / HP Reverb G2 VR Headset.

              Jags 1 Reply Last reply Reply Quote 0
              • Mav-jp
                Mav-jp last edited by

                Be careful, you are doing wrong assumptions
                @Jags:

                Next(thanks to Molni on this one), that the way falcon BMS reads the data file, the launch weight of the missiles is the sum of the “weight of missile” and “weight of propellant”. The stock files list the total launch weight of the missiles in the “weight of missile” category, leading to much too high launch weights that affect both the decreased total velocity attained and decreased deceleration rate…

                This is INCORRECT.

                BMS reads Empty weight and Weigth of propelant SEPERATLY.

                void MissileClass::ReadInput(int idx)
                {
                inputData =
                missileDataset[min (idx, numMissileDatasets-1)].inputData;
                weight = inputData->wm0 + inputData->wp0;
                wprop = inputData->wp0;
                mass = weight/GRAVITY;
                m0 = inputData->wm0/GRAVITY;
                mp0 = inputData->wp0/GRAVITY;
                mprop = wprop/GRAVITY;
                }

                inputData->wm0 beeing the value read in the dat file as “weight”
                inputData->wp0 beeing the value read in the dat file as “propellant”

                So the value in dat file shall NOT be the sum of both.

                The confusion comes from the fact that since the origins of falcon, the DATA developpers put in that value the sum of both and build all their missiles like that. This was a mistake of course…BUT this may not have been wrong because as they made all their calculations or in game trial with this mistake in it, they have set up their missile taking this bug into account.

                based on that fact, we had 3 choices :

                1. Fix all the dat files by adjusting the weigths to the correct empty weight, which would require a complete rewritten of the other values of the dat file in order to match again the correct intended behavior

                2. Adjust the code , to read weight as total weight, but then that would require to keep same weight in the dat file but to change all the other values of dat fil to match again the correct intended behavior (this is VERY HACKISH)

                3. Dont touch anything and keep the correct intended behavior.

                we at BMS made the choice de apply “3” because we trusted SPx developpers and did not want or had the time to recheck all missiles

                AF has made the choicde to apply “2” but have not changed all data files, resulting in unknown missiles performances

                NOW if your intention is to set up everything properly ; you must put EMPTY valaues in there and develop your missiles FM from this.

                @Jags:

                First, although the stock BMS missile aero data files are in “normal and axial force” format, it became obvious that the program was actually using the data in “Lift and Drag” format like it does for the aircraft files. .

                That is INCORRECT

                the missiles code takes AXIAL / BODY values , that are read in the dat file as CX, CY

                /–----------------/
                /* body axis accels /
                /
                ------------------/
                ifd->xaero = cx
                ifd->qsom;
                ifd->yaero = cyifd->qsom;
                ifd->zaero = cz
                ifd->qsom;

                /-----------------------/
                /* stability axis accels /
                /
                -----------------------*/
                ifd->xsaero = ifd->xaero * ifd->geomData.cosalp + ifd->zaero * ifd->geomData.sinalp;
                ifd->ysaero = ifd->yaero;
                ifd->zsaero = ifd->zaero * ifd->geomData.cosalp - ifd->xaero * ifd->geomData.sinalp;

                /------------------/
                /* wind axis accels /
                /
                ------------------*/
                ifd->xwaero = ifd->xsaero * ifd->geomData.cosbet + ifd->ysaero * ifd->geomData.sinbet;
                ifd->ywaero = -ifd->xsaero * ifd->geomData.sinbet + ifd->ysaero * ifd->geomData.cosbet;
                ifd->zwaero = ifd->zsaero;

                WHEREAS acdata aero code read CL / CD values (wind axis)

                lift = clqsom;
                drag = cd
                qsom;
                /–----------------/
                /* body axis accels /
                /
                ------------------/
                xaero = -drag
                platform->platformAngles->cosalp +
                lift*platform->platformAngles->sinalp;

                yaero = cyqsom((float)beta - (float)fabs(beta)yshape0.5F);
                zaero = -liftplatform->platformAngles->cosalp -
                drag
                platform->platformAngles->sinalp;

                /-----------------------/
                /* stability axis accels /
                /
                -----------------------*/
                xsaero = -drag;
                ysaero = yaero;
                zsaero = -lift;

                /------------------/
                /* wind axis accels /
                /
                ------------------/
                xwaero = xsaero
                platform->platformAngles->cosbet +
                ysaeroplatform->platformAngles->sinbet;
                ywaero = -xsaero
                platform->platformAngles->sinbet +
                ysaero*platform->platformAngles->cosbet;
                zwaero = zsaero;

                Sorry to say we can not trust your work at that point

                molnibalage Jags 2 Replies Last reply Reply Quote 0
                • molnibalage
                  molnibalage @Mav-jp last edited by

                  So the value in dat file shall NOT be the sum of both.

                  In this case pls. explain how can it be that you do not get negative weight in game when set bigger prop weight than empty weight…? As I can remember I tired that I set 0 for weight of missile and somehow the code works. Also strange that if I treat as sum the two weight I got better results. I do not understand the situation.

                  l3crusader Mav-jp 3 Replies Last reply Reply Quote 0
                  • l3crusader
                    l3crusader @molnibalage last edited by

                    Well, how does a negative weight affect performance in the physics engine ?

                    The “weight force” pulling towards earth should be a direct acceleration to avoid useless computations, so modification here.
                    Then, you have inertia, which is basically the conversion of other forces as acceleration/decceleration.

                    Maybe a debugging line (in order to avoid missiles flying in reverse… or crashes, dues to databases mistakes) was added to take negative weight/initial acceleration/drag deceleration value and reverse them into the correct expected sign.

                    1 Reply Last reply Reply Quote 0
                    • Mav-jp
                      Mav-jp @molnibalage last edited by

                      @molnibalage:

                      In this case pls. explain how can it be that you do not get negative weight in game when set bigger prop weight than empty weight…? As I can remember I tired that I set 0 for weight of missile and somehow the code works. Also strange that if I treat as sum the two weight I got better results. I do not understand the situation.

                      exactly for the reason i was telling you

                      weight = inputData->wm0 + wprop;

                      inputData->wm0 is the weight you put in the data file, so here the EMPTY weight should be placed

                      after that the weight is an ADDITION of empty and prop weight

                      SO you can never have a negative value…
                      your argument is the exact demonstration that the code works indeed with empty value while your reasoning would be correct IF the code was Weigth = total weight - prop ….

                      see ?

                      as far as better results are concerned, the reason is simple, you are all working with wrong code asumptions, so basically all your conclusions might be wrong as well 😕

                      1 Reply Last reply Reply Quote 0
                      • Mav-jp
                        Mav-jp @molnibalage last edited by

                        so if i summarize correctly

                        the code working OK

                        The DATA are wrong, empty weight should be place in data file whereas since 1997 total Weight have be placed

                        So in short, the best thing to do is to put empty weight, then readjust impulse in order to match the same top speed.

                        After that of course, the weight beeing reajusted correctly lighter, the flight caracteristic are better, so to match again SPx behavior, CX/CZ should be changed accordingly

                        so this is not easy game to change initial weight and change everything else to match same behavior, this is why we didnt change them…

                        now if you want to redo all missiles, feel free but start from correct code 🙂

                        l3crusader molnibalage 2 Replies Last reply Reply Quote 0
                        • l3crusader
                          l3crusader @Mav-jp last edited by

                          Good point, but isnt there a way to automatize this ? Compute correct database inputs once, then change them ?

                          The formula you briefly described are not that hard to compute. Especially since lift and drag forces are independent from atmosphere state…

                          Edit : incorrect, please disregard.

                          Mav-jp 1 Reply Last reply Reply Quote 0
                          • molnibalage
                            molnibalage @Mav-jp last edited by

                            after that the weight is an ADDITION of empty and prop weight
                            +

                            The DATA are wrong, empty weight should be place in data file whereas since 1997 total Weight have be placed

                            Just for clarification.

                            375 # Weight of Missile (lbs) ––>this is the burnout weight
                            135 # Weight of propellant (lbs) ----> weight of rocket fuel

                            The addition of these values are the total weight. If this is statement is right means what I have discovered about 3 years ago. All missiles have wrong values in current dat files but I correted the weight in my mod as I explanied above.

                            Mav-jp 1 Reply Last reply Reply Quote 0
                            • Mav-jp
                              Mav-jp @molnibalage last edited by

                              @molnibalage:

                              Just for clarification.

                              375 # Weight of Missile (lbs) ––>this is the burnout weight
                              135 # Weight of propellant (lbs) ----> weight of rocket fuel

                              The addition of these values are the total weight. If this is statement is right means what I have discovered about 3 years ago. All missiles have wrong values in current dat files but I correted the weight in my mod as I explanied above.

                              and i think you did not read my first post entirely.

                              yes we know all DAT files were wrong in this aspect, but as original devs and SPx devs have set up their models taking into account this bug if you want to get same results than SPX data while fixing the bug, you need to REDO all VALUES of ALL MISSILES

                              keeping the same impulses and CX / CZ but fixing only the weight bug is leading to a missile FM that will not match what original devs were seeking…

                              NOW, if the assumption is that the original devs , or SPx devs were not aware of this bug AND have done their FM by CALCULATING them outside the F4 code and not by TEST/TRIAL in game, that means you mod is correct, if not your mod is incorrect.

                              clear now ?

                              1 Reply Last reply Reply Quote 0
                              • Mav-jp
                                Mav-jp @l3crusader last edited by

                                @l3crusader:

                                Good point, but isnt there a way to automatize this ? Compute correct database inputs once, then change them ?

                                The formula you briefly described are not that hard to compute. Especially since lift and drag forces are independent from atmosphere state … :oops: 😉

                                INCORRECT statement.

                                lift and drag are dependant from atmosphere because density , pressure , dynamic pressure and speed of sound is compute each frame taking into account atmosphere and Altitude

                                l3crusader molnibalage 2 Replies Last reply Reply Quote 0
                                • l3crusader
                                  l3crusader @Mav-jp last edited by

                                  Ah, I read somewhere else missiles performance was unrealistic because didnt depend on altitude, drag and lift being only dependent upon the speed of the missile. But if in missile data, there is a table of drag/lift COEFFICIENT per AOA, then it is multiplied by speed squared and density (together, dynamic pressure), then I withdraw my previous statement.

                                  molnibalage 1 Reply Last reply Reply Quote 0
                                  • molnibalage
                                    molnibalage @Mav-jp last edited by

                                    and i think you did not read my first post entirely.

                                    I did it.

                                    keeping the same impulses and CX / CZ but fixing only the weight bug is leading to a missile FM that will not match what original devs were seeking…

                                    Of course, I know. Did you read my aspect and estimation process…? 🙂

                                    I did slighly or no changes on red SAM aero data. I just set the thurst, impluse and weight data well and voile, the speed-thrust char. was 5-10% within the RL test launches.

                                    SA-2 without Cx/Cz change.
                                    https://www.benchmarksims.org/forum/showthread.php?8230-Suggestion-for-database-data-supply&p=107477&viewfull=1#post107477

                                    SA-2 with Cx/Cz change.
                                    https://www.benchmarksims.org/forum/showthread.php?8230-Suggestion-for-database-data-supply&p=114975&viewfull=1#post114975

                                    Of coruse this method - by altering the Cx/Cz only by experimental way - is anything but not scientific but the result is generally us qiite close to RL. I rather accept this result than waiting forever for 100% scientific method with 5-6% more percent accuracy. This is not a military grade simulatior to train RL pilots. The method why I used provide lightyears better kinematics modeling than current considering only the range and speed-time (distance) charateristics. Modeling the available lift for turns according to RL limits requires calculations because in Falcon guidance values and targets simply do not make possible the testing.

                                    Guidance valus also have issues because in RL even the stone age Russian SAMs had multiple guidance mode with different leading…

                                    l3crusader 1 Reply Last reply Reply Quote 0
                                    • molnibalage
                                      molnibalage @l3crusader last edited by

                                      @l3crusader:

                                      Ah, I read somewhere else missiles performance was unrealistic because didnt depend on altitude, drag and lift being only dependent upon the speed of the missile. But if in missile data, there is a table of drag/lift COEFFICIENT per AOA, then it is multiplied by speed squared and density (together, dynamic pressure), then I withdraw my previous statement.

                                      This likely concerned on DCS. Falcon 4.0 since the beginning has areo modeling - as I know, because the basic structire of the game is still close to original - while DCS/LOMAC had scripted behavior until recent times.

                                      1 Reply Last reply Reply Quote 0
                                      • l3crusader
                                        l3crusader @molnibalage last edited by

                                        @molnibalage:

                                        Of coruse this method - by altering the Cx/Cz only by experimental way - is anything but not scientific but the result is generally us qiite close to RL. I rather accept this result than waiting forever for 100% scientific method with 5-6% more percent accuracy. This is not a military grade simulatior to train RL pilots. The method why I used provide lightyears better kinematics modeling than current considering only the range and speed-time (distance) charateristics. Modeling the available lift for turns according to RL limits requires calculations because in Falcon guidance values and targets simply do not make possible the testing.

                                        Guidance valus also have issues because in RL even the stone age Russian SAMs had multiple guidance mode with different leading…

                                        I get your point, man, but dont be stubborn either. Your experiments are really useful but programming is not physics, the code works in a theoretical way which can be fully understood provided you have programming knowledge and some time. This theoretical way can be wrong (ie : not modelizing sth properly), that’s a bug ; but the source code IS how BMS works, period.

                                        In physics, experiments are always right, and theory try to modelize it.
                                        In a sim, the code is always right, experiments are useful to try to understand how the code works if you dont know how (or not perfectly), and to detect bugs. For bugs, you then check the code for its origin.

                                        Just my 2 cents….

                                        Dee-Jay 1 Reply Last reply Reply Quote 0
                                        • Dee-Jay
                                          Dee-Jay @l3crusader last edited by

                                          1. Fix all the dat files by adjusting the weigths to the correct empty weight, which would require a complete rewritten of the other values of the dat file in order to match again the correct intended behavior

                                          2. Adjust the code , to read weight as total weight, but then that would require to keep same weight in the dat file but to change all the other values of dat fil to match again the correct intended behavior (this is VERY HACKISH)

                                          3. Dont touch anything and keep the correct intended behavior.

                                          IMO, Do not go option n°2 …. As you well know, coder has already a lot of work vs time available …

                                          This is a work for datamen… I think it is time to go on option 1 … Together.

                                          I kept an eye on Monli’s thread and by comparing results to my documents (unable to share them as they are confidential) I have good faith on Monli’s analysis. Sure… Not always 1000% exact (who can give a 100% truth model in a simulator … Nobody), but by look at he said about missile energy, flight profil, global perfo and trajectory diagrams … My conclusion is that his work on the .dat makes them close to RL than the one we had before… I deeeeeply consider and respect and admir RP team work, it dosen’t mean it can’t be improved… Especially using the materials that Molni has on Soviet systems.

                                          Time to go forward together … But step by step and progressively. No need to hurry and no need to do everthing in one shot.
                                          Actually, we are already in touch. And some of BMS missile.dat already fit with code requirement about missile weight and aero data… At least … Experimental results in-game fit (quite good) with RL diagrams as Molni showed.

                                          Step by step …

                                          ASUSTeK ROG MAXIMUS X HERO / Intel Core i5-8600K (4.6 GHz) / NVIDIA GeForce RTX 3080 Ti FE 12GB / 32GB DDR4 Ballistix Elite 3200 MHz / Samsung SSD 970 EVO Plus 2TB / Be Quiet! Straight Power 11 1000W Platinum / Windows 10 Home 64-bit / HOTAS Cougar FSSB R1 (Warthog grip) / SIMPED / MFD Cougar / ViperGear ICP / SimShaker JetPad / Track IR 5 / Curved LED 27'' Monitor 1080p Samsung C27F396 / HP Reverb G2 VR Headset.

                                          Mav-jp 1 Reply Last reply Reply Quote 0
                                          • Mav-jp
                                            Mav-jp @Dee-Jay last edited by

                                            I think i will create a working group on this . I am waiting for someone to give me an answer for a tool we need…plus another tool.that falcas has to make

                                            Keep tuned guys i will recruit soon 🙂

                                            FreqiMANN Khronik 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            54
                                            Online

                                            9.7k
                                            Users

                                            19.0k
                                            Topics

                                            324.2k
                                            Posts

                                            Benchmark Sims - All rights reserved ©