主要内容

。

関連するブロックパラメーター定義を構造体に整理

马铃薯®数码牌を使使使てでブロックパラメーターをする际,大规模モデルではのいるががためれいるががためためて长くたりするため性があり

その場合は,これらのパラメーター値を構造体に整理できます。各繁体は単一の変数で、構造体の各フィールドには数値パラメーター値が格納されます。構造体、サブ構造体およびフィールドにわかりやすい名前を割り当てて、各パラメーター値の目的を示すことができます。

構造体を使用すると,次が可能になります。

  • 保持保持なければならないワークスペーススペース数が削减削减れる。

  • ワークワーク函数间隔前のののを回避回避。

    同じ名前もつもつ2つのの数を同じスコープ(ベースベーススペース内などをませするする作物はできません。を复数の构造体それぞれに含めることはできます。したがって,各构造体およびサブ构造体は,フィールド名间で竞合が発生したりフィールド名が同じスコープ内の他の変数名と竞合したりするのを防ぐ“名称空间”として使用できます。

  • ブロックパラメーター値のセットを论理的にグループ化できる。たとえば,入れ子にされた构造体を使用して,各サブシステムまたは参照モデルで使用されるパラメーター値を明确に特定します。

マスクパラメーターまたはモデル引数を使用してシステムのコンポーネントにパラメーター値を渡す場合は,構造体を使用して,保持しなければならない個々のマスクパラメーターまたはモデル引数の数を減らすことができます。複数の変数を渡す代わりに,単一の構造体変数を渡すことができます。

Matlab构造体の作物作作作作者:王莹,王莹,王莹,王莹繁体を参照してください。モデルでのブロック パラメーター値の設定の基本的な情報については、ブロックパラメーター値の設定を参照してください。

构造体をを用しし信号をををにはは,バスバス要素のの初条件ののを参照してください。

パラメーター構造体の作成と使用

この例では,モデルでパラメーター構造体を作成して使用する方法を説明します。

モデル例f14では,ベースワークスペースの複数の変数を使用してブロックパラメーター値を設定します。たとえば,このモデルを開くと,変数ZW.兆瓦およびMqがベースワークスペースに作成されます。これらの変数を単一の構造体変数に整理するには,次の手順に従います。

  1. コマンドプロンプトで,モデルモデルを开放ます。

    f14

  2. コマンドプロンプトで,パラメーター構造体myGainsを驰数のををてフィールドのをしししししししししますししし。

    mygains.zw= Zw; myGains.Mw = Mw; myGains.Mq = Mq;

  3. モデルエクスプローラーの[モデルの階層構造)ペインで(基础工作)をクリックします。[コンテンツ]ペインで,変数Mqを右クリックして,(使用されている場所の検索)を選択します。

  4. [システムを选択]ダイアログボックスで,ノード(f14)をクリックし,(好的)をクリックします。ブロック線図を更新するかどうかを尋ねるメッセージが表示されたら、(好的)をクリックします。

  5. [コンテンツ]ペインで,gain1とというラベルの付いブロックブロックに対応行行右クリックしてて右クリックしし,[プロパティ]を选択します.gain1ブロックダイアログボックスが开放ます。

  6. [ゲイン]パラメーターの値をMqからmyGains。Mqに変更し,(好的)をクリックします。

  7. [コンテンツ]ペインで,转移Fcn.1ブロックに対応する行を右クリックして,[プロパティ]を選択します。

  8. [分母係数]パラメーターの値を[1,-MQ]から[1, -myGains。Mq)に変更し,(好的)をクリックします。

  9. [モデルの階層構造)ペインで(基础工作)をクリックします。(使用されている場所の検索)をを用し,幂数兆瓦およびZW.を使用するブロックの場所を見つけます。ブロックダイアログ ボックスで、変数名への参照を表に従って置き換えます。

    変数名 置換名
    兆瓦 myGains。兆瓦
    ZW. mygains.zw

  10. 古い変数をクリアします。

    清晰的ZW.兆瓦Mq

これで,変更した各ブロックパラメーターでmyGains構造体のフィールドが使用されるようになりました。各繁体フィールドの数値は、クリアした対応する変数の値と等しくなります。

複数のワークスペース変数の代わりに単一のパラメーター構造体を使用するようにモデルを移行できます。例については,構造体パラメーターへの移行を参照してください。

フィールド値へのデータ型情報の保存

构造体または构造体配列配列ててて,双倍的以外のデータ型を使用するパラメーター値を整理するには,構造体の作成時に型を明示的に指定します。構造体の作成時には,单(15.23)などの型付き式を使用してフィールド値を指定します。

MyParams.gain =单身(15.23);

後でフィールド値を変更する場合は,もう一度型を明示的に指定しなければなりません。型を指定しない場合,フィールド値には代わりにデータ型双倍的が实用さます。

myParams。获得= 15.23;%字段“增益”现在使用数据类型“double”而不是“single”。

型の指定を保持するには,添字による代入を使用してフィールドに新しい値を代入します。

%分配“单个”类型的值。MyParams.gain =单身(15.23);%分配新值,同时保留“单个”。myParams.Gain (,) = 11.79;

固定小数点データ型を一致させるには,fi(定点设计师)オブジェクトを使用してフィールド値を設定します。

パラメーターオブジェクトの作物成によるフィールドのデータ型と特性の

金宝app仿真软件。参数オブジェクトを使用すると,ブロックパラメーターの値をそのデータ型から分離できます。パラメーターオブジェクトを使用して構造体または構造体配列を格納する場合は、構造体全体のデータ型として使用する金宝app仿真软件。公共汽车オブジェクトを作成できます。

バスオブジェクトとパラメーターオブジェクトを使用すると,以下を明示的に制御できます。

  • 各フィールドのデータ型。この手法を使用すると,型付き式または添字による代入を使用してフィールド値を設定する必要がなくなります。

  • 各フィールドの実数/複素数,次元および単位。

  • フィールドが調整可能なパラメーター値を表す場合は,各フィールドの最小値と最大値。

  • 構造体全体の形状。構造体の"形状"とは,フィールドフィールド数,名称および阶层です。

  • モデルから生成するコード内の構造体の調整可能性。

  1. パラメーター血型myを作成します。

    myParams =结构(...“SubsystemA”,struct(...“获得”, 15.23,...“抵消”, 89,...“Init”0.59),...“SubsystemB”,struct(...'coeffs',[5.32 7.99],...“抵消”57岁的...'init1', 1.76,...'init2', 2.76)...);

  2. 関数金宝appSimulink.Bus.createObjectを使用して,構造体およびサブ構造体を表す金宝app仿真软件。公共汽车オブジェクトを作物成し。

    金宝appSimulink.Bus.createObject (myParams)

    myには2つの一意のサブ構造体が含まれているため,この関数では,親構造体myを表すslBus1,サブ構造体SubsystemAを表すSubsystemA,サブ構造体SubsystemBを表すSubsystemBの3つの金宝app仿真软件。公共汽车オブジェクトが作成されます。

  3. バスオブジェクトslBus1の名前をmyParamsTypeに変更します。

    myParamsType = slBus1;清晰的slBus1

  4. 繁体my金宝app仿真软件。参数オブジェクトに格式し。

    myParams = 金宝appSimulink.Parameter (myParams);

    パラメーターオブジェクトの价值プロパティに構造体が含まれます。

  5. パラメーターオブジェクトのデータ型をバスオブジェクトmyParamsTypeに设定します。

    myparams.datatype =.'总线:myparamstype'

  6. バスエディターを开启ててオブジェクトを表示します。

    buseditor

  7. [モデルの階層構造)ペインで,ノードSubsystemAをクリックします。[コンテンツ]ペインで,フィールドのデータ型を図に従って設定します。

  8. 必要に応じて,サブ構造体SubsystemBのフィールドのデータ型を设定します。

パラメーターオブジェクトmyにパラメーター構造体が格納されます。パラメーターオブジェクトのデータ型はバス オブジェクトmyParamsTypeです。シミュレーションおよびコード生成の前に,パラメーターオブジェクトはフィールド値をバスオブジェクトで指定されたデータ型にキャストします。

いずれかのフィールドを使用してブロックパラメーター値を設定するには,myParams.SubsystemB.Init1などの式を指定します。

コマンドプロンプトでフィールド値にアクセスするには,パラメーターオブジェクトの价值プロパティプロパティ使使ます。バスバスオブジェクトによってフィールドのデータ型制御されるれるためため制御式を使ためてフィールド値を设定设定する値をを设定ませませませませ

myparams.value.subsystema.gain = 12.79;

バスオブジェクトは,構造体のフィールドの特性と形状を厳密に制御します。たとえば2要素フィールドmyparams.subsystemb.coeffs.の値を3要素配列にに设定すると,ブロックパラメーター値の设定时にでエラーが生成さます。フィールドの次元を変更するに,バスバスSubsystemBの要素COEFFS.を変更します。

バスオブジェクトを作成後に操作するには,金宝app仿真软件。公共汽车オブジェクトの作成と指定および金宝app仿真软件。公共汽车オブジェクトの保存を参照してください。

フィールドのデータ型とと信号データの一流

たとえば,フィールドmyParams.SubsystemA.Gainを使用して,获得ブロックの[ゲイン]パラメーターの値を設定するとします。フィールドのデータ型をブロックの出力信号のデータ型に一致させる場合、状況依存データ型指定に頼ることはできません (状況依存データ型指定参照)。金宝app仿真软件。AliasTypeオブジェクトまたは金宝app仿真软件。NumericTypeオブジェクトを使用して,フィールドと信号のデータ型を設定することを検討してください。データ型オブジェクトを使用しない場合は,信号のデータ型を変更するたびにフィールドのデータ型を忘れずに変更しなければなりません。

  1. コマンドプロンプトで,データ型を表す金宝app仿真软件。AliasTypeオブジェクトを作物成し。

    myType = 金宝appSimulink.AliasType;myType。基类型=“单”;

  2. 获得ブロックのダイアログボックスの[信号]タブで,(出力データ型)我的风格に设定します。

  3. コマンドプロンプトで,バスエディターを開きます。

    buseditor

  4. [モデルの階層構造)ペインで,バスオブジェクトSubsystemAを選択します。[コンテンツ]ペインで,フィールド获得のデータ型を我的风格に设定します。

これで,获得ブロックの出力信号と構造体フィールドmyParams.SubsystemA.Gainの両方で,我的风格基类型プロパティで指定したデータ型が使用されるようになりました。

データ型オブジェクトの詳細については,金宝app仿真软件。AliasType金宝app仿真软件。NumericTypeを参照してください。

構造体変数の管理

値が構造体である変数を作成,変更,検証するには,変数エディターを使用できます。詳細については,构造体およびおよび配列配列の変の的な変更を参照してください。

入れ子にされた構造体の作成によるパラメーター階層の定義

ブロックパラメーター値ををさらにするは,入れ子にされ构造体の阶层ををますたのを作物。

たとえば,モデルでSubsystemAおよびSubsystemBという名ののシステムを作物するとしますパラメーターをサブでブロックパラメーターを设定するにははOffset_subsystema.Offset_subsystemb.などなど分数を使用します。

Gain_SubsystemA = 15.23;Offset_SubsystemA = 89;Init_SubsystemA = 0.59;Coeffs_SubsystemB = [5.32 7.99];Offset_SubsystemB = 57;Init1_SubsystemB = 1.76;Init2_SubsystemB = 2.76;

各サブシステムのサブ構造体を含むパラメーター構造体を作成します。既存の変数の値を使用してフィールドの値を設定します。

myParams =结构(...“SubsystemA”,struct(...“获得”,gain_subsystema,...“抵消”Offset_SubsystemA,...“Init”Init_SubsystemA),...“SubsystemB”,struct(...'coeffs'Coeffs_SubsystemB,...“抵消”Offset_SubsystemB,...'init1'Init1_SubsystemB,...'init2',init2_subsystemb)...);

単一の构造体参数myに,サブシステム内のブロックに関するすべてのパラメーター情報が含まれます。各サブ構造体は名前空間として機能するため,抵消フィールドは複数回定義できます。

サブ構造体SubsystemB抵消フィールドをブロックパラメーターの値としてとしてするは,ブロックダイアログボックスでパラメーター値をmyParams.SubsystemB.Offsetとして指定します。

复数のパラメーター构造体をを配列にグループ

同様の特性をもつパラメーター構造体を整理するには,構造体の配列を値にもつ単一の変数を作成します。この手法を使うと,ライブラリサブシステムやモデル引数を使用する参照モデルなどのアルゴリズムの複数インスタンスを含むモデルをパラメーター化するのに役立ちます。

たとえば,モデルで2つの同一サブシステムを作成するとします。

各サブシステム内のブロックでパラメーター値を設定するために3つの数値が必要であるとします。これらの値を格納する2つの構造体の配列を作成します。

迈帕夏(1).gain = 15.23;MyParams(1).Offset = 89;肌巴(1).init = 0.59;迈帕夏(2).gain = 11.93;MyParams(2).offset = 57;ymparams(2).init = 2.76;

配列内の各構造体は,いずれかのサブシステムの3つのパラメーター値を格納します。

いずれいずれパラメーターのを设定にはは,配列フィールドをする式しますますますしますますますますますますますますますますますますますますますますますますますますますますますますます。迈帕夏(2).initを使用します。

再利用可能なコンポーネントと反復アルゴリズムのパラメーター値の整理

为每个子系统ブロック内の构造体のも配列を使うます配列このを使うと,モデルモデルベクトル信号に対してをするなどしてを缲り返しするときにスペース変を缲り返しとき例については,为每个子系统を使用したアルゴリズムの繰り返しを参照してください。

モデル引数を使用して,参照モデルの复数インスタンスにわたって异なるパラメーター値を指定する场合は,构造体の配列を使用してモデル引数の値を整理できます。参照モデルワークスペースで构造体変数を作成し、その構造体をモデル引数として使用するようにモデルを構成します。構造体のフィールドを使用して、モデルのブロック パラメーター値を設定します。その後、親モデルがリンクしているベース ワークスペースまたはデータ ディクショナリに構造体の配列を作成します。親モデルで、配列内の各構造体を模型ブロックブロックモデルモデルのとしてとして各し。配列内の构造体は,参照モデルの1つのインスタンスパラメーター値格式します。

モデル例sldemo_mdlref_datamngtには,マスク参照モデルsldemo_mdlref_counter_datamngt.の3つのインスタンス(模型ブロック)が含まれていますベースワークスペース数IC1IC2param1およびparam2.は,構造体を値にもつ金宝app仿真软件。参数オブジェクトです。親モデルでは,これらの変数を使用して,模型ブロックでマスクパラメーターの値を設定します。IC1IC2param1param2.は構造的に同じであるため,これら4つの構造体は2つの構造体配列にまとめることができます。

  1. 亲モデル例を开きます。

    sldemo_mdlref_datamngt

    このモデルによって4つの金宝app仿真软件。参数オブジェクトがベースワークスペースに作成されます。

  2. 参照モデル例を開きます。

    sldemo_mdlref_counter_datamngt.

    モデルワークスペースでは,構造体を値にもつ2つのモデル引数CounterICsおよび逆决が定義されています。モデル内のブロックは、これらの構造体のフィールドを使用してパラメーター値を設定します。

  3. モデルsldemo_mdlref_datamngtで,モデルデータエディターを开口ます([モデル化]タブで[モデルデータエディター]をクリック)。モデルデータ エディターで、[パラメーター]タブを確認します。

  4. モデルで,模型ブロックのうちの1つをクリックします。

    モデルデータエディターでは,選択された模型ブロックの2つのマスクパラメーターに対応する行が強調表示されます。ブロックでは,マスクパラメーターを使用して,参照モデルsldemo_mdlref_counter_datamngt.で定義された2つのモデル引数の値を設定します。各模型ブロックは,ベースワークスペースの4つのパラメーターオブジェクトの異なる組み合わせを使用して,引数の値を設定します。

  5. モデルデータエディターの[价值]列列でいずれかののセルクリック,対応するマスクパラメーターの値编集を开放しIC1など)。パラメーターパラメーター値の横ににアクションアクションをクリックし,[開く]を選択します。パラメーターオブジェクトのプロパティダイアログボックスが開きます。

  6. プロパティダイアログボックスの[値]ボックスの隣にあるアクションボタンをクリックし,[変数エディターを開く]を選択します。

    変数エディターには,パラメーターオブジェクトによって構造体が保存されることが示されます。param2.IC2の構造体は,param1IC1の構造体と同じフィールドをもちますが,フィールド値は異なります。

  7. コマンドプロンプトで,4つのパラメーターオブジェクトを,構造体配列を値にもつ2つのパラメーターオブジェクトにまとめます。

    %通过复制Param1创建一个新的参数对象。param = param1.copy;%使用Param2中的结构作为新对象中的第二个结构。param.value(2)= param2.Value;%param的值现在是两个结构的数组。%删除旧对象Param1和Param2。清晰的param1param2.%通过复制IC1创建一个新的参数对象。使用IC2中的结构作为新对象中的第二个结构。IC = IC1.copy;IC.Value (2) = IC2.Value;清晰的IC1IC2

  8. 親モデルでは,モデルデータエディターで[价值]列を使用して,表に従ってマスクパラメーターの値を置き換えます。

    前の値 新しい値
    param1 参数(1)
    IC1 集成电路(1)
    param2. 参数(2)
    IC2 集成电路(2)

