Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Stateflow での DC モーターのモデル化とデバッグ

この例は、永久磁石の DC モーターのモデルを示しています。DC モーターのモード ロジックとダイナミクスは、両方とも Stateflow® を使用してモデル化されます。

DC モーターのステート チャートは、powerOn と powerOff の 2 つのスーパーステートで構成されています。モーターの電源をオンにすると up または down の 2 つのサブステートのいずれかになり、移動方向を示します。

メモ: これは単純化した DC モーターのモデルです。Simscape™ を使用するとより精緻な DC モーターのモデルを作成できます。Simscape™ は、機械コンポーネント、油圧コンポーネント、電気コンポーネントなどを伴うマルチドメインの物理システムをモデル化しシミュレートするためのツールを使って、Simulink® の機能を拡張します。

モーターのダイナミクスはグラフィカル関数でステート チャートに直接定義され、モーターの状態に応じて変化します。たとえば、モーターが powerOff ステートの場合、印加電圧はゼロになります。powerOn ステートのときは、印加電圧はモーターの方向に応じて正か負のいずれかです。

確認のため、永久磁石の DC モーターを定義する微分方程式は次のようになります。

$$ \frac{di}{dt} = \frac{v_{app}(t) - R \cdot i(t) - K_b \cdot \omega(t)}{L} $$

$$ \frac{d\omega}{dt} = \frac{K_m \cdot i(t) - K_f \cdot \omega(t)}{J} $$

ここで、

$$i = \mbox{current}$$

$$R = \mbox{resistance}$$

$$L = \mbox{inductance}$$

$$K_b = \mbox{EMF constant}$$

$$\omega = \mbox{rotational speed of motor}$$

$$v_{app} = \mbox{applied voltage}$$

$$K_f = \mbox{damping constant}$$

$$K_m = \mbox{torque constant}$$

アクティブ ステートの出力の有効化

アクティブ ステートの出力の監視を有効にするには、まず powerOn ステートを選択します。次に、[シミュレーション] タブで [子アクティビティのログ記録] をクリックします。さらに、[シンボル] ペインで信号 omega_out を選択します。プロパティ インスペクターを開きます。[ログ] で [信号データのログ] を選択します。

シミュレーションを実行します。

[シミュレーション] タブの [結果の確認] セクションにある [データ インスペクター] ボタンが強調表示され、表示できるログ記録された信号があること示します。[データ インスペクター] ボタンをクリックして、シミュレーション データを表示します。

このプロットのオレンジ色のデータは、アクティブになっている powerOn の子ステートを示し、紫色のデータは omega_out の値を示します。

アクティブ ステートの出力を使用したデバッグ

アクティブ ステートの出力を使用して、Stateflow チャートのデバッグに役立てることもできます。例のこの部分では、down ステート内の Vin の前にある負の符号を削除して、Stateflow チャートにエラーを導入します。

シミュレーションを実行します。

ここでも、ログ記録された新しいデータがあることが [データ インスペクター] ボタンにより示されます。データ インスペクターを開いて、信号を確認します。

このプロットでは、Run 2 の omega_out のデータが、Run 1 とは大幅に異なることがわかります。この情報により、モデルには omega_out データに直接関連するエラーのあることがわかります。

関連するトピック