ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simulink エディターでのモデルの構築と編集

この例では、モデルの作成、モデルへのブロックの追加、ブロックの接続およびモデルのシミュレーションを行う基本的な方法を示します。また、サブシステムを使用してモデルを整理する方法、モデルの各部に名前を付ける方法、モデルを変更する方法についても説明します。

対話的にブロックの接続や端子の追加を行うマウス操作の概要については、ブロックおよび信号線のショートカットと操作を参照してください。

Simulink の起動とモデルの作成

  1. Simulink® スタート ページで [空のモデル] テンプレートをクリックします。

    Simulink エディターでテンプレートに基づいた新しいモデルが開きます。

  2. モデルに追加するブロックにアクセスできるようにライブラリ ブラウザーを開きます。Simulink エディターで、[ライブラリ ブラウザー] ボタン をクリックします。

モデルへのブロックの追加

モデルにおける最小限の処理は、入力信号を受け取り、その演算を行って、結果を出力することです。入力信号を表すブロックは、ライブラリ ブラウザーの Sources ライブラリに含まれています。Sinks ライブラリに、出力の取得と表示を行うためのブロックがあります。その他のライブラリに、算術演算などのさまざまな用途に使用できるブロックが用意されています。

この基本的なモデルの例では、正弦波を入力として受け取ってゲイン演算 (信号の値を乗算して増幅) を行い、結果をスコープに出力します。さまざまな手法を試してライブラリを調べ、モデルにブロックを追加します。

  1. Sources ライブラリを開きます。ライブラリ ブラウザーのツリー ビューで、[Sources] ライブラリをクリックします。

  2. 右側のペインで、Sine Wave ブロックにカーソルを合わせます。ブロックの用途がツールヒントに表示されます。

  3. コンテキスト メニューを使用してブロックをモデルに追加します。Sine Wave ブロックを右クリックし、[モデル untitled にブロックを追加] を選択します ブロックの詳細を確認するには、コンテキスト メニューから [ヘルプ] を選択します。

  4. ドラッグしてブロックをモデルに追加します。ライブラリ ツリー ビューで、[Math Operations] をクリックします。Math Operations ライブラリで Gain ブロックを探し、モデルの Sine Wave ブロックの右にドラッグします。

  5. ライブラリ ツリー ビューで、[Simulink] をクリックします。右側のペインにサブライブラリのアイコンが表示されます。このビューもライブラリ構造のナビゲートに使用できます。Sinks ライブラリのアイコンをダブルクリックします。

  6. Sinks ライブラリで Scope ブロックを探し、コンテキスト メニューを使用するかドラッグしてモデルに追加します。

    ここまでで、モデルは次の図のようになります。

メモ

ブロックを追加するとエディターによって名前が付けられます。たとえば、追加した最初の Gain ブロックの名前は Gain、次は Gain1 などです。既定では、Simulink はこれらの名前を非表示にします。ただし、ブロックを選択することで名前を確認できます。名前が表示されるように、明示的にブロックの名前を付けることもできます。[情報表示] を選択し、[自動生成名の非表示] チェック ボックスをオフにして、エディターによって与えられたすべての名前を表示できます。ブロック名の表示の詳細については、ブロック名の管理を参照してください。

ブロックの配置と接続

ブロックを接続し、モデルの動作に必要なモデル要素間の関係を構築します。ブロックを相互の関係に従って整列すると、モデルが読みやすくなります。ショートカットを使用して、ブロックの配置と接続を行うことができます。

  1. Gain ブロックをドラッグして、Sine Wave ブロックと並ぶように位置を揃えます。ブロックの水平方向の位置が揃うと、配置ガイドが表示されます。

  2. その位置でブロックをドロップすると、推奨される接続を示す青色の矢印が表示されます。

  3. 接続を確立するには、矢印をクリックします。ガイドに代わって実線が表示されます。

  4. 同じ方法で、Scope ブロックを整列して Gain ブロックに接続します。複数のブロックが範囲内にある場合は、追加のガイドが表示されます。

ヒント

他の配置オプションは [ブロック線図][調整] メニューから使用できます。

ブロック パラメーターの設定

