主要内容

MATLABオブジェクトとして実行するStateflowチャ,トの作成

ステ,トマシンのプログラミングの利点をmatlab®のすべての機能と組み合わせるために,スタンドアロンの状态流®チャ,トをS万博1manbetximulink®モデル外で作成します。スタンドアロンのチャ,トは拡張子.sfxを付けて保存し,matlabオブジェクトとして実行します。チャトアニメーションおよびグラフィカル デバッグのツールを使用して設計を調整します。

スタンドアロンのチャ,トでは,次のようなmatlabアプリケ,ションを作成できます。

これらのアプリケ,ションは,Stateflowラ,econfセンスなしで共有および実行できます。詳細にいては,スタンドアロンのチャ,トの共有を参照してください。

スタンドアロンのチャ,トの作成

スタンドアロンのstatflowチャ,トを作成するには,関数编辑を使用してstatflowエディタ,を開きます。たとえば,Matlabコマンドウィンドウで、次のように入力します。

编辑chart.sfx
ファereplicationルchart.sfxが存在しない場合,Stateflowエディタ,では空のチャ,トが图表という名前で開きます。それ以外の場合,エディタ,では自解压ファ▪▪ルによって定義されているチャ▪▪トが開きます。

Stateflowエディターで,ステート,遷移,データ,その他の要素を組み合わせて,スタンドアロンのチャートを作成します。詳細にいては,状态流チャ,トの作成と実行を参照してください。

スタンドアロンのチャ,トを保存した後,関数帮助は,matlabでのチャ,トの実行に関する情報を表示します。

帮助chart.sfx

Matlabコマンドウィンドウからスタンドアロンのチャ,トを閉じるには,関数sfcloseを使用します。

sfclose图表

Stateflowチャ,トオブジェクトの作成

MATLABでスタンドアロンのチャートを実行するには,まずStateflowチャートオブジェクトを作成します。スタンドアロンのチャ,トの自解压ファ@ @ルの名前を関数として使用します。デ,タの初期値は,名前と値のペアとして指定します。たとえば,data1およびdata2というデタオブジェクトをもスタンドアロンのチャトを定義したとします。この場合,次のコマンドは,チャ,トオブジェクトchartObjectを作成し,data1data2を初期化して,デフォルト遷移を実行します。

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のバージョンにアクセスする必要があります。

  1. 状态流の新しいバ,ジョンを使用して,スタンドアロンチャ,トを開きます。

  2. [ステ,トチャ,ト]タブで,[保存][以前のバ,ジョン]を選択します。

  3. (前バージョンにエクスポート]ダイアログボックスで,エクスポートするチャートのファイル名を指定します。

  4. [ファ电子邮箱ルの種類]リストで,チャ,トのエクスポ,ト先となる,以前のバ,ジョンを選択します。

  5. [保存]をクリックします。

  6. 古い方の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という定数がチャ,トに含まれている場合は,yxより前に初期化されます。ロ,カルデ,タxには,yと同じ初期値が代入されます。

  • yというロ,カルデ,タがチャ,トに含まれている場合は,xyより前に初期化されます。ロ,カルデ,タ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チャートは,行列の要素または構造体内のフィールドでの変化検出をサポートしません。

  • 次の時相論理演算子。

    • 每一个は入力▪▪ベント数,チャ▪▪トの呼び出し回数(蜱虫)、絶対時間 (证券交易委员会)に対して演算を行います。これらの演算子はステ,トアクションで遷移トリガ,として使用します。

    • は,チャ,トの呼び出し回数(蜱虫)に対して演算を行います。

    • temporalCountは、絶対時間(证券交易委员会msec购买)に対して演算を行います。

    • 运行は、絶対時間(证券交易委员会)に対して演算を行います。

    スタンドアロンチャ,トは,絶対時間時相論理を時計時間で定義します。この時間の精度は1ミリ秒に制限されています。

  • チャ,トの実行時にアクティブなステ,トにアクセスする関数getActiveStates。アクティブステ,トを单元格配列として保存するには,次のように入力します。

    states = getActiveStates(chartObject)

  • スタンドアロンチャートを等価のMATLABクラスとしてエクスポートするStateflow関数exportAsClass。この関数は,診断の難しい実行時エラ,をデバッグするために使用します。たとえば,MATLABアプリケーションを制御する Stateflow チャートの実行中にエラーが発生したとします。チャートを MATLAB クラス ファイルとしてエクスポートした場合、アプリケーション内のチャートをクラスに置き換えて、MATLAB デバッガーを使用してエラーを診断することができます。チャートchart.sfxをクラスファ@ @ルchart.mとしてエクスポ,トするには,次のように入力します。

    Stateflow.exportAsClass (“chart.sfx”
    MATLABクラスを実行する際,Stateflowエディターは元のチャートをアニメーション化しません。

制限

万博1manbetxSimulinkに固有の内容:

  • サンプル時間と連続時間のセマンティクス

  • Cアクション言語

  • ステ,トとしてのS万博1manbetximulink関数および,Simulinkサブシステム

  • 入力,出力およびパラメ,タ,のデ,タ

  • デ,タストアメモリのデ,タ

  • 出力▪▪ベントとロ▪▪カル▪▪ベント

  • 入力,出力およびロ,カルのメッセ,ジ

その他の制限は次のとおりです。

  • 米莉や摩尔のセマンティクスなし

  • 状態遷移表なし

  • 真理値表関数なし

  • ステ,トを親とするロ,カルデ,タや関数なし

  • 遷移アクション(遷移元ステートからの出力後,遷移先ステートへの入力前に実行されるアクション)なし

参考

|||||

関連するトピック