このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Simulink.SimulationData.ModelLoggingInfo
モデルの信号ログ オーバーライド設定
説明
このクラスはモデルのすべての信号ログ オーバーライド設定を指定する Simulink.SimulationData.SignalLoggingInfo
オブジェクトのコレクションです。
このクラスのメソッドとプロパティの使用目的は以下のとおりです。
信号または Model ブロックのログをオフにする。
モデル内でログに記録するようにマークされている信号のログ設定を変更する。
最上位モデルと参照モデルで信号ログ設定をオーバーライドするか、またはモデルによって指定された信号ログ設定を使用するかを制御できます。どちらのログ設定を適用するかを制御するには LoggingMode
プロパティと LogAsSpecifiedByModels
プロパティを使用します。
モデルのログ モード | プロパティの設定 |
---|---|
最上位モデルとすべての参照モデルにモデルで指定されているログ設定を使用する。 |
|
最上位モデルとすべての参照モデルでオーバーライド信号ログ設定を使用する。 |
|
最上位モデルと参照モデルでオーバーライド信号ログ設定とモデルで指定されている信号ログ設定を組み合わせて使用する。 |
|
詳細と例については、MATLAB からの信号ログ設定のオーバーライドを参照してください。
プロパティのまとめ
名前 | 説明 |
---|---|
信号ログ オーバーライド ステータス | |
最上位モデルまたは最上位 Model ブロックの信号ログ設定のソース | |
信号オーバーライド設定をもつすべての信号 |
メソッドのまとめ
名前 | 説明 |
---|---|
ブロック パスと出力端子インデックスを使用して | |
モデル信号ログ オーバーライド オブジェクトの信号およびモデル パスを確認します。 | |
モデルがモデルで指定されているとおりに信号をログに記録するかまたはオーバーライド設定を使用するかを判定します。 | |
最上位モデルまたは最上位 Model ブロックのログ モードを設定します。 | |
モデル信号ログ オーバーライド オブジェクトを作成してモデル階層内のすべてのログ信号に追加します。 | |
ログに記録する信号を設定するかまたはログ設定をオーバーライドします。 |
プロパティ
LoggingMode
信号ログ オーバーライド ステータス。次の値を使用できます。
OverrideSignals
— (既定の設定)Signals
プロパティで指定されている信号ログ設定を使用します。モデルの場合、getLogAsSpecifiedInModel
は次のようになります。true
— モデルで指定されているとおりにすべての信号をログに記録します。false
—Signals
プロパティで指定されている信号だけをログに記録します。
LogAllAsSpecifiedInModel
— モデルで指定されているとおりに最上位モデルとすべての参照モデルで信号をログに記録します。Simulink® は信号ログ インジケーター (青いアンテナ) に従い、Signals
プロパティを無視します。
最上位モデルまたは特定の参照モデルのログ モードを変更するには setLogAsSpecifiedInModel
メソッドを使用します。
文字配列
RW
LogAsSpecifiedByModels
LoggingMode
が 'OverrideSignals'
に設定されているとき、LogAsSpecifiedByModels
cell 配列は 'OverrideSignals'
設定を無視する最上位モデルおよび最上位 Model ブロックを指定し、モデルまたは Model ブロックで指定された信号をログに記録します。
cell 配列に含まれている最上位モデルおよび最上位 Model ブロックの場合、Simulink は
Signals
プロパティ オーバーライドを無視します。cell 配列に "含まれていない" モデルまたは Model ブロックの場合、Simulink は
Signals
プロパティを使用してどの信号をログに記録するかを決定します。
LoggingMode
が 'LogAllAsSpecifiedInModel'
に設定されている場合は LogAsSpecifiedByModels
プロパティが無視されます。
最上位モデルまたは最上位 Model ブロックがモデルで指定されている (既定のログ) とおりに信号をログに記録するかどうかを判定するには getLogAsSpecifiedInModel
メソッドを使用します。既定のログのオンとオフを切り替えるには setLogAsSpecifiedInModel
を使用します。
cell 配列 — 最上位モデルの場合はモデル名を指定します。Model ブロックの場合はブロック パスを指定します。
RW
Signals
信号ログ オーバーライド設定をもつすべての信号の Simulink.SimulationData.SignalLoggingInfo
オブジェクトのベクトル。
Simulink.SimulationData.SignalLoggingInfo
オブジェクトのベクトル
RW
メソッド
createFromModel
最上位モデルのそれぞれのログ信号のオーバーライド設定を使用してそのモデルの Simulink.SimulationData.ModelLoggingInfo
オブジェクトを作成します。
model_logging_info_object = ... Simulink.SimulationData.ModelLoggingInfo.createFromModel(...model
,options
)
model
Simulink.SimulationData.ModelLoggingInfo
オブジェクトを作成する最上位モデルの名前。options
次のオプション名と値のペアを任意に組み合わせるとどの種類のシステムからログ信号を含めるかを制御できます。
FollowLinks
on
— (既定の設定) ライブラリ内からのログ信号を含めます。off
— すべてのライブラリをスキップします。
LookUnderMasks
all
— (既定の設定) すべてのマスク サブシステムからのログ信号を含めます。none
— すべてのマスク サブシステムをスキップします。graphical
— ワークスペースまたはダイアログ ボックスがないマスク サブシステムからのログ信号を含めます。functional
— ダイアログ ボックスがないマスク サブシステムからのログ信号を含めます。
Variants
ActiveVariants
— (既定の設定) アクティブなサブシステムおよびモデル バリアントだけからのログ信号を含めます。AllVariants
— すべてのサブシステムおよびモデル バリアントからのログ信号を含めます。
RefModels
on
— (既定の設定) 参照モデルからのログ信号を含めます。off
— すべての参照モデルをスキップします。
複数のオプションを選択した場合、作成される
Simulink.SimulationData.ModelLoggingInfo
オブジェクトには指定されたオプションの組み合わせ ("AND") に一致する信号が含まれます。たとえば、FollowLinks
をon
に設定し、RefModels
をoff
に設定した場合、モデル信号ログ オーバーライド オブジェクトには参照モデル内に存在するライブラリ リンクからの信号が含まれません。
model_logging_override_object
最上位モデルの
Simulink.SimulationData.ModelLoggingInfo
オブジェクト
は以下の種類のシステムのログ信号を含むモデルの model_logging_info_object
= Simulink.SimulationData.ModelLoggingInfo.createFromModel(model
)Simulink.SimulationData.ModelLoggingInfo
オブジェクトを作成します。
ライブラリ
マスク サブシステム
参照モデル
アクティブなバリアント
はモデルの model_logging_override_object
= Simulink.SimulationData.ModelLoggingInfo.createFromModel(model
, options)Simulink.SimulationData.ModelLoggingInfo
オブジェクトを作成します。含まれるログ信号は以下の種類のシステムのオプションの設定を反映します。
ライブラリ
マスク サブシステム
参照モデル
バリアント
次の例では sldemo_mdlref_bus
モデルのモデル ログ オーバーライド オブジェクトを作成し、そのオブジェクトにモデル内の各ログ信号を自動的に追加します。
openExample('sldemo_mdlref_bus') mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel(... 'sldemo_mdlref_bus')
mi = ModelLoggingInfo with properties: Model: 'sldemo_mdlref_bus' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1×4 Simulink.SimulationData.SignalLoggingInfo]
モデル オーバーライド オブジェクト設定を適用するには、以下のようにします。
set_param(sldemo_mdlref_bus,'DataLoggingOverride',mi);
createFromModel
メソッドのオプションを使用すると、このメソッドでバリアントやモデル参照などのモデル コンポーネントを扱う方法を指定できます。たとえば、Variants
オプションを使用して、sldemo_variant_subsystems
モデルのすべてのバリアントでログ記録された信号を含む model_logging_override
オブジェクトを作成します。
既定では、sldemo_variant_subsystems
モデルは、どの信号もログ記録しません。まず、ログに記録する Linear Controller
サブシステムおよび Nonlinear Controller
サブシステムの出力信号を設定します。
% Open the sldemo_variant_subsystems model sldemo_variant_subsystems; % Mark the output of the Linear Controller subsystem for logging ph = get_param('sldemo_variant_subsystems/Controller/Linear Controller',... 'PortHandles'); set_param(ph.Outport(1),'DataLogging','on'); % Mark the output of the Nonlinear Controller subsystem for logging ph1 = get_param('sldemo_variant_subsystems/Controller/Nonlinear Controller',... 'PortHandles'); set_param(ph1.Outport(1),'DataLogging','on');
次に、createFromModel
メソッドを使用して、sldemo_variant_subsystems
モデルのすべてのバリアント サブシステムでログ記録された信号を含む model_logging_override
オブジェクトを作成します。
% Create a model_logging_override object for the model including all variants mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel(... 'sldemo_variant_subsystems', 'Variants', 'AllVariants')
mi = ModelLoggingInfo with properties: Model: 'sldemo_variant_subsystems' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1×2 Simulink.SimulationData.SignalLoggingInfo]
ModelLoggingInfo
ログに記録する信号を指定するかまたはログ設定をオーバーライドします。
model_logging_override_object = .... Simulink.SimulationData.ModelLoggingInfo(model)
model
Simulink.SimulationData.ModelLoggingInfo
オブジェクトを作成する最上位モデルの名前
model_logging_override_object
指定した最上位モデルに対して作成された
Simulink.SimulationData.ModelLoggingInfo
オブジェクト。
は、指定した最上位モデルの model_logging_override_object
= Simulink.SimulationData.ModelLoggingInfo(model
)Simulink.SimulationData.ModelLoggingInfo
オブジェクトを作成します。
Simulink.SimulationData.ModelLoggingInfo
コンストラクターを使用する場合はログ設定をオーバーライドするログ信号ごとに Simulink.SimulationData.SignalLoggingInfo
オブジェクトを指定します。
モデルに有効な信号ログ オーバーライド設定が指定されていることを確認するにはモデルの Simulink.SimulationData.ModelLoggingInfo
オブジェクトで verifySignalAndModelPaths
メソッドを使用します。
次の例は、最上位モデルとすべての参照モデルで指定されるように、すべての信号のログを作成する方法を表示します。
mi = Simulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus'); mi.LoggingMode = 'LogAllAsSpecifiedInModel'
mi = ModelLoggingInfo with properties: Model: 'sldemo_mdlref_bus' LoggingMode: 'LogAllAsSpecifiedInModel' LogAsSpecifiedByModels: {} Signals: []
モデル オーバーライド オブジェクト設定を適用するには、以下のようにします。
set_param(sldemo_mdlref_bus, 'DataLoggingOverride', mi);
次の例は、最上位モデルの信号のみのログを作成する方法を示します。
mi = ... Simulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus'); mi.LoggingMode = 'OverrideSignals'; mi = mi.setLogAsSpecifiedInModel('sldemo_mdlref_bus', true); set_param('sldemo_mdlref_bus', 'DataLoggingOverride', mi);
findSignal
ブロック パスおよびオプションの出力端子インデックスを使用して Signals
ベクトル内で信号を検出します。
signal_indices = ... model_logging_override_object.findSignal(block_path) signal_indices = ... model_logging_override_object.findSignal(... block_path, port_index)
block_path
検索するソース ブロック。
block_path
は、次のいずれかでなければなりません。文字ベクトル
文字ベクトルの cell 配列
Simulink.BlockPath
オブジェクト
port_index
検索する出力端子のインデックス。
1
以上のスカラーを指定します。
signal_indices
Simulink.SimulationData.ModelLoggingInfo
オブジェクトの信号ベクトルの数値インデックスのベクトル。
は指定するブロック パスの信号のインデックスを検出します。signal_indices
= model_logging_override_object.findSignal(block_path
)
参照モデル内にある信号の "1 つ" のインスタンスを検出するには Simulink.BlockPath
オブジェクトまたは "絶対パス" をもつ cell 配列を使用します。
参照モデル内にある信号の "すべて" のインスタンスを検出するには、参照モデル内にある信号の "相対" パスをもつ文字ベクトルを使用します。
Stateflow® チャート内にあるログ チャート信号を検出するには Simulink.BlockPath
オブジェクトを使用し、SubPath
プロパティを Stateflow チャート信号の名前に設定します。
は指定するブロック パスの指定する端子の出力信号のインデックスを検出します。signal_indices
= model_logging_override_object.findSignal(block_path
, port_index
)
Stateflow チャート信号には port_index
引数を使用しないでください。
Stateflow チャートには "なく"、参照モデルの複数のインスタンスに "表示されない" 信号を検出するには次の方法を使用します。
open_system(docpath(fullfile(docroot,'toolbox','simulink','examples','ex_bus_logging'))) % Open the referenced model ex_mdlref_counter_bus mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel(... 'ex_bus_logging'); % Click the COUNTERBUSCreator block that is the source of % the logged COUNTERBUS signal signal_index = mi.findSignal(gcb)
signal_index = 1
Stateflow チャートにない参照モデルの特定のインスタンスで信号を検出するには次の方法を使用します。
signal_index = mi.findSignal({'ex_bus_logging/CounterA', ... 'ex_mdlref_counter_bus/Bus Creator'})
signal_index = 4
Stateflow チャートでの findSignal
メソッドの使用例については、コマンド ライン API によるログ プロパティのオーバーライド (Stateflow)を参照してください。
getLogAsSpecifiedInModel
モデルがモデルで指定されているとおりにログに記録するかまたはオーバーライド設定を使用するかを判定します。
logging_mode = ... getLogAsSpecifiedInModel(model_logging_override_object, path)
model_logging_override_object
Simulink.SimulationData.ModelLoggingInfo
オブジェクト。path
path
は次のいずれかを指定する文字ベクトルです。最上位モデルの名前
最上位モデル内の Model ブロックのブロック パス
logging_mode
logging_mode
は以下のいずれかになります。path
で指定されたモデルがモデルで指定されているとおりにログに記録される場合はtrue
。path
で指定されたモデルがSignals
プロパティで指定されたオーバーライド設定を使用してログに記録される場合はfalse
。
は、以下を返します。logging_mode
= model_logging_override_object.getLogAsSpecifiedInModel(path
)
path
で指定されたモデルがモデルで指定されているとおりにログに記録される場合はtrue
。path
で指定されたモデルがSignals
プロパティで指定されたオーバーライド設定を使用してログに記録される場合はfalse
。
次の例では Simulink.SimulationData.ModelLoggingInfo
オブジェクト mi
は Signals
プロパティで指定されたオーバーライド設定を使用します。
mi = Simulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus'); logging_mode = getLogAsSpecifiedInModel(mi, 'sldemo_mdlref_bus')
logging_mode = 0
setLogAsSpecifiedInModel
最上位モデルまたは最上位 Model ブロックのログ モードを設定します。
setLogAsSpecifiedInModel(override_object, path)
override_object
Simulink.SimulationData.ModelLoggingInfo
オブジェクト。path
次のいずれかを指定する文字ベクトル。
最上位モデルの名前
最上位モデル内の Model ブロックのブロック パス
value
ログ モードは以下のいずれかになります。
path
で指定されたモデルがモデルで指定されているとおりにログに記録される場合はtrue
。path
で指定されたモデルがSignals
プロパティで指定されたオーバーライド設定を使用してログに記録される場合はfalse
。
setLogAsSpecifiedInModel(
は最上位モデルまたは最上位モデル内の Model ブロックの LoggingMode プロパティを設定します。override_object
, path
, value
)
次の例は最上位モデルで指定されているログ設定を使用してその最上位モデル内の信号だけをログに記録する方法を示します。
sldemo_mdlref_bus; mi = Simulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus'); mi.LoggingMode = 'OverrideSignals'; mi = setLogAsSpecifiedInModel(mi, 'sldemo_mdlref_bus', true); set_param('sldemo_mdlref_bus', 'DataLoggingOverride', mi);
verifySignalAndModelPaths
Simulink.SimulationData.ModelLoggingInfo
オブジェクトでパスを確認します。
verified_object = verifySignalAndModelPaths... (model_logging_override_object, action)
model_logging_override_object
確認する
Simulink.SimulationData.ModelLoggingInfo
オブジェクト。この引数は必須です。action
検証が失敗したときに関数が実行するアクション。この引数はオプションです。以下のいずれかの値を指定します。
error
— (既定の設定) 検証が失敗したときにエラーをスローします。warnAndRemove
— 検証が失敗したときに警告を発行し、Simulink.SimulationData.ModelLoggingInfo
オブジェクトを更新します。remove
—Simulink.SimulationData.ModelLoggingInfo
オブジェクトを暗黙的に更新します。
verified_object
メソッドで無効なパスが検出されなかった場合は、検証されたオブジェクトが返されます。以下に例を示します。
verified_object = Simulink.SimulationData.ModelLoggingInfo Package: Simulink.SimulationData Properties: Model: 'logging_top' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1x11 Simulink.SimulationData.SignalLoggingInfo]
メソッドで無効なパスが検出された場合、引数
action
で指定されたアクションを実行します。既定では、エラー メッセージを発行します。
verified_object
= verifySignalAndModelPaths(model_logging_override_object
, action
)
Simulink.SimulationData.ModelLoggingInfo
オブジェクトの場合は以下の項目を確認します。
LogAsSpecifiedByModels
プロパティ内のすべての文字ベクトルが最上位モデルの名前または最上位モデル内の Model ブロックのブロック パスであること。Signals
プロパティ内の信号のブロック パスが最上位モデルの階層内にある有効なブロックを参照していること。Signals
プロパティ内のすべての信号のOutputPortIndex
プロパティが特定のブロックに有効であること。Signals
プロパティ内のすべての信号が "ログ" 信号を参照していること。
引数 action
は、メソッドが実行するアクションを指定します。既定では、メソッドが無効なパスを検出した場合にエラーを返します。
Simulink.SimulationData.ModelLoggingInfo
コンストラクターを使用して各信号の Simulink.SimulationData.SignalLoggingInfo
オブジェクトを指定する場合は verifySignalAndModelPaths
メソッドを使用してオブジェクト定義が有効であることを確認することを検討してください。
以下の例では、Simulink.SimulationData.ModelLoggingInfo
オブジェクトの信号とブロックのパスを検証する方法を示します。引数 action
が warnAndRemove
であるため、検証が失敗すると verifySignalAndModelPaths
メソッドは警告を発行し、Simulink.SimulationData.ModelLoggingInfo
オブジェクトを更新します。
mi = Simulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus'); verified_object = verifySignalAndModelPaths... (mi, 'warnAndRemove')
バージョン履歴
R2012b で導入