<< 目次を表示 >> ページ位置: シミュレーション > 数学的なシミュレーション > 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の型を持つ必要があります。
|
||
共通型 |
Common Typesのパッケージとモデルのパッケージをインポートの接続で結ぶことで、このライブラリ内で定義されている要素を利用できます。詳細については、「SysPhSライブラリへの参照の設定」のヘルプトピックを参照してください。
今回のポートに使用する型は、SysPhSシミュレーションライブラリであらかじめ定義されています。具体的には、BooleanInSignalとBooleanOutSignalの2つのバリュー型要素を使用します。
次の図は、ブロック定義図のFlip-Flopのブロックで、Clockのポートの型をBooleanInSignalに設定している画面です。ライブラリに含まれるBooleanInSignal要素を参照しています。
|
||
Phs定数 |
Clockおよび真偽値tureのブロックは、MATLABやModelicaのそれぞれのコンポーネントで定義されるプロパティを持ちます。
Clockを例に説明します。このコンポーネントでは、SimulinkとModelicaの両方で、各パルスの周期と各パルスの幅に値を設定する必要があります。これらのプロパティをSysMLモデルにも追加し、適切な名前と型を設定しなければなりません。プロパティの実際の値は、内部ブロック図・パラメトリック図・シミュレーション実行時のデータセットで設定できます。
周期を定義するプロパティを設定するには、以下の手順で行います。
追加した要素については、初期値を設定する必要があります。この表の「初期値」の内容をご覧ください。 |
||
内部構造 |
全体の関係と内部構造を表現するために、子ダイアグラムとして内部ブロック図をもつブロック要素Counterを作成します。
子ダイアグラムの追加 | 内部ブロック図
F5 | 要素グループ | 要素の表示パネル
この設定の結果、ポート名のみを表示するようになります。
内部ブロック図で、パートプロパティ要素を作成し接続します。
モデルブラウザから、定義済みのブロック要素をドラッグして内部ブロック図にドロップし、パートプロパティ要素として配置します。 作成した要素は、ダイアグラムから削除することで、区画として表示されます。 注意: 貼り付け時に、「付属要素」のドロップダウンリストで「すべて」を選択して、関係するポートなども作成するようにしてください。
ブロック定義図で定義したブロック要素を、それぞれパートプロパティ要素として配置していきます。 |
||
結びつけ |
配置したプロパティ要素のポート間を結びつけます。 ポート間を、以下のようにコネクタの接続で結びつけます。
これは元の回路図と同じ構造ですが、各コンポーネントを示す要素は、ブロック要素そのものではなく、定義したブロックに型付けされたプロパティ要素であることに注意してください。 |
||
パルス状のデジタル信号源は、ModelicaとSimulinkのDigitalClockコンポーネントが該当します。このコンポーネントには、以下のModelicaのエディタで表示されるように、「Period」と「Width」の2つのパラメータが必要です。
これらの値は内部ブロック図のプロパティ要素に対して設定しなければなりません。プロパティサブウィンドウの初期値の欄で設定できます。
JとKのポートは固定値で'True'である必要があります。プロパティ要素の'true'を設定します。
これらの設定後、ブロック定義図に戻ると、ブロックの区画に配置した要素が表示されます。
|
シミュレーション動作の設定
以下の手順で、SysMLSimの設定を行います。
手順 |
説明 |
SysMLSimConfiguration 要素を作成する |
|
パッケージを指定する |
|
対象のシミュレーションツールを指定する |
ツールバーのドロップダウンリストから、シミュレーションで利用するツールを選択します。
|
シミュレーション対象のブロックを指定する |
|
グラフとして出力する値を指定する |
グラフとして出力する値を指定します。
|
シミュレーションの実行
SysMLシミュレーションの設定タブの解析ボタンを押します。下の例は、それぞれのツールで生成された結果を示しています。
Modelica
Simulink
出力対象としてPort 2のみを選択したため、出力結果もシンプルなグラフとなります。
生成されたモデルをModelicaやSimulinkで表示する
生成されたモデルを外部アプリケーションであるModelicaまたはSimulinkで表示するには、「生成した内容の参照」のヘルプトピックと、「シミュレーションが実行できない場合の確認事項」のヘルプトピックをご覧ください。
参照: