[ ohymos | Source | Keywords | Summary | Ancestors | All Members | Descendants ]
Back to the top of TramPowerLawStorage
[モデル名] 羃関数型貯留モデル
[機能] 羃関数型貯留モデル
基礎式
[受信端子の仕様]
m 個の受信端子から流入量 I_1, I_2, ... I_mを受けます。
a_i*I_i の次元が m^3/sec になるように注意すれば、受信端子から得られる
I_i 自身の次元は、m^3/sec でなくても構いません。
[送信端子の仕様]
n 個の受信端子から流出量 O_1, O_2, ... O_mを送出します。
[Init のための追加情報]
Init のための追加情報では、つぎの値を並べます。
Init のための追加情報で指定するデータは、全部で、2*m + 2*n + 5 個です。。
[パラメタ]
パラメタは、つぎの 2*m + 2*n + 3 個です。
[状態量]
補足:初回の計算 (継続の計算ではないということ) では、mHalvedp = YES,
mTime = 0, mDt_next = 1 (sec), mrPsum_last = 0 としてください。
O_i = \alhpa_i s^{m_i}
ds/dt = a_1*I_1 + a_2*I_2 + ... + a_m*I_m - O_1 - O_2 - ... - O_n
を TRAM 法によって計算します。ただし、s (m^3) は、貯留要素の貯留量、
a_1*I_1, a_2*I_2, ..., a_m*I_m は流入強度 (m^3/sec)、O_1, O_2, ...,
O_n は、流出強度 (m^3/sec) です。流出強度 O_i は、貯留量 s の羃関数
\alhpa_i s^{m_i}で表されるものとします。
mNumRp, mNumSp, (Dct[i], mCqup[i], i=0, ..., mNumRp-1),
(mAlpha[i], mM[i], i=0, ..., mNumSp-1), mSlevel, mEps,
mFlag
これらの変数の意味はつぎのようです。
(Dct[i], mCqup[i], i=0, ..., mNumRp-1),
(mAlpha[i], mM[i], i=0, ..., mNumSp-1), mSlevel, mEps, mFlag
Back to the top of TramPowerLawStorage
流量(m^3/sec)を折れ線データで出力
Send<double>* mpSp;
Send<double>* mpSp;
Back to the top of TramPowerLawStorage
void Register_send_ports(void);
; 送信端子の登録
void Register_send_ports(void);
Back to the top of TramPowerLawStorage
Receive<double>* mpRp;
; 受信端子
Receive<double>* mpRp;
Back to the top of TramPowerLawStorage
void Register_receive_ports(void);
; 受信端子の登録
void Register_receive_ports(void);
Back to the top of TramPowerLawStorage
ofstream monitor_storage, monitor_deltaT;
ofstream monitor_storage, monitor_deltaT;
Back to the top of TramPowerLawStorage
データ読み取り部はつぎのようです。
void Set_parameter(FILE* fp);
for(int i = 0; i < mNumRp; i++) {
int dct;
fscanf(fp, "%d %lf", &dct, &mCqup[i]);
mpRp[i].Set_data_connection_type(dct);
}
for (int i = 0; i < mNumSp; i++) {
fscanf(fp, "%lf %d", &mAlpha[i], &mM[i]);
}
fscanf(fp, "%lf %lf", &mSlevel, &mEps);
fscanf(fp, "%d", &mFlag);
void Set_parameter(FILE* fp);
Back to the top of TramPowerLawStorage
void Set_initial_state(FILE* fp);
fscanf(fp, "%ld %lf %lf %ld", ¤t_time, &mS_crnt,
&mrPsum_last, &mDt_next);
void Set_initial_state(FILE* fp);
Back to the top of TramPowerLawStorage
Boolean Initial_output(void);
Back to the top of TramPowerLawStorage
time_t Calculate_time_step(void) ;
time_t Calculate_time_step(void) //; Work0の場合 ;
Function is currently defined inline.
Back to the top of TramPowerLawStorage
Boolean Can_you_calculate(void) ;
Boolean Can_you_calculate(void) ;
Function is currently defined inline.
Back to the top of TramPowerLawStorage
Boolean Calculate(void);
Back to the top of TramPowerLawStorage
Boolean Work(void);
Back to the top of TramPowerLawStorage
void Save_terminal_state(FILE* fp);
void Save_terminal_state(FILE* fp);
Back to the top of TramPowerLawStorage
Back to the top of TramPowerLawStorage
Back to the top of TramPowerLawStorage
Back to the top of TramPowerLawStorage
Report problems to jkotula@stratasys.com