Simulink

主な機能

  • 階層的なブロック線図を作成および管理するためのグラフィカル エディター
  • 連続時間システムと離散時間システムをモデル化するためのあらかじめ定義されたブロック ライブラリ
  • 固定ステップと可変ステップの ODE ソルバーを備えたシミュレーション エンジン
  • シミュレーション結果を表示するためのスコープとデータ表示
  • モデル ファイルとデータを管理するためのプロジェクトとデータ管理ツール
  • モデル アーキテクチャを調整し、シミュレーション速度を上げるためのモデル解析ツール
  • MATLAB アルゴリズムをモデルにインポートするための MATLAB Function ブロック
  • C および C++コードをモデルにインポートするためのレガシ コード ツール

モデルの作成

Simulink® には一連のあらかじめ定義されたブロックが用意されており、これらのブロックを組み合わせてシステムの詳細なブロック線図を作成できます。階層的なモデルの作成、データ管理、サブシステムのカスタマイズのためのツールを使用して、複雑なシステムを簡潔かつ正確に表現することが可能です。

ブロックの選択

Simulink ライブラリ ブラウザーには、システムのモデル化に広く使用されるブロックのライブラリが含まれています。以下はその例です。

  • Integration や Unit Delay などの連続および離散のダイナミクス ブロック
  • Sum、Product、Lookup Table などのアルゴリズム ブロック
  • Mux、Switch、Bus Selector などの構造ブロック

これらのブロックを使用するか、モデルに手書きの MATLAB®、C、Fortran または Ada のコードを組み込んで、カスタマイズした関数を作成することができます。

カスタム ブロックは Simulink ライブラリ ブラウザー内の独自のライブラリに保存することができます。

Simulink のアドオン製品では、航空宇宙、通信、PID 制御、制御ロジック、信号処理、映像処理および画像処理などのアプリケーションに特化したコンポーネントを組み込むことができます。また、機械、電気、油圧のコンポーネントをもつ物理システムをモデル化するためのアドオン製品の利用も可能です。

Simulink ライブラリ ブラウザー。
拡大する Simulink ライブラリ ブラウザー。

Simulink モデルへの MATLAB アルゴリズムの組み込み
MATLAB® Function ブロックを使用して、MATLAB コードを Simulink® モデルに組み込みます。

モデルの作成と編集

モデルを作成するには、Simulink ライブラリ ブラウザーから Simulink エディターにブロックをドラッグします。次にこれらのブロックを信号線でつないで、システム コンポーネント間の数学的関係を構築します。スマート ガイドやスマートな信号の経路指定などのグラフィカルな書式設定ツールは、モデルを作成しながらモデルの外観をコントロールするのに役立ちます。ブロックと信号のグループをサブシステムとして 1 つの信号ブロックにカプセル化することで階層を追加することができます。

Simulink エディターでは、モデル内を参照および使用する操作をすべて制御することができます。たとえば、エディターとコンテキスト メニューへのコマンドやサブメニューの追加が可能です。さらに、サブシステムの内容を非表示にし、サブシステムに独自のアイコンとパラメーター ダイアログ ボックスを提供するマスクを使用することで、サブシステムまたはモデルにカスタム インターフェイスを追加することもできます。

Simulink 入門
モデルを構築してシミュレーションを行います。

サブシステムの作成とマスク
サブシステムを使用して階層を作成し、システムの挙動をモジュール化します。

モデル階層のナビゲーション

Simulink のエクスプローラー バーとモデル ブラウザーは、モデルのナビゲーションに役立ちます。エクスプローラー バーには現在表示している階層のレベルが表示され、階層内を上下に移動することができます。モデル ブラウザーにはモデルの階層全体のツリー ビューが表示され、エクスプローラー バーと同様に階層のレベルを移動するために使用することが可能です。

階層モデルのナビゲーション
エクスプローラー バー、タブ付きのウィンドウ、モデル ブラウザーで階層状のモデルを簡単にナビゲーションできます。

信号とパラメーターの管理

Simulink モデルには信号とパラメーターの両方が含まれています。信号は時変データで、ブロックをつなぐ線で表現されます。パラメーターはシステムのダイナミクスと動作を定義する係数です。

Simulink では、以下の信号とパラメーターの属性を決定することができます。

  • データ型 — 単精度、倍精度、符号付きまたは符号なしの 8、16 または 32 ビットの整数、ブール型、列挙型、固定小数点
  • 次元 — スカラー、ベクトル、行列、N 次元または可変サイズの配列
  • 実数/複素数 — 実数値または複素数値
  • 範囲の最大値/最小値、初期値、工学単位

