主要内容

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

信号範囲の指定

金宝app®ブロックでは,それらの出力信号の有効な値の範囲を指定できます。信号範囲を指定すると、データ型の最適化と生成されたコードの向上に役立ちます。

嵌入式编码器®がある場合,金宝app仿真软件编码器™は,信号とパラメーターに指定する最小値と最大値を考慮することで,モデルから生成するコードを最適化できます。この最適化により,アルゴリズムコードが削除され,SILやエクスターナルモードなどの一部のシミュレーションモードの結果に影響を与えることがあります。詳細については,使用指定的最小值和最大值进行优化(嵌入式编码)を参照してください。

信号範囲の指定が可能なブロック

次のブロックでは,出力信号の範囲を指定できます。

ブロックの信号範囲の操作

ほとんどのブロックの信号範囲を指定するには,ブロックの(出力の最小値)パラメーターと(出力の最大値)パラメーターを使用して,ブロックの出力信号の有効な値の範囲を指定します。数据存储内存ブロック,轮廓尺寸ブロック,外港ブロック,および信号规范ブロックについては,信号範囲を指定するために[最小値]パラメーターと[最大値]パラメーターを使用します。信号範囲を指定可能なブロックの一覧は、信号範囲の指定が可能なブロックを参照してください。

これらのパラメーターにアクセスするには,プロパティインスペクター([モデル化)タブで[設計]の下で[プロパティインスペクター]をクリック),モデルデータエディター([モデル化)タブで[モデルデータエディター]をクリック),またはブロックのダイアログボックスを使用します。

最小値または最大値を,スカラーのデータ型の実数に評価される式で指定します。たとえば,以下を使用できます。

  • 98.884などの数値リテラル。暗黙的にデータ型はになります。

  • データ型がである数値ワークスペース変数(変数の作成によるブロックパラメーター値の共有と再利用を参照)。この手法を使用すると,複数のデータ項目の間で最小値または最大値を共有できます。

    ただし,変数を使用して金宝app仿真软件。信号オブジェクトの最小值プロパティまたは马克斯プロパティを設定することはできません。

指定したスカラー値は合成信号の各要素に適用されます(たとえば信号が非スカラーまたはバスの場合)。スカラー拡張の詳細については,入力とパラメーターのスカラー拡張を参照してください。

信号の最小値または最大値を未指定のままにするには,空行列[](既定値)を使用します。

モデル構造の範囲の指定

バス信号,データストア,Stateflow®チャートなどのモデル構造を使用する場合,さまざまな手法で設計範囲情報を指定できます。次の表の情報を使用してください。

ターゲット信号の説明 手法と詳細

数値的な複素信号

複素数である信号について,(出力の最小値)または(出力の最大値)を指定すると,指定した最小値および最大値は,複素数の実数部と虚数部に個別に適用されます。複素数の実数部または虚数部の値が最小値より小さいか,最大値より大きい場合,複素数は指定の範囲外になります。(sqrt (a ^ 2 + ^ 2))などの実数部と虚数部の組み合わせに対しては,範囲のチェックは行われません。

バス内の信号要素

总线的创造者ブロックを使用してバスを構築する場合,总线的创造者に対して入力を行う上流のブロックで範囲情報を指定できます。

バスの構築に使用する手法にかかわらず,金宝app仿真软件。公共汽车オブジェクトを作成してバス信号のデータ型として使用できます。この場合,バスオブジェクト内の金宝app仿真软件。公共汽车Elementオブジェクトの最小值プロパティと马克斯プロパティを使用して範囲情報を指定することを検討します。詳細については,金宝app仿真软件。公共汽车オブジェクトでのバス プロパティの指定を参照してください。

MATLAB函数ブロック内の信号

(端子とデータの管理]を使用してデータの[最小値]プロパティと[最大値]プロパティを指定します。[一般]プロパティの設定を参照してください。

Stateflowチャート内の信号

対応するStateflowデータの[最小値]プロパティと[最大値]プロパティを設定します。制限範囲(Stateflow)を参照してください。

信号オブジェクト(金宝app仿真软件。信号など)と関連付けられた信号

信号オブジェクトの最小值プロパティと马克斯プロパティを設定します。金宝app仿真软件。信号を参照してください。

データストア(数据存储内存ブロックまたは金宝app仿真软件。信号オブジェクト)

数据存储内存ブロックの場合,ブロックパラメーター[最小値]および[最大値]を設定します。信号オブジェクトの場合、最小值プロパティおよび马克斯プロパティを設定します。

信号範囲のエラーのトラブルシューティング

金宝app仿真软件では,[シミュレーション範囲のチェック]という名前の診断機能があり,この機能を使用して,シミュレーション中に信号が指定した範囲を超えた時期を特定できます。この診断機能が有効な場合,金宝app仿真软件では,ブロックによって出力された信号値と指定した範囲(ブロックの信号範囲の操作を参照)およびブロックデータ型を比較します。つまり,金宝app仿真软件は次のチェックを実行します。

DataTypeMin≤MinValue≤VALUE≤MaxValue≤DataTypeMax

