MATLABオブジェクトとして実行するStateflowチャ,トの作成
ステ,トマシンのプログラミングの利点をmatlab®のすべての機能と組み合わせるために,スタンドアロンの状态流®チャ,トをS万博1manbetximulink®モデル外で作成します。スタンドアロンのチャ,トは拡張子.sfx
を付けて保存し,matlabオブジェクトとして実行します。チャトアニメーションおよびグラフィカル デバッグのツールを使用して設計を調整します。
スタンドアロンのチャ,トでは,次のようなmatlabアプリケ,ションを作成できます。
モードロジックを使用してウィジェットの動作を管理するMATLAB应用程序设计师ユーザーインターフェイス。状态流チャトを使用したヒュマンマシンンタフェスのロジックの設計を参照してください。
順序論理を使用する通信プロトコルおよびデ,タストリ,ム処理アプリケ,ション。チャ,トオブジェクトを使用した通信プロトコルのモデル化を参照してください。
タイマーベースのロジックを使用して外部タスクを監視および制御する数据采集工具箱™アプリケーションまたは仪器控制工具箱™アプリケーション。Stateflowを使用した金融戦略の実装を参照してください。
これらのアプリケ,ションは,Stateflowラ,econfセンスなしで共有および実行できます。詳細にいては,スタンドアロンのチャ,トの共有を参照してください。
スタンドアロンのチャ,トの作成
スタンドアロンのstatflowチャ,トを作成するには,関数编辑
を使用してstatflowエディタ,を開きます。たとえば,Matlabコマンドウィンドウで、次のように入力します。
编辑chart.sfx
chart.sfx
が存在しない場合,Stateflowエディタ,では空のチャ,トが图表
という名前で開きます。それ以外の場合,エディタ,では自解压
ファ▪▪ルによって定義されているチャ▪▪トが開きます。
Stateflowエディターで,ステート,遷移,データ,その他の要素を組み合わせて,スタンドアロンのチャートを作成します。詳細にいては,状态流チャ,トの作成と実行を参照してください。
スタンドアロンのチャ,トを保存した後,関数帮助
は,matlabでのチャ,トの実行に関する情報を表示します。
帮助chart.sfx
Matlabコマンドウィンドウからスタンドアロンのチャ,トを閉じるには,関数sfclose
を使用します。
sfclose图表
Stateflowチャ,トオブジェクトの作成
MATLABでスタンドアロンのチャートを実行するには,まずStateflowチャートオブジェクトを作成します。スタンドアロンのチャ,トの自解压
ファ@ @ルの名前を関数として使用します。デ,タの初期値は,名前と値のペアとして指定します。たとえば,data1
およびdata2
というデタオブジェクトをもスタンドアロンのチャトを定義したとします。この場合,次のコマンドは,チャ,トオブジェクトchartObject
を作成し,data1
とdata2
を初期化して,デフォルト遷移を実行します。
chartObject = chart(data1=value1,data2=value2)
実行の構文,チャートデータの値,アクティブステートのリストなどのチャート情報を表示するには,関数disp
を使用します。
disp (chartObject)
スタンドアロンのチャ,トの実行
状态流チャ,トオブジェクトを定義した後,関数一步
(必要に応じてデ,タ値を含める)を呼び出すことにより,スタンドアロンのチャ,トを実行できます。
步骤(chartObject, data1 = value1, data2 = value2)
あるいは,次のいずれかの入力。
event_name (chartObject data1 = value1, data2 = value2)
いずれの場合でも,値はチャ,トの実行前にロ,カルデ,タに割り当てられます。
チャートにグラフィカル関数またはMATLAB関数が含まれている場合は,それらをMATLABコマンドウィンドウで直接呼び出すことができます。チャ,ト関数を呼び出しても,スタンドアロンのチャ,トは実行されません。
function_name (chartObject, u1, u2)
メモ
输入参数个数
をチャト内のグラフィカル関数またはmatlab関数で使用する場合,输入参数个数
は,チャ,トオブジェクトを入力引数の1としてカウントします。输入参数个数
の値は,関数をチャ,トとmatlabコマンドウィンドウのど,らから呼び出す場合でも同じです。
スタンドアロンのチャ,トは,Stateflowエディタ,を開かずに実行できます。チャトが開いている場合、Stateflow エディターでは、チャート アニメーションによってアクティブ ステートと遷移が強調表示されます。
デバッグや単体テストの目的で,Stateflowエディターから直接スタンドアロンのチャートを実行することができます。実行中に,ユ:。詳細にいては,状态流チャ,トオブジェクトの実行と単位テストを参照してください。
スタンドアロンのチャートは,MATLABスクリプト,仿万博1manbetx真软件モデル,または应用设计师のユーザーインターフェイスから実行できます。詳細にいては,以下を参照してください。
チャ,トの実行の停止
チャ,トの実行を停止するには,関数删除
を呼び出してチャ,トオブジェクトを破棄します。
删除(chartObject)
チャートオブジェクトが削除された後,そのチャートオブジェクトへのハンドルはすべてワークスペースに残りますが,無効になります。ワ,クスペ,スから無効なハンドルを削除するには,コマンド清晰的
を使用します。
清晰的chartObject
有効なチャートオブジェクトハンドルをクリアしても,同じチャートオブジェクトへの他のハンドルが存在する場合は,チャートオブジェクトは破棄されません。たとえば,チャートを実行する際,Stateflowエディターにはチャートオブジェクトへの内部ハンドルが含まれています。ワークスペースからチャートオブジェクトハンドルをクリアしても,チャートオブジェクトは破棄されず,エディターからチャートアニメーションの強調表示は削除されません。アニメ,ションの強調表示をリセットするには,チャ,トキャンバスを右クリックして[強調表示の削除]を選択します。
スタンドアロンのチャ,トの共有
Stateflowのライセンスを持っていない共同作業の相手とスタンドアロンのチャートを共有できます。
共同作業の相手が自分と同じバージョン,またはそれより新しいバージョンのMATLABを持っている場合,相手はStateflowエディターを開かずに,MATLABオブジェクトとしてスタンドアロンのチャートを実行できます。チャ,トのアニメ,ションとデバッグはサポ,トされません。実行時エラ,メッセ,ジは,チャ,ト内のエラ,が発生したステ,トや遷移にリンクしません。
メモ
R2019aまたはR2019bで保存したスタンドアロンチャートを実行するには,共同作業の相手は同じバージョンのMATLABを使用していなければなりません。
共同作業の相手がMATLABの以前のバージョンを使用している場合は,スタンドアロンチャートを相手が使用できる形式にエクスポートします。R2019a以降のリリ、スにのみエクスポ、トできます。エクスポート処理を完了するには,エクスポート元とエクスポート先のStateflowのバージョンにアクセスする必要があります。
状态流の新しいバ,ジョンを使用して,スタンドアロンチャ,トを開きます。
[ステ,トチャ,ト]タブで,[保存]、[以前のバ,ジョン]を選択します。
(前バージョンにエクスポート]ダイアログボックスで,エクスポートするチャートのファイル名を指定します。
[ファ电子邮箱ルの種類]リストで,チャ,トのエクスポ,ト先となる,以前のバ,ジョンを選択します。
[保存]をクリックします。
古い方のStateflowバ,ジョンを使用して,エクスポ,トしたチャ,トを開き,再保存します。
チャ,トをMATLABコマンドウィンドウからエクスポ,トするには,Stateflow関数exportToVersion
を呼び出します。詳細にいては,チャトをmatlabの以前のバジョンにエクスポトを参照してください。
メモ
エクスポ,トされたチャ,トを,再保存する前に実行しようとすると,エラ,が発生します。
Stateflowチャ,トオブジェクトのプロパティと関数
Stateflowチャートオブジェクトは,以下を提供することにより,単一の構造体でデータと演算をカプセル化します。
スタンドアロンのチャトの内部状態変数を含むプラベトプロパティ
チャ,トのセマンティクスを実装するさまざまな演算を呼び出す関数
一步
チャートオブジェクトには,チャート内に存在するさまざまな要素に対応するその他のプロパティや関数も含まれる場合があります。
スタンドアロンのチャ,トの要素 | チャ,トオブジェクトの要素 |
---|---|
ロ,カルデ,タと定数デ,タ | パブリックプロパティ |
入力@ @ベント | チャ,トを実行する関数 |
グラフィカル関数とmatlab関数 | Matlabコマンドウィンドウから呼び出すことのできる関数 |
チャ,トオブジェクトの構成オプション
チャートオブジェクトを作成するときに,以下の構成オプションを名前と値のペアとして含めることでチャートの動作を指定できます。
構成オプション | 説明 | 例 |
---|---|---|
-animationDelay |
各遷移セグメントを強調表示するためにチャ,トアニメ,ションが使用する遅延を指定します。既定値は0.01 秒です。アニメ,ションの遅延がないチャ,トを生成するには,0に設定します。 |
1秒の遅延を指定することで,低速のアニメ,ションがあるチャ,トオブジェクトを作成します。 chartObject =图表(“-animationDelay”, 1)
|
-enableAnimation |
チャトアニメションとデバッグのンストルメント化を有効にします。既定値は真正的 です。 |
アニメションとデバッグのンストルメント化が無効にされているチャトオブジェクトを作成します。 chartObject =图表(“-enableAnimation”假)
|
-eventQueueSize |
@ @ @ @ @ @ @ @ @ @ @ @ @ @。既定値は20. です。@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @詳細にいては,スタンドアロンチャトのベントを参照してください。 |
チャートが他の演算を処理中に発生するすべてのイベントを警告なしで無視するチャートオブジェクトを作成します。 chartObject =图表(“-eventQueueSize”, 0)
|
-executeInitStep |
デフォルト遷移の内部実行を有効にします。既定値は真正的 です。 |
チャ,トオブジェクトを作成しますが,デフォルト遷移は実行しません。 chartObject =图表(“-executeInitStep”假)
|
-warningOnUninitializedData |
チャ,トオブジェクトの初期化後に,空のチャ,トデ,タに関する警告を有効にします。既定値は真正的 です。 |
チャ,トオブジェクト作成時に警告を回避します。 chartObject =图表(“-warningOnUninitializedData”假)
|
チャ,トデ,タの初期化
Stateflowエディタ,で,[シンボル]ペンを使用してチャトデタの初期値を指定できます。チャトオブジェクトを作成すると、チャート データはそのスコープに従ってアルファベット順に初期化されます。定数データが最初に初期化されます。ローカル データは最後に初期化されます。
初期値を指定する式を使用する場合,チャ,トは以下の方法で式の解決を試みます。
チャ,ト内の他のデ,タの値を使用
検索パス上での関数の呼び出し
たとえば,式y
を使用して,ロ,カルデ,タx
の初期値を指定するとします。その場合,次のようになります。
y
という定数がチャ,トに含まれている場合は,y
がx
より前に初期化されます。ロ,カルデ,タx
には,y
と同じ初期値が代入されます。y
というロ,カルデ,タがチャ,トに含まれている場合は,x
がy
より前に初期化されます。ロ,カルデ,タx
は空の配列に代入されます。構成オプション-warningOnUninitializedData
が真正的
に設定されている場合は,警告が発生します。y
という名前のデ,タがチャ,トに含まれていない場合,x
は関数y
を呼び出すことによって初期化されます。ファereplicationルy.m
が検索パスにない場合は,次のエラ,が発生します。未定义的函数或变量“y”。
Stateflowでは,MATLABワークスペースを検索して初期値を解決することはないため,このエラーは,y
という変数がmatlabワ,クスペ,ス内にある場合であっても発生します。
機能および制限事項
サポ,トされている機能
MATLABをアクション言語とする经典チャ,トのセマンティクス。万博1manbetx仿真软件でのコード生成が制限されている関数を含めて,MATLABのすべての機能を使用できます。スクリプトとモデルを使用したstatflowチャ,トオブジェクトの実行を参照してください。
メモ
スタンドアロンのStateflowチャ,トでは,オペレ,ティングシステムのコマンド記号
!
はサポ,トされません。オペレ,ティングシステムのコマンドを実行するには,関数系统
を使用します。階層をも排他的(或)およびパラレル(和)ステト構造。ステ,ト構造を使用した排他的モ,ドとパラレルモ,ドの定義とステ,トの階層を使用した複雑なマルチレベルステ,トの設計を参照してください。
フロ,チャ,ト,グラフィカル関数およびmatlab関数。チャ,ト内の再利用可能なコンポ,ネントを参照してください。
パタ,ンウィザ,ドを使用してmatlab,コ,ドをグラフィカル関数に変換。MATLABコ,ドのStateflowフロ,チャ,トへの変換を参照してください。
チャトのロカルデタと定数デタ(型の制限なし)。状态流チャ,トオブジェクトの実行と単位テストを参照してください。
入力@ @ベント。状态流チャトを使用したヒュマンマシンンタフェスのロジックの設計を参照してください。
ロ,カルデ,タの値の変化を検出する演算子
焕然一新
、hasChangedFrom
,およびhasChangedTo
。メモ
スタンドアロンのStateflowチャートは,行列の要素または構造体内のフィールドでの変化検出をサポートしません。
次の時相論理演算子。
スタンドアロンチャ,トは,絶対時間時相論理を時計時間で定義します。この時間の精度は1ミリ秒に制限されています。
チャ,トの実行時にアクティブなステ,トにアクセスする関数
getActiveStates
。アクティブステ,トを单元格配列として保存するには,次のように入力します。states = getActiveStates(chartObject)
スタンドアロンチャートを等価のMATLABクラスとしてエクスポートするStateflow関数
exportAsClass
。この関数は,診断の難しい実行時エラ,をデバッグするために使用します。たとえば,MATLABアプリケーションを制御する Stateflow チャートの実行中にエラーが発生したとします。チャートを MATLAB クラス ファイルとしてエクスポートした場合、アプリケーション内のチャートをクラスに置き換えて、MATLAB デバッガーを使用してエラーを診断することができます。チャートchart.sfx
をクラスファ@ @ルchart.m
としてエクスポ,トするには,次のように入力します。Stateflow.exportAsClass (“chart.sfx”)
制限
万博1manbetxSimulinkに固有の内容:
サンプル時間と連続時間のセマンティクス
Cアクション言語
ステ,トとしてのS万博1manbetximulink関数および,Simulinkサブシステム
入力,出力およびパラメ,タ,のデ,タ
デ,タストアメモリのデ,タ
出力▪▪ベントとロ▪▪カル▪▪ベント
入力,出力およびロ,カルのメッセ,ジ
その他の制限は次のとおりです。
米莉や摩尔のセマンティクスなし
状態遷移表なし
真理値表関数なし
ステ,トを親とするロ,カルデ,タや関数なし
遷移アクション(遷移元ステートからの出力後,遷移先ステートへの入力前に実行されるアクション)なし
参考
disp
|编辑
|exportAsClass
|exportToVersion
|帮助
|sfclose