|
| struct | Reading |
| | The altimeter reading held on the output ports between pings. More...
|
| |
| struct | Settings |
| | Everything the instrument is configured with. More...
|
| |
| struct | Species |
| | One species as the acoustic model sees it. More...
|
| |
|
| | SensorEchosounder (std::string simObjectName, ISimObjectCreator *creator) |
| |
| | SensorEchosounder (std::string simObjectName, const Settings &settings) |
| |
|
| ~SensorEchosounder () override |
| | Flushes and closes the echogram file, and releases the visualisation geometry.
|
| |
|
void | OdeFcn (const double dT, const double *const adX, double *const adXDot) const override |
| | Writes no derivatives: this SimObject declares no states.
|
| |
| void | AcceptedStep (const double dT, const double *const adX) override |
| |
| void | FinalSetup (const double dT, const double *const adX, ISimObjectCreator *const creator) override |
| |
|
const Reading & | HeldReading () const |
| | The reading currently held on the output ports.
|
| |
|
const Settings & | GetSettings () const |
| | The settings the instrument was built with.
|
| |
|
const std::vector< Species > & | GetSpecies () const |
| | The species entering the acoustic model, in file column order.
|
| |
|
int | PingsTaken () const |
| | The number of pings taken so far.
|
| |
|
const std::vector< double > & | Frequencies () const |
| | The operating frequencies, kHz.
|
| |
|
|
const double * | OutSeafloorDistance (const double dT, const double *const adX) |
| | The measured slant range to the seafloor, m.
|
| |
|
const double * | OutSeafloorDepth (const double dT, const double *const adX) |
| | The inferred depth of the seafloor, m.
|
| |
|
const double * | OutAltitude (const double dT, const double *const adX) |
| | The measured height above the seafloor, m.
|
| |
|
const double * | OutValid (const double dT, const double *const adX) |
| | One when the last ping found a bottom, zero otherwise.
|
| |
|
const double * | OutPingTime (const double dT, const double *const adX) |
| | The time of the ping the held reading came from, s.
|
| |
◆ SensorEchosounder() [1/2]
| SensorEchosounder::SensorEchosounder |
( |
std::string |
simObjectName, |
|
|
ISimObjectCreator * |
creator |
|
) |
| |
Constructs the sounder from the simulation input file.
- Parameters
-
| simObjectName | The name of this object in the simulation. |
| creator | The creator of this object. |
◆ SensorEchosounder() [2/2]
| SensorEchosounder::SensorEchosounder |
( |
std::string |
simObjectName, |
|
|
const Settings & |
settings |
|
) |
| |
Constructs the sounder with its settings given directly.
No ports are registered and no file is opened, so OdeFcn, AcceptedStep and FinalSetup all do nothing and the pure parts must be exercised directly. This constructor exists so that the geometry and the acoustic model can be unit tested without a host simulation, which matters because ISimObjectCreator has some thirty pure virtuals and FhSim exports no mock.
- Parameters
-
| simObjectName | The name of this object. |
| settings | The instrument settings. |
◆ AcceptedStep()
| void SensorEchosounder::AcceptedStep |
( |
const double |
dT, |
|
|
const double *const |
adX |
|
) |
| |
|
override |
Takes every ping that has fallen due since the previous accepted step.
- Parameters
-
| dT | The current simulation time, s. |
| adX | The state vector. |
◆ AltitudeOf()
| static double SensorEchosounder::AltitudeOf |
( |
double |
slantRange, |
|
|
const double |
beamDirection[3] |
|
) |
| |
|
static |
Projects a slant range onto the vertical.
- Parameters
-
| slantRange | The slant range along the beam, m. |
| beamDirection | The unit beam direction in NED. |
- Returns
- The vertical component of the slant range, m, always non-negative.
◆ BackscatterCrossSection()
| static double SensorEchosounder::BackscatterCrossSection |
( |
const Species & |
species, |
|
|
double |
frequencykHz |
|
) |
| |
|
static |
The backscattering cross section of one species at one frequency.
- Parameters
-
| species | The species and its acoustic properties. |
| frequencykHz | The frequency, kHz. |
- Returns
- The cross section, m^2.
◆ BinIndexOf()
| static int SensorEchosounder::BinIndexOf |
( |
double |
range, |
|
|
double |
binSize |
|
) |
| |
|
static |
The index of the range bin a distance falls in.
- Parameters
-
| range | The slant range, m. |
| binSize | The bin size, m. |
- Returns
- The bin index, which is zero for a non-positive range or bin size.
◆ FinalSetup()
| void SensorEchosounder::FinalSetup |
( |
const double |
dT, |
|
|
const double *const |
adX, |
|
|
ISimObjectCreator *const |
creator |
|
) |
| |
|
override |
Resolves the environment and the species fields, and opens the echogram file.
- Parameters
-
| dT | The initial simulation time, s. |
| adX | The state vector. |
| creator | The creator of this object. |
◆ NoiseFloorLinear()
| static double SensorEchosounder::NoiseFloorLinear |
( |
double |
noiseSvAt1mDb, |
|
|
double |
absorptionDbPerKm, |
|
|
double |
range |
|
) |
| |
|
static |
The modelled noise floor of one bin.
- Parameters
-
| noiseSvAt1mDb | The noise floor referred to one metre, dB. |
| absorptionDbPerKm | The absorption coefficient, dB/km. |
| range | The slant range of the bin centre, m. |
- Returns
- The noise floor as a linear volume backscattering coefficient, 1/m.
◆ PerturbRange()
| static double SensorEchosounder::PerturbRange |
( |
double |
trueRange, |
|
|
const Settings & |
settings, |
|
|
SensorNoise & |
noise |
|
) |
| |
|
static |
Applies the range bias and the two range noise terms.
- Parameters
-
| trueRange | The geometric slant range, m. |
| settings | The instrument settings. |
| noise | The random generator; a deterministic one leaves the range alone. |
- Returns
- The range the instrument reports, m.
◆ TargetStrengthDb()
| static double SensorEchosounder::TargetStrengthDb |
( |
const Species & |
species, |
|
|
double |
frequencykHz |
|
) |
| |
|
static |
The target strength of one species at one frequency.
- Parameters
-
| species | The species and its acoustic properties. |
| frequencykHz | The frequency, kHz. |
- Returns
- The target strength, dB.
The documentation for this class was generated from the following file: