-
Notifications
You must be signed in to change notification settings - Fork 1
feat: Physics-based optimal P estimation with prop-size-aware recommendations #132
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
Merged
Merged
Changes from all commits
Commits
Show all changes
82 commits
Select commit
Hold shift + click to select a range
9cd8b6d
feat: add optimal P estimation with physics-aware recommendations
nerdCopter dcaeb47
refine: clarify optimal P estimation behavior and relationship to P:D…
nerdCopter f585ff1
docs: add optimal P estimation to README, OVERVIEW, and help text
nerdCopter 580acbe
feat: extend frame class support to 1-13 inch props
nerdCopter 603729f
feat: add optimal P estimation to step-response PNG
nerdCopter 9016df1
fix: correct physics theory, tolerance values, and divide-by-zero issues
nerdCopter 6eafe94
refactor: consolidate TD target constants into single data structure
nerdCopter 31b586b
refactor: consolidate TD targets and improve optimal P estimation
nerdCopter 4727baa
feat: implement D-term noise analysis for optimal P estimation
nerdCopter 8518729
refactor: compact optimal P estimation console output
nerdCopter 321c9a1
docs: clarify frame-class matches prop size, not frame size
nerdCopter 48e1d38
refactor: rename --frame-class to --prop-size and fix low-noise logic
nerdCopter afd9425
docs: add validation methodology and update implementation status
nerdCopter 13b2718
feat: add noise and consistency info to step response PNG legends
nerdCopter 4fdffaf
refactor: use text-based warnings and spell out Recommendation fully
nerdCopter 63b00d3
feat: add D recommendations for optimal P changes and standardize format
nerdCopter 9db66a8
fix: use recommended P:D ratio for D calculations and use approx symbol
nerdCopter 4b7ff39
docs: improve consistency warning clarity in PNG legends
nerdCopter 477bc08
refactor: simplify optimal-P to show only conservative recommendation
nerdCopter 16c9c34
refactor: simplify to conservative-only recommendations
nerdCopter c67abad
refactor: remove truly dead code from optimal P analysis
nerdCopter 1dd3a41
fix: restore Conservative label in recommendations
nerdCopter b346cb8
fix: correct flag name in help text and documentation (CodeRabbit)
nerdCopter 4d1b4ce
fix: add division-by-zero guards for D gain calculations (CodeRabbit)
nerdCopter ccecf74
refactor: move hardcoded constants to constants.rs (CodeRabbit)
nerdCopter c008b3d
fix: address CodeRabbit nitpicks (constant naming and consistency check)
nerdCopter a5d969a
fix: replace hardcoded axis range with constant (CodeRabbit)
nerdCopter 1fd9b4d
feat: extend prop size range from 13 to 15 inches
nerdCopter e776643
Update prop size error message range from 1-13 to 1-15
nerdCopter 209e6e0
feat: add optimal P estimation with empirical frame-class targets
nerdCopter 4da8784
Merge feature/remove-unused-physics-params into feature/optimal-p-est…
nerdCopter a805d64
fix: add explicit error logging in calculate_hf_energy_ratio
nerdCopter 6cca6f8
docs: explain non-monotonic TD_TARGETS rationale
nerdCopter 0045c0f
docs: explain asymmetric Td deviation thresholds
nerdCopter 5d4bd55
docs: fix grammar in plot flags usage sentence
nerdCopter 81eeb5a
docs: reorganize theory foundation into three clear sections
nerdCopter 7281392
docs: use durable pointer for TD_TARGETS in OVERVIEW
nerdCopter 44e5b0c
docs: clarify relationship between user acceptance ranges and validat…
nerdCopter 330fbc7
refactor: remove trivial seconds->ms constant and inline 1000.0
nerdCopter 786f08f
style: import FrameClass and simplify AnalysisOptions type
nerdCopter affddfa
refactor: extract common PdRecommendations struct
nerdCopter 1c90fb5
docs: add justification for too_many_arguments allow
nerdCopter b253313
fix: include current P value in Optimal recommendation output
nerdCopter 40948ee
docs: correct Y-axis padding comment (0.55 -> ~5% per side, 10% total)
nerdCopter baebbdb
refactor: extract D recommendation calculation into helper closure
nerdCopter d5b597a
refactor: make FrameClass::td_target return Option and handle missing…
nerdCopter 820a72d
refactor: remove unused std_dev_ms field from TdStatistics
nerdCopter 621d507
refactor: add safe_scaled_p helper to prevent u32 overflow in P calcu…
nerdCopter 9ef2d2b
refactor: use safe_scaled_p in SignificantlyFaster+Low case
nerdCopter 874fe43
refactor: use AXIS_NAMES constant in axis_name function
nerdCopter a5dadc9
test: add TdTargetSpec valid range unit test
nerdCopter 25b7c4a
docs: clarify --prop-size is only used with --estimate-optimal-p
nerdCopter eeed531
refactor: add derives and type safety to plot_step_response structs
nerdCopter bdd9ced
refactor: add warning when --prop-size doesn't map to valid frame class
nerdCopter 8a435d8
refactor: store actual Td target/tolerance in OptimalPAnalysis
nerdCopter eea2fa6
refactor: eliminate duplicate process_response call for combined resp…
nerdCopter 8ca422a
fix: explicit NaN handling in safe_scaled_p
nerdCopter f1e36cc
refactor: change coefficient_of_variation to Option<f64>
nerdCopter 9cdecaa
refactor: replace stderr with Result<T, AnalysisError> in analyze()
nerdCopter c36f249
fix: remove unused frame_class field from AnalysisError
nerdCopter d2aeae0
docs: update README example to use float for --prop-size
nerdCopter d2d7048
refactor: change --prop-size from float to integer only
nerdCopter f8ca68c
docs: clarify that --prop-size requires --estimate-optimal-p to take …
nerdCopter 0d3a77b
docs: sync --help and OVERVIEW wording with integer-only prop-size an…
nerdCopter 4691b99
docs: clarify --prop-size accepts integers only; decimals rejected (n…
nerdCopter 2305c9d
refactor: simplify consistency calculation with map_or
nerdCopter 074a803
fix: rename _td_tolerance_ms to td_tolerance_ms
nerdCopter 273bc6a
refactor: require --prop-size when --estimate-optimal-p is used
nerdCopter dd771cd
fix: remove dead code typical_weight_g from TdTargetSpec
nerdCopter c65460c
docs: rephrase Td formula as heuristic with explicit torque definition
nerdCopter a57225c
refactor: implement Deref for ConservativeRecommendations and Moderat…
nerdCopter c1c4209
docs: clarify acronyms Td and CV in README
nerdCopter 150bdf0
docs: simplify --prop-size help and docs; remove redundant 'decimals …
nerdCopter 84a56e2
refactor: centralize domain constants to src/constants.rs
nerdCopter cc34292
fix(help): normalize README and CLI help section labels and layout
nerdCopter dc753b6
fix: add optimal P estimation options to help text only
nerdCopter e8894ab
Merge branch 'master' into feature/optimal-p-estimation
nerdCopter 92b9dec
Merge branch 'master' into feature/optimal-p-estimation
nerdCopter 4f91686
fix: address final CodeRabbit review feedback (help text, constants, …
nerdCopter 45a2dba
fix: clarify prop-size message (required, not optional with default)
nerdCopter 0dea308
fix: De Morgan condition, test constants, README example, condense OV…
nerdCopter 5cfcdfb
fix: explicit NaN guard in hf_cutoff validation (De Morgan + is_nan)
nerdCopter File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.