プログラミング/LabView/波形発振器 のバックアップ(No.1)

更新


波形発振器 VI を作る

プログラミング/LabView/スニペットライブラリ#y4f95948 のデザインをサブ VI に分割して、再利用性の高い波形発振器の実装を考えます。

サブ VI を切り出した正弦波発生器

filewavegen-sin.vi
wavegen-sin.png

切り出されたサブ VI

filewavegen-sampling-info.vi
wavegen-sampling-info.png

filewavegen-phase-generator.vi
wavegen-phase-generator.png

filewavegen-t0-generator.vi
wavegen-t0-generator.png

使用例

wavegen-sin-example.png

wavegen-sin-example-panel.png

もちろん、正弦波だけでよければ標準の波形生成コンポーネントがあるので、 それを使えばいいのですが、もっと凝ったものを作りたいとき、 上記の wavegen-sin.vi を改造すればいろいろできる、という話です。

安全な発振器

上記の発振器では amplitude や offset を変更すると出力が不連続に変化してしまいます。 出力電圧をつなぐ機器によってはそのような不連続な変化は装置に過負荷を与えてしまいます。

そこで、amplitude や offset、wave type、enable oscillation を変えても出力が不連続に変化することがない、 装置などに接続しても安全な発振器を作りました。

  • wave type で正弦波と三角波を選べます
  • offset に2次の iir フィルタを掛けています
  • amplitude は一定の速度で変化します
  • enable oscillation が on になったときは必ず位相ゼロから始まります
  • enable oscillation が off になると振幅が徐々に小さくなります
  • 振幅がゼロになる前に再び on にすると、振幅は元の値に徐々に戻ります
  • enable oscillation が on になる瞬間に wave type が読み取られます

filewavegen-safe.vi
wavegen-safe.png

動作確認用 VI

wavegen-safe-example.png

必要となるサブVI

fileiir-module.vi
iir-module.png
シンプルな1次の iir ローパスフィルタです。

fileslope-module.vi
slope-module.png
速度一定で入力値に追随するフィルタです。
入力値を追いかけている間 sloping が true になります。

filedetect-change.vi
detect-change.png
入力値が変化したら changed が true になります。

質問・コメント





Counter: 6274 (from 2010/06/03), today: 1, yesterday: 2