Simulink.BlockDiagram.getChecksum

Возвращает контрольную сумму модели

Синтаксис

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

Описание

[checksum, details] = Simulink. BlockDiagram.getChecksum (' model') возвращает контрольную сумму указанной модели. Simulink® программное обеспечение вычисляет контрольную сумму на основе атрибутов модели и блоков, содержащихся в модели.

Одно из применений этой команды состоит в том, чтобы определить, почему режим Accelerator в программном обеспечении Simulink регенерирует код. Для получения примера см. slAccelDemoWhyRebuild.

Примечание

Simulink.BlockDiagram.getChecksum компилирует указанную модель, если модель еще не находится в скомпилированном состоянии.

Эта команда принимает аргумент model, которое является полным именем или указателем на модель, для которой вы возвращаете данные контрольной суммы.

Эта команда возвращает следующий выход:

  • checksum - Массив из четырех 32-битных целых чисел, который представляет 128-битную контрольную сумму модели.

  • details - Структура формы

    ContentsChecksum: [1x1 struct]
    InterfaceChecksum: [1x1 struct]
    ContentsChecksumItems: [nx1 struct]
    InterfaceChecksumItems: [mx1 struct]
    • ContentsChecksum - Структура следующей формы, которая представляет контрольную сумму, которая предоставляет информацию обо всех блоках в модели.

      Value: [4x1 uint32]
      MarkedUnique: [bool]
      • Value - Массив из четырех 32-битных целых чисел, который представляет 128-битную контрольную сумму модели.

      • MarkedUnique - True, если какие-либо блоки в модели имеют свойство, которое препятствует повторному использованию кода.

    • InterfaceChecksum - Структура следующей формы, которая представляет контрольную сумму, которая предоставляет информацию о модели.

      Value: [4x1 uint32]
      MarkedUnique: [bool]
      • Value - Массив из четырех 32-битных целых чисел, который представляет 128-битную контрольную сумму модели.

      • MarkedUnique - Всегда верно. Присутствует для согласованности с 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 возвращает контрольную сумму, которая зависит от того, почему и как вы скомпилировали модель. Эта функция также компилирует модель, если она не находится в скомпилированном состоянии. Модель компилируется для:

  • Симуляция - если режим симуляции является Accelerator или вы не установили Simulink Coder™

  • Генерация кода - во всех остальных случаях

Чтобы скомпилировать модель перед вызовом Simulink.BlockDiagram.getChecksum, используйте эту команду:

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

Примечание

Контрольная сумма, которая Simulink.BlockDiagram.getChecksum возвраты могут варьироваться от возвращенной контрольной суммы, если вы сначала скомпилируете модель в командной строке (используя model команда) перед выполнением Simulink.BlockDiagram.getChecksum.

Совет

Структурная контрольная сумма отражает изменения в модели, которые могут повлиять на результаты симуляции, включая:

  • Изменение типа решателя, например, с Variable-step на Fixed-step

  • Добавление или удаление блоков или соединений между блоками

  • Изменение значений параметров нетронутых блоков, например, параметра Seed блока Random Number

  • Изменение количества входов или выходов блоков, даже если связность векторизована

  • Изменение количества состояний или начальных состояний в модели

  • Выбор другой функции в блоке Trigonometric Function

  • Изменение знаков, используемых в блоке Sum

  • Добавление файла Target Language Compiler (TLC) к встроенной S-функции

Примеры изменений модели, которые не влияют на структурную контрольную сумму, включают:

  • Изменение положения блока

  • Изменение положения линии

  • Изменение размера блока

  • Добавление, удаление или изменение аннотации модели

Введенный в R2006b