#[derive(Debug, Clone)]
pub struct MotorFeedforwardController {
pub ks: f32,
pub kv: f32,
pub ka: f32,
pub target_acceleration: f32,
pub target: f32,
}
impl MotorFeedforwardController {
pub fn new(ks: f32, kv: f32, ka: f32, target_acceleration: f32) -> Self {
Self {
ks,
kv,
ka,
target_acceleration,
target: 0.0,
}
}
pub fn calculate(&self, target: f32, target_acceleration: f32) -> f32 {
let v = self.ks * num::signum(target) + self.kv * target + self.ka * target_acceleration;
let output = v;
output
}
}