1 个稳定版本
1.0.0 | 2019 年 12 月 29 日 |
---|
#8 in #gain
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 控制器有很多用途,这里只是其中一小部分。
空调
- 温度调节 - 通过控制输出和来自温度传感器的反馈回路
多旋翼飞行器
- 高度控制
- 速度控制
- 旋转控制
- 倾斜控制
- 高级导航
电动滑板车
- 速度控制
- 制动控制