etrobocon2018 feat.KatLab  770af34cce41ae9c30c41303275e1add2daae0c3 (with uncommitted changes)
 全て クラス 名前空間 ファイル 関数 変数 列挙型 列挙値 フレンド マクロ定義 ページ
TurnControl.cpp
[詳解]
1 
7 #include "TurnControl.h"
8 
9 TurnControl::TurnControl() : Pid(0.8, 1.2, 0.012, 30.0), turn(0.0), filter() {}
10 
11 std::int8_t TurnControl::calculateTurnForPid(std::int8_t forward, std::int16_t light_value)
12 {
13  calculate(static_cast<double>(filter.sensor(light_value)));
14  double pid_value = get_output();
15  double forward_percent = ((double)forward) / 100.0;
16  pid_value *= forward_percent;
17  turn += (pid_value - pid_value_old) / 2;
18  pid_value_old = pid_value;
19  return static_cast<std::int8_t>(limitOutput(turn));
20 }
std::int8_t calculateTurnForPid(std::int8_t forward, std::int16_t light_value)
Definition: TurnControl.cpp:11
double get_output()
Definition: Pid.cpp:32
void calculate(double light_value)
Definition: Pid.cpp:19
float sensor(std::int32_t current_sensor)
現在のセンサ値にフィルタ処理を実行する
Definition: LPF.cpp:9
PID制御によるターン制御クラス
double limitOutput(double pid_value)
Definition: Pid.cpp:46
PID制御の計算を行うクラス
Definition: Pid.h:38