Wireless Propagation |
Wireless propagation is performed in the same manner as in the Communications Library. See the Wireless Propagation topic for an overview of modeling wireless propagation using the WirelessLinkExtension and SignalPropagationModel types.
Note |
---|
The functionality described in this topic requires a license for the Radar Library and the Communications Library. |
The Radar Library requires at least three Platform instances for evaluation - transmitter, target, and receiver. Therefore, modeling bistatic or monostatic radar geometries is achieved by how the platform's location point is configured. In order to model a bistatic geometry, the location point configured on the transmitter platform will provide a different location than the location point configured on the receiver platform. To model a monostatic radar geometry, the transmitter location point and receiver location point must provide the same location or can actually be the same instance of the Point type.
The following figure and code example shows how a monostatic radar is modeled.
CentralBody earth = CentralBodiesFacet.getFromContext().getEarth(); JulianDate epoch = new GregorianDate(2016, 2, 22, 17, 0, 0.0).toJulianDate(); //Construct the target point propagator Cartesian initialPos = new Cartesian(-11029953.509755684, -40698074.387359113, 15422.511640956744); Cartesian initialVel = new Cartesian(2967.5264945088943, -804.2579908902353, -4.6857787559832); Motion1<Cartesian> initialState = new Motion1<>(initialPos, initialVel); TwoBodyPropagator targetPropagator = new TwoBodyPropagator(epoch, earth.getInertialFrame(), initialState, WorldGeodeticSystem1984.GravitationalParameter); //Construct the target platform Platform radarTargetPlatform = new Platform(); radarTargetPlatform.setLocationPoint(targetPropagator.createPoint()); radarTargetPlatform.setOrientationAxes(new AxesVehicleVelocityLocalHorizontal(earth.getInertialFrame(), radarTargetPlatform.getLocationPoint())); //Configure the radar target properties configureRadarTarget(radarTargetPlatform); //Construct the transmitter platform Platform radarTransmitterPlatform = new Platform(); //Configure the radar transmitter properties configureRadarTransmitter(radarTransmitterPlatform); //Construct the monostatic location point and orientation axes Point monostaticLocationPoint = new PointCartographic(earth, new Cartographic(-1.31941, 0.698806, 0.0)); //Using the AxesAlignedConstrained axes type will target the radar antenna boresight at the radar target VectorFixed earthZAxis = new VectorFixed(earth.getInertialFrame().getAxes(), Cartesian.toCartesian(UnitCartesian.getUnitZ())); Axes monostaticOrientation = new AxesAlignedConstrained(new VectorTrueDisplacement(monostaticLocationPoint, radarTargetPlatform.getLocationPoint()), AxisIndicator.THIRD, earthZAxis, AxisIndicator.FIRST); radarTransmitterPlatform.setLocationPoint(monostaticLocationPoint); radarTransmitterPlatform.setOrientationAxes(monostaticOrientation); //Construct the receiver platform Platform radarReceiverPlatform = new Platform(); //Configure the radar receiver properties configureRadarReceiver(radarReceiverPlatform); radarReceiverPlatform.setLocationPoint(monostaticLocationPoint); radarReceiverPlatform.setOrientationAxes(monostaticOrientation); //Construct the forward link from the transmitter to the target LinkSpeedOfLight forwardLink = new LinkSpeedOfLight(radarTransmitterPlatform, radarTargetPlatform, earth.getInertialFrame()); forwardLink.getExtensions().add(new WirelessLinkExtension()); //Construct the return link from the target to the receiver LinkSpeedOfLight returnLink = new LinkSpeedOfLight(radarTargetPlatform, radarReceiverPlatform, earth.getInertialFrame()); returnLink.getExtensions().add(new WirelessLinkExtension()); Platform interferencePlatform = configureInterferencePlatform(radarReceiverPlatform); //Construct the interference link NOTE: Interference links are optional. If the analysis is not concerned with interference at the radar //receiver, they can be omitted from the propagation graph. LinkSpeedOfLight interferenceLink = new LinkSpeedOfLight(interferencePlatform, radarReceiverPlatform, earth.getInertialFrame()); interferenceLink.getExtensions().add(new WirelessLinkExtension()); //Add the links to the signal propagation graph SignalPropagationGraph propagationGraph = new SignalPropagationGraph(); propagationGraph.addLink(forwardLink); propagationGraph.addLink(returnLink); propagationGraph.addLink(interferenceLink);
The following figure and code example shows how a bistatic radar is modeled.
CentralBody earth = CentralBodiesFacet.getFromContext().getEarth(); JulianDate epoch = new GregorianDate(2016, 2, 22, 17, 0, 0.0).toJulianDate(); //Construct the target point propagator Cartesian initialPos = new Cartesian(-11029953.509755684, -40698074.387359113, 15422.511640956744); Cartesian initialVel = new Cartesian(2967.5264945088943, -804.2579908902353, -4.6857787559832); Motion1<Cartesian> initialState = new Motion1<>(initialPos, initialVel); TwoBodyPropagator targetPropagator = new TwoBodyPropagator(epoch, earth.getInertialFrame(), initialState, WorldGeodeticSystem1984.GravitationalParameter); //Construct the target platform Platform radarTargetPlatform = new Platform(); radarTargetPlatform.setLocationPoint(targetPropagator.createPoint()); radarTargetPlatform.setOrientationAxes(new AxesVehicleVelocityLocalHorizontal(earth.getInertialFrame(), radarTargetPlatform.getLocationPoint())); //Configure the radar target properties configureRadarTarget(radarTargetPlatform); //Construct the transmitter platform Platform radarTransmitterPlatform = new Platform(); //Configure the radar transmitter properties configureRadarTransmitter(radarTransmitterPlatform); //Construct the bistatic transmitter location point and orientation axes Point bistaticTransmitterLocationPoint = new PointCartographic(earth, new Cartographic(-1.31941, 0.698806, 0.0)); //Using the AxesAlignedConstrained axes type will target the radar transmitter antenna boresight at the radar target VectorFixed earthZAxis = new VectorFixed(earth.getInertialFrame().getAxes(), Cartesian.toCartesian(UnitCartesian.getUnitZ())); Axes bistaticTransmitterOrientation = new AxesAlignedConstrained(new VectorTrueDisplacement(bistaticTransmitterLocationPoint, radarTargetPlatform.getLocationPoint()), AxisIndicator.THIRD, earthZAxis, AxisIndicator.FIRST); radarTransmitterPlatform.setLocationPoint(bistaticTransmitterLocationPoint); radarTransmitterPlatform.setOrientationAxes(bistaticTransmitterOrientation); //Construct the receiver platform Platform radarReceiverPlatform = new Platform(); //Configure the radar receiver properties configureRadarReceiver(radarReceiverPlatform); //Construct the bistatic transmitter location point and orientation axes Point bistaticReceiverLocationPoint = new PointCartographic(earth, new Cartographic(-1.33686, 0.698806, 0.0)); //Using the AxesAlignedConstrained axes type will target the radar receiver antenna boresight at the radar target Axes bistaticReceiverOrientation = new AxesAlignedConstrained(new VectorTrueDisplacement(bistaticReceiverLocationPoint, radarTargetPlatform.getLocationPoint()), AxisIndicator.THIRD, earthZAxis, AxisIndicator.FIRST); radarReceiverPlatform.setLocationPoint(bistaticReceiverLocationPoint); radarReceiverPlatform.setOrientationAxes(bistaticReceiverOrientation); //Construct the forward link from the transmitter to the target LinkSpeedOfLight forwardLink = new LinkSpeedOfLight(radarTransmitterPlatform, radarTargetPlatform, earth.getInertialFrame()); forwardLink.getExtensions().add(new WirelessLinkExtension()); //Construct the return link from the target to the receiver LinkSpeedOfLight returnLink = new LinkSpeedOfLight(radarTargetPlatform, radarReceiverPlatform, earth.getInertialFrame()); returnLink.getExtensions().add(new WirelessLinkExtension()); Platform interferencePlatform = configureInterferencePlatform(radarReceiverPlatform); //Construct the interference link NOTE: Interference links are optional. If the analysis is not concerned with interference at the radar //receiver, they can be omitted from the propagation graph. LinkSpeedOfLight interferenceLink = new LinkSpeedOfLight(interferencePlatform, radarReceiverPlatform, earth.getInertialFrame()); interferenceLink.getExtensions().add(new WirelessLinkExtension()); //Add the links to the signal propagation graph SignalPropagationGraph propagationGraph = new SignalPropagationGraph(); propagationGraph.addLink(forwardLink); propagationGraph.addLink(returnLink); propagationGraph.addLink(interferenceLink);