Speed Posted November 28, 2012 Posted November 28, 2012 (edited) Hey, I'm implementing a simple radar detection model through the scripting engine. Here's what I'm using right now (in pseudocode): CONST doppler_notch = 140 km/h CONST detect_time = 8 seconds FOR EACH <target> DO IF THESE CONDITIONS <target inside max range of radar> AND <target line of sight to radar> AND ( <target is against a sky background> OR ( <target is against terrain background> AND <radar-to-target radial velocity magnitude is greater than doppler_notch> ) ) MAINTAINED FOR detect_time SECONDS THEN <target is detected> END END Basically, in English, if the target is within the detection range of the radar, and the target is line of sight to the radar, and either the target is against a sky background or the target is against a terrain background and is outside the Doppler notch, and these conditions persist for like 8 seconds, then the target is detected. Now, I don't know a whole lot about radar, and I'm curious if there might be a better simplified model that is still fairly simple. This is supposed to be for early warning radars/AWACs. Edited November 28, 2012 by Speed Intelligent discourse can only begin with the honest admission of your own fallibility. Member of the Virtual Tactical Air Group: http://vtacticalairgroup.com/ Lua scripts and mods: MIssion Scripting Tools (Mist): http://forums.eagle.ru/showthread.php?t=98616 Slmod version 7.0 for DCS: World: http://forums.eagle.ru/showthread.php?t=80979 Now includes remote server administration tools for kicking, banning, loading missions, etc.
GGTharos Posted November 29, 2012 Posted November 29, 2012 The model you are using is pretty simple already while maintaining the notch etc. So for a simple model you're doing pretty good. [sIGPIC][/sIGPIC] Reminder: SAM = Speed Bump :D I used to play flight sims like you, but then I took a slammer to the knee - Yoda
Bushmanni Posted November 29, 2012 Posted November 29, 2012 Are you asking for a more simpler model that models the effects of your current model or more advanced one that's still not much more complex than your current one? I think it only makes sense you asked for the latter but the wording could make it sound like the former. I don't have much knowledge of radar either other than your model covers all the basic phenomena with most simplicity. You could drop the "ground as background"-check but I assume you included it only for clarification anyway. I think the next step would be to model RCS but if that's feasible with scripting engine is another matter. DCS Finland: Suomalainen DCS yhteisö -- Finnish DCS community -------------------------------------------------- SF Squadron
Kuky Posted November 30, 2012 Posted November 30, 2012 I think you should add the RCS of the aircraft into account... if you know the power of radar and aircraft RCS you could emulate power of the radar deflection signal that comes back... basically not enough signal reflection and aircraft should not be detected even if it is not in notch No longer active in DCS...
sobek Posted November 30, 2012 Posted November 30, 2012 I think you should add the RCS of the aircraft into account... if you know the power of radar and aircraft RCS you could emulate power of the radar deflection signal that comes back... basically not enough signal reflection and aircraft should not be detected even if it is not in notch That's where it gets nasty. Good, fast, cheap. Choose any two. Come let's eat grandpa! Use punctuation, save lives!
Kuky Posted November 30, 2012 Posted November 30, 2012 (edited) Maybe not too complicated... if you know actual power the radar transmits, and you know the shape (in degrees) of the scan cone, you can easily calculate the percentage of that energy that will hit the surface area if the target aircraft. You need front, side and top RCS profile... any angle in between can be calculated using trigonometry to get RCS value of any angle. You can then calculate the area this aircraft will "occupy" in the radar scan cone and how much energy will hit it, then just estimate how much of the radar energy is enough to trigger a contact. Arent lot of radar specifications known, as in, don't manufacturers state max target detection based on RCS? hm.. but then again how could you find out radar energy strength? Edited November 30, 2012 by Kuky No longer active in DCS...
sobek Posted November 30, 2012 Posted November 30, 2012 (edited) You need front, side and top RCS profile... any angle in between can be calculated using trigonometry to get RCS value of any angle. Err, no, that would give you gross errors in some angles. You would need to solve reflection over a tensor field on the whole surface of the object, because reflection off of every infinitesimal surface area has an angle and frequency dependency. It might be better than not taking it into regard, but it is still far from a good approximation of RL. Arent lot of radar specifications known, as in, don't manufacturers state max target detection based on RCS? hm.. but then again how could you find out radar energy strength? You can find some blah about it but they tell you preciouss little about under what exact circumstances. And of course there is some proneness for exaggeration. :) Edited November 30, 2012 by sobek Good, fast, cheap. Choose any two. Come let's eat grandpa! Use punctuation, save lives!
GGTharos Posted November 30, 2012 Posted November 30, 2012 No need for that much complication Kuky ... it's better if he avoids the radar equation. All aircraft in DCS have the same RCS anyhow (Well, same for all fighters (4RCS), same for all large aircraft (I forget the value), different for really small/stealth aircraft). There is no difference based on aspect. For what Speed needs, doing more than what he's doing is far too complicated IMHO. It's easy to just find the RCS of the target in game and set a range according to the RCS and radiated power without doing too many mathematical gymnastics. Maybe not too complicated... if you know actual power the radar transmits, and you know the shape (in degrees) of the scan cone, you can easily calculate the percentage of that energy that will hit the surface area if the target aircraft. You need front, side and top RCS profile... any angle in between can be calculated using trigonometry to get RCS value of any angle. You can then calculate the area this aircraft will "occupy" in the radar scan cone and how much energy will hit it, then just estimate how much of the radar energy is enough to trigger a contact. Arent lot of radar specifications known, as in, don't manufacturers state max target detection based on RCS? hm.. but then again how could you find out radar energy strength? [sIGPIC][/sIGPIC] Reminder: SAM = Speed Bump :D I used to play flight sims like you, but then I took a slammer to the knee - Yoda
Bushmanni Posted November 30, 2012 Posted November 30, 2012 One thing that I forgot that is simple to do is minimum altitude. I don't have enough knowledge of how the targets altitude above ground affects it's visibility in radar but DCS simulates this with some radar specific minimum altitude under which airborne objects can't be seen. Someone who knows better could shed some light on this. DCS Finland: Suomalainen DCS yhteisö -- Finnish DCS community -------------------------------------------------- SF Squadron
Kuky Posted November 30, 2012 Posted November 30, 2012 (edited) I don't think formulas would be too complicated, for example: RCS value to be derived at any times should be sum of RCS value from front aspect - lets call it RCSf - lets call its axis X axis RCS value from side aspect - lets call it RCSs - lets call its axis Y axis RCS value from top aspect - lets call it RCSt - lets call its axis Z axis Max values for each 3 is when aspect of the target is at 0° deviation from the particular aircraft axis RCStotal = cos(X)*RCSf + cos(Y)*RCSs + cos(Z)*RCSt cos of an angle is max value of 1 at 0° and 0 at 90° meaning at any aspect where you are looking at aircraft directly from front/side or top, your RCS value will match that value (which could be estimate) and as you transition between different aspect it calculates for every angle respective value for each axis. and you will get good approximation of how much surface area is exposed to the radar radiation and get signal strength. Edited November 30, 2012 by Kuky No longer active in DCS...
Святой Posted November 30, 2012 Posted November 30, 2012 Radar simple model. No jamming, no clutter. local radar = { position = Vec3, detectionDistancePerRCS = number, } local target = { position = Vec3, RCS = number } local land = { boolean checkLOS = function() end } function detectTarget(radar, target, land) if land.checkLOS(radar.position, target.position) then local dir = vec3Minus(target.position, radar.position) local distance = vec3Length(dir) return distance < target.detectionDistancePerRCS * math.pow(target.RCS, 1 / 4) else return false end end Very simple, but don't take into account ground clutter.
Weta43 Posted November 30, 2012 Posted November 30, 2012 (edited) Sounds like a great initiative Speed. :) Some (even rudimentary) implementation of RCS seems a necessary feature. More necessary for realism than notching against ground clutter I think. Having a Tu-95 and a F-117 both detected by EWR at maximum range is going to more of an obvious immersion killer than that the radar holds its lock while the aircraft is beaming and against ground clutter at closer range. If the're both "errors" think about the % of time that each will occur, and the impact of each. If it's an EWR you're simulating, every bogey will enter from outside of range and transition through the detection range to a greater or lesser extent. Lack of RCS modelling will be apparent the first time a bomber and a fighter come into range from different directions at the same time. Contrast that with the % of time that any aircraft can be both performing its given task, and succesfully notching EWR / AWAC, and consider that even if they do perform the manouvre correctly, it should only matter if they happen to be being scanned at the time (if they beam perfectly for 3 seconds while the AWAC is scanning the other side of the map, the AWAC will never know). Dynamic RCS would be nice - simple is probably enough - AWAC / EWR detect in the same plane as the target plane for the vast majority of the time, so Kuky's idea with front / side / read figures would be fine. You could have your own table (if you want a world off complaints from the community :-), alternatively, there must be RCS attributes for each aircraft in DCS.World. GG said all fighter size aircraft have a '4', but F-117 are harder to detect and lock than F-15, so there must be some different numbers in there (which could perhaps be updated ?). You could use those, Kuky's idea and a standard assumption about how aspect impacts RCS (so 0.75 * RCS for front, 1 * RCS for side, 1.5 * RCS for rear). On a slightly different line - what are you going to do about scan times ? Calculate globally continuously, update at an interval, calculate globally at intervals, or calculate progressively ? Edited November 30, 2012 by Weta43 Cheers.
lunaticfringe Posted November 30, 2012 Posted November 30, 2012 GG said all fighter size aircraft have a '4', but F-117 are harder to detect and lock than F-15, so there must be some different numbers in there (which could perhaps be updated ?). Helps if you read what he wrote: All aircraft in DCS have the same RCS anyhow (Well, same for all fighters (4RCS), same for all large aircraft (I forget the value), different for really small/stealth aircraft). The values for stealth already exist. They don't need to be played with. And unless you're sitting behind the computing power to generate the return falloff from the angles of a Nighthawk, "guesstimations" are useless. If Speed doesn't wish to cope with power falloff over range, the illusion of RCS having a realistic effect is just that- an illusion. Seriously, he said *simple*. Simple doesn't involve RCS. Ancillary functions with higher (perceived) realism factors than the radars currently available to player aircraft; yessir, that's *exactly* what DCS needs! Comprehend the forest from trees, gents. Feature creep is clearly not useful for what the man wants to do.
GGTharos Posted November 30, 2012 Posted November 30, 2012 ^^^^ What he said. Come on guys, Speed said simpler, not more complicated. There is no need for super realism in any way shape or form for what he is doing. You're actually asking for more than what the game does in some respects. It's just not necessary for his purpose. [sIGPIC][/sIGPIC] Reminder: SAM = Speed Bump :D I used to play flight sims like you, but then I took a slammer to the knee - Yoda
Святой Posted November 30, 2012 Posted November 30, 2012 (edited) More complex model for airborne doppler-radar and ground clutter. Here we have 2 bands of doppler freqencies (radial velocities) where target is not visible: around main lobe spot and altimeter spot. We don't care how strong reflections from these spots in comparison to reflection from the target. local radar = { position = Vec3, velocity = Vec3, detectionDistancePerRCS = number, notchBand = number, //velocity altBand = number, //velocity } local target = { position = Vec3, velocity = Vec3, RCS = number } local land = { boolean checkLOS = function() end } function detectTarget(radar, target, land) if not land.checkLOS(radar.position, target.position) then return false; end local dir = vec3Subtract(target.position, radar.position) //blind band of radial velocities within altimeter spot local targetRadialVelocity = vecDot(dir, vecMinus(target.velocity, radar.velocity)) / distance if math.abs(targetRadialVelocity) < radar.altBand then return false end //blind band of radial velocities within main lobe spot local distance = vec3Length(dir) local mainLobeSpotRadialVelocity = vec3Dot(dir, radar.velocity) / distance if math.abs(mainLobeSpotRadialVelocity - targetRadialVelocity) < radar.notchBand then return false end return distance < target.detectionDistancePerRCS * math.pow(target.RCS, 1 / 4) end radar.detectionDistancePerRCS parameter is different for different radar modes. This model is used for AI radars. Edited December 1, 2012 by Святой
GGTharos Posted November 30, 2012 Posted November 30, 2012 Nice, Saint :) [sIGPIC][/sIGPIC] Reminder: SAM = Speed Bump :D I used to play flight sims like you, but then I took a slammer to the knee - Yoda
Святой Posted November 30, 2012 Posted November 30, 2012 One thing that I forgot that is simple to do is minimum altitude. I don't have enough knowledge of how the targets altitude above ground affects it's visibility in radar but DCS simulates this with some radar specific minimum altitude under which airborne objects can't be seen. Someone who knows better could shed some light on this. Target altitude: - determines maximal distance of line-of-sight between the radar and the target - determines background: will main lobe touch the ground or not Radar altitude: - determines maximal distance of line-of-sight between the radar and the target - determines background: will main lobe touch the ground or not - determines strength of reflection from the ground both on main and side lobes
Speed Posted November 30, 2012 Author Posted November 30, 2012 (edited) Saint, two quick questions: This line: if math.abs(mainLobeSpotRadialVelocity - targetRadialVelocity) < radar.detectionDistancePerRCS then Shouldn't it be this? if math.abs(mainLobeSpotRadialVelocity - targetRadialVelocity) < notchBand then Also, what causes the main lobe spot blind band? It seems like it's a blind band caused by the Doppler shift of the movement of the radar but... doesn't the radar KNOW what direction its moving so it can automatically factor out its own movement towards the target? Anyway, the simple radar model I described at first is working well, but I'd always love to improve it more... I actually have another question though: How realistic is it for fighter jets to be able to "hide" themselves from enemy radar by flying very close to a civilian airliner? That makes for a much more fun and interesting initial phase to the mission, as long as it's not totally off-the-wall unrealistic :) Anyway, as far as RCS goes, I'd like to not worry about it. RCS is not necessary, because this script is (right now) only being used on one type of aircraft, and also, I'm adjusting a fixed detection range value to fit what the gameplay of the mission requires. Edited November 30, 2012 by Speed Intelligent discourse can only begin with the honest admission of your own fallibility. Member of the Virtual Tactical Air Group: http://vtacticalairgroup.com/ Lua scripts and mods: MIssion Scripting Tools (Mist): http://forums.eagle.ru/showthread.php?t=98616 Slmod version 7.0 for DCS: World: http://forums.eagle.ru/showthread.php?t=80979 Now includes remote server administration tools for kicking, banning, loading missions, etc.
Weta43 Posted November 30, 2012 Posted November 30, 2012 (edited) Helps if you read what he wrote: Very true The values for stealth already exist. They don't need to be played with... ...and unless you're sitting behind the computing power to generate the return falloff from the angles of a Nighthawk, "guesstimations" are useless the illusion of RCS having a realistic effect is just that- an illusion. Can I remind you - It's a simulation - It's all an illusion :) My view - in a sim, if you calculate it 'realistically' but because of the sim's limitations get poor results - it's a bad outcome. If you fake it completely, but get better results - that's a better outcome. The LO / FC SFM is a based on a particular approach that has little to do with working out how planes actually fly, but is 'good enough' for the general level of simulation. DCS flight models are more dependant on the calculation of the actual forces acting on the plane as it flies, but are still simplifications. One of the realities you're simulating in radar modelling is that different aircraft should have different RCS. If that's done by assigning each aircraft an estimated discrete value in a table, that's better than a single value for all, or a choice between only 3 values. Simillarly, RCS should change with aspect. If that's done by a simple modifier mapped relative to aspect (be that 4, 6, or 360^3 values), that's better than an unchaging value regardless of aspect. The first of these requires only the addition of a specific value for each aircraft, and no change to the sim's detection modelling, the second would be relatively low calculation cost. Comprehend the forest from trees, gents. Feature creep is clearly not useful for what the man wants to do. It's already got creep - which you could re-term feature prioritisation - otherwise he could just use a unit in moving zone trigger. The question is not "is he going to add more features" it's "which features warrant adding" because they add to immersion in the sim, and in my opinion, getting detection ranges and update speeds right would add more to immersion than getting notching against ground clutter working - but that's how I see it. You might see other aspects as more important, or be happy with a simpler approach. If I were doing it, I'd add RCS before notching, but I'm not, so I gave my opinion and my reasons. End of story. Speed has said : Anyway, as far as RCS goes, I'd like to not worry about it. RCS is not necessary, because this script is (right now) only being used on one type of aircraft It's his project, he knows what he wants to do with it, so that's entirely his call. I'm grateful on behalf of the commnity for his efforts wherever he arrives at. PS Come on guys, Speed said simpler, not more complicated. Actually, he said "simple", not simpler... I'm implementing a simple radar detection model through the scripting engine. After getting corrected fo not reading your post, if I knew what the smiley code for a wry smile was, I'd add it here :) You're actually asking for more than what the game does in some respects. It's just not necessary for his purpose. You're completely right... It's true that the suggestion (I don't think anyonne actually asked Speed to implement these ideas, only raised them as ideas to consider) is more than the sim does, but that was the point - both of his model, and of the suggestions - to add capabilities to the sim. If there were a radar model with these features (either scripted, or native to the sim), it's outputs could drive a more realistic AWAC or GCI app for MP, provide more realistic detection in sim for all sorts of scenarios both in MP & SP, I suspect you could use the scripting to drive visibility of aircraft in F-10 view (by changing the visible attribute of the unit on the fly ? ), etc. Edited November 30, 2012 by Weta43 Cheers.
Святой Posted November 30, 2012 Posted November 30, 2012 Saint, two quick questions: This line: if math.abs(mainLobeSpotRadialVelocity - targetRadialVelocity) < radar.detectionDistancePerRCS then Shouldn't it be this? if math.abs(mainLobeSpotRadialVelocity - targetRadialVelocity) < notchBand then Yes Also, what causes the main lobe spot blind band? It seems like it's a blind band caused by the Doppler shift of the movement of the radar but... doesn't the radar KNOW what direction its moving so it can automatically factor out its own movement towards the target? There are 2 variants: - Radar receives this information from nav system - Radar uses tracking rejection filter to find and track the band How realistic is it for fighter jets to be able to "hide" themselves from enemy radar by flying very close to a civilian airliner? That makes for a much more fun and interesting initial phase to the mission, as long as it's not totally off-the-wall unrealistic :) Nothing unrealistic. Radars have limited resolution capabilities.
Weta43 Posted November 30, 2012 Posted November 30, 2012 (edited) So on Russian fighter's radar screens, 3 'merged' fighters flying close together on an intercept with the player would get the same symbol on the HUD as a single bomber or simillar ? (the total RCS within the resolvable volume is the same for 3 fighters or a bomber, and the symbol is a function of RCS for the resolved return ?) I'll have to go and look at what it does now ... Edited November 30, 2012 by Weta43 Cheers.
GGTharos Posted December 1, 2012 Posted December 1, 2012 The radar cell has an angular and range resolution. If your targets are flying more or less inside the cell or edge to edge the radar might not be able to break them out. Some more modern radars operate special techniques to deal with this, some are better than others, but nothing is perfect. [sIGPIC][/sIGPIC] Reminder: SAM = Speed Bump :D I used to play flight sims like you, but then I took a slammer to the knee - Yoda
Eihort Posted December 1, 2012 Posted December 1, 2012 If you're trying to make them think you're an airliner, it would be easier to fly the same routes and have radio call signs and xponders as if you were an airliner. There's also some EW functions you can do to make youreself appear bigger than you are too. I have to agree that using the same RCS value for all aspects is poor fidelity. Whether or not this is good for what is trying to be achieved here is a completely different matter. Here's a RCS diagram, and you can see that there are some serious peaks and valleys in it. Of course the RCS of this plane is massive compared to modern fighters. However, something like this might be more in order for the sim. I really need to get one of those textbooks on Radar and sit down with it. The stuff interests me to no end.
LordWolf Posted February 11, 2013 Posted February 11, 2013 Can someone explain how prf goes into all of this. I presume the ewr radars don't work on that, but use the cw. Can someone explain plz
Eihort Posted May 16, 2013 Posted May 16, 2013 I'll raise this topic from the dead too, since I'm now a Journeyman Radar Tech. PRF is how often you're sending out a pulse. This is important, because given the speed of light, the farthest you can see is how far the wave travels out and back in the time of that pulse. If you get a return outside this time, the radar doesn't know if this is a close contact from the second pulse, or a distant contact from the first. EWRs work on exactly this. Typically they have long PRFs so they can see a loooong way, and the actual time of the pulse itself is a bit longer too to put out more energy. This results in a min. range because the pulse is still being transmitted when it's bounced off an object. There's a fancy switch that seperates the transmitter and reciever from the antenna, so you don't fry the reciever when transmitting. A CW radar needs two antennas because, well, it's transmitting a continuous wave. This is great for knowing the speed of something relative to you. They can modulate the wave, and also generate range data. If you absolutely have to know exactly where it is, or at a minimum, what direction it is, and what speed it's going, CW is the way to go. This is used in some SAM systems when they launch missiles to track targets and their own missile to guide it. This is also how RWRs know when they're being shot at. Another viable method is using really high PRF to get a lot of accurate returns with both range, speed, heading, azmiuth, and elevation data, but again, because the PRT is so small, range is limited. However short range SAMs don't go far enough to really care.
Recommended Posts