デジタル鉄道模型フォーラムDCC・メルクリン等のデジタル鉄道模型の話題でコミュニケーションできる場です。登録・利用は無料です。
デスクトップステーション(DesktopStation)のページはこちら
・無料の日本型超高品質DCCサウンドデータをWebで配布中!
・鉄道模型をスマホで簡単制御!国産で革新的なコマンドステーション DSair2はこちらから。

2016年03月15日

BEMF用のCV定義

MECYさんが、BEMFの検証をしてくれました。どうもPIゲインの調整がよろしくなかったのが、動きの悪い要因だったようです。Pゲインは大きめにしないと上手く動かないようです。

ということで、とりあえず仮ぎめで以下のようにCVを定義します。ESUをベースにしてみました。

CV01 車両アドレス(1-100まで)
CV02 開始電圧。
CV10 BEMF Cutoff, 0dをセットするとBEMF無効、1d以上で停止と見なす検出値。モーターによって異なる
CV54 Pゲイン。8dで1倍。初期値は64d(8倍)。大きすると応答性が良くなるが、上げ過ぎるとガクガクする。
CV55 Iゲイン。32dで1sec。初期値は64d(2sec)。大きくすると応答性は悪くなるがなだらかに動く。

ゲインは、慣性に応じて値を調整します。慣性が大きい物は、ゲインを上げても動き初めはガクガクしません。慣性が小さいもの、軽いものは、ゲインがうまく調整されていないとガクガクしたりうまく走り始めなかったりします。

DSDCCLocDecoderR2.ZIP

・上記CVを追加
・動作未チェック
・動かす前にEEPROMを初期化するためにCV08に1を追加すること
・CV54で応答性、CV55でなだらかにします。

まだたたき台版で、いろいろな方のフィードバックをもらって調整をしていきます。ちなみに、コーディング規約は以下のとおり。気をつけると、見やすいコードになります。

・自動変数には頭に小文字のaをつける(自動変数とは関数内のみで使う変数。)
・グローバル変数には頭に小文字のgをつける(モジュール全体で使う変数。)
・演算子やカッコは半角スペースで空白を開けて見やすくする
・{}は、1行に1個。ifやforの行に続けてかかない。
・関数の引数には入出力の意味を書く。in, out。ポインタ型はinp, outp, iopなどと書く。
posted by yaasan at 21:08 | Comment(0) | 鉄道模型
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。