データ属性を指定しない場合は、伝播アルゴリズムを使用して Simulink によって自動的に属性が決定され、データの整合性を保証するために整合性チェックが実行されます。

これらの信号とパラメーターの属性は、モデル内で、または個別のデータ ディクショナリ内で指定することができます。その後モデル エクスプローラーを使用して、モデル全体をナビゲーションせずにデータを整理、表示、変更、追加することが可能です。

ブロックのダイアログ ボックスの [信号属性] タブ。
拡大する ブロックのダイアログ ボックスの [信号属性] タブ
Simulink モデル エクスプローラー。
拡大する Simulink モデル エクスプローラー。

モデルのシミュレーション

システムの動的な動作のシミュレーションとシミュレーションの実行結果を表示することができます。高速で正確にシミュレーションするために、Simulink には固定ステップと可変ステップの ODE ソルバー、グラフィカル デバッガーおよびモデル プロファイラーが装備されています。

ソルバーの選択

ソルバーは数値積分アルゴリズムで、モデルに含まれる情報を使用してシステムの経時的なダイナミクスを計算します。Simulink には、任意のサイズの連続時間 (アナログ)、離散時間 (デジタル)、ハイブリッド (混合信号) およびマルチレート システムを含め、システムの広範囲のシミュレーションをサポートするソルバーが用意されています。

