exponenta event banner

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

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

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

  • Выбор другой функции в блоке «Тригонометрическая функция»

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

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

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

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

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

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

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

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