主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

Stateflow構造体を介したバス信号へのアクセス

Stateflow®構造体は,金宝app仿真软件。公共汽车(金宝app模型)オブジェクトから定義するデータ型です。Stateflow構造体を使用すると、サイズや型の異なるデータをまとめて、以下を作成できます。

  • Stateflowチャート,真值表ブロック,およびMATLAB函数ブロックから仿金宝app真软件®バス信号にアクセスする入出力。

  • Stateflowチャート,真理値表,グラフィカル関数,MATLAB®関数,およびボックスのローカルデータ。

  • Stateflowグラフィカル関数,真理値表,およびMATLAB関数の一時データ。

たとえば,モデルsf_bus_demoでは,Stateflowチャートは,構造体inbusを使用してバス入力信号を受信し,構造体outbusからバス信号を出力します。入力信号は,他の2つの总线的创造者ブロックからの信号をまとめる仿金宝app真软件总线的创造者ブロックのCOUNTERBUSCreatorから派生しています。出力構造体outbusは,金宝app仿真软件总线选择器ブロックに接続します。inbusoutbusも,金宝app仿真软件。公共汽车オブジェクトCOUNTERBUSから型を派生させます。

Stateflow構造体データ型の要素は,フィールドと呼ばれます。個別の信号,多重化信号,ベクトル,および他の構造体(サブ構造体とも呼ばれる)を自由に組み合わせてフィールドを作成できます。各フィールドが独自のデータ型をもちます。データ型は,構造体の他のフィールドの型と一致する必要はありません。たとえば,モデルsf_bus_demoでは,構造体inbusoutbusは、それぞれ次の 2.つのフィールドをもっています。

  • inputsignalは1つのフィールド输入をもつサブ構造体です。

  • 限制は2つのフィールドupper_saturation_limitlower_saturation_limitをもつサブ構造体です。

Stateflow構造体の定義

  1. 構造体のデータ型を定義するには,金宝app仿真软件。公共汽车オブジェクトの作成と指定(金宝app模型)の説明に従って,ベースワークスペースで仿真金宝app软件バスオブジェクトを作成します。

  2. Stateflowデータの追加の説明に従って,データオブジェクトをチャートに追加します。

    真理値表,グラフィカル関数およびMATLAB関数で一時構造体を定義するには,データオブジェクトを”関数に”追加します。詳細については,モデル エクスプローラーによるデータの追加を参照してください。

  3. 構造体の[スコープ]プロパティを設定します。選択肢は以下のとおりです。

    • 入力

    • 出力

    • ローカル

    • パラメーター

    • 一時的

  4. 構造体の[型]プロパティを設定します。スコープに応じて、状态流構造体は以下のいずれかのデータ型をもつことができます。

    説明
    继承:与Simulink相同金宝app

    このオプションは入力構造体のみで使用可能です。入力構造体は,接続しているモデル内の Simulink バス信号からデータ型を継承します。Simulink バス信号は非バーチャル バスでなければなりません。詳細については、バーチャルバスと非バーチャルバスを参照してください。

    ベースワークスペースで,Stateflow入力構造体に接続するバス信号と同じプロパティをもつ金宝app仿真软件。公共汽车オブジェクトを指定します。これらのプロパティは,以下が一致しなければなりません。

    • 入力の数,名前および型

    • 次元

    • サンプル時間

    • 実数/複素数

    • サンプリングモード

    入力信号が总线的创造者ブロックから派生している場合は,[总线创造者]ダイアログボックスの(出力データ型)フィールドで適切なバスオブジェクトを指定します。バスオブジェクトを指定すると,仿金宝app真软件によって,ベースワークスペース内の金宝app仿真软件。公共汽车オブジェクトのプロパティが仿金宝app真软件バス信号のプロパティと一致していることが検証されます。

    总线:<对象名称>

    [型]フィールドで,<对象名称>を,Stateflow構造体を定義する金宝app仿真软件。公共汽车オブジェクトの名前に置き換えます。

    入力構造体または出力構造体の場合は,Stateflow構造体に接続する仿真金宝app软件モデル内でバス信号を指定する必要はありません。バス信号を指定する場合は,そのプロパティが,Stateflow構造体を定義する金宝app仿真软件。公共汽车オブジェクトと一致しなければなりません。

    <日期类型表达式>

    [型]フィールドで,<数据类型>表达を,データ型として評価される式に置き換えます。以下に例を示します。

    • Stateflow構造体を定義する金宝app仿真软件。公共汽车オブジェクトの名前を入力します。

    • スコープが[出力]以外の構造体の場合は,Stateflow类型演算子を使用して,別の構造体の型をコピーします。詳細については,类型演算子の呼び出しによる構造体の型の指定を参照してください。

たとえば,sf_bus_demoモデルでは,入力構造体inbusと出力構造体outbusは,总线:COUNTERBUSという形式の型指定によって型を派生させます。

类型演算子の呼び出しによる構造体の型の指定

構造体の型を指定するには,Stateflow类型演算子を呼び出す式を使用できます。この演算子は,ある構造体の型を,Stateflowチャート内の別の構造体の型に設定します。たとえば,sf_bus_demoモデルでは,类型演算子式によって,ローカル構造体counterbus_structの型を,入力構造体inbusの観点から指定します。いずれの構造体も,金宝app仿真软件。公共汽车オブジェクトCOUNTERBUSから定義されます。詳細については,他のデータオブジェクトからのデータ型の派生を参照してください。

バーチャルバスと非バーチャルバス

金宝app模拟モデルは、バーチャル バスと非バーチャル バスをサポートしています。非バーチャル バスは連続メモリに格納されたデータ構造体から入力を読み取ります。バーチャル バスは不連続メモリから入力を読み取ります。詳細については、合成信号のタイプ(金宝app模型)を参照してください。

Stateflowチャートは非バーチャルバスのみをサポートします。Stateflow入力構造体は,バーチャル バス信号を受け入れて、非バーチャル バス信号に変換できます。Stateflow 入力構造体は、バーチャル バス信号からプロパティを継承できません。チャートへの入力がバーチャル バスである場合は、[总线:<对象名称>の形式の型指定を使用して,入力構造体の[型]プロパティを設定します。

構造体のデバッグ

Stateflow構造体をデバッグするには,[Stateflowブレークポイントと監視ウィンドウ]を開いて,シミュレーション中の構造体フィールドの値を調べます。コマンドラインで構造体フィールドの値を表示するには,ドット表記を使用して構造体にインデックスを設定します。詳細については,デバッグ中のデータおよびメッセージの検査と変更を参照してください。

構造体のデータ型のガイドライン

  • 構造体はそれぞれ,ベースワークスペース内の金宝app仿真软件。公共汽车オブジェクトから定義します。

  • 構造体が定数スコープをもつことはできません。

  • パラメータースコープの構造体は調整可能でなければなりません。

  • データ配列オブジェクトは,構造体を含められません。

  • Stateflowマシンの構造体は定義できません。詳細については,Stateflowオブジェクトの概要を参照してください。

参考

(金宝app模型)

関連するトピック