これらのソルバーは、スティッフなシステムや不連続なシステムのシミュレーションが可能です。ソルバー タイプやプロパティ、シミュレーションの開始時間と終了時間、シミュレーション データの読み込みまたは保存などの、シミュレーション オプションを指定することができます。さらに、最適化や診断情報を設定したり、さまざまな組み合わせのオプションをモデルとともに保存することも可能です。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペイン。
拡大する [コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペイン。

シミュレーションの実行

シミュレーションは、Simulink エディターから対話的に、または MATLAB コマンド ラインから体系的に実行することができます。次のシミュレーション モードが使用可能です。

  • ノーマル モード (既定の設定): モデルをインタプリタ―でシミュレーションします。
  • アクセラレータ モード: コンパイルしたターゲット コードを作成および実行することでシミュレーションのパフォーマンスを向上させると同時に、シミュレーション中にモデルのパラメーターを柔軟に変更します。
  • ラピッド アクセラレータ モード: Simulink 外部の 2 つめの演算処理コア上で実行できる実行可能ファイルを作成することで、アクセラレータ モードよりも高速にモデルをシミュレーションします。

複数のシミュレーションの実行にかかる時間を短縮するために、これらのシミュレーションをマルチコア コンピューターまたはコンピューター クラスター上で並列に実行することができます。

複数の Simulink シミュレーションの並列実行の紹介
parfor を使用して複数のシミュレーションの実行を加速高速化します。

シミュレーション結果の解析

シミュレーションの実行後、MATLAB と Simulink でシミュレーション結果を解析することができます。Simulink にはデバッグ ツールが用意されており、シミュレーションの動作を理解するのに役立ちます。

シミュレーション結果の表示

Simulink に用意されている Display と Scope で信号を表示することで、シミュレーションの動作を可視化することができます。また、シミュレーション データ インスペクターでシミュレーション データを表示して、異なるシミュレーションの実行から複数の信号を比較することも可能です。

または、MATLAB を使用してカスタムの HMI ディスプレイを作成するか、MATLAB ワークスペースに信号のログを記録し、MATLAB アルゴリズムと可視化ツールを使用してデータを表示および解析することができます。

シミュレーション結果の可視化
スコープとビューアーを使用してシミュレーション結果を可視化します。

シミュレーションのデバッグ

Simulink ではシミュレーション ステッパーを含むデバッグ機能がサポートされています。シミュレーション ステッパーではシミュレーションをステップごとに前進または後退させて、スコープでデータを表示したり、システムの状態がいつどのように変化するかを検証したりすることが可能です。

Simulink のデバッガーでは、シミュレーションを 1 度に1 メソッドずつ前進させて、そのメソッドの実行結果を調べます。モデルをシミュレーションしながら、Simulink エディター内のブロックの状態、ブロックの入出力およびブロック メソッドの実行に関する情報を表示することができます。

シミュレーションの巻き戻し
  シミュレーションをステップごとに前進または後退させて、システムの動作を解析できます。

プロジェクトの管理

Simulink にはプロジェクトに関連するファイル、コンポーネントおよび大量のデータを管理するためのツールが用意されています。

プロジェクト関連ファイルの管理

Simulink プロジェクトは、プロジェクトのファイルを管理し、ソース管理ソフトウェアに接続するための対話型ツールです。Simulink プロジェクト ツールでは、チーム間のコラボレーションを促進するために次の操作を実行することができます。

  • すべてのプロジェクト関連ファイルの検索
  • 一般的な操作へのアクセスやプロジェクトの初期化と停止を可能にするショートカットの作成
  • 相互評価のために変更されたファイルのラベル付け
  • 外部のソース管理ツールである Apache™ Subversion® (SVN) を使用してプロジェクトを共有

Simulink プロジェクトでは、ソース管理、バージョン管理、ソフトウェア構成管理 (SCM)、製品ライフサイクル管理 (PLM) およびアプリケーション ライフサイクル管理 (ALM) のためのツールに接続することができます。また、Simulink プロジェクトのソース管理 SDK を使用して、サードパーティのソース管理ツール用のカスタム アダプターの作成も可能です。

Simulink プロジェクトでチーム コラボレーション
Simulink プロジェクトによるチーム コラボレーションの概要をご紹介します。

設計コンポーネントの作成

Simulink を使用することで、コンポーネントベースのモデル化とモジュール式の設計が容易になります。モデルを設計コンポーネントに区分けしてから、各コンポーネントを別々にモデル化、シミュレーション、検証を行います。さらに、コンポーネントをサブシステムとしてライブラリに保存したり、モデル参照を使用して別々のモデルとして保存したりすることが可能です。こうすることで、各チーム メンバーが並列にこれらのコンポーネントで作業を行うことができます。

Model Variants と Variant Subsystem を使用して同一モデル内の設計バリエーションを管理することができます。この機能では 1 つのモデルで一連の設計を表現できるため、コンポーネントを共有する設計の作成と管理が簡単になります。

モデル参照を使用したモジュール式設計
コンポーネントベース モデリングのためのモデル参照の値を見つけます。

Variant Subsystem の使用
Variant Subsystem を使用して設計の選択肢を切り替えます。

大規模データの管理

Simulink ではモデルで大規模な信号データを管理するために、バス信号が提供されています。バス信号は複数の信号を 1 つのオブジェクトに統合できるため、これらの信号を別のブロックに簡単に接続することができます。さらに、バスの配列を定義して、バス オブジェクトのグループを 1 つのパッケージで管理することもできます。

モデル エクスプローラーは、Simulink モデルでデータを整理、表示、変更、追加するためのグラフィカルなデータ ディクショナリ ツールです。モデル エクスプローラーでは、次の操作を実行することができます。

  • インターフェイスをカスタマイズして参照するデータとプロパティのみを表示する
  • データのスコープを制御してそのデータにアクセスしているコンポーネントを定義する

ハードウェアへの接続

ラピッド プロトタイピング、ハードウェアインザループ (HIL) シミュレーション、組み込みシステム上での配布のために、Simulink モデルをハードウェアに接続することができます。

ハードウェア上でのシミュレーションの実行

Simulink では Arduino®、LEGO® MINDSTORMS® NXT、PandaBoard、BeagleBoard などの低価格ターゲット ハードウェア上でモデルのプロトタイピング、テスト、実行を行うための組み込みサポートが提供されています。制御システム、ロボット工学、オーディオ処理およびコンピューター ビジョンのアプリケーションのためのアルゴリズムを Simulink で設計および確認して、リアルタイムで実行することが可能です。 

Simulink Desktop Real-Time を使用すると、Simulink モデルを Microsoft® Windows® PC 上でリアリタイムに実行し、さまざまな I/O ボードに接続してリアルタイム システムを作成および制御することができます。Simulink Real-Time™ を使用すると、HIL シミュレーション、ラピッド コントロール プロトタイピングおよびその他のリアルタイム テスト アプリケーションなどのターゲット コンピューター上でモデルをリアルタイムで実行することが可能です。利用できるターゲット コンピューター ハードウェアについては xPC Target Turnkey を参照してください。 

ターゲット ハードウェアをサポートする Simulink のご紹介
Simulink は、Arduino、LEGO MINDSTORMS NXT、および Raspberry Pi などの、低価格ターゲット ハードウェア上でモデルをプロトタイピング、テスト、実行することが可能です。

Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

コードの生成

Simulink モデルを構成して、コードを生成することができます。Simulink をアドオンのコード生成製品と併用することで、C および C++、 HDL または PLC のコードをモデルから直接生成することが可能です。 

Simulink  エキスパートに問い合わせる

 に関するニュース Simulink

MATLAB および Simulink、国際宇宙ステーションの NASA SPHERES プロジェクトに導入 (press release)

本日 MathWorks は、MATLAB および Simulink が NASA の Synchronized Position Hold Engage and Reorient Experimental Satellites (SPHERES) プロジェクトの一環として国際宇宙ステーションに導入されたことを発表しました。

詳細はこちら

Simulink  コミュニティの最新情報