Возврат контрольной суммы модели
[checksum,details] = Simulink.BlockDiagram.getChecksum('model')
[ возвращает контрольную сумму указанной модели. Программное обеспечение Simulink ® вычисляет контрольную сумму на основе атрибутов модели и блоков, содержащихся в модели.checksum,details] = Simulink.BlockDiagram.getChecksum('model')
С помощью этой команды можно определить, почему режим 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-функции
Примеры изменений модели, которые не влияют на структурную контрольную сумму:
Изменение положения блока
Изменение положения линии
Изменение размера блока
Добавление, удаление или изменение аннотации модели