-
Notifications
You must be signed in to change notification settings - Fork 13.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added pitot tube icing detection #23206
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a follow up I would be interested to see if we can simplify it by instead of looking at the absolute use only deltas (reducing pitch and increasing throttle should result in an increasing airspeed). Then the need to fine-tune the trim pitch and throttle would fall away, but we need to be careful around corer cases.
CI issues:
- flash overflow v5 and v6x
- looks like the ark_pi6x doesn't build FW and thus FW_PSP_OFF is unknown?
0bc5581
to
5d27fe2
Compare
Signed-off-by: Silvan Fuhrer <[email protected]>
- filters throttle, pitch and airspeed rate, and triggers if the airspeed rate is negative even though the vehicle is pitching down and giving high throttle. Check has to fail for duration defined by ASPD_FP_T_WINDOW to trigger an airspeed failure. Signed-off-by: Silvan Fuhrer <[email protected]>
Signed-off-by: RomanBapst <[email protected]>
…valid Signed-off-by: RomanBapst <[email protected]>
Signed-off-by: RomanBapst <[email protected]>
Signed-off-by: RomanBapst <[email protected]>
Signed-off-by: RomanBapst <[email protected]>
Signed-off-by: RomanBapst <[email protected]>
b8042dc
to
b3dd9c7
Compare
…sh on them Signed-off-by: Silvan Fuhrer <[email protected]>
* lib: add FilteredDerivative class * AirspeedValidator: add first principle check - filters throttle, pitch and airspeed rate, and triggers if the airspeed rate is negative even though the vehicle is pitching down and giving high throttle. Check has to fail for duration defined by ASPD_FP_T_WINDOW to trigger an airspeed failure. * AirspeedValidator: define constants for first principle check * FilteredDerivative: set initialised to false if sample interval is invalid * airspeed_selector: improved comment * increase IAS derivative filter time constant from 4 to 5 * use legacy parameter handling for FW_PSP_OFF * handle FW_THR_MAX as well * ROMFS/airframes: exclude some airframes for v6x and v4pro to save flash on them --------- Signed-off-by: Silvan Fuhrer <[email protected]> Signed-off-by: RomanBapst <[email protected]> Co-authored-by: Silvan Fuhrer <[email protected]>
Solved Problem
When ice starts to build up at the front of the pitot tube, usually this results in a scale error of the airspeed reading which slowly increases over a certain amount of time. The current checks are not well suited to detect this kind of failure, as the detection of a failure via the airspeed innovations checks is usually not fast enough.
Airframes which suffer from structural damage caused by limit cycling due to inaccurate airspeed readings used for control surface scaling, rely on a rapid detection of this failure case.
The default empirical thresholds proposed in this PR stem from real world testing on a platform which suffers from the aforementioned failure case. Since real icing conditions are hard to reproduce, this feature has been validated by injecting scale factor errors which increase over time. The failure has been detected consistently with ramp times of 2, 5, 30, 60 and 120s from a scale factor of 1 to 0.
Results
This shows the test run we did on a vehicle by injection airspeed scale errors (ramping up the scale error using different ramp times).
Note that initially the scale error is ramped up really quickly and the innovation checks would easily trigger.
This figure shows the results when the scale error is ramped up slowly. Note how the innovation check does not really help in this case but the derivative check still triggers.
Changelog Entry