ここから本文です
〆鯖
鉄道やらBVEやら

書庫過去の投稿日別表示

全1ページ

[1]

イメージ 1
DD51ディーゼル機関車です。
最近ちまちまと作ってます。
国鉄形は資料が手に入りやすく、中身も単純なのでどこまでも作りこめて幸せです。
ところで、
BVEは機関車は主眼において設計されていないために、
機関車の特にブレーキに関してはどうしてもうまく再現する方法がありませんでした。
そのためこの作品ではブレーキ関係の計算はプラグイン側で行い、本体には電気指令式ブレーキとして出力する方法をとっています。
客車のブレーキ圧と機関車のブレーキ圧を別に算出した上で、
客車と機関車のブレーキ力の比から、編成全体のブレーキ圧として本体に出力することであくまで”もどき”ですが、単弁、自弁両方の操作が可能です。
汎用性のある方法なので、再現したいブレーキ方式がない場合の参考として一例を紹介しておきます。
イメージ 2



最も単純な直通ブレーキの図です。
元空気ダメ、ブレーキシリンダと2つのバルブから構成されます。
ブレーキをかける時はバルブ2は閉じたままで1のバルブを開放し、緩めるときはバルブ1を閉じて2のバルブを開放します。両方閉じれば重なりです。
これを再現する一例です,

int V_1;//バルブ1(ブレーキ)
int V_2;//バルブ2(ユルメ)
double Q_1;//流量(バルブ1)(m^3)
double Q_2;//流量(バルブ2)(m^3)
const double K_1= 1.0;//流量係数(バルブ1)
const double K_2 = 1.0;//流量係数(バルブ2)
const double MR_volume = 1.0;//元空気ダメ容量(m^3)
const double BC_volume = 0.1;//ブレーキシリンダ容量(m^3)
double MR_Press;//元空気ダメ圧力(pa)
double BC_Press;//ブレーキシリンダ圧力(pa)
double delta_MR;//元空気ダメ圧力変化(pa)
double delta_BC;//ブレーキシリンダ圧力変化(pa)
double pre_MR_Press;//前フレームの元空気ダメ圧力(pa)
double pre_BC_Press;//前フレームのブレーキシリンダ圧力(pa)
int brake_notch;//本体からのブレーキノッチ
int time;//刻み時刻(1/1000s)
int  pre_time;//前フレーム刻み時刻(1/1000s)

これらを定義した上で、elapse内で計算します。

if(pre_MR_Press >= pre_BC_Press)
{
Q_1 = (K_1* sqrt(pre_MR_Press - pre_BC_Press)) * (time - pre_time) / 1000;
}else
{
 Q1 = (K_1* sqrt(pre_BC_Press - pre_MR_Press)) * (time - pre_time) / 1000
}
if(pre_BC_Press > 0)
{
Q_2 = (K_2* sqrt(pre_BC_Press - 0)) * (time - pre_time) / 1000;
}


if(brake_notch == 0)//ユルメ
{
V_1 = 0;
V_2 = 1;
}
if(brake_notch == 1)//重り
{
V_1 = 0;
V_2 = 0;
}
if(brake_notch == 2)//ブレーキ
{
V_1 =1;
V_2 = 0;
}

delta_MR = 0;
delta_BC =0;

if(V_1 == 1)//バルブ1開
{
delta_MR +=(pre_MR_Press * MR_volume - Q_1) / MR_volume - pre_MR_Press;//MR減圧
delta_BC += (pre_BC_Press * BC_volume + Q_1) / BC_volume - pre_MR_Press;//BC加圧
}

if(V_2 ==1)//バルブ2開
{
delta_BC += (pre_BC_Press * BC_volume - Q_2) / BC_volume - pre_MR_Press;//BC減圧
}

BC_Press = pre_BC_Press + delta_BC;//計算した圧力を加える
MR_Press = pre_MR_Press + delta_MR;//計算した圧力を加える
pre_MR_Press = MR_Press;
pre_BC_Press = BC_Press;
本体のパラメータで電気指令ブレーキを数百程度に当分して、BC_Pressの値を出力すれば良いわけです。
ブレーキハンドルの位置に対応したバルブ状態と空気ダメの組み合わせで独自のブレーキシステムが作成できます。
ちなみにDD51の場合、いまのところ機関車本体で約20のバルブ、4つの空気ダメおよび空気管を用いて自動ブレーキを再現しています。

開くトラックバック(0)

全1ページ

[1]

本文はここまでですこのページの先頭へ
みんなの更新記事