fix: stop dyno sweeps folding in falling RPM - #214
Merged
Conversation
Two issues made the virtual dyno under-report torque near the top of a sweep (e.g. 409 Nm shown at 5450 RPM where the log holds 465 Nm). extractPulls only ended a pull when the pedal dropped below pedalStart, so a lift that stays above the threshold - or a WOT upshift - kept feeding falling-RPM, low-torque samples into bins the sweep had already covered. Track the sweep's peak RPM and close the pull once RPM falls more than RPM_DROP_TOLERANCE below it, letting the next sample start a fresh pull. An upshift now yields one pull per gear. computeDynoPoints smoothed over array indices, but empty bins are omitted, so the nominal +/-2 bin (+/-100 RPM) window spanned ~450 RPM wherever bins were sparse - smearing the contaminated bins into clean ones. Skip bins further than SMOOTH_WINDOW * BIN_SIZE away in RPM.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two issues made the virtual dyno under-report torque near the top of a sweep (e.g. 409 Nm shown at 5450 RPM where the log holds 465 Nm).
extractPulls only ended a pull when the pedal dropped below pedalStart, so a lift that stays above the threshold - or a WOT upshift - kept feeding falling-RPM, low-torque samples into bins the sweep had already covered. Track the sweep's peak RPM and close the pull once RPM falls more than RPM_DROP_TOLERANCE below it, letting the next sample start a fresh pull. An upshift now yields one pull per gear.
computeDynoPoints smoothed over array indices, but empty bins are omitted, so the nominal +/-2 bin (+/-100 RPM) window spanned ~450 RPM wherever bins were sparse - smearing the contaminated bins into clean ones. Skip bins further than SMOOTH_WINDOW * BIN_SIZE away in RPM.