Stateflow.SimulationData.State
シミュレーション中のステート アクティビティ
説明
Stateflow.SimulationData.State
を使用して、シミュレーション中のステートのアクティビティのログを作成します。
作成
Stateflow® エディターで、ステートを選択します。
[シミュレーション] タブの [準備] で、[自己アクティビティのログ] を選択します。あるいは、[プロパティ インスペクター] の [ログ] で [自己アクティビティのログ] チェック ボックスを選択します。
プロパティ
Name
— ステートのログ名
文字配列
ステートのログ名。文字配列として指定します。既定では、ステートのログ名は階層名で、ピリオド (.
) を使用してステートの階層の各レベルを区切っています。より短い名前をステートに割り当てるには、[プロパティ インスペクター] で、[ログ名] を [カスタム]
に設定し、カスタム ログ名を入力します。
データ型: char
BlockPath
— ソース ブロックのブロック パス
Simulink.SimulationData.BlockPath
ソース ブロックのブロック パス。Simulink.SimulationData.BlockPath
(Simulink) オブジェクトとして指定します。
データ型: Simulink.SimulationData.BlockPath
Values
— ステート アクティビティ
timeseries
ステート アクティビティ。timeseries
オブジェクトとして指定します。データ値はステートがアクティブであるか (1
)、または非アクティブであるか (0
) を表します。時間値はシミュレーション時間に対応します。
データ型: timeseries
オブジェクト関数
plot (Simulink) | シミュレーション データ インスペクターでデータをプロットする |
例
ログが作成されたステート アクティビティにアクセス
sf_semantics_hotel_checkin
モデルを開きます。openExample("sf_semantics_hotel_checkin")
この例の詳細については、実行時の Stateflow オブジェクトの相互作用を参照してください。
Hotel
チャートを開きます。[シンボル] ペインを開きます。[シミュレーション] タブの [準備] で、[[シンボル] ペイン] をクリックします。
ログを作成する
Dining_area
ステートを設定します。Stateflow エディターで、
Dining_area
ステートを選択します。[シミュレーション] タブの [準備] で、[自己アクティビティのログ] を選択します。
[プロパティ インスペクター] の [ログ] で、[自己アクティビティのログ] チェック ボックスを選択します。
既定では、このステートのログ名は階層信号名
Check_in.Checked_in.Executive_suite.Dining_area
です。より短い名前をステートに割り当てるには、[ログ名] を[カスタム]
に設定し、「Dining Room
」と入力します。
Simulink® モデルに戻ります。
モデルのシミュレーションを実行します。シミュレーション開始後に、1 つ目のスイッチを 2 回切り替えてホテルにチェックインし、2 つ目のスイッチを複数回切り替えてルーム サービスを注文します。シミュレーション時に、Stateflow により、ログ データは
Simulink.SimulationData.Dataset
(Simulink) 信号のログ オブジェクトに保存されます。信号のログ オブジェクトの既定の名前はlogsout
です。詳細については、信号ログを使用した信号データの保存 (Simulink)を参照してください。シミュレーションを停止します。
信号のログ オブジェクトにアクセスするには、MATLAB® コマンド プロンプトで、以下のように入力します。
logsout
logsout = Simulink.SimulationData.Dataset 'logsout' with 1 element Name BlockPath ___________ ________________________________ 1 [1x1 State] Dining Room sf_semantics_hotel_checkin/Hotel
ログが作成された要素にアクセスするには、
get
(Simulink) メソッドを使用します。diningLog = logsout.get("Dining Room")
diningLog = Stateflow.SimulationData.State Package: Stateflow.SimulationData Properties: Name: 'Dining Room' BlockPath: [1×1 Simulink.SimulationData.BlockPath] Values: [1×1 timeseries]
ログ データおよびログが作成された各要素の時間にアクセスするには、
Values.Data
プロパティとValues.Time
プロパティを使用します。たとえば、関数table
を使用して、ログ データを表形式でまとめます。T = table(diningLog.Values.Time,diningLog.Values.Data); T.Properties.VariableNames = ["Time" "Data"]
T = 6×2 table Time Data __________ ____ 0 0 1.8607e+06 1 1.9653e+06 0 1.9653e+06 1 1.9653e+06 0 2.2912e+06 1
バージョン履歴
R2017b で導入
参考
Stateflow.SimulationData.Data
| Simulink.SimulationData.BlockPath
(Simulink) | timeseries
| plot
(Simulink)
トピック
- ステートとデータのシミュレーション出力のログ
- 信号ログを使用した信号データの保存 (Simulink)
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)