Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

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

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

必要なコンフィギュレーションを決定した後は、MATLAB® スクリプトを使用してモデル コンフィギュレーション プロセスを自動化するのが一般的です。

この例では、以下について説明します。

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

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

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

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

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

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

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

model='ThrottleControl';
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™ については、モデル コンフィギュレーション パラメーターの推奨設定のまとめの Simulink® Coder™ バージョンを参照してください。Embedded Coder® については、Recommended Settings Summary for Model Configuration Parameters (Embedded Coder)の Embedded Coder® バージョンを参照してください。

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

コード生成アドバイザーのドキュメンテーションについては、コード生成アドバイザーを使用したアプリケーションの目的を参照してください。Embedded Coder® の追加ドキュメンテーションについては、コード生成アドバイザーを使用したコード生成の目的に合わせたモデルの設定 (Embedded Coder)を参照してください。

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

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

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

% 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 27-Sep-2023 04:55:04
3     % MATLAB version: 23.2.0.2389690 (R2023b) Update 2
4     
5     cs = Simulink.ConfigSet;
6     
7     % Original configuration set version: 23.1.0
8     if cs.versionCompare('23.1.0') < 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', '10.0');   % Stop time
34    cs.set_param('SolverName', 'FixedStepDiscrete');   % Solver
35    cs.set_param('SolverType', 'Fixed-step');   % Type
36    cs.set_param('SampleTimeConstraint', 'Unconstrained');   % Periodic sample time constraint
37    cs.set_param('FixedStep', '.001');   % Fixed-step size (fundamental sample time)
38    cs.set_param('EnableFixedStepZeroCrossing', 'off');   % Enable zero-crossing detection for fixed-step simulation
39    cs.set_param('ConcurrentTasks', 'off');   % Allow tasks to execute concurrently on target
40    cs.set_param('EnableMultiTasking', 'on');   % Treat each discrete rate as a separate task
41    cs.set_param('AllowMultiTaskInputOutput', 'off');   % Allow multiple tasks to access inputs and outputs
42    cs.set_param('PositivePriorityOrder', 'off');   % Higher priority value indicates higher task priority
43    cs.set_param('AutoInsertRateTranBlk', 'off');   % Automatically handle rate transition for data transfer
44    
45    % Data Import/Export
46    cs.set_param('Decimation', '1');   % Decimation
47    cs.set_param('LoadExternalInput', 'off');   % Load external input
48    cs.set_param('SaveFinalState', 'off');   % Save final state
49    cs.set_param('LoadInitialState', 'off');   % Load initial state
50    cs.set_param('LimitDataPoints', 'on');   % Limit data points

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

概要

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

関連するトピック