Main Content

Simulink.BlockDiagram.getChecksum

モデルのチェックサムを返す

構文

[checksum,details] = Simulink.BlockDiagram.getChecksum('model')

説明

[checksum,details] = Simulink.BlockDiagram.getChecksum('model') は、指定されたモデルのチェックサムを返します。Simulink® は、モデルの属性とモデルに含まれているブロックの属性に基づいて、チェックサムを計算します。

このコマンドの使用法の 1 つは、Simulink のアクセラレータ モードがコードを再生成する理由を調べることです。例については、Simulink Accelerator がコードを再生成している原因の特定を参照してください。

メモ

Simulink.BlockDiagram.getChecksum は、モデルがまだコンパイル状態にない場合は、指定したモデルをコンパイルします。

このコマンドは、引数 model を受け取ります。これは、チェックサム データを返すモデルの完全な名前またはハンドルです。

このコマンドは、次を返します。

  • checksum — モデルの 128 ビット チェックサムを表す 4 つの 32 ビット整数の配列。

  • details — 形式の構造。

    ContentsChecksum: [1x1 struct]
    InterfaceChecksum: [1x1 struct]
    ContentsChecksumItems: [nx1 struct]
    InterfaceChecksumItems: [mx1 struct]
    • ContentsChecksum — モデル内のすべてのブロックに関する情報を提供するチェックサムを表す以下の形式の構造体。

      Value: [4x1 uint32]
      MarkedUnique: [bool]
      • Value — モデルの 128 ビット チェックサムを表す 4 つの 32 ビット整数の配列。

      • MarkedUnique — モデル内のブロックがコードの再利用が不可能であるプロパティをもつ場合に true。

    • InterfaceChecksum — モデルに関する情報を提供するチェックサムを表す以下の形式の構造体。

      Value: [4x1 uint32]
      MarkedUnique: [bool]
      • Value — モデルの 128 ビット チェックサムを表す 4 つの 32 ビット整数の配列。

      • MarkedUnique — 常に true。ContentsChecksum 構造体との互換性のためにあります。

    • ContentsChecksumItems および InterfaceChecksumItems — Simulink が ContentsChecksum および InterfaceChecksum のチェックサムを計算するために使う情報を含む以下の形式の構造体配列。

      Handle: [char array]
      Identifier: [char array]
      Value: [type]
      
      • Handle — Simulink がチェックサムに項目を追加したオブジェクト。ブロックについては、ハンドルはブロックの絶対パスです。ブロックの端子については、ハンドルはブロックの絶対パスで端子を識別する文字ベクトルです。

      • Identifier — Simulink がチェックサムに加えた項目の記述子。項目が記述されたパラメーターである場合、記述子はパラメーター名です。

      • Value — Simulink がチェックサムに加えた項目の値。項目がパラメーターである場合は、Value は以下で返される値です。

        get_param(handle, identifier)

Simulink.BlockDiagram.getChecksum は、モデルをコンパイルした理由と方法で決まるチェックサムを返します。また、モデルがコンパイルされた状態でない場合は、モデルをコンパイルします。モデルは次の理由でコンパイルされます。

  • シミュレーション - シミュレーション モードがアクセラレータの場合または Simulink Coder™ をインストールしていない場合

  • コード生成 — その他すべての場合

Simulink.BlockDiagram.getChecksum を呼び出す前にモデルをコンパイルするには、次のコマンドを使用し、modelName をモデルの名前に置き換えます。

modelName([],[],[],'compile')

メモ

Simulink.BlockDiagram.getChecksum によって返されるチェックサムは、Simulink.BlockDiagram.getChecksum を呼び出す前にモデル名のプログラムによるインターフェイス (Use Model Name as Programmatic Interfaceを参照) を使用してモデルをプログラムでコンパイルした場合に返されるチェックサムとは異なる可能性があります。

ヒント

構造的なチェックサムはモデルへの変更を反映し、次のようなシミュレーション結果に影響を与える可能性があります。

  • ソルバー型を変更する (Variable-step から Fixed-step への変更など)

  • ブロックまたはブロック間の接続を追加または削除する

  • 調整不可能なブロック パラメーターの値を変更する (Random Number ブロックの [シード] パラメーターなど)

  • 接続がベクトル化されていても、ブロックの入力、または出力の数を変更する

  • モデル内の状態または初期状態の数を変更する

  • Trigonometric Function ブロック内の異なる関数を選択する

  • Sum ブロックで使用されている符号を変更する

  • S-Function をインライン化するために Target Language Compiler (TLC) ファイルを追加する

構造的なチェックサムに影響を与えないモデル変更の例は以下のとおりです。

  • ブロックの位置の変更

  • ラインの位置の変更

  • ブロックのサイズ変更

  • モデルの注釈の追加、削除、または変更

バージョン履歴

R2006b で導入