院長のメモ帖
2017年6月 1日 木曜日
Nゲージ用パワーパックの作成 その3 ポイントコントローラー
今回からハードウエアをデザインします。
まずは、ポイントコントローラーについて検討しました。
いろいろなところで製作記事が出ていますが、もっとも簡単な構造は、DC12V電源、トグルスイッチ(On-On)、電解コンデンサー3300㎌の三点があれば完成です。
トグルスイッチの切り替えに伴って、電流が発生しポイントのコイルを駆動、その後電解コンデンサーの充電または放電に伴い電流が止まるという超アナログな仕組みです。
単独で使うならこの図の回路で大丈夫なのですが、この回路を2個とマイコンを接続した回路を試作して実験したところ、何度もポイントを切り替えているうちに反応しなくなる現象に遭遇しました。
また、トグルスイッチS1が1-2で接続しているとき、メイン電源を切っても巨大な電解コンデンサーから回り電流が供給されるため、数秒間マイコンの電源が切れない状態になります。
そこで、上図のようにダイオードと抵抗を加えてみました。
D1は逆流防止用です。
これで回り電流を阻止できるはずです。
R1はポインタ未接続時にスイッチ気切替時の放充電経路としての狙いです。
C1とハイパスフィルタを形成していることにもなるのかな?
ポインタをつないであるときは、LRローパスフィルタになるのかな?
それとも、RLCフィルタになるんでしょうか。
アナログのことはよくわかりません(笑)
この回路では前述の2つの不具合が出なくなったので、これを採用することにしました。
まずは、ポイントコントローラーについて検討しました。
いろいろなところで製作記事が出ていますが、もっとも簡単な構造は、DC12V電源、トグルスイッチ(On-On)、電解コンデンサー3300㎌の三点があれば完成です。
トグルスイッチの切り替えに伴って、電流が発生しポイントのコイルを駆動、その後電解コンデンサーの充電または放電に伴い電流が止まるという超アナログな仕組みです。
単独で使うならこの図の回路で大丈夫なのですが、この回路を2個とマイコンを接続した回路を試作して実験したところ、何度もポイントを切り替えているうちに反応しなくなる現象に遭遇しました。
また、トグルスイッチS1が1-2で接続しているとき、メイン電源を切っても巨大な電解コンデンサーから回り電流が供給されるため、数秒間マイコンの電源が切れない状態になります。
そこで、上図のようにダイオードと抵抗を加えてみました。
D1は逆流防止用です。
これで回り電流を阻止できるはずです。
R1はポインタ未接続時にスイッチ気切替時の放充電経路としての狙いです。
C1とハイパスフィルタを形成していることにもなるのかな?
ポインタをつないであるときは、LRローパスフィルタになるのかな?
それとも、RLCフィルタになるんでしょうか。
アナログのことはよくわかりません(笑)
この回路では前述の2つの不具合が出なくなったので、これを採用することにしました。
2017年5月29日 月曜日
Nゲージ用パワーパックの作成 その2 仕様書
Nゲージ用ポイントコントローラー付きパワーパックの作成に当たり、次のように要求仕様を定めました。
走行関連
12V PWMで1系統の動力車を駆動
ロータリースイッチによる速度制御
3極トグルスイッチによる方向制御(前進・停止・後退)
出力ショート時の保護回路と警告LED点灯
常点灯機能
ポイントコントローラー
2系統のポイントのコントロール
1系統当たり複数個のポイントを駆動可能
2極トグルスイッチによる切替
ユーザーインターフェース
LCD(16桁*2桁)
パワーLED、ショート警告LED、常点灯LED
速度調節用ロータリースイッチ(ロータリーエンコーダー)
緊急停止プッシュスイッチ(ローターリーエンコーダー組込プッシュスイッチ)
方向切替3極トグルスイッチ
ポイント用トグルスイッチ 2ケ
その他
電源スイッチ
12Vのパススルー出力
TomixのDCフィーダーN、電動ポイントNケーブルが直接接続できるよう出力はピンヘッダを使用。
以上の仕様から、それほどIOピン数はいらなさそうですので、マイコン部にはArduino Nano互換機を使用することにしました。
回路はBタイプのユニバーサル基板基板で収まりそうです。
これらを適当なサイズのタカチのボックスに納めることにしました。
走行関連
12V PWMで1系統の動力車を駆動
ロータリースイッチによる速度制御
3極トグルスイッチによる方向制御(前進・停止・後退)
出力ショート時の保護回路と警告LED点灯
常点灯機能
ポイントコントローラー
2系統のポイントのコントロール
1系統当たり複数個のポイントを駆動可能
2極トグルスイッチによる切替
ユーザーインターフェース
LCD(16桁*2桁)
パワーLED、ショート警告LED、常点灯LED
速度調節用ロータリースイッチ(ロータリーエンコーダー)
緊急停止プッシュスイッチ(ローターリーエンコーダー組込プッシュスイッチ)
方向切替3極トグルスイッチ
ポイント用トグルスイッチ 2ケ
その他
電源スイッチ
12Vのパススルー出力
TomixのDCフィーダーN、電動ポイントNケーブルが直接接続できるよう出力はピンヘッダを使用。
以上の仕様から、それほどIOピン数はいらなさそうですので、マイコン部にはArduino Nano互換機を使用することにしました。
回路はBタイプのユニバーサル基板基板で収まりそうです。
これらを適当なサイズのタカチのボックスに納めることにしました。
2017年5月21日 日曜日
Nゲージ用パワーパックの作成 その1
最近、Nゲージをぼちぼちやってます。先日もBトレインショーティの車両を購入して、Nゲージ化して遊んでます。
ただ、普通のパワーパックを使うとちょっと早すぎて、低速コントロールが難しいです。
またマックスパワーで走行するとこれはもう完全な暴走電車(^-^;
そこで、Bトレ用に低速走行に重点を置いたパワーコントローラーを自作することにしました。
いろいろ調べた結果、要するにDC12VをPWMでモーター制御すればいいわけですね。
PWM方式を採用することで、手持ちのパワーパックにはない常点灯機能も簡単に付加できます。
まあ、小さなBトレ車両に照明を組み込むのはとっても大変そうなので、現時点ではいらない機能ですが...
ついでに、2系統のポイントスイッチも加えて一体型のパワーパック&ポイントスイッチを自作しちゃいました。
次回以降で、制作内容を少しづつアップしてみます。
ただ、普通のパワーパックを使うとちょっと早すぎて、低速コントロールが難しいです。
またマックスパワーで走行するとこれはもう完全な暴走電車(^-^;
そこで、Bトレ用に低速走行に重点を置いたパワーコントローラーを自作することにしました。
いろいろ調べた結果、要するにDC12VをPWMでモーター制御すればいいわけですね。
PWM方式を採用することで、手持ちのパワーパックにはない常点灯機能も簡単に付加できます。
まあ、小さなBトレ車両に照明を組み込むのはとっても大変そうなので、現時点ではいらない機能ですが...
ついでに、2系統のポイントスイッチも加えて一体型のパワーパック&ポイントスイッチを自作しちゃいました。
次回以降で、制作内容を少しづつアップしてみます。
2017年2月 8日 水曜日
10Giba-BaseTの衝撃
非クラスタのHyperVホスト間で、ローカルディスクを使ってライブマイグレーションすると、ストレージの移動にかなり時間を使います。また、1Giga-BasetTの帯域を使いきってしまうので、ネットワーク全体へのインパクトも大きいです。
以前から10Giga-BaseTへの移行を検討していましたが、最近NICがかなり安くなってきましたので、ついにホストサーバーに10Giga-BaseTのNICを装着することにしました。
購入したのはIntelのX540-T2ですが、Amazonで22,000円!以前の半額です。スイッチもBuaffloの8ポートなら80,000円切っています。少し検討した結果、今回は3つの2ポートNICのみ購入して、3台のサーバーにスイッチレスで直接たすき掛けでつなぐことにしました。これで、Cat6aケーブル3本とNIC3つなので約70,000円の投資です。
設定が面倒かな、と思ってましたが、新しいNICに静的IPアドレスを設定し、HOSTS ファイルを編集するだけで優先的に10Giga使うようになりました。この辺の話はまた改めてアップします。
せっかくなのでiperf.exeでネットワーク速度を調べてみます。
まず、今までの1Giga-BaseT経由ですと
[ ID] Interval Transfer Bandwidth
[300] 0.0-10.0 sec 1.11 GBytes 949 Mbits/sec
理論値の95%ですから、優秀は優秀ですね。
続いて新設の10Giga-BaseTポート間では
[ ID] Interval Transfer Bandwidth
[424] 0.0-10.0 sec 11.5 GBytes 9.85 Gbits/sec
キッチリ10倍の速度になりました。
体感的にも、今まで10分前後かかっていたVMライブマイグレーションが5分以下で倍ぐらいは速く終わるようになり大満足です。
現在のところホストサーバー間の通信のみ10Giga化ですが、スイッチがもう少し安くなってきたらVMネットワークも10Giga-baseTに移行したいですね。
以前から10Giga-BaseTへの移行を検討していましたが、最近NICがかなり安くなってきましたので、ついにホストサーバーに10Giga-BaseTのNICを装着することにしました。
購入したのはIntelのX540-T2ですが、Amazonで22,000円!以前の半額です。スイッチもBuaffloの8ポートなら80,000円切っています。少し検討した結果、今回は3つの2ポートNICのみ購入して、3台のサーバーにスイッチレスで直接たすき掛けでつなぐことにしました。これで、Cat6aケーブル3本とNIC3つなので約70,000円の投資です。
設定が面倒かな、と思ってましたが、新しいNICに静的IPアドレスを設定し、HOSTS ファイルを編集するだけで優先的に10Giga使うようになりました。この辺の話はまた改めてアップします。
せっかくなのでiperf.exeでネットワーク速度を調べてみます。
まず、今までの1Giga-BaseT経由ですと
[ ID] Interval Transfer Bandwidth
[300] 0.0-10.0 sec 1.11 GBytes 949 Mbits/sec
理論値の95%ですから、優秀は優秀ですね。
続いて新設の10Giga-BaseTポート間では
[ ID] Interval Transfer Bandwidth
[424] 0.0-10.0 sec 11.5 GBytes 9.85 Gbits/sec
キッチリ10倍の速度になりました。
体感的にも、今まで10分前後かかっていたVMライブマイグレーションが5分以下で倍ぐらいは速く終わるようになり大満足です。
現在のところホストサーバー間の通信のみ10Giga化ですが、スイッチがもう少し安くなってきたらVMネットワークも10Giga-baseTに移行したいですね。
2016年8月 3日 水曜日
AC位相制御の電力値の算出
前回の記事の数式の値と、ワットチェッカーを使って位相制御のワット数を測定した所、まったくといっていいくらい相関していませんでした。
数式をああでもない、こうでもないといじくりまわした結果、位相制御時のAC電力値の求め方からして間違っているので、そのごの計算式すべてがほぼ意味がないことが判明いたしました(泣)。
そこで、今回はAC位相制御の電力値を求める式を正しく考察してみます。
位相制御は、AC電流の正弦波波形の一部をカットすることで、実質的な電力値を制限することができます。1波形(交流サイクルの半サイクル分)の長さを1(実際の値は60Hzの西日本では1/120秒、東日本の50Hzでは1/100秒)とし、位相制御で実際に流す期間をt (0≦t≦1)、AC電圧の最大値をV0(日本の商用電源では約141V)、電流の最大値をI0とすると、
電力 = ∫ItVt
= k ∫0t I0 sin(ωt) V0 sin(ωt)
となり、I0 = V0 / R やらなんやらの係数を全部Kということでまとめ、ωt = πt も適用すると、
電力W = K ∫0t sin2πt
= K [ 1 - cos2πt ] 0t
= t - sin(2πt) / 2π
と最後にKを外すと、0≦W≦1 に正規化されるので、これに最大電力をかければ現在の電力が求めることができるはずです。
AVR-C言語風に記述すると、
double w = t - sin(2.0 * PI * t) / 2 / PI;
となります。
しかしながら、この式をtについて解く方法がわかりません。
わかったらまた記事を書きます。
数式をああでもない、こうでもないといじくりまわした結果、位相制御時のAC電力値の求め方からして間違っているので、そのごの計算式すべてがほぼ意味がないことが判明いたしました(泣)。
そこで、今回はAC位相制御の電力値を求める式を正しく考察してみます。
位相制御は、AC電流の正弦波波形の一部をカットすることで、実質的な電力値を制限することができます。1波形(交流サイクルの半サイクル分)の長さを1(実際の値は60Hzの西日本では1/120秒、東日本の50Hzでは1/100秒)とし、位相制御で実際に流す期間をt (0≦t≦1)、AC電圧の最大値をV0(日本の商用電源では約141V)、電流の最大値をI0とすると、
電力 = ∫ItVt
= k ∫0t I0 sin(ωt) V0 sin(ωt)
となり、I0 = V0 / R やらなんやらの係数を全部Kということでまとめ、ωt = πt も適用すると、
電力W = K ∫0t sin2πt
= K [ 1 - cos2πt ] 0t
= t - sin(2πt) / 2π
と最後にKを外すと、0≦W≦1 に正規化されるので、これに最大電力をかければ現在の電力が求めることができるはずです。
AVR-C言語風に記述すると、
double w = t - sin(2.0 * PI * t) / 2 / PI;
となります。
しかしながら、この式をtについて解く方法がわかりません。
わかったらまた記事を書きます。