ほとんどのブロックでは、パラメーターを設定することができます。パラメーターは、モデルでのブロックの動作を指定するのに役立ちます。既定値を使用することも、値を設定することも可能です。プロパティ インスペクターを使用してパラメーターを設定します。または、ほとんどのブロックはダブルクリックすることでブロック ダイアログ ボックスを使用してパラメーターを設定できます。それぞれのアプローチをどのような場合に使用するかの詳細については、プロパティとパラメーターの設定を参照してください。

モデルで正弦波の振幅とゲインの値を設定します。

  1. プロパティ インスペクターを表示します。[ツール表示][プロパティ インスペクター] を選択します。

  2. Sine Wave ブロックを選択します。

  3. プロパティ インスペクターで、[振幅] パラメーターを 2 に設定します。

  4. 値がアイコン上に表示されているブロックでは、パラメーターを対話的に編集できます。Gain ブロックを選択します。ブロックにカーソルを合わせます。数値に青色の下線が表示されます。

  5. [ゲイン] パラメーターを 3 に設定します。下線付きの数値をクリックして、それを削除し、3 と入力します。

ブロック ダイアログ ボックスまたはプロパティ インスペクターで、ブロック パラメーター値を変数または関数に設定すると、Simulink は、編集フィールドに現在入力されているテキストに基づいて、選択候補のリストを表示します。この候補には、編集可能なブロック パラメーターが認識できる各ワークスペース (ベース ワークスペース、モデル ワークスペース、およびマスク ワークスペース)、データ ディクショナリ、および参照ディクショナリの関連する変数やオブジェクトが含まれています。MATLAB パス上の変数、構造体およびオブジェクトのフィールド、関数には、オートコンプリートを利用できます。

ブロックの追加

ゲインをもう 1 つ実行する必要があり、これは Sine Wave ブロックからの出力の絶対値に対して実行するものとします。このためのブロックを追加しますが、他の手法を使用してライブラリ内のブロックを見つけ、それらをモデルに追加します。

  1. 追加するブロックの名前が既にわかっている場合は、ショートカットを使用できます。ブロックを追加する場所でクリックして、ブロック名 (この場合は Gain) を入力します。

    表示される候補のリストは、最近のブロック使用履歴に基づいて、動的にランク付けされています。

  2. ブロック名をクリックするか、ブロック名が強調表示されている状態で Enter キーを押します。ブロック名がリストの最初にない場合は、矢印キーを使用してブロック名を強調表示できます。

  3. 一部のブロックではブロック パラメーターの 1 つに値を入力するためのプロンプトが表示されます。Gain ブロックの場合は、[ゲイン] の値を入力するプロンプトが表示されます。3 と入力し、Enter キーを押します。

  4. 絶対値を実行するために Abs ブロックを追加します。ブロックが含まれているライブラリやブロックの完全な名前を知らないと仮定します。ライブラリ ブラウザーの検索ボックスを使用して検索できます。検索ボックスに abs と入力し、Enter キーを押します。Abs ブロックが見つかったら、新しい Gain ブロックの左に追加します。

  5. Scope ブロックをもう 1 つ追加します。既存の Scope ブロックを右クリックし、ドラッグしてコピーを作成するか、[コピー] および [貼り付け] コマンドを使用します。

    モデルの現在の状態は次の図のようになります。

接続の分岐

2 番目の Gain ブロックの入力は Sine Wave ブロックからの出力の絶対値です。1 つの Sine Wave ブロックを両方のゲイン演算の入力として使用するには、Sine Wave ブロックの出力信号から分岐を作成します。

  1. モデルの最初のブロック セットでは、水平方向の配置ガイドを使用してそれらの配置と接続を行いました。垂直方向のブロックの配置もガイドを使用して実行できます。2 番目の Scope ブロックをドラッグして、最初の Scope ブロックの下に並ぶように位置を揃えます。位置が揃って垂直方向の配置ガイドが表示されたら、その位置にブロックをドロップします。

  2. 2 つの端子をクリックすると、端子を接続できます。1 番目の端子をクリックすると、適合する端子が強調表示されます。端子をもう 1 つクリックすると、接続されます。

    図に示すように、ブロックを配置して接続します。

  3. Sine Wave ブロックの出力から Abs ブロックへの分岐を作成します。Abs ブロックの入力端子をクリックします。Sine Wave ブロックからの出力信号線にカーソルを合わせます。線のプレビューが表示されます。クリックして分岐を作成します。

    あるいは、ライン セグメントをクリックしてからカーソルを端子に向けて移動しても、分岐を開始できます。

  4. 信号に名前を付けます。下の Gain ブロックと Scope ブロックの間の信号をダブルクリックし、Scope と入力します。キャンバスの空白の領域ではなくラインをダブルクリックしてください。信号名に関する他の操作については、信号名およびラベルの操作を参照してください。

以下の方法を試しに使用して、ブロックを追加または接続します。

  • ブロック端子からドラッグしてマウスを放すと、赤色の点線が表示されます。線の端をダブルクリックして、ブロック挿入のショートカットを使用します。現在のコンテキストで提案されるブロックがメニューに表示されます。リストにあるブロックの 1 つを選択できます。

    モデル設計に基づいてメニューの提案を改善するには、クイック ブロック挿入の結果の改善を参照してください。

  • ダブルクリックしてブロック名を入力すると、入力した文字で始まるブロックのリストが表示されます。カスタム ライブラリ ブロックについては、ライブラリの作成者によって割り当てられている場合はブロックのキーワードを入力できます。このリストは、最近のブロック使用履歴に基づいてランク付けされています。

  • 端子をクリックした後、Shift キーを押しながら、別の端子に接続します。Shift キーを押したままにすると、複数の連続した接続を行うモードに入ります。たとえば、Shift キーを押したままにすると、新しい信号線を分岐させ、それを別の端子または信号線に接続する作業をクリック 1 回で行えます。

  • 最初のブロックを選択し、Ctrl キーを押しながら接続先のブロックをクリックします。この方法は複数の入力と出力をもつブロックを接続する場合に役立ちます。たとえば複数のブロックから 1 つのバス、または複数の端子をもつ 2 つのサブシステムに接続する場合です。2 つの端子をクリックする方法と同様、この手法は、ブロックを配置しないときに役立ちます。信号線は、接続のために必要に応じて曲がります。

    複数のライン セグメントで斜めの線を近似するには、Shift キーを押しながら頂点をドラッグします。

ヒント

信号線の形状を改善するには、ラインを選択し、操作バーから [ラインの自動ルーティング] を選択します。モデル要素間により適したルートを使用できる場合、ラインは再描画されます。操作バーから [ラインの自動ルーティング] を選択し、選択ボックスをドラッグして選択した 1 つのブロックまたは複数のモデル要素のラインを改善できます。

モデルのコンポーネント化

ブロックをグループ化してサブシステムにまとめたり、ブロック、サブシステム、信号にラベルを付けたりすることができます。サブシステムの詳細については、サブシステムの作成を参照してください。

  1. Abs ブロックとその隣の Gain ブロックの周囲で選択ボックスをドラッグします。

  2. 選択を終えたときにボックスの隅に表示される省略記号の上にカーソルを移動します。操作バーから、[サブシステムの作成] を選択します。

    選択したブロックに代わってサブシステム ブロックがモデルに表示されます。

    サブシステム ブロックのサイズをモデルに適した大きさに変更するには、ブロック ハンドルをドラッグします。

  3. サブシステムにわかりやすい名前を付けます。ブロックを選択し、名前をダブルクリックして Absolute Value と入力します。ブロックに名前を付けると、その名前がモデル内に表示されます。

  4. Absolute Value サブシステムをダブルクリックして開きます。

    ヒント

    エクスプローラー バーを使用してモデルの階層構造をナビゲートするには、サブシステムを右クリックして [新しいタブで開く] を選択します。

    このサブシステムには、ベースとして選択したブロックと信号が含まれています。これらは、新しい 2 つのブロック (Inport ブロックと Outport ブロック) に順番に接続されます。Inport ブロックと Outport ブロックはサブシステムの入力端子と出力端子に対応します。名前の付いた信号を含めて選択してサブシステムを作成すると、その信号の名前が対応する Inport ブロックまたは Outport ブロックに追加されます。

  5. [親に移動] ボタン をクリックしてモデルの最上位レベルに戻ります。

  6. サブシステムを作成して名前を付けた後のモデルを次の図に示します。

