このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
金宝app®モデル内の信号のデータ型を制御するには,対応するブロック出力に対してデータ型を指定します。
特定のデータ型をもつ新しい信号を次のいずれかの方法でモデル内に導入することもできます。
金宝app仿真软件ブロックは,既定の設定でその出力のデータ型を決定します。多くのブロックでは,ユーザーによる既定のデータ型オーバーライドと明示的な出力データ型の指定ができます。このオーバーライドと指定には,通常”出力データ型”という名前が付けられたブロックパラメーターが使用されます。たとえば,[出力データ型]パラメーターは,[常数ブロック]ダイアログボックスの[信号属性]ペインに表示されます。
詳細は,以下のトピックを参照してください。
内容 | 参照先 |
---|---|
ユーザーが指定できる有効なデータ型の値 |
|
有効なデータ型の値の指定を支援するアシスタント |
|
有効なデータ型の値を複数のブロックに同時指定 |
一般的に,出力データ型の指定は以下のいずれかで指定できます。
データ型を継承するルール(データ型の継承ルールを参照)
組み込みデータ型の名前(組み込みデータ型を参照)
データ型を評価結果とする式(データ型式を参照)
有効なデータ型の値は,ブロックによって異なります。ブロックのデータ型パラメーターに関連付けられているプルダウン メニューを使用すると、特定のブロックがサポートしているデータ型を表示できます。たとえば、Data Store Memory ブロックのダイアログ ボックスにある[データ型]プルダウンメニューには,以下のようにこのブロックがサポートしているデータ型がリストされています。
特定のブロックがサポートしているデータ型についての詳細は,金宝app仿真软件ドキュメンテーションの該当ブロックのドキュメンテーションを参照してください。
ブロックは,そのブロックが接続されている信号や特定のブロックパラメーターなど,さまざまなソースからデータ型を継承できます。データ型パラメーターの値は,出力信号がそのデータ型をどのように継承するかを規定するルールとして指定できます。ブロックがサポートしている継承ルールを表示するには、そのブロックのダイアログ ボックスにあるデータ型プルダウン メニューを使用します。以下の表には、選択可能な典型的なルールがリストされています。
継承ルール | 説明 |
---|---|
[継承:逆伝播による継承) |
金宝app仿真软件は,データ型伝播中に自動的にブロックの出力データ型を決定します(データ型の伝播を参照)。この場合,そのブロックは,下流のブロックまたは信号オブジェクトのデータ型を使用します。 |
[継承:入力と同じ] |
ブロックは,ブロックの出力信号に対して単一入力信号のデータ型を使用します。 |
[継承:1番目の入力と同じ] |
ブロックは,ブロックの出力信号に対してその最初の入力信号のデータ型を使用します。 |
[継承:2番目の入力と同じ] |
ブロックは,ブロックの出力信号に対してその2番目の入力信号のデータ型を使用します。 |
[継承:内部ルールによる継承) |
ブロックは,内部ルールを使用してその出力データ型を決定します。内部ルールに基づいて,組み込みターゲットのハードウェア特性を考慮して,数値精度,パフォーマンスおよび生成されるコードサイズを最適化するデータ型が選択されます。ソフトウェアで常に処理効率と数値精度の両方を同時に最適化できるわけではありません。 |
継承されたデータ型を信号に適用すると,ブロック線図の更新後にのみ,金宝app仿真软件によって信号の特定のデータ型が判別されます。
ブロック線図にこの特定のデータ型を表示するには,端子のデータ型を参照してください。
複数の信号の具体的なデータ型を検索や並べ替えが可能なテーブルで調べるには,モデルデータエディターを使用します([モデル化)タブで[モデルデータエディター]をクリック)。(数据类型)列の右側に各信号の具体的なデータ型が表示されます。モデルデータエディターの詳細については,モデルデータエディターを使用したデータプロパティの設定を参照してください。
データ型パラメーターの値は,单
または布尔
など,組み込みデータ型の名前として指定できます。ブロックがサポートしている組み込みデータ型を表示するには、そのブロックのダイアログ ボックスにあるデータ型プルダウン メニューを使用します。サポートされているすべての組み込みデータ型の一覧は、金宝app仿真软件でサポートされているデータ型を参照してください。
データ型パラメーターの値は,評価結果が数値データ型オブジェクトになる式として指定できます。ブロックダイアログボックスにあるデータ型のフィールドに式を入力します。通常,以下の式のいずれかを入力します。
fixdt
コマンド
データ型パラメーターの値を関数fixdt
を呼び出すコマンドとして指定します。この関数を使用すると,固定小数点または浮動小数点データ型を記述する金宝app仿真软件。NumericType
オブジェクトを作成できます。
データ型オブジェクト名
データ型パラメーターの値をデータ型を表現するデータオブジェクトの名前として指定します。金宝app仿真软件。NumericType
および金宝app仿真软件。AliasType
など,クラスからインスタンスとして作成した仿金宝app真软件データオブジェクトを使用すると,出力データ型をモデル全体で変更するタスクを簡素化したり,データ型のカスタムエイリアスを使用できるようになります。金宝app仿真软件データオブジェクトの詳細は,データオブジェクトを参照してください。
モデルデータエディターを使用すると(モデルデータエディターを使用したデータプロパティの設定を参照),複数の信号に同じデータ型を同時に指定できます。この手法を使用して同時に複数の轮廓尺寸ブロックと外港ブロックのデータ型や他の属性を設定することで,モデルのインターフェイスを設計できます(コンポーネントのデータインターフェイスの構成を参照)。また,ブロックアルゴリズム内の任意の信号のデータ型を詳細に制御することもできます。
たとえば,航空機の縦運動の飛行制御例のslexAircraftExample
モデルには多数の获得ブロックが含まれています。モデルのルートレベルにある3つの获得ブロックの出力データ型を单
に指定するとします。以下のようにします。
モデルデータエディター([モデル化)タブで[モデルデータエディター]でをクリック)[信号]タブを調べます。
[コンテンツのフィルター]ボックスの横にある[選択を使用してフィルター処理します]ボタンを切り換えます。
モデルの最上位レベルで3つの获得ブロックの出力を表す信号線を選択します(Zw
、兆瓦
およびMq
のラベルが付けられています)。モデルデータエディターに3つの信号に対応する3つの行が表示されます。
モデルデータエディターで3つの信号(行)をすべて選択します。たとえば,Ctrl +一个を押すか,转变キーを押したまま[ソース]列の一番上と一番下の行をクリックできます。
3つの信号のいずれかについて[データ型)列のセルをクリックします。ドロップダウンリストから(单)
を選択します。モデルデータエディターによってこの選択が選択したすべての行に適用されます。
モデルを厳密な単精度の設計に変換するには,浮動小数点組み込みモデルの検証を参照してください。
場合によっては,データ型の継承(データ型の継承ルールを参照)に基づいて異なるデータ項目(パラレルデータパスの信号線や金宝app仿真软件。公共汽车
オブジェクトのバス要素など)のデータ型間で等価性を確立できないことがあります。代わりに,金宝app仿真软件。NumericType
オブジェクトまたは金宝app仿真软件。AliasType
オブジェクトをワークスペースまたはデータディクショナリに作成できます。
エイリアスを作成して共有データ型の名前を変更しないようにする場合は,金宝app仿真软件。NumericType
オブジェクトを作成します。IsAlias
プロパティを假
(既定)に設定します。
この例では,金宝app仿真软件。NumericType
オブジェクトを使用して同じモデル内の2つの查找表ブロック間で出力データ型を共有する方法を示します。
モデル例sldemo_fuelsys
を開きます。
sldemo_fuelsys
モデルによって金宝app仿真软件。NumericType
オブジェクトがベースワークスペースに作成されます。オブジェクトの1つにs16En15
という名前が付けられます。
コマンドプロンプトで,s16En15
のプロパティを検査します。
s16En15
s16En15 = NumericType with properties: DataTypeMode: 'Single' IsAlias: 0 DataScope: 'Auto' HeaderFile: " Description: "
このオブジェクトは組み込みの仿金宝app真软件データ型单
を表します。
モデルでfuel_rate_control / airflow_calc
サブシステム内に移動します。
[モデル化)タブで[モデルデータエディター]をクリックします。モデルデータエディターの[信号]タブを確認します。
モデルで,泵恒ブロックの出力信号をクリックします。モデルデータエディターの(数据类型)列に,信号のデータ型がs16En15
に設定されていることが示されます。
斜坡率Kiブロックの出力信号をクリックします。このブロックの出力データ型もs16En15
に設定されています。
ブロック線図を更新し,必要な場合は(数据类型)列の幅を広げます。列の右側に2つのルックアップテーブルブロックが单
データ型を使用していることが表示されます。
コマンドプロンプトで,データ型双
を表すようにs16En15
を設定します。
s16En15。DataTypeMode =“双”;
ブロック線図を更新します。
2つの查找表ブロックの出力信号でデータ型双
が使用されるようになりました。データ型の継承により,e0
やe1
などのその他の信号は同じデータ型を取得します。
あるいは,同じモデル内のアルゴリズム間またはデータパス間でデータ型の等価性を確立するには,数据类型传播や继承的数据类型转换などのブロックを使用できます。これらのブロックを使用する場合は,データ型オブジェクトを作成して永続的に保存する必要はありません。ただし,モデルが同じモデル参照階層に存在しない限り,これらのブロックを使用して異なるモデル内の信号間でデータ型を共有することはできません。
モデルで,既存のCコードで定義されている構造体などのカスタムCデータ型に適合する信号を作成できます。この信号を使用して以下を実行します。
既存のCコードを仿真软金宝app件モデルで置き換える。
金宝app仿真软件でのシミュレーション用のCコードを統合する(たとえば,レガシコードツールを使用)。
既存のコードと統合できるコードの生成を準備する(金宝app仿真软件编码器™)。
以下の手法を使用してカスタムデータ型を一致させます。
構造体型の場合は,金宝app仿真软件。公共汽车
オブジェクトを作成します。このオブジェクトをバス信号のデータ型として使用します。バス信号のデータ型を参照してください。
列挙型の場合は,列挙型クラスを作成して信号のデータ型として使用します。金宝app仿真软件モデルでの列挙型データの使用を参照してください。
プリミティブ数値データ型のエイリアスを表す类型定义
ステートメントを一致させるには,金宝app仿真软件。AliasType
オブジェクトを信号のデータ型として使用します。金宝app仿真软件。AliasType
を参照してください。
これらのクラスとオブジェクトを作成するには,関数金宝appSimulink.importExternalCTypes
を使用します。
モデル内のMATLAB函数ブロックまたはStateflow®チャートに,インポートされた列挙型または構造体型が使用されている場合,モデルコンフィギュレーションパラメーターが外部ヘッダーファイルから型定義をインクルードする(# include
)ように構成します。インポートされたバスと列挙型定義の制御(MATLAB函数ブロックの場合),およびStateflowチャート内のカスタムコードの変数および関数へのアクセス(Stateflow),およびStateflowチャートのカスタム構造体の統合(Stateflow)(チャートの場合)を参照してください。
信号が,[継承:内部ルールによる継承)
(ほとんどのブロックの既定の設定)などの継承されたデータ型設定を使用する場合,信号がシミュレーションに使用する意味のあるデータ型を判別するために,ブロック線図を更新して,次の手法のいずれかまたは両方を使用します。
金宝app仿真软件エディターの[デバッグ]タブで,(情報のオーバーレイ]を選択して,端子セクションに移動します。表示する端子のデータ型を選択します。ブロック線図の各信号の横にデータ型が表示されます。詳細については、端子のデータ型を参照してください。
モデルデータエディター([モデル化)タブで[モデルデータエディター]をクリッのク)[データ型)列の右側を確認します。モデルデータエディターの詳細については,モデルデータエディターを使用したデータプロパティの設定を参照してください。
これらの手法を使用してデータ型を調べると次の役に立ちます。
モデルのデータ型手法を大まかに設計する。
量子化やオーバーフローが原因の数値的問題をデバッグする。
モデルを共有時にわかりやすいものにする。
詳細については,端子のデータ型を参照してください。
双
のままになる(出力データ型)などのブロックパラメーターの設定後に,モデル内のデータ項目(信号,パラメーターおよび状態)の多くで引き続きデータ型双
が使用されている場合は,モデルがデータ型をオーバーライドするように設定されていないことを確認してください。データ型オーバーライドの制御を参照してください。
金宝app仿真软件。AliasType
|金宝app仿真软件。NumericType
|金宝app仿真软件。公共汽车