|
Post by the_Demongod on Oct 4, 2016 2:06:50 GMT
I've heard many things about the missiles, both good and bad, but in general I really like them. My primary gripe is related to using them in head to head combat. In short, when using the 'controlled homing' command, missiles burn constantly until they have about 400m/s of Δv before entering their coast phase. In an ideal situation it might work fine, but as soon as the target vessel deviates slightly from its initial path, all bets are off. The missiles wait until they're almost about to pass the target before trying to burn those few 400m/s to correct their trajectory, but to no avail. I've launch huge barrages of flak missiles only to have them all miss one by one by less than 300m after the target has moved, all because they didn't correct their trajectory early enough.
What we need is the ability to tune the remote control's guidance computer to optimize the tracking. If we had the ability to instruct the remote control to save x much Δv for the terminal phase, coast at a specified velocity, or respond more/less aggressively to a target changing direction, the problem would be fixed. To be honest it would probably be fixed if you could simply designate how much Δv to save for corrections and terminal phase. For example, if I could tell my missile (which has 1.5km/s of Δv, definitely more than enough for a head-to-head engagement) to save just 100m/s Δv for the terminal phase but reserve an additional 500m/s for mid-course corrections, it would massively improve the accuracy and capabilities of the missiles.
Thoughts?
|
|
|
Post by nivik on Oct 6, 2016 3:25:40 GMT
I personally consider the effective range of a missile to be the distance it can travel from 0 m/s relative velocity under full burn. For stock missiles, which have (IIRC) around 1.5km of delta-V at around 3 gravities, that would come to around 38 kilometers. (according to time = velocity/acceleration and 0.5 * acceleration * time^2 = distance). This is a rough estimate: acceleration increases as the rocket burns propellant and the mass decreases, but it's a good minimum value that gives you some wiggle room. I try to design my missiles for 60 kilometers of range with a 30 second burn time, which after some math and testing I don't need to get into, usually can be accomplished by a missile with around 3.5km/s of delta-V with a sheet acceleration of around 5 gravities. The math suggests you need a bit more than that, but because your acceleration increases over time, you get a lot more zoom in terminal flight than you do early on, and that increases your range a bit. So, you can get a lot of extra performance out of missiles by designing the missiles for a certain powered range envelope, then configuring your launchers to automatically fire only when you're inside that range. By doing that, you know for sure that the missiles will still have gas in the tank when they need to make a course correction. That said, my primary observation is that missiles currently appear to either use naive pursuit or simple proportional navigation, which are not the most robust algorithms out there. There are better alternatives. This video shows great examples of a variety of navigation algorithms and how incredibly important a good algorithm is. More information for the technically minded can be gleaned from this (math-heavy) paper. And here's an example of a higher-order algorithm being used in From the Depths against a very (notoriously) erratic target, with the source code included in the video description.
|
|
|
Post by Dhan on Oct 6, 2016 6:47:58 GMT
I personally consider the effective range of a missile to be the distance it can travel from 0 m/s relative velocity under full burn. For stock missiles, which have (IIRC) around 1.5km of delta-V at around 3 gravities, that would come to around 38 kilometers. (according to time = velocity/acceleration and 0.5 * acceleration * time^2 = distance). This is a rough estimate: acceleration increases as the rocket burns propellant and the mass decreases, but it's a good minimum value that gives you some wiggle room. I try to design my missiles for 60 kilometers of range with a 30 second burn time, which after some math and testing I don't need to get into, usually can be accomplished by a missile with around 3.5km/s of delta-V with a sheet acceleration of around 5 gravities. The math suggests you need a bit more than that, but because your acceleration increases over time, you get a lot more zoom in terminal flight than you do early on, and that increases your range a bit. So, you can get a lot of extra performance out of missiles by designing the missiles for a certain powered range envelope, then configuring your launchers to automatically fire only when you're inside that range. By doing that, you know for sure that the missiles will still have gas in the tank when they need to make a course correction. That said, my primary observation is that missiles currently appear to either use naive pursuit or simple proportional navigation, which are not the most robust algorithms out there. There are better alternatives. This video shows great examples of a variety of navigation algorithms and how incredibly important a good algorithm is. More information for the technically minded can be gleaned from this (math-heavy) paper. And here's an example of a higher-order algorithm being used in From the Depths against a very (notoriously) erratic target, with the source code included in the video description. I haven't tested thoroughly yet, but I have a feeling that too much dV on a missile is a detriment in general combat use. I have 10 km/s missile with ~36g acceleration that seems to be suffering from self induced accuracy issues that stem from the fact that it's going 6-8 km/s by the time it gets close to the target, making final corrections futile, even with 36gs of acceleration. The 10 km/s is fantastic when launched from orbit and the 6-8 km/s terminal phase can be mitigated by a manually induced coasting phase (but that's not too viable in actual combat). I'm going to lower the dV on these missiles and see if their accuracy improves in fire and forget applications.
|
|
|
Post by nivik on Oct 6, 2016 7:22:33 GMT
I haven't tested thoroughly yet, but I have a feeling that too much dV on a missile is a detriment in general combat use. I have 10 km/s missile with ~36g acceleration that seems to be suffering from self induced accuracy issues that stem from the fact that it's going 6-8 km/s by the time it gets close to the target, making final corrections futile, even with 36gs of acceleration. The 10 km/s is fantastic when launched from orbit and the 6-8 km/s terminal phase can be mitigated by a manually induced coasting phase (but that's not too viable in actual combat). I'm going to lower the dV on these missiles and see if their accuracy improves in fire and forget applications. In my mind, dV is always good. I'd rather have my missiles powered than unpowered. The problem is that in the absence of a solid guidance algorithm, most of the dV is getting expended along the wrong vector. The missile aims for where the target is instead of where the target will be, which means it spends most of its flight time digging itself into a hole it can't get out of. If our missiles were tracking ahead according to the target's observed velocity, acceleration, and change in acceleration, they'd spend most of their time boosting towards an intercept, and their dV budget and large acceleration means they could respond both early and quickly to any changes in the target's behavior, and constantly tweak their trajectory early, before they've spent a lot of time and fuel on an error that requires even more time and fuel to fix. Which is the problem we're seeing right now. I'm not sure what we can do in missile design to make the best of what we currently have, though. Right now we need to have our missiles wait for a terminal phase because they're only accurate if a ship can't move more than half its own length in the missile's time of flight, but if/when we get a more solid guidance algorithm, there won't be any need for a terminal phase under most conditions, I think. I should really send the dev the paper I cited up above. He'd probably enjoy the read. XD
|
|
|
Post by Dhan on Oct 6, 2016 7:49:21 GMT
I haven't tested thoroughly yet, but I have a feeling that too much dV on a missile is a detriment in general combat use. I have 10 km/s missile with ~36g acceleration that seems to be suffering from self induced accuracy issues that stem from the fact that it's going 6-8 km/s by the time it gets close to the target, making final corrections futile, even with 36gs of acceleration. The 10 km/s is fantastic when launched from orbit and the 6-8 km/s terminal phase can be mitigated by a manually induced coasting phase (but that's not too viable in actual combat). I'm going to lower the dV on these missiles and see if their accuracy improves in fire and forget applications. In my mind, dV is always good. I'd rather have my missiles powered than unpowered. The problem is that in the absence of a solid guidance algorithm, most of the dV is getting expended along the wrong vector. The missile aims for where the target is instead of where the target will be, which means it spends most of its flight time digging itself into a hole it can't get out of. If our missiles were tracking ahead according to the target's observed velocity, acceleration, and change in acceleration, they'd spend most of their time boosting towards an intercept, and their dV budget and large acceleration means they could respond both early and quickly to any changes in the target's behavior, and constantly tweak their trajectory early, before they've spent a lot of time and fuel on an error that requires even more time and fuel to fix. Which is the problem we're seeing right now. I'm not sure what we can do in missile design to make the best of what we currently have, though. Right now we need to have our missiles wait for a terminal phase because they're only accurate if a ship can't move more than half its own length in the missile's time of flight, but if/when we get a more solid guidance algorithm, there won't be any need for a terminal phase under most conditions, I think. I should really send the dev the paper I cited up above. He'd probably enjoy the read. XD Yeah the 10k dV in my missile is good because it allows for versatility and ridiculous orbital intercepts. But if I should only burn 3k dV (for example) before the terminal phase for better accuracy, then having 7k dV left over seems very wasteful and unoptimized for close range applications. When I get a chance I'm going to try 3k or less dV missiles with very high gs (probably like 50+) and see if that helps their accuracy. Ideally I think you'd just have them homing at the start and then cut it off and have them coast at a certain velocity only to reenable homing at/near the terminal phase. But that seems to me like more time than I could spare to give commands to missiles when my capital ship is threatened.
|
|
|
Post by elouda on Oct 6, 2016 8:12:24 GMT
Dhan,
Logically that would be more effective, but because missiles go 'dud' the instant their dV hits zero, what will happen is when you re-enable them closer to the target, they will but the dV left in a matter of seconds, on an accelerating (rather than correcting for impact) trajectory, and then go dud and not go off at all in most cases.
|
|
|
Post by beta on Oct 6, 2016 8:25:11 GMT
I find a correct mix between dV and thrust is required. Essentially, you want your missile to have it's "terminal guidance" amount of dV left just as it enters it's "terminal guidance" phase, so it has been constantly correcting it's vector the entire flight. If the thrust is too high, it will burn through it's dV too quickly and the target can slowly get out of the way and the guidance algorithm is too stupid to correct until the "terminal phase", where it is usually too late.
|
|
|
Post by ross128 on Oct 6, 2016 14:41:07 GMT
Yeah, I've generally got two approaches with missiles.
1: High acceleration, low dV missiles that only use "cautious homing". The fuel reserve isn't actually for terminal guidance, it's just there to keep the missile from self destructing. This strategy is used for small missiles, because a very low mass means they can't bring a lot of fuel, but sure makes accelerating easy. 50g+ of acceleration makes for pretty good accuracy.
2: High dV, low (well, less than 20g "low") acceleration missiles that only use "full homing". These are large, long-range missiles that are expected to reach their target with plenty of fuel to spare. These are basically inter-planetary ballistic missiles, 100km is "terminal guidance" for them.
|
|
|
Post by qswitched on Oct 6, 2016 19:12:18 GMT
That said, my primary observation is that missiles currently appear to either use naive pursuit or simple proportional navigation, which are not the most robust algorithms out there. There are better alternatives. This video shows great examples of a variety of navigation algorithms and how incredibly important a good algorithm is. More information for the technically minded can be gleaned from this (math-heavy) paper. And here's an example of a higher-order algorithm being used in From the Depths against a very (notoriously) erratic target, with the source code included in the video description. I have actually implemented several better missile guidance algorithms than the one you see in game. None of them are enabled in game for one reason, and that is performance. 100+ missiles running a root finding algorithm for an intercept course will bring the game to a crawl. The current algorithm is naive, does not use numerical integration at all, and it still is somewhat of a performance problem (on my machine) with 100+ missiles. I'm still looking into better algorithms that don't kill performance (such as possibly trying to treat a fleet of missiles as "one big missile" to save on calculation time), and I hope to have something better by the next major patch.
|
|
|
Post by nivik on Oct 6, 2016 19:50:09 GMT
That said, my primary observation is that missiles currently appear to either use naive pursuit or simple proportional navigation, which are not the most robust algorithms out there. There are better alternatives. This video shows great examples of a variety of navigation algorithms and how incredibly important a good algorithm is. More information for the technically minded can be gleaned from this (math-heavy) paper. And here's an example of a higher-order algorithm being used in From the Depths against a very (notoriously) erratic target, with the source code included in the video description. I have actually implemented several better missile guidance algorithms than the one you see in game. None of them are enabled in game for one reason, and that is performance. 100+ missiles running a root finding algorithm for an intercept course will bring the game to a crawl. The current algorithm is naive, does not use numerical integration at all, and it still is somewhat of a performance problem (on my machine) with 100+ missiles. I'm still looking into better algorithms that don't kill performance (such as possibly trying to treat a fleet of missiles as "one big missile" to save on calculation time), and I hope to have something better by the next major patch. Hey, thanks for weighing in on this! You definitely have a point about performance. Hmm. Maybe a sort of leader/follower arrangement? Missiles within N distance (or time?) of a "leader" are slaved to it, and only attempt to maintain their assigned position in the formation, while the leader takes care of guidance. Loss of the leader could either have an in-game effect of disrupting the formation's guidance, or leadership could automatically be taken up by the missile in that formation that's closest to the target. There'd have to be some consideration for how missiles tend to be "trickled" out when fired in the middle of a tactical engagement, though. You could have a "leader" set waypoints along its path of travel (maybe with waypoint position being target-relative), and for a certain timeframe afterwards, any follow-up shots would follow those waypoints. By making waypoints target-relative, that could allow some basic compensation for changing conditions in the short term. Probably not effective for countermissiles or anti-drone operations, but I think it may work for large and slow targets where the "solution" is less likely to degrade significantly in a given timeframe. It's an interesting control problem. I'll keep thinking about it. Fusing optimal guidance with swarming behavior seems like a good off-the-cuff solution, but I like the idea of path planning where the path can be heuristically updated to compensate for changing conditions...particularly considering that follow up shots either hitting or missing (how far, and by how much) are additional data points that could be leveraged to get better path updates.
|
|
|
Post by jakjakman on Oct 6, 2016 20:38:26 GMT
I have actually implemented several better missile guidance algorithms than the one you see in game. None of them are enabled in game for one reason, and that is performance. 100+ missiles running a root finding algorithm for an intercept course will bring the game to a crawl. The current algorithm is naive, does not use numerical integration at all, and it still is somewhat of a performance problem (on my machine) with 100+ missiles. I'm still looking into better algorithms that don't kill performance (such as possibly trying to treat a fleet of missiles as "one big missile" to save on calculation time), and I hope to have something better by the next major patch.
In our missile design page there could be a disclaimer checkbox to enable a better guidance algorithm: "I promise not to launch 100+ flocks of this missile"
|
|
|
Post by Crazy Tom on Oct 7, 2016 0:44:30 GMT
I have actually implemented several better missile guidance algorithms than the one you see in game. None of them are enabled in game for one reason, and that is performance. 100+ missiles running a root finding algorithm for an intercept course will bring the game to a crawl. The current algorithm is naive, does not use numerical integration at all, and it still is somewhat of a performance problem (on my machine) with 100+ missiles. I'm still looking into better algorithms that don't kill performance (such as possibly trying to treat a fleet of missiles as "one big missile" to save on calculation time), and I hope to have something better by the next major patch.
In our missile design page there could be a disclaimer checkbox to enable a better guidance algorithm: "I promise not to launch 100+ flocks of this missile"
Could this work qswitched? I mean, with silica aerogel and high enough closing velocities, even a dozen missiles could gut a ship with a lucky hit. If it's already in game and can be easily tuned on, it could let us explore some small scale missile tactics in preparation for the debut of the final algorithm.
|
|
|
Post by morrigi on Oct 7, 2016 1:38:51 GMT
Yeah, it would be really nice to have options.
|
|
|
Post by the_Demongod on Oct 7, 2016 6:05:30 GMT
I guess my perspective is skewed because I play a lot of realistic flight sims and recreate ICBM flight profiles in KSP, but in my mind missiles fly primarily ballistic trajectories and have an initial powered phase followed by a long coast period. Even in the atmosphere but especially in space, missiles can coast and continue to be highly effective long, long after they've burnt out. Air to air missiles in real life like the AIM-120D only burn for 3-7 seconds, yet fly 90+ miles to kill targets. ICBMs are even more extreme examples of this, performing one long, aggressive burn at 45° to enter a high orbit with a vertical semi-major axis before proceeding to coast many minutes to apogee before deploying their submunitions which again fall for several minutes back to earth before reentering the atmosphere. We don't have the advantage of flight (and therefore unpowered steering) that we get with an atmosphere, but we do avoid the disadvantage of drag which also comes with atmospheres.
|
|
|
Post by cuddlefish on Oct 7, 2016 9:44:39 GMT
The way I'd handle this (as a layman) with an eye to reducing the number of pathfinds follows - may be stuff you've tried before, may be useless, but felt like typing it out
It seems like the goal with a Flak missile barrage is to get a certain density of shot across the entire uncertainty in your target's position post detonation. How many missiles are used to attain this would purely be a factor of how many are needed, and how redundant you want to be against point defense. The most efficient way to allocate those missiles is going to be in a formation - allowing each missile to "cover" a specific section of the enemy possibility space with a payload, without inefficient doubling causing gaps, as they might easily do if they're all path-finding independently. Nukes can be used in a similar way - spacing the missiles to ensure something gets within lethal distance no matter how they maneuver. Nukes also have another 'hidden' plus of formation coordination - if they sync their detonation time, they will have the best odds of achieving multiple simultaneous bursts rather than the first burst killing the bunch. So, where does this lead my brain?
It seems like the pathfinding should be structured around 'Walls' of missiles. Each Wall pathfinds as a group (I think we can assume sensor fusion of the various missiles, given we don't actually have sensor modules in game), trying to place the wall center such that the entire uncertainty space (based on the known G potential of the target's drive - I assume that good recon would be able to amass a database the gunners can use when arming the warheads, given lack of space stealth and ability to measure the exhaust plumes of ships) is covered by killzone of the warheads (either within Proxy distance of a nuke, or covered by a certain density of fragmentation at the desired closing speed), with the spacing of the 'Wall' being malleable to cover the entire projected space + some safety margin as thickly as possible with the number of missiles allotted. This means that the individual behavior of missiles should be able to be pared entirely down to station-keeping within the shifting formation vector, and any formation adjustments that need to be done as missiles are lost to PD.
As a novice rather than someone who knows their shit - it seems like that stationkeeping would be less burdensome than target tracking? If that's the case, letting you replace the N target finds for a salvo with 1 target find and N stationkeeps would be a serious profit, if it can be done. Thoughts from the people who actually know what they are talking about?
|
|