模型ブロックは,配列集成电路内のいずれかの構造体を使用して,モデル引数CounterICsの値を設定します。同様に,各ブロックは参数内のいずれかの構造体を使用して逆决の値を設定します。

構造体の配列内の統一

构造体の配列内のすべての构造体は同じフィールド阶层をもたなければなりません。阶层内の各フィールドは配列全体で同じ特性をもたなければなりません。构造体の间でこの统一ををには,パラメーターオブジェクトとバスオブジェクトを使用しし。

パラメーターオブジェクトを使用してパラメーター構造体の配列を表すには,オブジェクトの値を構造体の配列に設定します。

%创建结构数组。迈帕夏(1).gain = 15.23;MyParams(1).Offset = 89;肌巴(1).init = 0.59;迈帕夏(2).gain = 11.93;MyParams(2).offset = 57;ymparams(2).init = 2.76;%创建总线对象。金宝appsimulink.bus.createobject(yemparams);myParamsType = slBus1;清晰的slBus1%创建参数对象并设置数据类型。myParams = 金宝appSimulink.Parameter (myParams);myparams.datatype =.'总线:myparamstype'

いずれかのフィールドを使用してブロックパラメーター値を設定するには,MyParams(2).offsetなどの式を指定します。

コマンドプロンプトでフィールド値にアクセスするには,パラメーターオブジェクトの价值プロパティプロパティ使使。

