バンバン温度制御システムのモデル化
この例では、ボイラーの温度を制御するバンバン制御システムをモデル化する方法を説明します。モデルには 2 つのコンポーネントがあります。
Boiler Plant Model。ボイラーのサブシステムをモデル化する Simulink® サブシステムです。
Bang-Bang Controller。バンバン制御ロジックを実装する Stateflow® チャートです。
このチャートでは以下を使用します。
バンバン サイクルのタイミングを実装するための時相論理
ボイラーの温度を表す 8 ビットの固定小数点データ
after
演算子を使用した制御ロジックの実装
Bang-Bang Controller はボイラーをオンまたはオフにするタイミングを判定します。最初は、ボイラーはオフになっています。40 秒後、ボイラーが冷たいと、ボイラーはオンに切り替えられます。20 秒後、ボイラーはオフに切り替えられてバンバン制御サイクルが繰り返されます。
On
ステートと Off
ステート間の遷移を制御するため、チャートは絶対時間の時相論理演算子 after
を呼び出します。たとえば、遷移ラベル after(20,sec)
は、On
ステートが 20 秒間アクティブになった後、On
から Off
への遷移をトリガーします。ラベル after(40,sec)[cold()]
は、Off
ステートが 40 秒間アクティブになった後で関数 cold
が true
を返した場合、Off
から On
への遷移を発生させます。
Off
ステートは時相論理を使用してステータス LED の制御も行います。Simulink モデル内の Stateflow チャートでの絶対時間の時相論理では、演算子 every
はサポートされないため、ステートは自己ループ遷移のあるサブステート Flash
を使用して LED の操作を実装します。遷移ラベル after(5,sec)
は、サブステートの entry アクションをトリガーし、LED を 5 秒ごとに点滅させます。
8 ビット プロセッサでの浮動小数点データの処理
Boiler Plant Model サブシステムは、加熱または冷却の期間中にボイラーの温度反応のシミュレーションを実行します。
Bang-Bang Controller チャートの出力に応じて、サブシステムは以前のボイラー温度に温度の増分を加算または減算し (加熱の場合は +1、冷却の場合は -0.1)、結果を Digital Thermometer サブシステムに渡します。
Digital Thermometer サブシステムは結果の温度を 8 ビット固定小数点表現に変換します。変換は 3 ステップで行われます。
Sensor ブロックは、入力のボイラー温度 を中間出力のアナログ電圧 に変換します。
Analog-to-Digital Converter (ADC) サブシステムは、Sensor ブロックからのアナログ電圧に を乗算し、負方向の整数に丸めてから、結果を最大で 255 (符号なし 8 ビット整数の最大値) に制限することで、電圧をデジタル化します。サブシステムは、量子化整数 を出力します。
Linear Fixed-Point Conversion ブロックは、Sensor ブロックと ADC ブロックの組み合わせ伝達関数を反転して、ボイラー温度を勾配 、バイアス をもつ固定小数点数としてエンコードします。これらの固定小数点パラメーターは、8 ビット量子化整数 をデジタル コード化された温度 に変換します。
Bang-Bang Controller チャートはこのデジタル コード化された温度を受け取り、これを符号なし 8 ビット固定小数点データ temp
として解釈します。チャートはこの温度データを、明示的な変換をせずに 8 ビット環境で処理します。
シミュレーション結果の確認
シミュレーション後、Simulink スコープにはボイラーが約 450 秒 (7.5 分) 後に摂氏 20 度に達することが表示されます。バンバン制御ロジックは、残りのシミュレーションにおいてこの温度を効果的に維持しています。
参考
after
| every
| Data Type Conversion (Simulink)