予見Fuzzy制御を再現するクラス [詳解]


公開メンバ関数 | |
| Fuzzy (const Atc *atc) | |
| virtual | ~Fuzzy (void) |
| void | Init (void) |
| Initializeで実行する関数 [詳解] | |
| void | FuzzyAdjDeceleration (void) |
| 各ブレーキノッチの減速度の補正値を算出する関数 [詳解] | |
| int | FuzzyCtrInit (int index, float pattern_start_loc) |
| 予見Fuzzy制御を初期化する関数 [詳解] | |
| int | FuzzyCtrExe (int index, int tget_spd, float pattern_end_loc) |
| 予見Fuzzy制御を行う関数 [詳解] | |
公開変数類 | |
| float | adj_deceleration_ |
| 各ブレーキノッチの減速度補正値[m/s^2] [詳解] | |
| boost::array< int, ALL_PATTERN > | fuzzy_step_ |
| 全パターンの予見Fuzzy制御の制御段階 [詳解] | |
| boost::array< int, ALL_PATTERN > | brake_timer_ |
| 全パターンの予見Fuzzy制御を実行する次のゲーム内時刻[ms] [詳解] | |
| boost::array< int, ALL_PATTERN > | prev_tget_spd_ |
| 全パターンの以前の目標速度[km/h] [詳解] | |
| boost::array< float, ALL_PATTERN > | prev_pattern_end_loc_ |
| 全パターンの以前の減速完了地点[m] [詳解] | |
| boost::array< int, ALL_PATTERN > | fuzzy_brake_notch_list_ |
| 全パターンの予見Fuzzy制御の最適ブレーキノッチ [詳解] | |
非公開メンバ関数 | |
| float | FuzzyFuncL (float x, float a, float b) |
| Fuzzyメンバシップ関数L [詳解] | |
| float | FuzzyFuncF (float x, float a, float b) |
| Fuzzyメンバシップ関数F [詳解] | |
| float | FuzzyFuncA (float x, float a, float b) |
| Fuzzyメンバシップ関数A [詳解] | |
| float | FuzzyFuncG (float x, float a, float b) |
| Fuzzyメンバシップ関数G [詳解] | |
| float | FuzzyFuncQ (float x, float a, float b) |
| Fuzzyメンバシップ関数Gの形状を制御する関数 [詳解] | |
| float | FuzzyEstLoc (int tget_spd, int notch_num) |
| 減速完了地点を予測する関数 [詳解] | |
基底クラス Base に属する継承非公開メンバ関数 | |
| template<typename T > | |
| T | VectorGetOrDefault (const boost::container::vector< T > &v, int index, char *file, char *func, int line) |
| vectorコンテナへの範囲外アクセス時にデフォルト値を返す関数 [詳解] | |
| template<typename T , std::size_t N> | |
| T | ArrayGetOrDefault (const boost::array< T, N > &a, int index, char *file, char *func, int line) |
| arrayコンテナへの範囲外アクセス時にデフォルト値を返す関数 [詳解] | |
| template<typename T > | |
| T | VectorTryGet (const boost::container::vector< T > &v, int index, char *file, char *func, int line) |
| template<typename T , std::size_t N> | |
| T | ArrayTryGet (const boost::array< T, N > &a, int index, char *file, char *func, int line) |
非公開変数類 | |
| const Atc * | atc_ |
| Atcクラスのオブジェクトを格納するポインタ [詳解] | |
| int | prev_brake_notch_ |
| 以前の出力ブレーキノッチ(HBを含まない) [詳解] | |
| int | adj_timer_ |
| 減速度補正を行う次のゲーム内時刻[ms] [詳解] | |
| float | fuzzy_prev_Tc_ |
| 最後に出力ブレーキノッチが変化したゲーム内時刻[s] [詳解] | |
| int | fuzzy_prev_Nc_ |
| 最後に変化した出力ブレーキノッチの変化量の絶対値 [詳解] | |
| boost::container::vector< float > | fuzzy_Xp_ |
| 予測減速完了地点[m] [詳解] | |
| boost::container::vector< float > | fuzzy_Ugg_ |
| 「うまく停止する(GG)」の評価値 [詳解] | |
| boost::container::vector< float > | fuzzy_Uga_ |
| 「正確に停止する(GA)」の評価値 [詳解] | |
| float | fuzzy_Ucg_ |
| 「乗り心地が良い(CG)」の評価値 [詳解] | |
| float | fuzzy_Ucb_ |
| 「乗り心地が悪い(CB)」の評価値 [詳解] | |
| boost::container::vector< float > | fuzzy_U_ |
| "(CG >= CB) And GA"の評価値 [詳解] | |
| float | fuzzy_Usb_ |
| 「安全性が悪い(SB)」の評価値 [詳解] | |
| float | fuzzy_Usvb_ |
| 「安全性がとても悪い(SVB)」の評価値 [詳解] | |
予見Fuzzy制御を再現するクラス
|
explicit |
|
virtual |
| void Atc::Fuzzy::FuzzyAdjDeceleration | ( | void | ) |
各ブレーキノッチの減速度の補正値を算出する関数
ブレーキノッチが2秒間変化しなかった場合に補正値を算出する
| int Atc::Fuzzy::FuzzyCtrExe | ( | int | index, |
| int | tget_spd, | ||
| float | Xt | ||
| ) |
予見Fuzzy制御を行う関数
| index | パターン番号 |
| tget_spd | 目標速度[km/h] |
| Xt | 減速完了地点[m] |