MyParams.Value(2).offset = 129;

定数値信号の構造体の作成

常数ブロック内の構造体を使用して,複数の数値定数を送信する単一のバス信号を作成できます。詳細については,常数を参照してください。バス信号の詳細については,バーチャルバスを参照してください。

パラメーター構造体に移行する前の考慮事項

  • パラメーター構造体を使用するようにモデルを移行する前に,置き換える変数を使用しているターゲットモデルおよびその他のモデル内のすべてのブロックを調べてください。

    たとえば,モデル内の2つのブロックでワークスペース変数myvar#が使用されているとします。フィールドmyvar#をもつ構造体myを作物,一方ののブロックのみのパラメーター値myParams.myVarに設定した場合,他方のブロックでは変数myvar#が引き続き使用されます。myvar#を削除すると,他方のブロックは削除したたをを必要とする,モデルモデルエラーが生成され。

    変数を使用しているすべてのブロックを調べるには,次の手順に従います。

    1. 変数を使用している可能性があるすべてのモデルを開きます。それらのモデルがモデル参照階層内にある場合は,最上位モデルのみを開くことができます。

    2. モデルモデルデータエディターまたはまたはモデルエクスプローラー[コンテンツ]ペインで,変数を右クリックして(使用されている場所の検索)を選択します。モデルエクスプローラーに、変数を使用しているすべてのブロックが表示されます。

    変パラメーターいるのはだけです构造に移前,ターゲット変を使前ているにおけるにおけるてすべてモデルにおけるてくださいすべてをにおけるてくださいてをにおけるてくださいすべてをにおけるて。変数の使用の确认の详细については,特定の変数を使用するブロックの検索を参照してください。

    あるいは,myvar#の削除を避けることもできます。ただし,myParams.myVar構造体フィールドの値を変更する場合は,myvar#の値を忘れずに変更して一致させなければなりません。

  • 複数の異なる変数またはパラメーターオブジェクト(金宝app仿真软件。参数など)を単一の変数またはパラメーターオブジェクトに保存する構造体にまとめることができます(パラメーターオブジェクトをまとめるには,既存のパラメーターオブジェクトを構造体に結合を参照してください)。ただし,結果として得られる変数またはオブジェクトは単一のエンティティとして機能します。そのため、構造体の個々のフィールドに異なるコード生成設定 (ストレージ クラスなど) を適用することはできません。

