1 个稳定版本

1.0.0 2019 年 12 月 29 日

#8 in #gain

GPL-3.0-only

68KB
137

AdriftDev PID 控制器库

比例、积分和微分控制器模块,旨在通过从设备(传感器/微控制器)的反馈回路轻松计算输出。PID 控制器的输出可以控制电机、伺服机构或任何可以输出多种输出的组件,以实现目标结果。

路线图

  • 输出曲线平滑处理。
  • PID 栈控制 - 可以使用任何类型的控制器模式,而不仅仅是 PID,例如 PD、PI、P 或 PID 控制器配置。
  • 通用微控制器优化

示例用法

调整 PID 控制器就像更改模块中每个控制器组件的增益一样简单。

以下是一个创建 PID 控制模块的小示例

use adriftdev_pid::control;

fn main() {
  let mut pid = control::Module::new(
    control::PController::new(0.2),
    control::IController::new(0.2),
    control::DController::new(0.2),
  ); // Total of 0.6 gain
  pid.set_setpoint(2000.0);
  while pid.output < 1999.0 {
    println!("{}", pid.compute());
  }
}

可能的用途

PID 控制器有很多用途,这里只是其中一小部分。

空调

  • 温度调节 - 通过控制输出和来自温度传感器的反馈回路

多旋翼飞行器

  • 高度控制
  • 速度控制
  • 旋转控制
  • 倾斜控制
  • 高级导航

电动滑板车

  • 速度控制
  • 制动控制

无运行时依赖