From ebf0233b4f49d54e86a4c0f5022f9334562f0017 Mon Sep 17 00:00:00 2001 From: Connor Johnstone Date: Tue, 14 Mar 2023 17:06:20 -0600 Subject: [PATCH] Updated default controller --- readme.md | 2 +- src/controller.rs | 3 +++ src/problem.rs | 6 +++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/readme.md b/readme.md index eec4fbe..0147141 100644 --- a/readme.md +++ b/readme.md @@ -40,7 +40,7 @@ let y0 = Vector3::new(1.0, 1.0, 1.0); let ode = ODE::new(&derivative, 0.0, 5.0, y0); let dp45 = DormandPrince45::new(1e-12_f64, 1e-5_f64); -let controller = PIController::new(0.17, 0.04, 10.0, 0.2, 0.1, 0.9, 1e-8); +let controller = PIController::new(); let value_too_high = Callback { event: &|_: f64, y: SVector| { 10.0 - y[0] }, diff --git a/src/controller.rs b/src/controller.rs index 3cf5fe1..ac37b3b 100644 --- a/src/controller.rs +++ b/src/controller.rs @@ -51,6 +51,9 @@ impl PIController { old_h: initial_h, } } + pub fn default() -> Self { + Self::new(0.17, 0.04, 10.0, 0.2, 10.0, 0.9, 1e-4) + } } #[cfg(test)] diff --git a/src/problem.rs b/src/problem.rs index 69dd142..d978fc6 100644 --- a/src/problem.rs +++ b/src/problem.rs @@ -145,7 +145,7 @@ mod tests { let ode = ODE::new(&derivative, 0.0, 1.0, y0); let dp45 = DormandPrince45::new(1e-12_f64, 1e-5_f64); - let controller = PIController::new(0.17, 0.04, 10.0, 0.2, 0.1, 0.9, 1e-8); + let controller = PIController::default(); let mut problem = Problem::new(ode, dp45, controller); @@ -162,7 +162,7 @@ mod tests { let ode = ODE::new(&derivative, 0.0, 5.0, y0); let dp45 = DormandPrince45::new(1e-12_f64, 1e-5_f64); - let controller = PIController::new(0.17, 0.04, 10.0, 0.2, 0.1, 0.9, 1e-8); + let controller = PIController::default(); let value_too_high = Callback { event: &|_: f64, y: SVector| { 10.0 - y[0] }, @@ -183,7 +183,7 @@ mod tests { let ode = ODE::new(&derivative, 0.0, 10.0, y0); let dp45 = DormandPrince45::new(1e-12_f64, 1e-6_f64); - let controller = PIController::new(0.17, 0.04, 10.0, 0.2, 0.1, 0.9, 1e-8); + let controller = PIController::default(); let mut problem = Problem::new(ode, dp45, controller); let solution = problem.solve();