this should work, we added the magic constant, the pid looks fine is not flaky anymore
This commit is contained in:
parent
9e842a2a30
commit
d418da5b12
2 changed files with 3 additions and 3 deletions
|
|
@ -16,7 +16,7 @@ fn calculate_crc(frame: u16) -> u16 {
|
|||
IFlight XING-E Pro 2207 2750KV
|
||||
*/
|
||||
const XING_EPRO_22_POLES: u32 = 4;
|
||||
|
||||
const XING_EPRO_22_MAGNETS: u32 = 14;
|
||||
#[allow(dead_code)]
|
||||
#[allow(non_camel_case_types)]
|
||||
#[derive(Debug)]
|
||||
|
|
@ -322,7 +322,7 @@ impl<'a> DShot<'a> {
|
|||
let period_ms: u32 = (mantissa << exp).into();
|
||||
let erpm = (60 * 1_000_000) / period_ms;
|
||||
|
||||
let rpm = erpm/XING_EPRO_22_POLES;
|
||||
let rpm = erpm/(XING_EPRO_22_MAGNETS/2);
|
||||
self.rpm.set(Some(rpm))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ fn main() -> ! {
|
|||
//PID-Controller
|
||||
let loop_time = Duration::from_micros(10);
|
||||
let cfg = pid::PidConfigBuilder::default()
|
||||
.kp(0.4)
|
||||
.kp(2.0)
|
||||
.ki(0.0)
|
||||
.output_limits(100.00, 2040.00)
|
||||
.sample_time(loop_time)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue