Initial commit: SmartCar Framework v0.1 — 龙芯2K0300智能车开发框架\n\n- HAL: GPIO/PWM/Encoder/Framebuffer 驱动\n- Control: PID/IMU/Motor/Servo 控制\n- Vision: HSV双Otsu→4点标定IPM→洪泛填充→逐行搜线\n- Strategy: 三区前瞻偏差+速度策略\n- Debug: 文件热调参+LCD预览+cv截帧\n- Scheduler: 5ms timerfd+epoll 中央调度器
This commit is contained in:
28
control/pid.hpp
Normal file
28
control/pid.hpp
Normal file
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
#include "types.hpp"
|
||||
|
||||
class PID {
|
||||
public:
|
||||
PID(float kp = 0, float ki = 0, float kd = 0, float target = 0,
|
||||
PIDMode mode = PID_INCREMENTAL, float out_limit = 100, float int_limit = 100);
|
||||
|
||||
float update(float measured);
|
||||
void setTarget(float t) { _target = t; }
|
||||
void setPID(float kp, float ki, float kd);
|
||||
void setMode(PIDMode m) { _mode = m; }
|
||||
void reset();
|
||||
|
||||
float output() const { return _output; }
|
||||
|
||||
private:
|
||||
float _kp, _ki, _kd;
|
||||
float _target;
|
||||
PIDMode _mode;
|
||||
float _out_limit, _int_limit;
|
||||
|
||||
float _output;
|
||||
float _integral;
|
||||
float _prev_error;
|
||||
float _last_measured;
|
||||
bool _first;
|
||||
};
|
||||
Reference in New Issue
Block a user