Opener
Classes | Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
OPENER Class Referenceabstract

ハイブリッドロケットの開放機構の制御を行うクラス More...

#include <Opener.h>

Inheritance diagram for OPENER:
MY_OPENER MY_OPENER

Public Types

enum  SETTING { FM , SHINSASYO }
 
enum  MODE { CHECK , READY , FLIGHT , OPENED }
 
enum  LIFT_OFF_JUDGE { NONE , ACCSEN , ALTSEN }
 

Public Member Functions

void switch_parameter (SETTING setting)
 FMと審査書で閾値を切り替える
 
void init ()
 
void goCHECK ()
 ::CHECKモードへ移行する.変数の初期化し,::prohibitOpenを有効化する.
 
void goREADY ()
 goCHECK()を実行して変数を初期化してから, prohibitOpen を無効化したうえで READY モードへ移行する.
 
void clear_prohibitOpen ()
 prohibitOpen を無効化する.
 
void prohibitOpen ()
 prohibitOpen を有効化する.
 
void manualOpen ()
 prohibitOpen が無効になっていることを確認し,手動で開放機構を開く.
 
void manualClose ()
 手動で開放機構を閉じ, prohibitOpen を有効化する.
 
bool opener_100Hz (float acceleration_mss, float altitude_m)
 100Hzで呼び出す必要がある関数 More...
 
void set_open_threshold_time_ms (uint32_t _open_threshold_time_ms)
 開放までのタイマーの秒数を設定する. More...
 
uint32_t get_open_threshold_time_ms ()
 開放までのタイマーの秒数を取得する. More...
 
uint32_t get_meco_time_ms ()
 燃焼終了のタイマーの秒数を取得する. More...
 

Public Attributes

enum OPENER::MODE mode = CHECK
 
enum OPENER::LIFT_OFF_JUDGE lift_off_judge = NONE
 
OPEN_JUDGE open_judge
 
uint32_t lift_off_time_ms
 離床したと推定される時刻(離床判定が行われた時刻ではない)
 
uint32_t open_time_ms
 実際に開放した時刻
 

Protected Member Functions

virtual void open ()=0
 開放機構を開く
 
virtual void close ()=0
 開放機構を閉じる
 

Protected Attributes

float open_threshold_altitude_m = 0.5
 頂点判定に使われる,0.1秒間の高度変化の閾値
 
float open_threshold_ac_mss = 7
 燃焼終了に使われる,加速度の閾値
 
uint32_t period_10Hz_ms = 150
 opener_10Hz()が適切なタイミングで呼ばれているかの判定に使われる,10Hzの周期
 
uint32_t period_100Hz_ms = 20
 opener_100Hz()が適切なタイミングで呼ばれているかの判定に使われる,100Hzの周期
 
int ACC_threshold_count = 5
 閾値以上の加速度が何回連続したときに離床判定・燃焼終了判定を行うかという回数
 
int flight_judgement_duration_ms = ACC_threshold_count * 100
 離床判定にかかる時間
 
uint32_t meco_threshold_time_ms = 5000
 離床判定後,燃焼中と判断し開放判定を行わない時間[ms]
 
uint32_t open_threshold_time_ms = 11000
 開放機構の動作にかかる時間を引いた,離床から開放までの時間のシム値[ms]の初期値
 
float fm_lift_off_threshold_altitude_m = 1.0
 
float fm_lift_off_threshold_ac_mss = 25.0
 
int fm_ALT_oversampling_count = 1
 
int fm_ALT_threshold_count = ACC_threshold_count
 
float shinsasyo_lift_off_threshold_altitude_m = 0.5
 
float shinsasyo_lift_off_threshold_ac_mss = 9.0
 
int shinsasyo_ALT_oversampling_count = 5.0
 
int shinsasyo_ALT_threshold_count = 2
 

Detailed Description

ハイブリッドロケットの開放機構の制御を行うクラス

Member Enumeration Documentation

◆ LIFT_OFF_JUDGE

Enumerator
NONE 

離床判定前

ACCSEN 

加速度により離床判定

ALTSEN 

高度上昇により離床判定

◆ MODE

Enumerator
CHECK 

離床判定禁止

READY 

離床判定許可

FLIGHT 

離床判定後

OPENED 

開放判定後

◆ SETTING

Enumerator
FM 

閾値をフライト用に設定

SHINSASYO 

閾値を審査書用に設定

Member Function Documentation

◆ get_meco_time_ms()

uint32_t OPENER::get_meco_time_ms ( )

燃焼終了のタイマーの秒数を取得する.

Returns
離床判定後,燃焼中と判断し開放判定を行わない時間[ms]

◆ get_open_threshold_time_ms()

uint32_t OPENER::get_open_threshold_time_ms ( )

開放までのタイマーの秒数を取得する.

Returns
開放機構の動作にかかる時間を引いた,離床から開放までの時間のシム値[ms]

◆ init()

void OPENER::init ( )

初期化(myOpenerクラスでオーバーライドするときは必ず OPENER::init() を呼び出すこと) myOpenerでハードウェアの初期化をしたあと,OPENERで状態を初期化して閉鎖するため

◆ opener_100Hz()

bool OPENER::opener_100Hz ( float  acceleration_mss,
float  altitude_m 
)

100Hzで呼び出す必要がある関数

Parameters
acceleration_mss機軸方向の加速度[m/s^2](ランチャ上で重力加速度がかかって正の値をとる方向)
altitude_m高度[m](基準高度は任意)
Returns
判定が更新されたか場合trueを返す.更新がない場合はfalseを返す.

◆ set_open_threshold_time_ms()

void OPENER::set_open_threshold_time_ms ( uint32_t  _open_threshold_time_ms)

開放までのタイマーの秒数を設定する.

Parameters
_open_threshold_time_ms開放機構の動作にかかる時間を引いた,離床から開放までの時間のシム値[ms]

The documentation for this class was generated from the following files: