このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
スロットル位置制御システムのソフトウェア アーキテクチャのモデル化
この例では、System Composer™ でスロットル位置制御システムのソフトウェア アーキテクチャを作成し、そのコンポーネントからの関数の実行順序をスケジュールしてシミュレートし、コードを生成する方法を説明します。
スロットル制御のコンポジション
この例では、System Composer で 6 つのコンポーネントを使用してスロットル位置制御システムのソフトウェア アーキテクチャをモデル化します。スロットル位置制御コンポーネントは、スロットル位置とペダル位置を読み取り、新しいスロットル位置を出力します。2 つのスロットル位置センサー コンポーネントはスロットルの現在の位置を提供し、ペダル位置センサー コンポーネントは適用されたペダル位置を提供します。コントローラー コンポーネントはこれらの信号を使用して、新しいスロットル位置をパーセント値として特定します。アクチュエータ コンポーネントは、そのパーセント値をハードウェアに適した値に変換します。
model = systemcomposer.openModel('ThrottleControlComposition');
アーキテクチャ レベルでのモデルのシミュレーション
ソフトウェア アーキテクチャ モデルをシミュレートします。
sim('ThrottleControlComposition');
コンポーネントからの関数のリストを表示し、それらの実行順序などのプロパティを編集するには、関数エディターを使用します。関数エディターを開くには、[モデル化] タブの [設計] セクションで [関数エディター] をクリックします。関数エディターの詳細については、Simulate and Deploy Software Architecturesを参照してください。
システム レベルでのモデルのシミュレーション
スロットル本体を含むスロットル制御システムをシミュレートするには、Model ブロックを使用してシステム モデルでソフトウェア アーキテクチャ モデルを参照します。ThrottleControlSystem
モデルには、ソフトウェア アーキテクチャの関数のより複雑なスケジューリングをモデル化するための Stateflow® Chart ブロックも含まれています。
この機能を使用するには Stateflow ライセンスが必要です。
open_system('ThrottleControlSystem');
プラントと Stateflow スケジューラを含むシステム モデルをシミュレートするには、次のコマンドを使用します。
sim('ThrottleControlSystem');
ソフトウェア アーキテクチャ内のコンポーネント タイプの表示
ソフトウェア アーキテクチャ内の一意のコンポーネント タイプを表示するには、クラス ダイアグラム ビューを作成してすべてのコンポーネントを追加します。クラス ダイアグラム ビューを作成するには、[モデル化] タブの [ビュー] セクションで [アーキテクチャ ビュー] をクリックし、[新規] をクリックして新しいクラス ダイアグラムを作成します。ビュー ギャラリーの [ダイアグラム] セクションから [クラス ダイアグラム] を選択します。リストから [コンポーネント フィルターの追加]、[すべてのコンポーネントを選択] を選択し、ソフトウェア アーキテクチャ内のすべてのコンポーネントをビューに追加します。
クラス ダイアグラムにメソッドを入力するには、ソフトウェア アーキテクチャ モデルをコンパイルする必要があります。モデルをコンパイルするには、[モデル化]、[モデルの更新] に移動します。
詳細については、Class Diagram View of Software Architecturesを参照してください。
コード生成
制御システムをターゲット ハードウェアに展開するコードを生成できます。コード生成には Embedded Coder® ライセンスが必要です。ThrottleControlComposition
モデルを開き、slbuild
コマンドを実行するか "Ctrl+B" を押してモデルをビルドし、コードを生成します。
slbuild('ThrottleControlComposition');
生成されたコードには、ソフトウェア アーキテクチャ内のコンポーネントの関数ごとにエントリポイント関数が含まれます。エクスポート関数モデル用のコード生成の詳細については、エクスポート関数モデルのコードの生成を参照してください。
Copyright 2020-2021 The MathWorks, Inc.
参考
systemcomposer.createModel
| createArchitectureModel
| createSimulinkBehavior
| increaseExecutionOrder
| decreaseExecutionOrder