ドキュメンテーション

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

コマンド ラインからのモデルの構成

この例では、生成コードをカスタマイズするための Simulink® Coder™ および Embedded Coder® の構成オプションを使用する方法を説明します。コード生成オプションには、モデルのコンフィギュレーション セットとも呼ばれる Simulink® コンフィギュレーション パラメーターからアクセスします。

ここでは生成コードの使用および相互作用の状況に応じて、コンフィギュレーションの各種決定とそれらのトレードオフを行います。デバッグ、トレーサビリティ、コード効率、安全対策へのニーズに最適な設定を選択してください。機能、スクリプト、およびドキュメンテーションを使用すると、アプリケーションに最適なモデル コンフィギュレーション セットを容易に作成できます。

Simulink® Coder™ には特定の目的のためにモデルを速やかに構成して確認するためのプッシュボタン機能がありますが、必要なコンフィギュレーションを確立した後は、MATLAB® スクリプトを使用してモデル コンフィギュレーション プロセスを自動化するのが一般的です。この例では、以下について説明します。

  • コンフィギュレーション パラメーターの操作概念

  • コード生成オプションを理解するためのドキュメンテーション

  • モデルの設定を自動化するためのツールとスクリプト

これらの基本的なスキルがあれば、プロジェクトに最適な自動設定スキームの設定をうまく進めることができます。

コンフィギュレーション パラメーターのワークフロー

コンフィギュレーション パラメーターには、1つのモデル内または複数のモデルにわたって持続性を維持するワークフローが数多くあります。必要に応じて、コンフィギュレーション セットをコピーまたは参照として扱う場合もあります。この例では、モデルのアクティブなコンフィギュレーション セットを直接操作するための基本手順を説明します。コンフィギュレーション セットの機能とワークフローの包括的な説明は、Simulink® ドキュメンテーションの「コンフィギュレーション セット」を参照してください。

コンフィギュレーション セットの基本的な操作

モデルをメモリに読み込みます。

model='rtwdemo_configwizard';
load_system(model)

モデルのアクティブなコンフィギュレーション セットを取得します。

cs = getActiveConfigSet(model);

Simulink® Coder™ 製品ではコード生成オプションのサブセットを公開しています。Simulink® Coder™ を使用する場合は Generic Real-Time (GRT) ターゲットを選択します。

switchTarget(cs,'grt.tlc',[]);

Embedded Coder® 製品ではコード生成オプションの完全なセットを公開しています。Embedded Coder® を使用する場合は Embedded Real-Time (ERT) ターゲットを選択します。

switchTarget(cs,'ert.tlc',[]);

GRT ベースのターゲットと ERT ベースのターゲットの両方に対して作成するモデルの設定を自動化するには、コンフィギュレーション セットの IsERTTarget 属性が役立ちます。

isERT = strcmp(get_param(cs,'IsERTTarget'),'on');

モデルまたはコンフィギュレーション セットを使用してコード生成オプションを操作できます。次の例では、モデルから間接的にオプションを取得し、設定しています。

deftParamBehvr = get_param(model,'DefaultParameterBehavior');  % Get
set_param(model,'DefaultParameterBehavior',deftParamBehvr)     % Set

次の例では、コンフィギュレーション セットからオプションを直接取得し、設定しています。

if isERT
    lifespan = get_param(cs,'LifeSpan');  % Get LifeSpan
    set_param(cs,'LifeSpan',lifespan)     % Set LifeSpan
end

コンフィギュレーション オプションの概要

コード生成オプションの一覧に、デバッグ、トレーサビリティ、コード効率、安全対策に関するトレードオフが記載されています。

コード生成アドバイザーを使用して目的に合ったモデル コンフィギュレーションを取得してください。[目的の設定] ダイアログで、コード生成アドバイザーの目的を設定して優先順位を付けることができます。

コード生成アドバイザーのドキュメンテーションについては、Simulink Coder ドキュメンテーションおよび Embedded Coder® の追加ドキュメンテーションを参照してください。

パラメーター コンフィギュレーション スクリプト

Simulink® Coder™ にはアプリケーションを作成するための開始点として使用できるコンフィギュレーション スクリプトのサンプルが用意されています。関連するほとんどの GRT および ERT コード生成オプションの一覧は、rtwconfiguremodel.m に含まれています。

あるいは、コンフィギュレーション セットの関数 saveAs を使用してモデル コンフィギュレーション パラメーターの完全なリストを含む MATLAB 関数を自動生成することができます。

% Go to a temporary writable directory.
currentDir = pwd;
rtwdemodir();

% Save the model's configuration parameters to file 'MyConfig.m'.
saveAs(cs,'MyConfig')

