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

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

コード ジェネレーターには、生成コードをカスタマイズするためのモデル コンフィギュレーション パラメーターが用意されています。生成コードの使用および相互作用の状況に応じて、コンフィギュレーションの各種決定を行います。デバッグ、トレーサビリティ、コード効率、安全対策へのニーズに最適な設定を選択してください。

必要なコンフィギュレーションを決定した後は、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     % MATLAB function for configuration set generated on 29-Jan-2020 23:10:00
3     % MATLAB version: 9.8.0.1302590 (R2020a)
4     
5     cs = Simulink.ConfigSet;
6     
7     % Original configuration set version: 20.0.1
8     if cs.versionCompare('20.0.1') < 0
9         error('Simulink:MFileVersionViolation', 'The version of the target configuration set is older than the original configuration set.');
10    end
11    
12    % Character encoding: UTF-8
13    
14    % Do not change the order of the following commands. There are dependencies between the parameters.
15    cs.set_param('Name', 'Configuration'); % Name
16    cs.set_param('Description', ''); % Description
17    
18    % Original configuration set target is ert.tlc
19    cs.switchTarget('ert.tlc','');
20    
21    cs.set_param('HardwareBoard', 'None');   % Hardware board
22    
23    cs.set_param('TargetLang', 'C');   % Language
24    
25    cs.set_param('CodeInterfacePackaging', 'Nonreusable function');   % Code interface packaging
26    
27    cs.set_param('GenerateAllocFcn', 'off');   % Use dynamic memory allocation for model initialization
28    
29    cs.set_param('Solver', 'FixedStepDiscrete');   % Solver
30    
31    % Solver
32    cs.set_param('StartTime', '0.0');   % Start time
33    cs.set_param('StopTime', '48');   % Stop time
34    cs.set_param('SampleTimeConstraint', 'STIndependent');   % Periodic sample time constraint
35    cs.set_param('SolverType', 'Fixed-step');   % Type
36    cs.set_param('ConcurrentTasks', 'off');   % Allow tasks to execute concurrently on target
37    
38    % Data Import/Export
39    cs.set_param('Decimation', '1');   % Decimation
40    cs.set_param('LoadExternalInput', 'off');   % Load external input
41    cs.set_param('SaveFinalState', 'off');   % Save final state
42    cs.set_param('LoadInitialState', 'off');   % Load initial state
43    cs.set_param('LimitDataPoints', 'off');   % Limit data points
44    cs.set_param('SaveFormat', 'StructureWithTime');   % Format
45    cs.set_param('SaveOutput', 'off');   % Save output
46    cs.set_param('SaveState', 'off');   % Save states
47    cs.set_param('SignalLogging', 'on');   % Signal logging
48    cs.set_param('DSMLogging', 'on');   % Data stores
49    cs.set_param('InspectSignalLogs', 'off');   % Record logged workspace data in Simulation Data Inspector
50    cs.set_param('SaveTime', 'off');   % Save time

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

% Return to previous working directory.
cd(currentDir)

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

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

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

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

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

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

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

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

open_system(model)

rtwdemo_configwizard モデルの Configuration Wizard ブロックを使用するには、次の手順に従います。

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

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

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

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

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

% cleanup
rtwdemoclean;
close_system(model,0)

概要

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

関連するトピック