既存のパラメーターオブジェクトを構造体に結合

パラメーターオブジェクトを使用してブロックパラメーター値を設定する場合(ストレージクラスを適用できるようにする場合など),オブジェクトを単一の構造体にまとめるには,以下を実行します。

  1. MATLAB构造体を作物して値设定するには,既存既存の各パラメーターオブジェクトに保存れるパラメーター値をををををををををををををを

  2. 変数をパラメーターオブジェクトに変换しますます。金宝app仿真软件。公共汽车オブジェクトを作用成し,パラメーターオブジェクトのデータ型として使し(パラメーターオブジェクトの作物成によるフィールドのデータ型と特性のを参照)。

  3. 结果の得得パラメーターます全しれるれるストレージストレージをををををををををををををををををををををををををををををを。

  4. 既存のパラメーターオブジェクトの最小值プロパティや马克斯プロパティなどのパラメーターメタデータを,バスオブジェクト内の金宝appsimulink.busement.オブジェクトの対応するプロパティに転送します。

たとえば3つの異なるパラメーターオブジェクトがあるとします。

多项式系数= S金宝appimulink.Parameter (17.5);多项式系数。最小值= 14.33; coeff.DataType ='单身的';多项式系数。StorageClass =“ExportedGlobal”;init = 金宝appSimulink.Parameter (0.00938);init。最小值= -0.005; init.Max = 0.103; init.DataType ='单身的';init。StorageClass =“模型默认”;offset = 金宝appsimulink.parameter(199);offset.datatype =.“uint8”;偏移量。StorageClass =“ExportedGlobal”

  1. 構造体変数を作成します。

    myParams。多项式系数= coeff.Value;myParams。init = init.Value;myParams。抵消= offset.Value;

  2. 変数をパラメーターオブジェクトに変换しますます。

    myParams = 金宝appSimulink.Parameter (myParams);

  3. バスオブジェクトを作成し,パラメーターオブジェクトのデータ型として使用します。

    金宝appsimulink.bus.createobject(myparams.value);paramsdt = copy(SLBUS1);myparams.datatype =.“巴士:paramsDT”

  4. 古いパラメーターオブジェクトオブジェクトのメタデータをバスオブジェクト内のバスに転送しししに転送しし

    %多项式系数paramsDT.Elements(1)。Min = coeff.Min;paramsDT.Elements(1)。数据类型=多项式系数。DataType;%初始化paramsDT.Elements(2)。Min = init.Min;paramsDT.Elements(2)。Max = init.Max;paramsDT.Elements(2)。数据类型=init。DataType;% 抵消paramsDT.Elements(3)。数据类型=偏移量。DataType;

    この転送操作を実行するスクリプトを作成するには,関数属性を使用して,バス要素と古いパラメーターオブジェクトに共通するプロパティを検出します。構造体フィールドをリストして反復処理できるようにするには,関数字段名を使用します。

  5. ストレージクラスをパラメーターオブジェクトに適用します。

    myParams。StorageClass =“ExportedGlobal”

