Main Content

Simulink ブロック線図

Simulink® は、動的システムのためのグラフィカルなモデル化およびシミュレーション環境です。次のように、各ブロックがシステムの各部分を表すブロック線図を作成できます。ブロックは、物理コンポーネント、小規模なシステム、または関数を表すことができます。ブロックは、入出力の関係によって完全に特徴付けられます。以下の例について考えます。

  • 蛇口でバケツを一杯にする場合 — 水はある一定の流速でバケツに入り、バケツは重くなっていきます。バケツが 1 つのブロックとなり、流速はその入力、重量がその出力です。

  • メガホンを使って声を遠くまで聞こえるようにする場合 — メガホンの一方で発生した音が、他方で増幅されます。メガホンがブロックとなり、入力はソースにおける音波、出力は聞こえる音波です。

  • カートを押すと、それが動く場合 — カートをブロックとして、加える力を入力とし、カートの位置を出力とします。

ブロックの定義は、入力と出力が定義されて初めて完了するものであり、そのタスクはモデルの目標と関係しています。たとえば、モデル化の目標に位置が関係ないのであれば、出力はカートの速度にする方が自然かもしれません。

Simulink には、機能ごとにグループ化されたブロックの集合である、ブロック ライブラリが備わっています。たとえば、定数によって入力を増幅するメガホンをモデル化するには、Math Operations ライブラリの Gain ブロックを使用します。

Gain block

音波が入力としてメガホンに入り、同じ音波の増幅バージョンが出力としてメガホンから出てきます。

[>] 記号は、ブロックの入力と出力を表しており、他のブロックと接続することができます。

Sine waves appear to the right and to the left of a Gain block with a value of 2.

ブロックを他のブロックと接続することで、システムを構成し、より複雑な機能を表現できます。たとえば、オーディオ プレーヤーは、デジタル ファイルを音声に変換します。ストレージからデジタル表現が読み込まれ、数学的に解釈され、物理的に音声に変換されます。デジタル ファイルを処理して音波を計算するソフトウェアを 1 つのブロックとし、その音波を受け取って音声に変換するスピーカーを別の 1 つのブロックとすることができます。入力を生成するコンポーネントは他のブロックです。

上記のメガホンへの正弦波入力を Simulink でモデル化するには、Sine Wave ソースを含めます。

A Sine Wave block connects to a Gain block.

Simulink の基本関数は、時間経過に沿ったシステム コンポーネントの動作をシミュレートします。最も簡潔な形式では、このタスクにはクロックの維持、ブロックがシミュレートされる順序の決定およびブロック線図で計算された出力を次のブロックまで伝播することが含まれます。メガホンについて検討します。各タイム ステップにおいて、Simulink は、正弦波の値を計算し、その値をメガホンに伝播し、出力の値を計算しなければなりません。

The time t=1. Sine waves appear to the left and right of a Gain block with a value of 2. The portion of the sine wave that has been traversed when the simulation time reaches t=1 is highlighted in blue.

各タイム ステップにおいて、各ブロックは自らの入力から自らの出力を計算します。あるタイム ステップにおいて、ブロック線図のすべての信号が計算されると、Simulink は次のタイム ステップを (モデル コンフィギュレーションと数値ソルバー アルゴリズムに基づいて) 決定し、シミュレーション クロックを進めます。すると、各ブロックはその新しいタイム ステップについて、自らの出力を計算します。

The time is t=2. The portion of the sine wave that has been traversed when the simulation time reaches t=2 is highlighted in blue.

シミュレーションにおいて、時間は実際のクロックとは異なる進み方をします。そのタイム ステップが 1 秒未満であろうと数年間であろうと、各タイム ステップは、そのタイム ステップの計算を完了するために必要な時間をいくらでも取ることができます。

しばしばコンポーネントへの入力の効果が出力に即座に影響しないことがあります。たとえば、ヒーターをオンにしても温度はすぐに変化しません。その代わりに、このアクションは微分方程式に入力を提供します。温度の履歴 ("状態") も要因になります。シミュレーションで微分または差分方程式を解く必要があるときは、Simulink はメモリと数値ソルバーを使用してタイム ステップの状態値を計算します。

Simulink はデータを以下の 3 つのカテゴリで処理します。

  • 信号 — ブロックの入力と出力。シミュレーション中に計算される。

  • 状態 — ブロックのダイナミクスを表す内部値。シミュレーション中に計算される。

  • パラメーター — ブロックの動作に影響を与える値。ユーザーが制御する。

各タイム ステップで、Simulink は信号と状態について新しい値を計算します。一方、パラメーターはモデルを作成するときに指定し、時にはシミュレーションの実行中に変更することもできます。

関連するトピック