% Display the first 50 lines of MyConfig.m.
dbtype MyConfig 1:50
1     function cs = MyConfig()
2     %---------------------------------------------------------------------------
3     %  MATLAB function for configuration set generated on 29-Jan-2016 10:58:49
4     %  MATLAB version: 9.0.0.332692 (R2016a)
5     %---------------------------------------------------------------------------
6     
7     cs = Simulink.ConfigSet;
8     
9     % Original configuration set version: 1.16.2
10    if cs.versionCompare('1.16.2') < 0
11        error('Simulink:MFileVersionViolation', 'The version of the target configuration set is older than the original configuration set.');
12    end
13    
14    % Original environment character encoding: US-ASCII
15    if ~strcmpi(get_param(0, 'CharacterEncoding'), 'US-ASCII')
16        warning('Simulink:EncodingUnMatched', 'The target character encoding (%s) is different from the original (%s).',  get_param(0, 'CharacterEncoding'), 'US-ASCII');
17    end
18    
19    % Original configuration set target is ert.tlc
20    cs.switchTarget('ert.tlc','');
21    
22    % Do not change the order of the following commands. There are dependencies between the parameters.
23    cs.set_param('Name', 'Configuration'); % Name
24    cs.set_param('Description', ''); % Description
25    
26    % Solver
27    cs.set_param('StartTime', '0.0');   % Start time
28    cs.set_param('StopTime', '48');   % Stop time
29    cs.set_param('SolverType', 'Fixed-step');   % Type
30    cs.set_param('EnableConcurrentExecution', 'off');   % Show concurrent execution options
31    cs.set_param('SampleTimeConstraint', 'STIndependent');   % Periodic sample time constraint
32    
33    % Data Import/Export
34    cs.set_param('LoadExternalInput', 'off');   % Load external input
35    cs.set_param('LoadInitialState', 'off');   % Load initial state
36    cs.set_param('SaveTime', 'off');   % Save time
37    cs.set_param('SaveState', 'off');   % Save states
38    cs.set_param('SaveOutput', 'off');   % Save output
39    cs.set_param('SaveFinalState', 'off');   % Save final state
40    cs.set_param('SaveFormat', 'StructureWithTime');   % Format
41    cs.set_param('LimitDataPoints', 'off');   % Limit data points
42    cs.set_param('Decimation', '1');   % Decimation
43    cs.set_param('SignalLogging', 'on');   % Signal logging
44    cs.set_param('SignalLoggingName', 'sigsOut');   % Signal logging name
45    cs.set_param('DSMLogging', 'on');   % Data stores
46    cs.set_param('DSMLoggingName', 'dsmout');   % Data stores logging name
47    cs.set_param('ReturnWorkspaceOutputs', 'off');   % Single simulation output
48    cs.set_param('InspectSignalLogs', 'off');   % Record logged workspace data in Simulation Data Inspector
49    cs.set_param('VisualizeSimOutput', 'on');   % Enable live streaming of selected signals to Simulation Data Inspector
50    cs.set_param('StreamToWorkspace', 'off');   % Write streamed signals to workspace

生成されたファイルの各パラメーター設定には、[コンフィギュレーション パラメーター] ダイアログ ボックスの対応するパラメーター文字列のコメントが含まれます。

% Return to previous working directory.
cd(currentDir)

コンフィギュレーション ウィザードのブロック

Embedded Coder® には特定の目的のためにモデルの最初のコンフィギュレーションを取得するための一連の Configuration Wizard ブロックが用意されています。事前定義されたブロックには、次の目的に使用できる構成が含まれています。

  • 固定小数点データ用に最適化された ERT

  • 浮動小数点データ用に最適化された ERT

  • 固定/浮動小数点データ用に最適化された GRT

  • 固定/浮動小数点データ用の GRT デバッグ設定

  • カスタム (スクリプトを指定)

モデルを設定するには、ブロックをモデルにドロップし、ダブルクリックします。これらの便利なブロックを操作するには、モデル rtwdemo_configwizard を開き、[Open Configuration Wizard Library] をクリックします。

open_system(model)

具体的な手順:

  • モデルで表示されたリンクをクリックして Configuration Wizard ライブラリを開きます。

  • モデルで表示されたリンクをクリックしてモデルのコンフィギュレーション パラメーターを開きます。

  • ERT (固定小数点データ用に最適化) などの Configuration Wizard ブロックをウィザード ライブラリからドラッグして、モデルにドロップします。

  • ウィザード ブロックをダブルクリックします。

[コンフィギュレーション パラメーター] オプションが自動的に変わります。

% cleanup
rtwdemoclean;
close_system(model,0)

まとめ

Simulink には、シミュレーションとコード生成のためにモデルの構成プロセスを自動化する多数の MATLAB 関数が用意されています。Simulink Coder および Embedded Coder® は、コード生成専用の追加関数を提供します。コード生成アドバイザーは、優先する一連の目標に基づいてモデルのコンフィギュレーションを最適化するための優れた手段です。コンフィギュレーション セットの関数 saveAs を使用して最適なコンフィギュレーションを MATLAB ファイルに自動的に保存し、モデルやプロジェクトに再利用することができます。

この情報は役に立ちましたか?