これで,古いパラメーターオブジェクトではなくmyのフィールドを使用してブロックパラメーター値を設定することができます。

生成されたコードにおけるパラメーター構造体

生成されたコード构造体および构造体配列として表示されるようにパラメーターパラメーターパラメーターパラメーターれるできできパラメーターパラメーターパラメーターパラメーターえたコードコードコードコードコードコードコードコードコードについてについてについてはについてについてははについてについてについて生成されたコードにおける構造体へのデータの整理(金宝app仿真软件编码器)を参照してください。

パラメーター構造体の制限

  • ブロックパラメーターの設定に使用するフィールドの値は,数値または列挙型でなければなりません。フィールドの値には,実数スカラー,複数素スカラー,ベクトルまたは多次元配列を指定できます。

  • 構造体のいずれかのフィールドの値が多次元配列の場合,シミュレーション中はどのフィールド値も調整できません。

  • 构造体の配列のの构造なければなりません同じのフィールドは配列配列同じ同じ性をなければませんなりませませませませませませませませませませ构造もたなけれなけれなけれもたもたもたもた构造もたもた构造もたもた构造构造もた构造なけれなけれなけれもたもたもた构造もたなけれもたもたもたもたもたもたなけれなけれなけれもたもたもたもた构造のなけれなけれなけれもた同じ同じのなけれなけれもた同じもたもたの性なけれもた同じ同じ同じ同じ性もた同じ同じ同じ同じ同じなけれ同じ同じ同じ就会

    • フィールド名

    • 数値データ型(INT32.など)

    • 実数/複素数

    • 次元

    たとえば,2つの构造体からなる配列を定义定义するしし

    paramStructArray =...[struct(“sensor1”int16 (7),“sensor2”、单(9.23))...结构(“sensor1”,int32(9),“sensor2”,单(11.71))];

    フィールドsensor1は各構造体で別のデータ型を使用するため,ブロックパラメーターではいずれのフィールドも使用できません。

  • パラメーター構造体は,生成されたコードにおける状況依存データ型指定をサポートしていません。パラメーター構造体がコード内で調整可能な場合,構造体のフィールドでは,型付き式または金宝app仿真软件。公共汽车オブジェクトで指定した数値データ型が使用されます。型付き式または金宝app仿真软件。公共汽车オブジェクトを使使使ししない合,构造体のフィールドでは双倍的データ型が使用されます。

ルックアップテーブルの共有ブレークポイントとテーブルデータのパッケージ化

ルックアップテーブルブロック間でデータを共有する場合は,構造体ではなく金宝appsimulink.lockuptable.オブジェクトと金宝app仿真软件。断点オブジェクトを使用してデータを格納およびグループ化することを検討してください。この手法により,データをルックアップテーブルの一部として明確に特定し,ブレークポイントデータをテーブルデータに明示的に関連付けることで,モデルの可読性が向上します。ルックアップテーブルの共有ブレークポイントとテーブルデータのパッケージ化を参照してください。

既存のCコードの構造体型に基づくパラメーター構造体の作成

既存のCコードで定義されている结构体の型定义に适合するパラメーター构造体を作成できます。この手法を使用して以下を実行します。

  • 既存のCコードを仿真软金宝app件®モデルで置き換える。

  • 金宝app仿真软件でのシミュレーション用の既存のCコードを統合する(たとえば,レガシコードツールを使用)。例については,集成C功能,其参数是指向结构的指针を参照してください。

  • 既存のcコードを使使し単一个のアプリケーションにできるcコードを生成する(金宝appSimulink Coder™)。例については、在生成的代码和外部代码之间交换结构化和枚举数据(嵌入式编码)を参照してください。

MATLABでは,パラメーター構造体をパラメーターオブジェクトに保存し,バスオブジェクトをデータ型として使用します(パラメーターオブジェクトの作物成によるフィールドのデータ型と特性のを参照).cコードの结构体型に基づいてバスオブジェクトを作成するには,関数金宝appSimulink.importExternalCTypesを使用します。

関連するトピック