model
Tests.HorizonRefusals.FusionRateOverBudget
A correction rate equal to the fusion rate, which is what a delayed horizon actually produces
Base classes
Follow base classes for inherited declarations; this page lists explicit declarations only.
Modelica declarations and implementation
Show parameters, interfaces and source
Parameters, inputs, outputs, defaults and equations from the source file.
model FusionRateOverBudget
"A correction rate equal to the fusion rate, which is what a delayed
horizon actually produces"
// THE FINDING THIS MODEL PINS. On the live-edge path the predictor's fold
// budget was charged a nominal 5 Hz of accepted corrections, documented as
// covering a 5 Hz GPS fix rate. Behind the delayed-measurement queues that
// number is wrong in kind rather than in size: every measurement the
// horizon reaches is ripe, the filter accepts at most one per tick and can
// accept on every tick, and this vehicle's aiding set offers a candidate on
// essentially every one. The shifted-instant rate is therefore the FUSION
// rate, 100 Hz at the flight lattice.
//
// Against a measured fold budget of 7.3 Hz that is a fourteenfold overrun,
// and the block refuses it. Composed into Estimation.FusionHorizon
// HorizonEstimator the same refusal fires from the forwarded
// correctionRateBudget_hz, but no model holding that block can be built by
// any tool in this tree, so the refusal is demonstrated here on the
// predictor alone where it CAN be built and run.
//
// The budget is a property of the generated code and not of the
// architecture: the fold costs about 2500 times its algorithmic content
// because a record-valued call is materialized once per component. When
// that lands the budget rises by about the same factor and this
// configuration stops being refused; see
// Estimation.FusionHorizon.HorizonEstimator documentation.
extends Tests.HorizonRefusals.Driver(
fusionHorizon_s=0.05,
correctionRateBudget_hz=100.0);
end FusionRateOverBudget;