モデルのシミュレーションと結果の表示

  1. モデルのシミュレーションは、[シミュレーション][実行] コマンド (Ctrl + T) を使用するか、[実行] ボタン を使用して実行できます。いずれかの方法でモデルのシミュレーションを実行します。

    この例では、シミュレーションを既定の設定で 10 秒間実行します。

  2. 両方の Scope ブロックをダブルクリックして開き、結果を確認します。

    次の図は、両方の結果を示したものです。2 つ目のプロットでは、想定したとおり、正弦波の絶対値が常に正になっています。

モデルの変更

信号へのブロックの追加、モデルからのブロックの削除、および接続の再描画を行うことができます。このモデルを変更するために、モデルの両方の分岐の入力にバイアスを追加します。また、一方のスコープを別のシンクに置き換えます。サブシステムや他の出力にさらにブロックを追加します。

  1. モデルに Bias ブロックを追加し、[バイアス] パラメーターを 2 に設定します。

  2. Sine Wave ブロックと分岐の間の信号線上にこのブロックをドラッグします。ブロックを追加するスペースがない場合は、Sine Wave ブロックを左にドラッグするか、分岐の終端を右にドラッグして移動します。

    信号線にブロックをドラッグすると、ブロックの両端が信号線に接続されます。位置が決まったらブロックを放します。

  3. 一番上の Scope ブロックを削除します。削除せずにモデルから切り離す場合は、Shift キーを押しながらブロックをドラッグします。[編集] メニューのコマンドまたはキーストロークを使用して切り取るか削除します。切断された接続が赤色の点線で示されます。

    ヒント

    入力と出力が 1 つずつあるブロックを削除すると、切断された接続線の間にプロンプトが表示されます。プロンプトをクリックすると信号が接続されます。

  4. 接続が切断されたモデルの終端に To Workspace ブロックを追加します。To Workspace ブロックは、結果を MATLAB ワークスペースの変数に出力します。

  5. モデルに Sine Wave ブロックを追加し、振幅を 5 に設定します。これをサブシステムの左に配置します。

  6. 別の入力をサブシステムに追加します。新しい Sine Wave ブロックからサブシステムの左側までラインをドラッグします。サブシステムに新しい端子 In2 が表示されます。

    特定のブロックでは、ブロックにラインをドラッグすると入力端子または出力端子が追加されます。たとえばサブシステムにラインを接続すると、サブシステムに端子が現れます。端子が追加されるその他のブロックには、Bus Creator ブロック、Scope ブロック、Add ブロック、Sum ブロック、Product ブロックなどがあります。

  7. サブシステムに出力を追加します。モデルに別の To Workspace ブロックを追加し、サブシステムの右に配置します。その入力端子からサブシステムの右側までラインをドラッグします。サブシステムに新しい端子 Out2 が表示されます。

  8. サブシステムを開いて、Out2 ブロックの名前を Workspace に変更します。Manual Switch ブロックをサブシステムに追加します。サイズを変更し、次に示すように接続します。Gain ブロックの後で信号を分岐させ、その出力を To Workspace ブロックに向かわせます。

    その後、モデルの最上位レベルに戻ります。現在のモデルは次の図のようになります。

  9. モデルのシミュレーションを実行します。

    • 変数 simout および simout1 が MATLAB ワークスペースに表示されます。各変数をダブルクリックして結果を調べます。

    • サブシステムのアルゴリズムへの入力として 2 番目の正弦波を使用する場合は、サブシステムを開いてスイッチをダブルクリックします。入力が In2 に変わります。再びシミュレーションを行います。

    ヒント

    モデルのシミュレーションで Bias ブロックを適用するかしないかを切り替えて効果を検証するには、Bias ブロックを右クリックして [コメント スルー] を選択します。ブロックはモデルには残りますが、演算には影響しなくなります。Bias ブロックを右クリックして [コメント解除] を選択すると、ブロックが有効になります。[コメント アウト] コマンドを選択すると、ブロックの出力信号がコメント アウトされ、信号データが通過しなくなります。これらのコマンドをそれぞれ試すことで効果を確認することができます。

関連するトピック