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-битную контрольную сумму модели.

  • детали Структура формы

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

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

      • MarkedUnique — Верный, если какие-либо блоки в модели имеют свойство, которое предотвращает повторное использование кода.

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

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

      • MarkedUnique — Всегда верный. Существующий для непротиворечивости со структурой ContentsChecksum.

    • ContentsChecksumItems и InterfaceChecksumItems — Массивы структур следующей формы, которые содержат информацию что использование программного обеспечения Simulink, чтобы вычислить контрольную сумму для ContentsChecksum и InterfaceChecksum, соответственно:

      Handle: [char array]
      Identifier: [char array]
      Value: [type]
      
      • Указатель Объект, для которого программное обеспечение Simulink добавило элемент в контрольную сумму. Для блока указатель является полным блоком path. Для порта блока указатель является полным блоком path и вектором символов, который идентифицирует порт.

      • Identifier — Дескриптор программного обеспечения Simulink элемента добавляется к контрольной сумме. Если элемент является зарегистрированным параметром, идентификатор является названием параметра.

      • Значение Значение программного обеспечения Simulink элемента добавляется к контрольной сумме. Если элемент является параметром, Value является значением, возвращенным

        get_param(handle, identifier)

Simulink.BlockDiagram.getChecksum возвращает контрольную сумму, которая зависит от того, почему и как вы скомпилировали модель. Эта функция также компилирует модель, если это не находится в скомпилированном состоянии. Модель компилирует для:

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

  • Генерация кода — во всех других случаях

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

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

Примечание

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

Совет

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

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

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

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

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

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

  • Выбор различной функции в блоке Trigonometric Function

  • Изменение знаков используется в блоке Sum

  • Добавление файла Компилятора выходного языка (TLC), чтобы встроить S-функцию

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

  • Меняя положение блока

  • Меняя положение строки

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

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

Представленный в R2006b