Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

モデルをツール結合 FMU としてエクスポート

Simulink® コンポーネントをサードパーティ ソフトウェアに統合するには、Simulink モデルをツール結合 Functional Mockup Unit (FMU) としてエクスポートします。サードパーティ製ツールは FMU を実行する際に、必要なライセンスをチェックアウトし、Simulink のローカル インストールを開始してモデルを起動します。ツール結合 FMU は、固定ステップ ソルバーと可変ステップ ソルバーをサポートします。

プロジェクトを使用して FMU をエクスポートします。モデルを開き、[新規][プロジェクト][このモデルからの新規プロジェクト] を選択してモデルからプロジェクトを作成します。

プロジェクトから FMU を対話的にエクスポートできます。

  1. プロジェクトで、[共有]、[ツール結合 FMU] を選択します。

  2. [Copyright][説明]、および [FMU アイコン] フィールドに入力します。[設定の保存と出力形式] をクリックし、名前を指定します。

生成された FMU には、モデルの実装と、エクスポート中に指定されたメタデータが含まれます。

<?xml version="1.0" encoding="utf-8"?>
<fmiModelDescription author="" copyright="" description="" fmiVersion="2.0"
                     generationDateAndTime="2018-08-16T15:51:48Z"
                     generationTool="Simulink (R2018b)"
                     guid="5bd096be-a08d-020e-fc96-847aa21def5b"
                     license=""
                     modelName="vdpSlave"
                     variableNamingConvention="structured"
                     version="1.8">

次のようにして、プロジェクトを作成し、コマンド ラインから FMU にエクスポートすることもできます。

>> p = slproject.create('vdpProject') 
>> copyfile(which('vdp'), './vdpSlave.slx') 
>> p.addFile('./vdpSlave.slx')
>> Simulink.fmuexport.ExportSimulinkProjectToFMU(p,'vdpSlave.slx','-fmuname','vdpFMU')

コマンド ラインからその他の FMU エクスポート オプションを示すには、以下を入力します。

help Simulink.fmuexport.ExportSimulinkProjectToFMU

モデルは、エクスポートについて以下の条件を満たさなければなりません。

  • モデルはノーマル モードまたはアクセラレータ シミュレーション モードでなければならない。

  • ルートの入力端子と出力端子は数値データ型でなければならない。

Simulink からエクスポートされたコシミュレーション コンポーネントである場合、FMU のローカルのサンプル時間は元のモデルのサンプル時間です。

ツール結合 FMU に調整可能なパラメーターを含める

調整可能なパラメーターを含めるには、以下を行います。

  1. 関連する Simulink プロジェクトからモデルを開きます。

  2. Simulink モデルから、[モデル化] タブをクリックし、モデル エクスプローラーを起動します。

  3. [モデル ワークスペース] を選択し、変数 MATLAB® または Simulink パラメーターを追加します。

  4. 追加する調整可能なパラメーターのそれぞれについて、[データ プロパティ] または [Simulink.Parameter] ペインで [引数] チェック ボックスをオンにします。

  5. [適用] をクリックします。

  6. モデル内の調整可能なパラメーターを参照します。

  7. ツール結合 FMU をエクスポートします。

エクスポートされたツール結合 FMU の使用

エクスポートされた FMU には、Simulink のローカル インストールの実行が必要です。コシミュレーションに使用される MATLAB バージョンは、FMU がエクスポートされた MATLAB バージョンと同じでなければなりません。Windows® で、FMU を実行するアプリケーションは、必要なライセンスを自動的にチェックアウトできます。他のオペレーティング システムの場合は、以下の設定を適用します。

  • Linux® では、次のようにします。

    setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:<InstallationFolder>/bin/glnxa64:<InstallationFolder>/extern/bin/glnxa64  (csh/tcsh) 
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:<InstallationFolder>/bin/glnxa64:<InstallationFolder>/extern/bin/glnxa64  (bash)

  • Mac OS では、次のようにします。

    setenv DYLD_LIBRARY_PATH ${DYLD_LIBRARY_PATH}:<InstallationFolder>/bin/maci64:<InstallationFolder>/extern/bin/maci64  (csh/tcsh) 
    export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:<InstallationFolder>/bin/maci64:<InstallationFolder>/extern/bin/maci64  (bash)

Mac OS の場合、システム整合性保護 (SIP) により、setenv コマンドは、MATLAB などの新しいプロセスを開始するアプリケーションで機能しません。DYLD_LIBRARY_PATH<InstallationFolder>/bin/maci64:<InstallationFolder>/extern/bin/maci64 に設定するには、Append library path to "DYLD_LIBRARY_PATH" in MAC に従ってください。

FMU を実行する前に、オペレーティング システム コンソールから MATLAB セッションを設定しなければなりません。このセッションを設定してから、サードパーティ製アプリケーションを開始し、ツール結合 FMU をインポートします。各 FMU インスタンスには、新しい MATLAB セッションが必要です。

MATLAB からの専用セッションの開始

FMU をインポートするアプリケーションが FMU の単一インスタンスを実行する場合、MATLAB を使用してセッションを開始できます。

>> shareMATLABForFMUCoSim

これは、インポートされた FMU のコシミュレーションを実行するための外部ツールからの要求に利用可能な、現在の MATLAB セッション専用です。FMU がこのセッションに接続している場合、Simulink エディターおよび Simulink プロジェクトは読み込まれ、コシミュレーションは自動的に開始します。このセッションを使用して、コシミュレーションの一時停止および再開を行うことができるだけでなく、コシミュレーションの実行中にパラメーターまたはプロット信号をコマンド ウィンドウから調整できます。コシミュレーションが完了するか、ユーザーによって停止されるか、実行時エラーで中断される場合、MATLAB が閉じられ、Simulink エディターおよび Simulink プロジェクトがアンロードされて、モデルへの変更が破棄されます。エラーが発生すると、この FMU をインポートするシミュレーション ツールに表示されます。各セッションは、同時に 1 つの FMU インスタンスに接続できます。

オペレーティング システムからの専用セッションの開始

FMU をインポートするアプリケーションが複数の FMU インスタンスを起動する場合、オペレーティング システム コンソールを使用して専用の MATLAB セッションを開始します。

  • Windows では、次の手順を実行します。

    <matlabroot>\toolbox\shared\fmu_share\script\fmu-matlab-setup.cmd

  • Linux および Mac OS の場合は、以下のようにします。

    <matlabroot>/toolbox/shared/fmu_share/script/fmu-matlab-setup

MATLAB で matlabroot を実行し、<matlabroot> を検出します。セットアップ プログラムが起動し、コマンドを待機します。使用可能なコマンドを確認するには、次のように help と入力します。

> help
Command list:                                                                                                                                                                                 
quit - Close all shared MATLABs and exit.                                                                                                                                                     
list - List shared MATLABs.                                                                                                                                                                   
start NUMBER_OF_MATLABS - Start NUMBER_OF_MATLABS more MATLABs.                                                                                                                               
stop NUMBER_OF_MATLABS - Stop NUMBER_OF_MATLABS MATLABs.                                                                                                                                      
ignore - Stop asking about the hardware core count when launching MATLABs.                                                                                                                    
clean MATLAB_NUMBER - Clean up the MATLAB workspace for MATLAB #MATLAB_NUMBER. Use 0 for all MATLABs.                                                                                         
help - Print the command list.

FMU ごとに 1 つのセッションを起動し、同時に実行します。1 つの FMU がある場合は、以下を入力します。

> start 1

同時に実行している FMU が 3 つある場合は、以下を入力します。

> start 3

1 台のマシンで 1 つの MATLAB 管理ツールのみ実行しなければなりません。

関連するトピック