| int Atc::Fuzzy::FuzzyCtrInit | ( | int | index, |
| float | pattern_start_loc | ||
| ) |
予見Fuzzy制御を初期化する関数
| index | パターン番号 |
| pattern_start_loc | パターン降下開始地点[m] |
|
private |
減速完了地点を予測する関数
| tget_spd | 目標速度[km/h] |
| notch_num | ブレーキノッチ |
|
private |
Fuzzyメンバシップ関数A
定義域を(-∞, +∞)とした尖った関数
| x | x |
| a | a |
| b | b |
|
private |
Fuzzyメンバシップ関数F
関数Lでaより大きい部分と1.0とした関数
| x | x |
| a | a |
| b | b |
|
private |
Fuzzyメンバシップ関数G
定義域を(-∞, +∞)とした台形状の関数
| x | x |
| a | a |
| b | b |
|
private |
Fuzzyメンバシップ関数L
定義域を(a - b, a + b)とする三角形状の関数
| x | x |
| a | a |
| b | b |
|
private |
Fuzzyメンバシップ関数Gの形状を制御する関数
メンバシップ関数Gの形状(頂上の平坦部の幅)を速度に応じて連続的に制御する
| x | 速度[km/h] |
| a | 頂上の平坦部の幅の初期値 |
| b | 補正係数 |
| void Atc::Fuzzy::Init | ( | void | ) |
Initializeで実行する関数
| float Atc::Fuzzy::adj_deceleration_ |
各ブレーキノッチの減速度補正値[m/s^2]
|
private |
減速度補正を行う次のゲーム内時刻[ms]
|
private |
Atcクラスのオブジェクトを格納するポインタ
| boost::array<int, ALL_PATTERN> Atc::Fuzzy::brake_timer_ |
全パターンの予見Fuzzy制御を実行する次のゲーム内時刻[ms]
| boost::array<int, ALL_PATTERN> Atc::Fuzzy::fuzzy_brake_notch_list_ |
全パターンの予見Fuzzy制御の最適ブレーキノッチ
|
private |
最後に変化した出力ブレーキノッチの変化量の絶対値
|
private |
最後に出力ブレーキノッチが変化したゲーム内時刻[s]
| boost::array<int, ALL_PATTERN> Atc::Fuzzy::fuzzy_step_ |
全パターンの予見Fuzzy制御の制御段階
|
private |
"(CG >= CB) And GA"の評価値
|
private |
「乗り心地が悪い(CB)」の評価値
|
private |
「乗り心地が良い(CG)」の評価値
|
private |
「正確に停止する(GA)」の評価値
|
private |
「うまく停止する(GG)」の評価値
|
private |
「安全性が悪い(SB)」の評価値
|
private |
「安全性がとても悪い(SVB)」の評価値
|
private |
予測減速完了地点[m]
|
private |
以前の出力ブレーキノッチ(HBを含まない)
| boost::array<float, ALL_PATTERN> Atc::Fuzzy::prev_pattern_end_loc_ |
全パターンの以前の減速完了地点[m]
| boost::array<int, ALL_PATTERN> Atc::Fuzzy::prev_tget_spd_ |
全パターンの以前の目標速度[km/h]
1.8.6