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: