1

このSimulinkモデルファイルを参照として使用して、次の2つのエラーを把握しようとしてい ます。alttext http://imagebin.ca/img/dSV8YO.png

代替テキストhttp://imagebin.ca/img/OXDf0v.png

データ型の一貫性/変換の問題で何が問題になっているのかわかりません。モデルのコンテキストでエラーメッセージが正確に何を意味するか知っていますか?それを解決するために問題の解釈を得るのは素晴らしいことです。前もって感謝します。

4

1 に答える 1

1

ブロック「InnerLoop/e ^(-s)」はブロック「InnerLoop / Sum」を駆動していますか?'e ^(-s)'ブロックがSumブロックをdoubleに設定しようとしているように見えますが、Sumブロックはすでに他のデータ型に設定されています。なぜそれが起こっているのかわかりませんが、Sumブロックのドキュメントのヘルプからの抜粋です。

継承:内部ルールを介して継承

Simulinkは、計算された出力範囲に対応し、ブロックの出力精度を維持し、モデルに指定されたターゲットハードウェア実装のワードサイズと一致する最小量のメモリを必要とする出力スケーリングとデータ型の組み合わせを選択します。ハードウェア実装構成パラメーターペインのデバイスタイプパラメーターがASIC/FPGAに設定されている場合、Simulinkソフトウェアはハードウェアの制約に関係なく出力データタイプを選択します。それ以外の場合、Simulinkソフトウェアは、範囲と精度の制約を満たすことができる利用可能な最小のハードウェアデータ型を選択します。たとえば、ブロックがタイプint8の入力にint16のゲインを乗算し、ASIC / FPGAがターゲットハードウェアタイプとして指定されている場合、出力データタイプはsfix24です。指定されていない場合(32ビットジェネリックを想定)、つまり、一般的な32ビットマイクロプロセッサがターゲットハードウェアとして指定され、出力データ型はint32です。ターゲットマイクロプロセッサによって提供されるワード長のいずれも出力範囲に対応できない場合、SimulinkソフトウェアはSimulationDiagnosticsViewerにエラーメッセージを表示します。

本当に必要な場合は、出力データ型を強制的にdoubleにするか、Sumブロックの前にDataTypeConversionブロックを配置してみてください。役立つもう1つのことは、[フォーマット]メニューから[ポートデータ型]をオンにしてみることです。エラーが発生すると、伝播されたすべてのデータ型が表示されます。

于 2010-03-29T11:36:49.403 に答える