デジタル電子回路のシミュレーション

<< 目次を表示 >>

ページ位置:  シミュレーション > 数学的なシミュレーション > SysPhS シミュレーション > シミュレーションの設定と実行 > SysPhSシミュレーションのサンプル >

デジタル電子回路のシミュレーション

この例では、簡単なデジタル電子回路のSysPhSモデルを作成し、シミュレーションを用いてその回路の動作を予測し、グラフ化する方法を説明します。

 

この例では、SysPhSの共通コンポーネントに含まれていないコンポーネントを使用しているため、外部コンポーネントに対応するブロックを一から作成する手順も説明します。

 

 

前提条件

このシミュレーションを実行するには、以下のいずれかが必要です。

 

 

回路図 - デジタル式分周器

次の図は、標準的な電子回路の表記法を用いて、今回のシミュレーションの対象とするデジタル電子回路を示しています。

 

 

上記のように、パルス状のデジタル信号源・4つのフリップフロップ・true値でシンプルな分周回路を構成しています。

 

 

SysMLモデルの作成

次の表は、回路を表現する完全なSysMLモデルを構築する方法を示しています。最低限の内容からモデルを構築します。

 

構成要素

説明

ブロック

SysPhSを用いたSysMLでは、回路とコンポーネントのそれぞれの構成要素ををブロックとして表現します。

 

ブロック定義図に、回路コンポーネントを示すブロックを作成します。この回路には、パルスデジタル信号源・フリップフロップ・真偽値に対応するポート・真偽値trueという4つの部品があります。これらの部品は、それぞれ異なる種類であり、異なる動作をします。

 

部品の種類ごとに、SysPhSブロックを作成します。回路の内部ブロック図では、電気ピンを表すポートを介してこれらの部品を接続します。部品自体はブロック定義図で定義する必要があります。

 

次の図は、ブロック定義図と、使用する部品の種類を定義したブロックを示しています。

 

 

これらのブロックには、SysPhSツールボックスからModelicaブロックまたはSimulinkブロックを割り当てます。両方のツールに対応させることもできます。詳細については、「ブロックをModelicaとSimulinkの両方で利用」のヘルプトピックを参照してください。

ModelicaあるいはSimulinkのパスの設定

ModelicaやSimulinkに特化したブロックを定義するには、それぞれのアプリケーションでコンポーネントのパスにアクセスし、ブロックのプロパティで設定する必要があります。

 

例えば、ModelicaでFlip-Flopコンポーネントを見つけます。

 

 

そして、それをブロックのプロパティにコピーします。

 

 

詳細については、「Modelica固有のブロックの作成」および「SimulinkあるいはSimscape固有のブロックの作成」のヘルプトピックを参照してください。

PhSポート

ブロックにポートを設定するには(下記の例ではフリップフロップのクロックポート)、ModelicaまたはSimulinkのPhSポートをブロックにドラッグします。このポートは、BooleanInSignalの型を持つ必要があります。

 

注意:

  • Simulinkでは、ポートの作成順序は重要です。ヘルプの「SimulinkあるいはSimscape固有のブロックの作成」ページをご覧ください。
  • これらのポートは、他のツールのステレオタイプを追加することにより、ModelicaとSimulinkの両方の共通のポートに設定することができます。

共通型

Common Typesのパッケージとモデルのパッケージをインポートの接続で結ぶことで、このライブラリ内で定義されている要素を利用できます。詳細については、「SysPhSライブラリへの参照の設定」のヘルプトピックを参照してください。

 

今回のポートに使用する型は、SysPhSシミュレーションライブラリであらかじめ定義されています。具体的には、BooleanInSignalとBooleanOutSignalの2つのバリュー型要素を使用します。

 

次の図は、ブロック定義図のFlip-Flopのブロックで、Clockのポートの型をBooleanInSignalに設定している画面です。ライブラリに含まれるBooleanInSignal要素を参照しています。

 

Phs定数

Clockおよび真偽値tureのブロックは、MATLABやModelicaのそれぞれのコンポーネントで定義されるプロパティを持ちます。

 

Clockを例に説明します。このコンポーネントでは、SimulinkとModelicaの両方で、各パルスの周期と各パルスの幅に値を設定する必要があります。これらのプロパティをSysMLモデルにも追加し、適切な名前と型を設定しなければなりません。プロパティの実際の値は、内部ブロック図・パラメトリック図・シミュレーション実行時のデータセットで設定できます。

 

周期を定義するプロパティを設定するには、以下の手順で行います。

  1. SysPhSツールボックスからPhs定数要素をClock要素にドラッグします。
  2. ダイアグラムから追加した要素を削除して、追加した内容を区画に表示します。
  3. プロパティサブウィンドウのプロパティタブの種類欄を選択します。
  4. 参照ボタン[...] をクリックし、型として 'Time' を選択します。

 

 

追加した要素については、初期値を設定する必要があります。この表の「初期値」の内容をご覧ください。

内部構造

全体の関係と内部構造を表現するために、子ダイアグラムとして内部ブロック図をもつブロック要素Counterを作成します。

 

  1. 回路を保持するためのブロック要素を作成します。
  2. 右クリックメニューを利用し、内部ブロック図を追加します。

子ダイアグラムの追加 | 内部ブロック図

  1. ブロック要素をダブルクリックし、内部ブロック図に移動します。
  2. 図を簡潔にするために、ポートの型を表示しないように設定します。

F5 | 要素グループ | 要素の表示パネル

  1. 以下の設定のチェックボックスのチェックを外します。
  • 要素のステレオタイプの表示
  • ポートとプロパティの型を表示

 

この設定の結果、ポート名のみを表示するようになります。

 

内部ブロック図で、パートプロパティ要素を作成し接続します。

 

モデルブラウザから、定義済みのブロック要素をドラッグして内部ブロック図にドロップし、パートプロパティ要素として配置します。

作成した要素は、ダイアグラムから削除することで、区画として表示されます。

注意: 貼り付け時に、「付属要素」のドロップダウンリストで「全て」を選択して、関係するポートなども作成するようにしてください。

 

ブロック定義図で定義したブロック要素を、それぞれパートプロパティ要素として配置していきます。

結びつけ

配置したプロパティ要素のポート間を結びつけます。

ポート間を、以下のようにコネクタの接続で結びつけます。

 

これは元の回路図と同じ構造ですが、各コンポーネントを示す要素は、ブロック要素そのものではなく、定義したブロックに型付けされたプロパティ要素であることに注意してください。

初期値

パルス状のデジタル信号源は、ModelicaとSimulinkのDigitalClockコンポーネントが該当します。このコンポーネントには、以下のModelicaのエディタで表示されるように、「Period」と「Width」の2つのパラメータが必要です。

 

 

これらの値は内部ブロック図のプロパティ要素に対して設定しなければなりません。プロパティサブウィンドウの初期値の欄で設定できます。

 

 

JとKのポートは固定値で'True'である必要があります。プロパティ要素の'true'を設定します。

 

 

これらの設定後、ブロック定義図に戻ると、ブロックの区画に配置した要素が表示されます。

 

 

 

シミュレーション動作の設定

以下の手順で、SysMLSimの設定を行います。

手順

説明

SysMLSimConfiguration 要素を作成する

  1. ブロック定義図を開きます。
  2. ツールボックスの「シミュレーション」グループにある「SysMLシミュレーションの設定」要素をダイアグラム内にドラッグ&ドロップして配置します。

パッケージを指定する

  1. SysMLシミュレーションの設定要素をダブルクリックします。
    これにより、SysMLシミュレーションの設定タブが開きます。
  2. パッケージの欄の [選択]ボタンを押し、今回作成したSysMLブロック定義図が含まれるパッケージを選択します。

対象のシミュレーションツールを指定する

ツールバーのドロップダウンリストから、シミュレーションで利用するツールを選択します。

  • Modelica
  • Simulink

シミュレーション対象のブロックを指定する

  1. タブ内左側の一覧から'Counter'のブロックを探します。
  2. 'Value'の列のセルをクリックし、ドロップダウンリストから 'SysMLSimModel' を選択します。

グラフとして出力する値を指定する

グラフとして出力する値を指定します。

  • 右側の「プロットするプロパティ」の一覧に移動し、以下のようにチェックを入れます。

 

 

シミュレーションの実行

SysMLシミュレーションの設定タブの解析ボタンを押します。下の例は、それぞれのツールで生成された結果を示しています。

 

Modelica

 

Simulink

 

 

出力対象としてPort 2のみを選択したため、出力結果もシンプルなグラフとなります。

 

 

生成されたモデルをModelicaやSimulinkで表示する

生成されたモデルを外部アプリケーションであるModelicaまたはSimulinkで表示するには、「生成した内容の参照」のヘルプトピックと、「シミュレーションが実行できない場合の確認事項」のヘルプトピックをご覧ください。

 

 

参照: