Cubic制御器の抽象クラス
More...
#include <Cubic.controller.h>
|
| Controller (uint8_t motorNo, uint8_t encoderNo, enum class encoderType encoderType, uint16_t CPR, double Kp, double Ki, double Kd, double target, bool direction, double capableDutyCycle, double current, bool logging=false) |
| Construct a new Controller object.
|
|
virtual double | compute ()=0 |
| duty比を計算します。各ループで一回呼び出してください。このduty比は、DUTY_SPI_MAXに対する比です。計算された値は、この関数内部で、DC_motor::put()されます。
|
|
virtual void | setTarget (double target) |
| 制御量の目標値を設定します。
|
|
void | setGains (double Kp, double Ki, double Kd) |
| PIDゲインを設定します。負の値は-1倍されます。
|
|
void | setKp (double Kp) |
| Pゲインを設定します。負の値は-1倍されます。
|
|
void | setKi (double Ki) |
| Iゲインを設定します。負の値は-1倍されます。
|
|
void | setKd (double Kd) |
| Dゲインを設定します。負の値は-1倍されます。
|
|
int32_t | readEncoder () const |
| エンコーダを読みだします。
|
|
double | getTarget () const |
| 目標値を返します。
|
|
double | getDutyCycle () const |
| 直前に計算したデューティ比を返します。
|
|
double | getDt () const |
| 直前のループにおける経過時間dtを返します
|
|
double | getCurrent () const |
| 直前に読んだ制御量を返します。
|
|
virtual void | reset () |
| 制御器のリセット
|
|
virtual void | reset (double target) |
| 制御器のリセット
|
|
virtual void | reset (double Kp, double Ki, double Kd) |
| 制御器のリセット
|
|
virtual void | reset (double Kp, double Ki, double Kd, double target) |
| 制御器のリセット
|
|
virtual double | encoderToAngle (int32_t encoder)=0 |
| エンコーダの値から角度を計算します。設定したCPR(Count Per Revolution)に依存します。
|
|
|
double | compute_PID (double current) |
| pid.compute_PID()を呼ぶだけの関数です。
|
|
|
const uint8_t | motorNo |
| モータ番号
|
|
enum encoderType | encoderType |
| エンコーダの種類
|
|
const uint8_t | encoderNo |
| エンコーダ番号
|
|
const uint16_t | CPR |
| CPR(Counts Per Revolution)
|
|
const bool | direction |
| モータをプラスの方向に回したとき、エンコーダが増加するかどうか
|
|
const bool | logging |
| ログを出力するかどうか
|
|
◆ Controller()
Cubic_controller::Controller::Controller |
( |
uint8_t | motorNo, |
|
|
uint8_t | encoderNo, |
|
|
enum class encoderType encoderType | , |
|
|
uint16_t | CPR, |
|
|
double | Kp, |
|
|
double | Ki, |
|
|
double | Kd, |
|
|
double | target, |
|
|
bool | direction, |
|
|
double | capableDutyCycle, |
|
|
double | current, |
|
|
bool | logging = false ) |
Construct a new Controller object.
- Parameters
-
motorNo | |
encoderNo | |
encoderType | |
CPR | |
Kp | |
Ki | |
Kd | |
target | |
direction | |
capableDutyCycle | |
current | |
logging | |
◆ compute()
virtual double Cubic_controller::Controller::compute |
( |
| ) |
|
|
pure virtual |
◆ compute_PID()
double Cubic_controller::Controller::compute_PID |
( |
double | current | ) |
|
|
inlineprotected |
pid.compute_PID()を呼ぶだけの関数です。
- Parameters
-
- Returns
- double
◆ encoderToAngle()
virtual double Cubic_controller::Controller::encoderToAngle |
( |
int32_t | encoder | ) |
|
|
pure virtual |
◆ getCurrent()
double Cubic_controller::Controller::getCurrent |
( |
| ) |
const |
|
inline |
直前に読んだ制御量を返します。
- Returns
- double
◆ getDt()
double Cubic_controller::Controller::getDt |
( |
| ) |
const |
|
inline |
直前のループにおける経過時間dtを返します
- Returns
- double dt[s]
◆ getDutyCycle()
double Cubic_controller::Controller::getDutyCycle |
( |
| ) |
const |
|
inline |
直前に計算したデューティ比を返します。
- Returns
- double dutyCycle
◆ getTarget()
double Cubic_controller::Controller::getTarget |
( |
| ) |
const |
|
inline |
目標値を返します。
- Returns
- double target
◆ readEncoder()
int32_t Cubic_controller::Controller::readEncoder |
( |
| ) |
const |
|
inline |
エンコーダを読みだします。
- Returns
- int32_t encoder
◆ reset() [1/4]
void Cubic_controller::Controller::reset |
( |
| ) |
|
|
inlinevirtual |
◆ reset() [2/4]
void Cubic_controller::Controller::reset |
( |
double | Kp, |
|
|
double | Ki, |
|
|
double | Kd ) |
|
inlinevirtual |
◆ reset() [3/4]
void Cubic_controller::Controller::reset |
( |
double | Kp, |
|
|
double | Ki, |
|
|
double | Kd, |
|
|
double | target ) |
|
inlinevirtual |
◆ reset() [4/4]
void Cubic_controller::Controller::reset |
( |
double | target | ) |
|
|
inlinevirtual |
◆ setGains()
void Cubic_controller::Controller::setGains |
( |
double | Kp, |
|
|
double | Ki, |
|
|
double | Kd ) |
|
inline |
PIDゲインを設定します。負の値は-1倍されます。
- Parameters
-
◆ setKd()
void Cubic_controller::Controller::setKd |
( |
double | Kd | ) |
|
|
inline |
Dゲインを設定します。負の値は-1倍されます。
- Parameters
-
◆ setKi()
void Cubic_controller::Controller::setKi |
( |
double | Ki | ) |
|
|
inline |
Iゲインを設定します。負の値は-1倍されます。
- Parameters
-
◆ setKp()
void Cubic_controller::Controller::setKp |
( |
double | Kp | ) |
|
|
inline |
Pゲインを設定します。負の値は-1倍されます。
- Parameters
-
◆ setTarget()
void Cubic_controller::Controller::setTarget |
( |
double | target | ) |
|
|
inlinevirtual |
◆ CPR
const uint16_t Cubic_controller::Controller::CPR |
|
protected |
The documentation for this class was generated from the following files: