PIC でアクティブ消音制御というとほとんど絶望的に聞こえますが,できます. ミドルクラスの PIC としてメジャーな PIC16F877 を用いて,アクティブ消音制御を行いました. サンプリング周期 0.75msec で,24 次のコントローラを実装しました. ただし,実装するためには,工夫が必要です. ここではコントローラの演算量低減のため,コントローラの係数を有効桁 10 の 2 進数で表現し,浮動小数演算のかわりに整数演算を行っています.
&ref(/:PIC/result_PC.png,nolink)
#ref(): File not found: "result_PC.png]]" at page "[[エリアス名:/:PIC"
/:PIC/result_PC.png
[/:PIC/result_PC.png]
PC (RT-Linux 3.2) による制御結果 <br> <br>
<img src="PIC/result_PIC.png"><br> PIC (PIC16F877) による制御結果.ただし,騒音の信号 w は PC から発生させる <br> <br>
<img src="PIC/result.png"><br> PIC 単独で動作.騒音も PIC で生成する.騒音スイッチを手動で on/off. </center> <!-- 上記 2 つの実験結果では,外乱 w を発生するために同一の乱数の系列を用いています.--> <br> <br> 参考: <a href="PIC/">作業ディレクトリ</a> (平成19年度オープンハウスに使用)<br> 手順の説明が <a href="PIC/README">README</a>にあります. <br> <br>
PIC でアクティブ消音を実現するまで: <ul> <li>材料 <ul> <li> ANC基板の作成 <li> プログラムライタ,デバッガ,C コンパイラ </ul> <li> コントローラを求め,その状態空間実現を適当な正準形に変換する <li> PC で消音制御実験を行い,理想状況下での観測主力 y と制御入力 u およ
び状態変数 x を記録する
<li> 補償器を近似して,PIC 用 C コードを生成する. <li> PIC 用 C コードのシミュレーションを行い,実験結果と比較する.(スケーリング,有効桁を調整) <li> PIC 用 C コードをコンパイル,書き込む.(容量オーバーで書き込めない場合は,有効桁を下げる,プログラムを関数化して分割配置する等して対処) <li> PIC で消音制御実験 </ul>