ここで,

  • DataTypeMinは,ブロックのデータ型により表される最小値です。

  • MinValueは,(出力の最小値)などにより指定されたブロックが出力する最小値です。

  • 价值は,ブロックが出力する信号値です。

  • MaxValueは,输出最大などによって指定される,ブロックから出力される最大値です。

  • DataTypeMaxは,ブロックデータ型により表される最大値です。

メモ

特定の範囲を超えた信号をブロックが処理する方法については,条件を指定しすぎる場合があります。たとえば,両方の信号範囲のパラメーターについて値(既定値以外の値)を指定し,整数溢出饱和パラメーターを有効にするとします。この場合,金宝app仿真软件には,(整数オーバーフローで飽和}パラメーターを無効にするように指示する警告メッセージが表示されます。

シミュレーション範囲のチェックの有効化

[シミュレーション範囲のチェック]診断を有効にするには,以下のようにします。

  1. モデルウィンドウの[モデル化)タブで,[モデル設定)をクリックします。

    [コンフィギュレーションパラメーター]ダイアログボックスが表示されます。

  2. [コンフィギュレーションパラメーター]ダイアログボックスの左側の[選択]ツリーで,[診断][データ有効性)カテゴリをクリックします。[信号]の右下で,[シミュレーション範囲のチェック]診断を[エラー]または[警告]に設定します。

  3. (好的)をクリックして,変更を適用して[コンフィギュレーションパラメーター]ダイアログボックスを閉じます。

詳細については,シミュレーション範囲のチェックを参照してください。

シミュレーション範囲のチェックを使用したモデルのシミュレーション

信号範囲のエラーまたは警告をチェックするには,以下のようにします。

  1. モデルの[シミュレーション範囲のチェック]診断を有効にします(シミュレーション範囲のチェックの有効化を参照)。

  2. モデルウィンドウで[実行]をクリックして,モデルのシミュレーションを実行します。

    金宝app仿真软件によって,モデルのシミュレーションと信号範囲のチェックが実行されます。[シミュレーション範囲のチェック]診断で[エラー]が指定されている場合に信号が指定の範囲を超えると,金宝app仿真软件のシミュレーションが停止し,エラーが(たとえば診断ビューアーに)生成されます。

    また,[シミュレーション範囲のチェック]診断で[警告]が指定されている場合に信号が指定の範囲を超えると,金宝app仿真软件ではMATLAB®コマンドウィンドウに警告メッセージが生成されます。各メッセージによって,指定した範囲を超えた出力信号のブロックと,このエラーが発生したタイムステップを把握できます。

バーチャルブロックの信号範囲の伝播

轮廓尺寸ブロックや外港ブロックなどの一部のバーチャルブロック(非バーチャルブロックとバーチャルブロックを参照)では,出力信号の範囲を指定できます。このようなブロックを含んでいるモデルに対して[シミュレーション範囲のチェック]が有効な場合,バーチャルブロックの信号範囲は,出力信号を受信する非バーチャルブロックの最初のインスタンスに逆伝播します。非バーチャルブロックでその範囲に別の値が指定されている場合,仿金宝app真软件では,可能な最も狭い範囲で信号範囲のチェックを実行します。すなわち,金宝app仿真软件では,大きい方の最小値と小さい方の最大値の範囲で信号をチェックします。

たとえば,以下のモデルを考えます。

このモデルでは,常数ブロックでは,その(出力の最大値)300年パラメーターがに指定され,轮廓尺寸100年ブロックではに設定されています。[シミュレーション範囲のチェック]診断が有効で,モデルのシミュレーションを実行するとします。轮廓尺寸ブロックによって,常数ブロックなどの尺寸ブロックより前の非バーチャルブロックに最大値が逆伝播します。金宝app仿真软件では2つの最大値の小さい方の値を使用して,常数ブロックによって出力された信号をチェックします。常数ブロックは最も狭い範囲を超える値(200)の信号を出力するため,仿真金宝app软件によってエラーが生成されます。

よりも高い精度または広い範囲のデータに対する予期しないエラーまたは警告

データ項目(信号またはパラメーター)で以外のデータ型が使用されている場合,比較する前に,金宝app仿真软件によってデータ項目および各設計範囲(指定した最小値または最大値)が双以外のデータ型にキャストされます。この方法は,誤解を招く不必要なエラーや警告の生成を防ぐために役立ちます。

ただし,金宝app仿真软件では比較の前に設計範囲がとして保存されます。データ項目のデータ型がよりも高い精度(語長が128ビットで小数部の長さが126ビットの固定小数点データ型など)またはよりも広い範囲をもつ場合でによって設計範囲の値を正確に表現できない場合,金宝app仿真软件によって予期しない警告およびエラーが生成される可能性があります。

双でない型が高い精度をもつ場合,設計範囲を,で表現可能なゼロから次に遠い数値に丸めることを検討してください。たとえば,最大値を98.8847692348509014に設定した後で,信号によってエラーが生成されると仮定します。で表現可能なゼロから次に遠い数値をコマンドプロンプトで計算します。

格式98.8847692348509014 + eps (98.8847692348509014)
ans = 98.884769234850921

得られた数値98.884769234850921を使用して最大値を置き換えます。

関連するトピック