adding upside down scope stuff
This commit is contained in:
175
CLAUDE.md
175
CLAUDE.md
@@ -46,6 +46,13 @@ Use // for single line comments
|
|||||||
use /* */ for multiple block comments spanning multiple lines
|
use /* */ for multiple block comments spanning multiple lines
|
||||||
avoid using auto
|
avoid using auto
|
||||||
|
|
||||||
|
Please use a settings.h file for defines and variables that I can
|
||||||
|
change and do a simple re-compile instead of having the ai re write the
|
||||||
|
code. This is for debugging. For example, I may want to disable the p7 persistance
|
||||||
|
to troubleshoot the actual target processnig before it goes to persistance,
|
||||||
|
disable the land and terrain so that I can see the targets alone. Things like
|
||||||
|
that.
|
||||||
|
|
||||||
Summary of project:
|
Summary of project:
|
||||||
|
|
||||||
This is a museum exhibit displaying and providing some interaction
|
This is a museum exhibit displaying and providing some interaction
|
||||||
@@ -127,7 +134,40 @@ hardware; the same physical control can be used for multiple scopes.
|
|||||||
|
|
||||||
Note that the range cursor is different from the maximum range. Maximum range is the maximum
|
Note that the range cursor is different from the maximum range. Maximum range is the maximum
|
||||||
radar range setting and range cursor is the range portion of the ppi cursor.
|
radar range setting and range cursor is the range portion of the ppi cursor.
|
||||||
|
|
||||||
|
=========================================================================
|
||||||
|
RADAR EQUATION (for all radars; note that is different for chain home)
|
||||||
|
|
||||||
|
Lets start here by mentioning the radar equation that sets the perceived strength of any
|
||||||
|
radar echoes, no matter what kind of radar (a scope and ppi scopes)
|
||||||
|
|
||||||
|
Summary of radar equation:
|
||||||
|
|
||||||
|
The fundamental radar equation describes how much power returns to a radar system
|
||||||
|
after bouncing off a distant target.
|
||||||
|
|
||||||
|
Physically, it follows a "round-trip" journey
|
||||||
|
of energy: the radar transmits a signal that spreads out as a sphere (losing strength
|
||||||
|
by the square of the distance, $R^2$), hits a target that reflects a portion of that
|
||||||
|
energy (the Radar Cross Section, $\sigma$), and that reflection then spreads out
|
||||||
|
again as a second sphere on its way back (losing another factor of $R^2$).
|
||||||
|
|
||||||
|
Mathematically, this results in the received power being inversely proportional to the fourth
|
||||||
|
power of the distance ($1/R^4$), meaning that if a target moves twice as far away,
|
||||||
|
the returning signal becomes 16 times weaker. To calculate the final received power
|
||||||
|
($P_r$), you multiply the transmitted power ($P_t$) by the antenna's ability to
|
||||||
|
focus that energy (Gain, $G$) and its physical size (Aperture, $A$), then factor
|
||||||
|
in the target's reflectivity ($\sigma$) and the wavelength of the signal ($\lambda$),
|
||||||
|
all while dividing by the spreading losses $(4\pi)^3 R^4$.
|
||||||
|
$$P_r = \frac{P_t G^2 \lambda^2 \sigma}{(4\pi)^3 R^4}$$
|
||||||
|
|
||||||
|
|
||||||
|
Since we had four distinct radar types, and each one has it's own hardware loop gain
|
||||||
|
that does not change, we can set that as a constant in each radar's target handling shader set.
|
||||||
|
|
||||||
========================================================
|
========================================================
|
||||||
|
|
||||||
|
|
||||||
Individual scope informations
|
Individual scope informations
|
||||||
|
|
||||||
1. Introduction to project. Just text. No scopes. Only one control for entering
|
1. Introduction to project. Just text. No scopes. Only one control for entering
|
||||||
@@ -158,10 +198,57 @@ Individual scope informations
|
|||||||
is darker green at aboutu Hex #004400
|
is darker green at aboutu Hex #004400
|
||||||
|
|
||||||
PLease also note that there are no graticules on either the Chain Home a scope nor
|
PLease also note that there are no graticules on either the Chain Home a scope nor
|
||||||
the marine a a scope.
|
the marine a a scope. The only thing on the external plate is the base line (zero signal
|
||||||
|
which the operator can refer to that is going on (grass, calibration, and signals). It
|
||||||
|
is an important point of reference. That base line is illuminated on the sides with small
|
||||||
|
incandescent lamps. It is a different color than the display itself. The incandescent
|
||||||
|
color is that of the #47 pilot lamp hex #FFB347.
|
||||||
|
|
||||||
2-1 Chain Home A Scope
|
2-1 Chain Home A Scope
|
||||||
|
|
||||||
|
==========================================================
|
||||||
|
Downward PIP and mixing calibration pips with target pips and noise grass
|
||||||
|
|
||||||
|
Very important. The Chain Home A Scope is upside down. That is, the baseline
|
||||||
|
is at the top of the display and noise and distance pips and target blips will
|
||||||
|
go down.
|
||||||
|
|
||||||
|
This is done so that the operator can look at the top of the scope for the
|
||||||
|
base reference. The cone apearance of a target blip (ristime of a signal due
|
||||||
|
due to non perfect bursts of radio frequency pulses from the transmitters)
|
||||||
|
can be measured against the calibration pips.
|
||||||
|
|
||||||
|
Also note that the calibration pips, the noise floor, and the target pips
|
||||||
|
are mixed together before being sent to the deflection plates of the tube.
|
||||||
|
This is a hardware reality of any CRT A-scope: the deflection plates receive
|
||||||
|
a single voltage, so all sources must be combined into that one signal.
|
||||||
|
|
||||||
|
That means that the three sources are summed together before you see them
|
||||||
|
on the scope. Remember that zero signal is the reference line at the top.
|
||||||
|
|
||||||
|
Importantly, the calibration pips are generated by a crystal oscillator and
|
||||||
|
injected into the video chain AFTER the receiver gain stage. This means
|
||||||
|
turning the Sensitivity control up or down does NOT change the height of the
|
||||||
|
calibration pips — only the noise floor and target echoes are scaled by the
|
||||||
|
receiver gain. This is true for both Chain Home and the Marine A-scope.
|
||||||
|
|
||||||
|
For example, if one of the calibration pips is exactly the same distance as
|
||||||
|
a target blip, that would look like it is extending the target blip. This was
|
||||||
|
a known operational hazard; operators were trained to account for it.
|
||||||
|
|
||||||
|
For your reference, the work inside the shader may be something like:
|
||||||
|
|
||||||
|
/* Simulated Summing Amplifier Logic.
|
||||||
|
Cal pips are outside the sensitivity multiply because they are injected
|
||||||
|
after the receiver gain stage in the real hardware. */
|
||||||
|
float receiver_signal = (noise_floor + target_echoes) * sensitivity;
|
||||||
|
float total_deflection = receiver_signal + calibration_pips;
|
||||||
|
|
||||||
|
// Apply to your downward-hanging baseline
|
||||||
|
float final_y = baseline_y - total_deflection;
|
||||||
|
|
||||||
|
==========================================================================
|
||||||
|
|
||||||
Because the receiving antennas are very large (about 100 feet), the
|
Because the receiving antennas are very large (about 100 feet), the
|
||||||
operator cannot physically move them.
|
operator cannot physically move them.
|
||||||
|
|
||||||
@@ -193,12 +280,36 @@ Individual scope informations
|
|||||||
|
|
||||||
The range is 200 miles. That is the only range option for this scope.
|
The range is 200 miles. That is the only range option for this scope.
|
||||||
|
|
||||||
There is no graticule. Photos only show crystal oscillator generated 'pips' for
|
|
||||||
every 20 miles.
|
|
||||||
|
|
||||||
We do need to have those small pips every 20 miles.
|
RADAR EQUATION STUFF FOR CHAIN HOME
|
||||||
Note that the operator cannot change this. This is due to the limitations of
|
|
||||||
the technology for that era.
|
For Chain Home:
|
||||||
|
Transmitter Power : 500 KW
|
||||||
|
Wavelength 12 Meters
|
||||||
|
Antenna Gain 5 dB
|
||||||
|
Pulse Width 20 microseconds
|
||||||
|
Beam Width 150 degrees (floodlight
|
||||||
|
PRF 25 HZ
|
||||||
|
|
||||||
|
Airplane acts as a half wave dipole
|
||||||
|
|
||||||
|
Sine based resonance Multiplier in target handling
|
||||||
|
|
||||||
|
// Pseudocode for Shader/Logic
|
||||||
|
float resonance = (targetLength >= wavelength * 0.4 && targetLength <= wavelength * 0.6) ? 1.5 : 1.0;
|
||||||
|
float final_sigma = base_sigma * resonance;
|
||||||
|
|
||||||
|
The 20-Mile Markers: Chain Home used crystal-controlled oscillators to create
|
||||||
|
fixed reference "pips" every 20 miles. These should be rendered as thin,
|
||||||
|
vertical spikes that never move, regardless of target sensitivity.
|
||||||
|
|
||||||
|
The "Floodlight" Effect: Because the beam is 150° wide, the A-Scope will
|
||||||
|
show every aircraft in that massive sector simultaneously. The only way to
|
||||||
|
tell them apart was the range (distance from left) and the Radiogoniometer nulling.
|
||||||
|
|
||||||
|
The Waveform Shape: For CH, the pips should be slightly "noisier" than
|
||||||
|
marine radar. Use a random jitter function in your vertex shader to
|
||||||
|
simulate the atmospheric noise floor common at 25 MHz.
|
||||||
|
|
||||||
2-2 Marine A Scope
|
2-2 Marine A Scope
|
||||||
|
|
||||||
@@ -229,6 +340,19 @@ Individual scope informations
|
|||||||
A photograph for this display show no graticule at all. Only range pips formed by an oscillator.
|
A photograph for this display show no graticule at all. Only range pips formed by an oscillator.
|
||||||
Those oscillator pips are fixed. Range settings do not affect them.
|
Those oscillator pips are fixed. Range settings do not affect them.
|
||||||
|
|
||||||
|
Like Chain Home, the Marine A-scope sums noise, calibration pips, and target echoes into a
|
||||||
|
single signal before the deflection plates — this is a hardware reality of any CRT A-scope.
|
||||||
|
The calibration pips are injected after the receiver gain stage, so they remain at constant
|
||||||
|
height regardless of the Sensitivity control. The shader summing follows the same structure:
|
||||||
|
|
||||||
|
/* Simulated Summing Amplifier Logic — same pattern as Chain Home.
|
||||||
|
Cal pips outside sensitivity multiply because they bypass the receiver gain stage. */
|
||||||
|
float receiver_signal = (noise_floor + target_echoes) * sensitivity;
|
||||||
|
float total_deflection = receiver_signal + calibration_pips;
|
||||||
|
|
||||||
|
// Apply to upward-deflecting baseline (Marine scope is right-side up)
|
||||||
|
float final_y = baseline_y + total_deflection;
|
||||||
|
|
||||||
The maximum ranges for this scope are:
|
The maximum ranges for this scope are:
|
||||||
1. 1.5 miles; marker pips every 0.25 miles
|
1. 1.5 miles; marker pips every 0.25 miles
|
||||||
2. 3.0 miles; marker pips every 0.5 miles
|
2. 3.0 miles; marker pips every 0.5 miles
|
||||||
@@ -307,12 +431,15 @@ radar echoes, no matter what kind of radar (a scope and ppi scopes)
|
|||||||
Summary of radar equation:
|
Summary of radar equation:
|
||||||
|
|
||||||
The fundamental radar equation describes how much power returns to a radar system
|
The fundamental radar equation describes how much power returns to a radar system
|
||||||
after bouncing off a distant target. Physically, it follows a "round-trip" journey
|
after bouncing off a distant target.
|
||||||
|
|
||||||
|
Physically, it follows a "round-trip" journey
|
||||||
of energy: the radar transmits a signal that spreads out as a sphere (losing strength
|
of energy: the radar transmits a signal that spreads out as a sphere (losing strength
|
||||||
by the square of the distance, $R^2$), hits a target that reflects a portion of that
|
by the square of the distance, $R^2$), hits a target that reflects a portion of that
|
||||||
energy (the Radar Cross Section, $\sigma$), and that reflection then spreads out
|
energy (the Radar Cross Section, $\sigma$), and that reflection then spreads out
|
||||||
again as a second sphere on its way back (losing another factor of $R^2$). Mathematically,
|
again as a second sphere on its way back (losing another factor of $R^2$).
|
||||||
this results in the received power being inversely proportional to the fourth
|
|
||||||
|
Mathematically, this results in the received power being inversely proportional to the fourth
|
||||||
power of the distance ($1/R^4$), meaning that if a target moves twice as far away,
|
power of the distance ($1/R^4$), meaning that if a target moves twice as far away,
|
||||||
the returning signal becomes 16 times weaker. To calculate the final received power
|
the returning signal becomes 16 times weaker. To calculate the final received power
|
||||||
($P_r$), you multiply the transmitted power ($P_t$) by the antenna's ability to
|
($P_r$), you multiply the transmitted power ($P_t$) by the antenna's ability to
|
||||||
@@ -325,5 +452,33 @@ $$P_r = \frac{P_t G^2 \lambda^2 \sigma}{(4\pi)^3 R^4}$$
|
|||||||
Since we had four distinct radar types, and each one has it's own hardware loop gain
|
Since we had four distinct radar types, and each one has it's own hardware loop gain
|
||||||
that does not change, we can set that as a constant in each radar's target handling shader set.
|
that does not change, we can set that as a constant in each radar's target handling shader set.
|
||||||
|
|
||||||
|
RADAR EQUATION STUFF FOR CHAIN HOME
|
||||||
|
|
||||||
|
For Chain Home:
|
||||||
|
Transmitter Power : 500 KW
|
||||||
|
Wavelength 12 Meters
|
||||||
|
Antenna Gain 5 dB
|
||||||
|
Pulse Width 20 microseconds
|
||||||
|
Beam Width 150 degrees (floodlight
|
||||||
|
PRF 25 HZ
|
||||||
|
|
||||||
|
Airplane acts as a half wave dipole
|
||||||
|
|
||||||
|
Sine based resonance Multiplier in target handling
|
||||||
|
|
||||||
|
// Pseudocode for Shader/Logic
|
||||||
|
float resonance = (targetLength >= wavelength * 0.4 && targetLength <= wavelength * 0.6) ? 1.5 : 1.0;
|
||||||
|
float final_sigma = base_sigma * resonance;
|
||||||
|
|
||||||
|
The 20-Mile Markers: Chain Home used crystal-controlled oscillators to create
|
||||||
|
fixed reference "pips" every 20 miles. These should be rendered as thin,
|
||||||
|
vertical spikes that never move, regardless of target sensitivity.
|
||||||
|
|
||||||
|
The "Floodlight" Effect: Because the beam is 150° wide, the A-Scope will
|
||||||
|
show every aircraft in that massive sector simultaneously. The only way to
|
||||||
|
tell them apart was the range (distance from left) and the Radiogoniometer nulling.
|
||||||
|
|
||||||
|
The Waveform Shape: For CH, the pips should be slightly "noisier" than
|
||||||
|
marine radar. Use a random jitter function in your vertex shader to
|
||||||
|
simulate the atmospheric noise floor common at 25 MHz.
|
||||||
|
|
||||||
======================================
|
|
||||||
|
|||||||
Reference in New Issue
Block a user