主要内容

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

データオブジェクト

“データオブジェクト”を作成して信号,状態,ブロックパラメーターの値,値の範囲,データ型,調整可能性などの特性を指定できます。金宝app动态仿真模块®ダイアログボックスでオブジェクト名を使用して信号,状態,パラメーターの特性を指定できます。オブジェクトは、ベース ワークスペース、モデル ワークスペース、Simulink データ ディクショナリなどのワークスペースにあります。データ オブジェクトを使用すると、ワークスペース オブジェクトの値を変更するだけで、モデル全体の信号、状態、パラメーターの特性を変更できます。

データオブジェクトはデータクラスのインスタンスとして作成します。“データクラスパッケージ”と呼ばれるメモリ構造体にデータクラス定義が含まれています。組み込みのパッケージ金宝appによって,データオブジェクトの作成に使用できる金宝app仿真软件。信号金宝app仿真软件。参数の2つのデータクラスが定義されています。ルックアップテーブルブロック(一天的查找表など)間で共有するルックアップテーブルデータを保存するために,金宝app仿真软件。LookupTableクラスと金宝app仿真软件。断点クラスを使用できます。

データオブジェクトを使用して信号を設定するかどうかを決定する場合は(轮廓尺寸ブロックと外港ブロックを含め),信号の設計属性と状態の保存を参照してください。

組み込みのデータクラスのサブクラスを定義することによって,データオブジェクトのプロパティとメソッドをカスタマイズできます。データクラスパッケージの作成についての詳細は,データクラスの定義を参照してください。

データクラスの命名規則

金宝app仿真软件では,データクラスの名前付けにドット表記を使用します。

package.class

  • 包裹はクラスの定義を含むパッケージの名前です。

  • はクラスの名前です。

この表記法により,異なるパッケージに属する個別のクラスを作成および参照することができます。この表記法では,クラス名をパッケージ名で"修飾"します。

クラスとパッケージの名前は大文字,小文字を区別します。たとえば,同じクラスを参照するためにMYPACKAGE。MYCLASSmypackage.myclassを置き換えて使用することはできません。

金宝appモデル内のデータオブジェクトの使用

ワークスペースまたはデータディクショナリ内の変数を変更することによって信号,ブロックパラメーター,状態のシミュレーションおよびコード生成のオプションを指定するには,データオブジェクトを使用します。オブジェクトをモデルブロック線図内の信号,パラメーターおよび状態と関連付けます。

パラメーター オブジェクトの使用

MATLAB®の数値変数の代わりにパラメーターオブジェクトを使用してブロックパラメーターの値を指定できます。たとえば,获得ブロックの[ゲイン]パラメーターを指定するためにmyParamという名前の金宝app仿真软件。参数オブジェクトを作成して使用するには次のようにします。

  1. モデルの[モデル化]タブの[設計]で,[プロパティインスペクター]をクリックします。

  2. モデルでターゲットの获得ブロックをクリックします。プロパティ インスペクターによってブロックのプロパティとパラメーターが表示されます。

  3. [ゲイン]パラメーターの値をmyParamに設定します。

  4. パラメーター値の横にあるアクション ボタンをクリックし,[作成]を選択します。

  5. (新規データの作成)ダイアログ ボックスで、[値]金宝appSimulink.Parameter (15.23)に設定して[作成]をクリックします。

    金宝app仿真软件。参数オブジェクトmyParamがベースワークスペースに表示されます。このオブジェクトの[値]プロパティにパラメーター値15.23が格納されていることがプロパティダイアログボックスに表示されます。

  6. プロパティダイアログボックスを使用してオブジェクトのプロパティを調整することによって,ブロックパラメーターのその他の特性を指定します。たとえば,パラメーターが取ることのできる最小値および最大値を指定するには,[最小値]プロパティと[最大値]プロパティを使用します。

シミュレーション中に、[ゲイン]パラメーターの値として15.23が使用されるようになります。

金宝app仿真软件。LookupTableおよび金宝app仿真软件。断点を使用したルックアップテーブルデータの共有の詳細については,ルックアップテーブルの共有ブレークポイントとテーブルデータのパッケージ化を参照してください。

信号オブジェクトの使用

信号線またはブロックの状態(单位延迟ブロックの状態など)を信号オブジェクトに関連付けることができます。

信号の場合-信号オブジェクトを使用してモデル内の信号の特性を制御するには、ワークスペース内で信号と同じ名前を使用してオブジェクトを作成します。

  1. モデルの[モデル化]タブで[モデルデータエディター]をクリックします。

  2. モデルデータエディターで,[信号]タブを選択します。

  3. モデルでターゲットの信号を選択します。モデルデータエディターによって信号に対応する行が強調表示されます。

  4. モデルデータエディターの(名字)列で、この信号にmySigなどの名前を付けます。

  5. 信号名の横にあるボタンをクリックします。(作成と関連付け]を選択します。

  6. [新規データの作成] ダイアログ ボックスで、[値]金宝app仿真软件。信号に設定します。[場所]ドロップダウンリストを使用してオブジェクトを保存するワークスペースを選択します(既定値は[ベースワークスペース]です)。[作成]をクリックします。

    金宝app仿真软件。信号オブジェクトのmySigがターゲット ワークスペースに表示されます。金宝app模拟によって信号のプロパティ(信号名を仿金宝app真软件の信号オブジェクトに関連付ける]が選択され,モデル内の信号が信号オブジェクトに保存されているプロパティを使用するように強制されます。信号名が信号オブジェクトに解決される仕組みを制御する方法についての詳細は,記号の解釈を参照してください。

    新しいオブジェクトのプロパティ ダイアログ ボックスが開きます。

  7. プロパティダイアログボックスを使用して信号の特性を指定します。[好的]をクリックします。

プログラムで信号を設定するには,以下を実行します。

%创建信号对象。mySig = 金宝appSimulink.Signal;mySig。数据类型=“布尔”获取块端口的句柄,该端口创建%的目标信号。portHandles = get_param (“myModel / myBlock”“portHandles”);outportHandle = portHandles.Outport;%指定编程端口参数“Name”。set_param (outportHandle“名字”“mySig”%设置端口参数“MustResolveToSignalObject”。set_param (outportHandle“MustResolveToSignalObject”“上”

ルートレベルの外港ブロックをプログラムによって設定するには,多少異なる手法を使用しなければなりません。

%创建信号对象。mySig = 金宝appSimulink.Signal;mySig。数据类型=“布尔”%指定编程块参数“SignalName”。设置参数(“myModel / myOutport”“SignalName”“mySig”%设置块参数'MustResolveToSignalObject'。设置参数(“myModel / myOutport”“MustResolveToSignalObject”“上”

状態の場合-信号オブジェクトを使用して离散时间积分器ブロックなどのブロックの状態の特性を制御できます。

  1. モデルの[モデル化]タブで[モデルデータエディター]をクリックします。

  2. モデルデータエディターで,[状態]タブを選択します。

  3. モデル内で、ターゲットの状態を格納するブロックを選択します。モデル データ エディターによって状態に対応する行が強調表示されます。

  4. モデルデータエディターの(名字)列で,状態にmyStateなどの名前を付けます。

  5. 状態名の横にあるボタンをクリックします。(作成と関連付け]を選択します。

  6. [新規データの作成] ダイアログ ボックスで、[値]金宝app仿真软件。信号に設定します。[場所]ドロップダウンリストを使用してオブジェクトを保存するワークスペースを選択します(既定値は[ベースワークスペース]です)。[作成]をクリックします。

    金宝app仿真软件。信号オブジェクトのmyStateがターゲットワークスペースに表示されます。金宝app动态仿真模块によってブロック パラメーター[状態名を仿金宝app真软件の信号オブジェクトに関連付ける]が選択され,モデル内の状態が信号オブジェクトに保存されているプロパティを使用するように強制されます。状態名が信号オブジェクトに解決される仕組みを制御する方法の詳細については,記号の解釈を参照してください。

    新しいオブジェクトのプロパティ ダイアログ ボックスが開きます。

  7. プロパティ ダイアログ ボックスを使用して状態の特性を指定します。[好的]をクリックします。

プログラムで状態を設定するには,以下を実行します。

%创建信号对象。myState = 金宝appSimulink.Signal;myState。数据类型=“int16”%在块中设置状态名。设置参数(“myModel / myBlock”“州名”“myState”%设置端口参数“StateMustResolveToSignalObject”。设置参数(“myModel / myBlock”“StateMustResolveToSignalObject”“上”

データ オブジェクトのプロパティ

パラメーターおよび信号の特性をデータオブジェクトを使用して制御するには,データオブジェクトのプロパティに値を指定します。たとえば,パラメーターと信号のデータオブジェクトには,ターゲットのブロックパラメーターまたは信号のデータ型を決定する数据类型プロパティがあります。データクラス定義によって,データオブジェクトのプロパティの名前,値の型,既定の値および有効な値の範囲が決まります。

モデルエクスプローラーまたはMATLABコマンドを使用して,データオブジェクトのプロパティを変更できます。

信号オブジェクトのプロパティの一覧については、金宝app仿真软件。信号を参照してください。パラメーターオブジェクトのプロパティの一覧については、金宝app仿真软件。参数を参照してください。

モデルエクスプローラーを使用したオブジェクトのプロパティの変更

モデルエクスプローラーを使ってオブジェクトのプロパティを変更するには,オブジェクトを含むワークスペースをモデルエクスプローラーの[モデルの階層]ペインで選択します。その後,オブジェクトをモデルエクスプローラーの[コンテンツ]ペインで選択します。

モデルエクスプローラーは,オブジェクトのプロパティダイアログボックスを(ペインが可視である場合)[ダイアログ]ペインに表示します。

モデルエクスプローラーは,(コンテンツ] ペインにオブジェクトの一部またはすべてのプロパティを表示するように構成できます (モデルエクスプローラーを参照)。プロパティを編集するには,[コンテンツ]または[ダイアログ] ペインで値をクリックします。値は、値の変更が可能なコントロールで置き換えられます。

MATLABコマンドを使用したオブジェクトのプロパティの変更

MATLABコマンドを使用しても、データ オブジェクトのプロパティを取得および設定できます。MATLABコマンドおよびプログラムで以下のドット表記を使用して、データ オブジェクトのプロパティを取得および設定します。

值= obj.property;obj。属性=价值;

ここで,objは、オブジェクトが値クラスのインスタンスである場合はそのオブジェクトを、オブジェクトがハンドル クラスのインスタンスである場合はオブジェクトのハンドルを参照する変数で (ハンドルと値のクラスを参照),财产はプロパティ名,价值はプロパティ値です。たとえば、以下の MATLABコードは、データ型が 别名のオブジェクト (すなわち、金宝app仿真软件。AliasTypeのインスタンス)を作成し,その基本データ型をuint8に設定します。

获得= Sim金宝appulink.AliasType;收益。基类型=“uint8”

ドット表記を回帰的に使用して,次のように,他のオブジェクトのプロパティの値であるオブジェクトのプロパティを取得または設定することができます。

gain.CoderInfo.StorageClass =“ExportedGlobal”

組み込みのデータ クラス パッケージ金宝appからのデータオブジェクトの作成

組み込みのパッケージ金宝appは2つのデータオブジェクトクラス金宝app仿真软件。参数金宝app仿真软件。信号を定義します。ユーザーインターフェイスまたはプログラムを使用してこれらのデータオブジェクトを作成できます。

データ オブジェクトの作成

  1. モデルエクスプローラーの[モデルの階層構造)ペインで、データ オブジェクトを含めるワークスペースを選択します。たとえば、基本工作空间をクリックします。

  2. ツールバーの[パラメーターの追加)または(信号を追加)の隣の矢印をクリックします。ドロップダウンリストから(金宝app仿真软件パラメーター]または(金宝app仿真软件信号)を選択します。

    パラメーターまたは信号オブジェクトがベースワークスペースに表示されます。新しいパラメーターオブジェクトの既定の名前は参数です。新しい信号オブジェクトの既定の名前は团体です。

  3. さらにオブジェクトを作成するには,[パラメーターの追加)または(信号を追加)をクリックします。

金宝app仿真软件。LookupTableオブジェクトと金宝app仿真软件。断点オブジェクトを作成するには,モデルエクスプローラーツールバーのボタンを使用します。

プログラムによるデータオブジェクトの作成

创建一个Simulin金宝appk。参数对象named myParam whose value is 15.23.myParam=Si金宝appmulink.参数(15.23);创建一个Simulin金宝appk。信号对象named mySig.mySig = 金宝appSimulink.Signal;

数値変数のパラメーターオブジェクトへの変換

次のようにして,数値変数を金宝app仿真软件。参数オブジェクトに変換できます。

/ *定义数字变量基地工作空间myvar# = 5;/ *创建数据对象分配变量价值myObject = 金宝appSimulink.Parameter (myvar#);

他のデータ クラス パッケージからのデータ オブジェクトの作成

独自のパッケージを作成して金宝app仿真软件。参数および金宝app仿真软件。信号をサブクラス化するカスタムデータオブジェクトクラスを定義できます。この手法を利用して独自のプロパティとメソッドをデータオブジェクトに追加できます。嵌入式编码器®のライセンスをお持ちの場合は,パッケージの中でストレージクラスとメモリセクションを定義できます。データクラスパッケージの作成についての詳細は,データクラスの定義を参照してください。

他のパッケージからのデータオブジェクトの作成

myPackageという名前のデータクラスパッケージを定義するとします。このパッケージからデータオブジェクトを作成する前に,パッケージフォルダーを格納するフォルダーをMATLABパスに含めなければなりません。

  1. モデルエクスプローラーの[モデルの階層構造)ペインで、データ オブジェクトを含めるワークスペースを選択します。たとえば、基本工作空间をクリックします。

  2. [パラメーターの追加)または(信号を追加)の隣の矢印をクリックし,[クラスリストのカスタマイズ]を選択します。

  3. ダイアログボックスで目的のクラスの隣のチェックボックスをオンにします。たとえば,[myPackage.Parameter][myPackage.Signal]の横にあるチェック ボックスをオンにします。[好的]をクリックします。

  4. [パラメーターの追加)または(信号を追加)の隣の矢印をクリックします。作成するデータオブジェクトのクラスを選択します。たとえば,(myPackage参数)または(myPackage信号)を選択します。

    パラメーターまたは信号オブジェクトがベースワークスペースに表示されます。新しいパラメーターオブジェクトの既定の名前は参数です。新しい信号オブジェクトの既定の名前は团体です。

  5. パッケージmyPackageからさらにデータオブジェクトを作成するには,[パラメーターの追加)または(信号を追加)を再度クリックします。

プログラムによる他のパッケージからのデータオブジェクトの作成

myPackageという名前のデータクラスパッケージを定義するとします。このパッケージからデータオブジェクトを作成する前に,パッケージフォルダーを格納するフォルダーをMATLABパスに含めなければなりません。

%创建名为的myPackage.Parameter对象% myParam,其值为15.23。myParam = myPackage.Parameter (15.23);创建一个myPackage。信号对象named mySig.mySig = myPackage.Signal;

ダイアログボックスから直接データオブジェクトを作成する

(信号プロパティ]ダイアログボックス,ブロックのダイアログボックスまたはプロパティインスペクター([モデル化]タブの[設計][プロパティインスペクター]をクリック)を開くと,信号またはパラメーターのデータオブジェクトをワークスペースまたはデータディクショナリに効率的に作成できます。

ブロックのダイアログボックスからのパラメーターオブジェクトの作成

  1. ダイアログボックスのブロックの数値パラメーターに,データオブジェクトの名前を指定します。たとえば,名前myParamを指定します。

  2. ブロックパラメーターの値の横にあるボタンをクリックします。[作成]を選択します。

  3. (新規データの作成)ダイアログ ボックスで、[値]金宝app仿真软件。参数を指定します。

    または,作成したデータクラスの名前をmyPackage。参数のように指定することもできます。ドロップダウンリストを使用して利用可能なデータオブジェクトクラスの一覧から選択することもできます。

  4. [場所][ベースワークスペース]を指定して[作成]をクリックします。

    [場所]オプションを使用して新しいデータオブジェクトが含まれるワークスペースを選択できます。モデルがデータディクショナリにリンクされている場合は,ディクショナリにデータオブジェクトを作成するように選択できます。

  5. 開いたダイアログ ボックスでデータ オブジェクトのプロパティを設定します。[値]ボックスにパラメーターの数値を指定します。[好的]をクリックします。

    パラメーターオブジェクトmyParamがベースワークスペースに表示されます。

  6. [ブロックパラメーター]ダイアログボックスで,[好的]をクリックします。

[信号プロパティ] ダイアログ ボックスでの信号オブジェクトの作成

  1. [信号名]ボックスにmySigのような信号名を指定します。[適用]をクリックします。

  2. [信号名]の値の横にあるボタンをクリックします。(作成と関連付け]を選択します。

  3. (新規データの作成)ダイアログ ボックスで、[値]金宝app仿真软件。信号を指定します。

    または,作成したデータクラスの名前をmyPackage。信号のように指定することもできます。さらに、ドロップダウン リストから MATLABパスに存在するデータ オブジェクト クラスを選択することもできます。

  4. [場所][ベースワークスペース]を指定して[作成]をクリックします。

    [場所]オプションを使用して新しいデータオブジェクトが含まれるワークスペースを選択できます。モデルがデータディクショナリにリンクされている場合は,ディクショナリにデータオブジェクトを作成するように選択できます。

  5. 開いたダイアログボックスでデータオブジェクトのプロパティを設定して[好的]をクリックします。

    信号オブジェクトmySigがベースワークスペースに表示されます。(信号プロパティ]ダイアログボックスで(信号名を仿金宝app真软件の信号オブジェクトに関連付ける]プロパティが選択されています。

データオブジェクトウィザードを使用したモデルのデータオブジェクトの作成

モデル内の信号,パラメーター,状態を表すデータオブジェクトを作成するために,データオブジェクトウィザードを使用できます。このウィザードは,対応するデータオブジェクトがないモデル内のデータを検出します。

ウィザードはモデル内の指定に基づいてオブジェクトを作成し,次の特性を割り当てます。

  • 信号,パラメーターまたは状態の名前。

  • パラメーターオブジェクトの数値。

  • データ型。信号オブジェクトの場合は,Sumlink.AliasType金宝app仿真软件。NumericTypeなどのエイリアスタイプが含まれます。

  1. 金宝app仿真软件エディターの[モデル化]タブの[設計]で,[データオブジェクトウィザード]をクリックします。

  2. [モデル名)ボックスに検索するモデルの名前を入力します。

    既定の設定では,ウィザードを開いたモデルの名前がボックスに表示されます。

  3. [オプションの検索)の下で,作成するデータオブジェクトタイプの隣のチェックボックスをオンにします。次の表でオプションについて説明します。

    オプション 説明
    ルート入力 ルートレベルの轮廓尺寸ブロックからの名前のついた信号。
    ルート出力 ルートレベルの外港ブロックからの名前のついた信号。
    状態

    次の離散ブロックに関連付けられている状態。

    离散滤波器
    离散状态空间
    离散时间积分器
    离散传递Fcn
    离散Zero-Pole
    内存
    离散PID控制器
    离散时间PID控制器(二自由度)
    单位延迟
    データストア データストア。データストアの詳細は、ローカルおよびグローバルデータストアを参照してください。
    ブロック出力 出力元が非ルートレベルブロックである名前のついた信号。
    パラメーター
    • 数値パラメーター。たとえば,次のブロックのパラメーター。

      常数
      获得
      继电器
    • [スコープ]参数に設定されているStateflow®データ。

    エイリアスタイプ [コンフィギュレーション パラメーター][コード生成)[データ型置換]で指定するデータ型置換名。嵌入式编码器ライセンスをお持ちの場合,データオブジェクトウィザードはこれらのデータ型置換名に対して金宝app仿真软件。AliasTypeオブジェクトを作成します。データ型置換の詳細については,モデルコンフィギュレーションパラメーター:コード生成のデータ型置換(嵌入式编码)を参照してください。
  4. [検索]をクリックします。

    データオブジェクトテーブルに推奨されたオブジェクトが表示されます。

  5. (オプション)既定のクラス以外のデータクラスからオブジェクトを作成するには,クラスを変更するオブジェクトの隣のチェックボックスをオンにします。すべてのオブジェクトを選択するには,[すべて選択]をクリックします。[クラスの変更)をクリックします。開いたダイアログボックスで,[パラメーター]および[信号]の隣のドロップダウンリストを使用してクラスを選択します。

    目的のクラスがドロップダウンリストに表示されない場合は,[クラスリストのカスタマイズ]を選択します。開いたダイアログ ボックスで、目的のクラスの隣にあるチェック ボックスをオンにして[好的]をクリックします。

    ウィザードがオブジェクトの推奨に使用するパラメーターおよび信号の既定のクラスを変更するには,次を行います。

    • モデルエクスプローラーの[モデルの階層構造)ペインでワークスペースを選択します。たとえば,(基础工作)を選択します。

    • ツールバーの[パラメーターの追加)または(信号を追加)の隣の矢印をクリックします。

    • ドロップダウンリストからウィザードで使用するクラスを選択します。たとえば,(myPackage参数)または(myPackage信号)を選択します。

      選択したワークスペースにパラメーターまたは信号オブジェクトが表示されます。新しいパラメーターオブジェクトの既定の名前は参数です。新しい信号オブジェクトの既定の名前は团体です。

      次回データ オブジェクト ウィザードを使用したときに、ウィザードはモデル エクスプローラーで選択したパラメーターまたは信号のクラスを使用してオブジェクトを推奨します。

  6. 作成する推奨オブジェクトの隣のチェックボックスをオンにします。すべての推奨オブジェクトを選択するには,[すべて選択]をクリックします。

  7. [作成]をクリックします。

    ベースワークスペースにデータオブジェクトが表示されます。ターゲットのモデルがデータディクショナリにリンクされている場合,オブジェクトはディクショナリに表示されます。

    ウィザードは,コンフィギュレーションパラメーター([コンフィギュレーション パラメーター][診断][データ有効性)(信号の関連付け])に従ってモデルの設定を変更します。

    • このパラメーターを(明示的のみ]に設定した場合,ウィザードはモデル内の対応する信号および状態を新しい信号オブジェクトに関連付けます。ウィザードは各[信号プロパティ]ダイアログボックスの(信号名を仿金宝app真软件の信号オブジェクトに関連付ける]と各ブロックダイアログボックスの[状態名を仿金宝app真软件の信号オブジェクトに関連付ける]のオプションをオンにします。

    • このパラメーターを(明示的と暗黙的)または(明示的と暗黙的で警告)に設定した場合,ウィザードはすべての信号または状態について(信号名を仿金宝app真软件の信号オブジェクトに関連付ける]または[状態名を仿金宝app真软件の信号オブジェクトに関連付ける]の設定を変更しません。

    関数disableimplicitsignalresolutionを使用してモデルの信号オブジェクトの暗黙的な関連付けをオフにすることを検討してください。詳細については,明示的または暗黙的な記号関連付けを参照してください。

データオブジェクトウィザードのトラブルシューティング

  • データオブジェクトウィザードは,信号オブジェクトの作成を推奨するため,コード生成のためのモデルをコンパイルします。このため,コード生成について有効でないモデルに対してウィザードを使用できません。

  • データ オブジェクト ウィザードでは、モデルの次のエンティティについてはデータ オブジェクトの作成は推奨されません。

    • 同じ名前の複数の信号。

    • ブロックパラメーターで使用されている変数と同じ名前の信号。

    • 連続した単一のソースブロックがない信号。

    • ソース ブロックがコメント アウトまたはコメント スルーされている信号。

    • 变异源ブロックと变体水槽ブロックによって非アクティブであるとレンダリングされるデータ項目。ウィザードは、アクティブなブロックと関連付けられているデータ項目に対してのみオブジェクトを推奨します。

    • モデルコンフィギュレーションパラメーターの(信号の関連付け][なし]に設定した場合の信号および状態。

プログラムによる外部データソースからのデータオブジェクトの作成

この例では,スクリプトを使用して外部データソース(微软®Excel®ファイルなど)に基づいてデータオブジェクトを作成する方法について説明します。

  1. 新しい MATLABスクリプト ファイルを作成します。

  2. スクリプトファイルに,データオブジェクトに変換する外部ファイル内のデータを記述した情報を配置します。たとえば次の情報は,指定されたプロパティをもつ2つの金宝appデータオブジェクトを作成します。最初のオブジェクトがパラメーター用で2番目が信号用です。

    %参数ParCon = 金宝appSimulink.Parameter;ParCon.CoderInfo.StorageClass =“自定义”ParCon.CoderInfo.CustomStorageClass=“康斯特”;ParCon。值= 3;%的信号SigGlb = 金宝appSimulink.Signal;SigGlb。数据类型=“int8”

  3. スクリプト ファイルを実行します。データ オブジェクトが MATLABワークスペースに表示されます。

外部ソースからターゲットデータをインポートする場合,情報を読み取ってデータオブジェクトに変換し,オブジェクトをベースワークスペースに読み込むMATLAB関数とスクリプトを記述できます。

次の関数を使用して MATLABの外部のファイルを操作できます。

  • xmlread

  • xmlwrite

  • xlsread

  • xlswrite

  • csvread

  • csvwrite

  • dlmread

  • dlmwrite

データオブジェクトのメソッド

データクラスは,それらが定義するオブジェクトを作成および操作するために,“メソッド”と呼ばれる関数を定義します。クラスによって,以下のいずれかのメソッドが定義されている場合があります。

動的メソッド

動的メソッドとは、その特性がその名前と最初の引数として明示的または暗示的に指定されているオブジェクトのクラスに依存するメソッドです。関数またはドット表記のいずれかを使用すると、このオブジェクトを指定できます。このオブジェクトは、メソッドを定義するクラスのインスタンス、またはメソッドを定義するクラスのサブクラスのインスタンスである必要があります。たとえば、クラス一个が,一个のインスタンスに名前を割り当てるsetNameと呼ばれるメソッドを定義すると仮定します。さらに,MATLABワークスペースが変数objに割り当てられた一のインスタンスを含む場合,次のステートメントのいずれかを使って名前“foo”objに割り当てることができます。

obj.setName (“foo”);setName (obj,“foo”);

クラスは,メソッドのスーパークラスを使用して定義されるメソッドとして,同じ名前が付けられている一連のメソッドを定義する場合があります。この場合,サブクラスによって定義されるメソッドは,親クラスによって定義されるメソッドの動作をオーバーライドします。金宝app动态仿真模块では、最初の引数または暗黙的な引数としてユーザーが指定するオブジェクトのクラスから、実行時にどのメソッドを呼び出すかを判断します。このため、動的メソッドと呼ばれます。

メモ

ほとんどの仿金宝app真软件データオブジェクトメソッドは,動的メソッドです。メソッドに関するドキュメンテーションで特に動的でないという記述があるメソッド以外は,すべて動的なメソッドです。

静的メソッド

静的メソッドとは,その特性が名前のみに依存するメソッド,つまり,実行時に変化しないメソッドです。静的メソッドを呼び出すには、そのメソッドを定義するクラスの名前およびその名前の後ろに付けられたメソッド自体の名前を含む完全修飾名を使用します。たとえば、金宝app仿真软件。ModelAdvisorクラスは,getModelAdvisorという名前が付けられた静的メソッドを定義します。この静的メソッドの完全修飾名は,金宝appSimulink.ModelAdvisor.getModelAdvisorです。以下の例に、静的メソッドの呼び出しを示します。

马= Si金宝appmulink.ModelAdvisor.getModelAdvisor (“vdp”);

コンストラクター

各データクラスは,そのクラスのインスタンスを作成するためのメソッドを定義します。メソッド名は,クラス名と同じです。たとえば,金宝app仿真软件。参数クラスのコンストラクター名は、金宝app仿真软件。参数です。金宝app仿真软件データクラスで定義されるコンストラクターは,引数をもちません。

コンストラクターによって出力される値は、コンストラクターのクラスがハンドルのクラスか値のクラスかによって異なります。ハンドルのクラスに対するコンストラクターは、インスタンスのクラスがハンドルのクラスである場合はそれが作成するインスタンスのハンドルを出力します。そうでない場合は、インスタンス自体を出力します(ハンドルと値のクラスを参照)。

ハンドルと値のクラス

データオブジェクトクラスを含む仿真软金宝app件クラスは,价值クラスと处理クラスという2つのカテゴリに分類できます。

价值クラスについて

价值クラスのコンストラクター(コンストラクターを参照)はクラスのインスタンスを出力し,インスタンスは最初に割り当てられたMATLAB変数に永久に関連付けられます。変数を再割り当てしたり,関数に渡したりすると,MATLABによってオリジナルのオブジェクトのコピーが作成され,割り当てられたり,渡されたりします。

たとえば,金宝app仿真软件。NumericTypeは値クラスです。次のステートメント

x = 金宝appSimulink.NumericType;y = x;

を実行すると1つは変数xに,もう1つはyに割り当てられた2つのクラス金宝app仿真软件。NumericTypeのインスタンスをワークスペースに作成します。

手柄クラスについて

处理クラスのコンストラクターは,ハンドルオブジェクトを返します。ハンドルは,複数の変数に割り当てたり,オリジナルオブジェクトのコピーを作成することなく関数に渡すことができます。たとえば,金宝app仿真软件。参数クラスは处理クラスです。次のコマンド

x = 金宝appSimulink.Parameter;y = x;

を実行すると,MATLABワークスペース内に金宝app仿真软件。参数クラスのインスタンスが1つだけ作成されます。変数xとyは両方ともそのハンドルによってインスタンスを参照します。

プログラムは、参照する変数を修正することによってハンドル クラスのインスタンスを変更することができます。前記の例を続けます。

x.Description =“输入增益”;y.Description
输入增益

ほとんどの 金宝app模拟データ オブジェクト クラスは、价值クラスです。例外には金宝app仿真软件。信号クラスや金宝app仿真软件。参数クラスがあります。

変数の値がオブジェクト(値クラス)であるかオブジェクトのハンドルであるかを確認するには,オブジェクトがハンドルかどうかの判定を参照してください。

ハンドルオブジェクトのコピー

ハンドルオブジェクトのコピー方法でそのオブジェクトのインスタンスのコピーを作成します。たとえば,ConfigSetは、モデル コンフィギュレーション セットを表すハンドル オブジェクトです。次のコードは、現在のモデルのアクティブなコンフィギュレーション セットのコピーを作成し、それをモデル開発を対象とした別のコンフィギュレーションとしてその現在のモデルに付加しています。

activeConfig = getActiveConfigSet (gcs);develConfig = (activeConfig)复印件;develConfig。Name =“develConfig”;attachConfigSet (gcs、develConfig);

データ オブジェクトの比較

金宝app仿真软件データオブジェクトには,isequalという名前が付けられたメソッドが用意されています。このメソッドを使用すると,オブジェクトプロパティの値が等価であるかどうかを評価できます。このメソッドは1つのオブジェクトのプロパティ値を別のオブジェクトに属しているプロパティ値と比較し,すべての値が等価である場合にはtrue (1)を異なる値がある場合にはfalse (0) を出力します。たとえば、以下のコードでは、2.つの信号オブジェクト (一)および (B)がインスタンス化され、特定のプロパティに対して値が指定されます。

A=Si金宝appmulink.Signal;B=Simulink.Signal;A.DataType=“int8”;B.DataType =“int8”;A.InitialValue =“1.5”;B.InitialValue =“1.5”

次に,isequalメソッドを使用して,Aとのオブジェクトプロパティが等価であるかどうかを検証します。

结果= isequal (A, B)
结果=1

コード生成のための信号オブジェクトの設定の競合の解決

信号が[信号プロパティ]ダイアログボックス内で定義され,同じ名前の信号オブジェクトがコマンドラインを使用するかモデルエクスプローラー内で定義されている場合は,仿真软件エ金宝appンジンが信号名を表すシンボルを関連付けようとする際に,あいまいさが存在する可能性があります。あいまいさを解決する1つの方法は,信号が金宝app仿真软件。信号データオブジェクトに関連付けられるように指定することです。(信号プロパティ]ダイアログボックスで(信号名を仿金宝app真软件の信号オブジェクトに関連付ける]オプションを選択します。

信号データを構成するには,コードマッピングエディター,またはコードマッピングAPIを使用して,信号をモデルのコードマッピングに追加し,ストレージクラスとストレージクラスのプロパティを設定します。金宝appSimulinkCoder™については,配置C代码生成的信号数据(金宝app仿真软件编码器)を参照してください。嵌入式编码器については、配置C代码生成的信号数据(嵌入式编码)を参照してください。

永続的データ オブジェクトの作成

MATLABを閉じても持続するようにデータ オブジェクトを保持するには、次を行います。

  • オブジェクトをデータディクショナリまたはモデルワークスペースに保存します。モデルデータを永久的に保存する場所を決定するには,金宝app仿真软件モデルの変数とオブジェクトの保存場所の決定を参照してください。

  • 保存コマンドを使用して,データオブジェクトを垫ファイルに保存します。また,负载コマンドを使用して,そのデータオブジェクトを同じセッションまたは後のセッションでMATLABベースワークスペースに復元します。モデルを読み込むときに垫ファイルまたはスクリプトファイルからオブジェクトを読み込むようにモデルを設定します。

モデルを読み込むときにファイルからデータオブジェクトを読み込むには,オブジェクトを作成してそのプロパティを設定するスクリプトを記述します。または,オブジェクトを垫ファイルに保存します。次に,そのオブジェクトを使用するモデルのPreLoadFcnコールバックルーチンとして,スクリプトまたは负载コマンドを使用してください。data_objects.matという名前のファイルにデータオブジェクトを保存し,それを適用するモデルが開かれアクティブな状態にあるとします。コマンドプロンプトで,次のように入力します。

set_param (gcs,“PreLoadFcn”“负载data_objects”);

加载数据对象がモデルのプリロード関数として設定されます。モデルを開くたびにデータオブジェクトがベースワークスペースに表示されます。

保存済みのオブジェクトのクラスの定義を復元するには,定義はMATLABパス上に常駐している必要があります。保存済みのオブジェクトのクラスがオブジェクトの保存後に新しいプロパティを取得した場合,そのオブジェクトの復元バージョンには仿金宝app真软件によってその新しいプロパティが追加されます。オブジェクトの保存後に,クラスがプロパティを失った場合,残りのプロパティのみが復元されます。

参考

||||

関連するトピック