Если вы хотите поделиться моделью со сторонней компанией без раскрытия интеллектуальной собственности, защитите модель. При создании защищенной модели детали реализации исходной модели скрываются путем ее компиляции в ссылочную модель. Защищенная модель включает производные файлы для поддержки указанных дополнительных функциональных возможностей.
При защите модели можно разрешить пользователю защищенной модели:
Откройте веб-представление модели, доступное только для чтения, включая содержимое модели и параметры блока.
Моделирование модели в режимах ускорения (по умолчанию), быстрого ускорения и нормального режима.
Создание кода для модели, включающей защищенную модель.
Создайте код HDL для модели, включающей защищенную модель. Сведения о создании защищенных моделей с поддержкой генерации кода HDL см. в разделах Создание защищенных моделей для сокрытия содержимого и создание кода HDL (кодер HDL).
Создайте код для защищенной модели через автономный интерфейс, если имеется Embedded Coder ®, и укажите целевой системный файл для модели на основе ERT.
При необходимости можно защитить каждый параметр паролем. Если для одного из этих вариантов выбрана защита паролем, программное обеспечение защищает поддерживающие файлы с помощью AES-256 шифрования.
При создании защищенной модели:
Simulink ® создает и сохраняет защищенную версию модели в файле с тем же именем, что и исходная модель, с .slxp расширение.
Исходный файл модели с .slx расширение, не изменяется. При защите модели с помощью блока модели этот блок модели не изменяется.
При необходимости Simulink создает архив проекта (.mlproj), которая содержит защищенную модель, модель кабельных трасс для защищенной модели и дополнительные вспомогательные файлы.
Чтобы создать защищенную модель из ссылочной модели, выберите блок модели, который ссылается на модель, а затем используйте одну из следующих опций.
На вкладке «Блок модели Simulink Toolstrip» нажмите кнопку «Защитить».
На вкладке «Код Simulink Toolstrip C» нажмите кнопку «Поделиться», затем выберите «Создать защищенную модель из выбранного блока модели».
Чтобы создать защищенную модель из текущей модели, используйте одну из следующих опций.
На вкладке Моделирование панели инструментов Simulink щелкните стрелку кнопки Сохранить (Save), затем выберите Защищенная модель (Protected Model).
На вкладке «Код Simulink Toolstrip C» нажмите кнопку «Поделиться» и выберите «Создать защищенную модель».
Чтобы программно создать защищенную модель, используйте Simulink.ModelReference.protect функция.
Если для защищенной модели требуются дополнительные вспомогательные файлы, такие как определения базового рабочего пространства или словарь данных, включите эти файлы в модель при совместном использовании. Дополнительные сведения см. в разделе Защищенные модели пакетов и общего доступа.
В этом примере показано, как создать защищенную модель из ссылочной модели для просмотра, моделирования или создания кода только для чтения.
Настройте блоки модели в родительской модели так, чтобы они ссылались на исходную ссылочную модель. Этот шаг предотвращает превращение блоков модели в защищенные привязки при создании защищенной модели.
Откройте родительскую модель, которая ссылается на модель, которую требуется защитить. Для этого примера откройте модель sldemo_mdlref_basic.
Чтобы запустить рабочий процесс, создайте локальную копию модели. sldemo_mdlref_counter что вы хотите защитить. Затем можно создать локальную копию родительской модели. sldemo_mdlref_basic. Необходимо сохранить родительскую модель в той же папке, что и ссылочная модель.
Откройте окно sldemo_mdlref_basic модель, сохраненную локально. Убедитесь, что модель блокируется CounterA, CounterB, и CounterC ссылка на sldemo_mdlref_counter модель, сохраненную локально.
Для каждого блока модели откройте диалоговое окно «Параметры блока» и укажите расширение .slx в поле Имя модели. Если модель и защищенная модель находятся в одной папке, .slxp имеет приоритет над .slx. Если расширение не указано, исходный блок «Модель» в модели ссылается на защищенную модель, а не на исходную модель. Нажмите кнопку ОК.
Щелкните любой из трех блоков модели. На вкладке «Блок модели Simulink Toolstrip» нажмите «Защитить».

В диалоговом окне Создать защищенную модель (Create Protected Model) установите флажки Моделировать (Simulate) и Использовать сгенерированный код (Use generated code). Эти опции позволяют пользователю защищенной модели моделировать и генерировать код для модели, которая ссылается на защищенную модель. Если требуется защитить функции защищенной модели паролем, введите пароль длиной не менее четырех символов. Каждый параметр может иметь уникальный пароль.
При наличии встроенного кодера укажите целевой системный файл на основе ERT (например, ert.tlc) для модели отображается поле Code interface.
В этом примере: sldemo_mdlref_basic не указывает целевой системный файл на основе ERT, поэтому опции интерфейса «Код» недоступны в диалоговом окне «Создание защищенной модели».
В раскрывающемся списке Интерфейс кода выберите одну из следующих опций:
Model reference - определяет доступ к коду через интерфейс ссылочного кода модели, который позволяет использовать защищенную модель в иерархии ссылочного кода модели. Пользователи защищенной модели могут создавать код из родительской модели, содержащей защищенную модель. Пользователи могут выполнять моделирование SIL/PIL блока модели с защищенной моделью.
Top model - указывает доступ к коду через автономный интерфейс. Пользователи защищенной модели могут выполнять моделирование SIL/PIL блока модели с защищенной моделью.
В списке Тип содержимого выберите Obfuscated source code скрывать назначение исходного кода и логику защищенной модели. Дополнительные сведения о параметрах защиты модели см. в разделе Тип содержимого.
При наличии Coder™ HDL можно установить флажок Использовать сгенерированный код HDL для создания кода HDL для модели, ссылающейся на защищенную модель. Чтобы защитить эту функцию защищенной модели паролем, необходимо указать не менее восьми символов. Невозможно запутать исходный код HDL для защищенной модели.
В этом примере ссылочная модель sldemo_mdlref_counter использование double типы данных. На вкладке «Создание кода HDL» > «Плавающая точка» установите для параметра «Библиотека» значение Native Floating Point и стратегия задержки до ZERO. См. также раздел Создание защищенных моделей для сокрытия содержимого и создания кода HDL (кодера HDL).
В поле Папка назначения (Destination folder) укажите путь к папке для защищенной модели. Значением по умолчанию является текущая рабочая папка.
Чтобы автоматически собирать, создавать и упаковывать поддерживающие файлы с защищенной моделью, установите для параметра Содержимое значение Protected Model (.slxp) and dependencies in a project.
Примечание
Прежде чем предоставить общий доступ к проекту, проверьте, содержит ли проект необходимые вспомогательные файлы. Если вспомогательные файлы отсутствуют, их можно идентифицировать с помощью моделирования или генерации кода для связанной модели кабельных трасс. Добавьте отсутствующие зависимости в проект и при необходимости обновите модель кабельных трасс.
Установка для содержимого значения Protected Model (.slxp) and dependencies in a project устанавливает флажок Создать модель кабельных трасс для защищенной модели (Create harness model for protected model). Модель кабельных трасс включена в проект и обеспечивает изолированную среду для блока «Модель», который ссылается на защищенную модель.

Для дальнейшей настройки защищенной модели можно:
Укажите пользовательский обфускатор для обфускации кода. См. раздел Указание пользовательских обфускаторов для защищенных моделей.
Укажите несколько целей создания кода. См. раздел Создание защищенных моделей с несколькими целевыми объектами.
Определение обратных вызовов для защищенной модели. См. раздел Определение обратных вызовов для защищенных моделей.
Щелкните Создать (Create).
Архив проекта (.mlproj), который содержит защищенную модель, модель кабельных трасс и поддерживающие файлы, появляется в указанной папке назначения. Чтобы проверить защищенную модель, извлеките содержимое архива проекта, дважды щелкнув его в браузере «Текущая папка» и указав папку назначения. Либо щелкните правой кнопкой мыши архив проекта и выберите Извлечь здесь. Проект открывается, а извлеченные файлы находятся в новой папке с именем архива проекта.
При создании защищенной модели из Simulink Editor создается отчет о защищенной модели, который включается в состав защищенной модели. Для этого примера, чтобы просмотреть отчет о защищенной модели, дважды щелкните защищенную модель или щелкните правой кнопкой мыши значок значка защищенной модели на блоке в модели кабельных трасс и выберите Показать отчет (Display Report).

Отчет содержит:
Резюме, включая следующие таблицы:
Среда, предоставляющая версию Simulink и другие версии продукта, а также платформу, используемую для создания защищенной модели.
Поддерживаемые функциональные возможности, отчетность On, Off, или On with password protection для каждой возможной функциональности, поддерживаемой защищенной моделью. При настройке защищенной модели для нескольких целевых объектов эта таблица содержит список поддерживаемых целевых объектов.
Отчет по интерфейсам, включая информацию об интерфейсе модели, например, спецификации ввода и вывода, экспортированную информацию о функциях, параметры интерфейса и хранилища данных.
Отчет не содержит других разделов, которые появляются в отчете о создании кода для незащищенных моделей, таких как отчет о метрике кода и отчет об отслеживаемости, поскольку эти отчеты содержат дополнительные сведения о конструкции модели.
Можно протестировать защищенную модель, чтобы сравнить ее с исходной моделью. Дополнительные сведения см. в разделе Тестирование защищенных моделей.
Чтобы использовать защищенную модель в иерархии модели, необходимо создать на нее ссылку через блок модели, например включенный в модель кабельных трасс. Режим моделирования для блоков модели, ссылающихся на защищенную модель, имеет значение Accelerator. Изменить режим нельзя. Дополнительные сведения см. в разделе Ссылки на защищенные модели от третьих лиц.
При создании защищенной модели необходимо учитывать следующие требования.
Для создания защищенной модели необходимо иметь лицензию Simulink Coder™ или HDL Coder.
Модель должна быть доступна на пути MATLAB ®.
Модель не может иметь несохраненных изменений.
Модель не может использовать неинлинированную S-функцию прямо или косвенно.
Модель использует конфигурацию, которая активна во время резервирования. Невозможно изменить конфигурацию защищенной модели.
Если модель содержит варианты, защищенная модель включает только тот вариант, который активен во время защиты.
Процесс защиты модели не сохраняет обратные вызовы. Дополнительные сведения о создании обратных вызовов для использования с защищенной моделью см. в разделе Определение обратных вызовов для защищенных моделей.
Не переименовывайте защищенную модель и не изменяйте ее суффикс. В этом случае модель станет непригодной для использования до тех пор, пока не будет восстановлено ее исходное имя и суффикс.
Используйте уникальное имя для модели и для моделей, на которые она ссылается. Если защищенная модель ссылается на модель, которая имеет общее имя с другой защищенной моделью или другой моделью в иерархии другой защищенной модели, существуют ограничения на использование защищенных моделей. Если модель верхнего уровня ссылается на две защищенные модели с таким конфликтом имен, невозможно защитить модель верхнего уровня, создать код для модели верхнего уровня или смоделировать модель верхнего уровня в режимах программного обеспечения в цикле (SIL), процессора в цикле (PIL) или быстрого ускорения.
Модель также должна соответствовать требованиям, перечисленным в разделе Ссылочные требования и ограничения модели.
Для создания защищенной модели, поддерживающей создание кода, модель должна соответствовать следующим требованиям:
В защищенной модели должны использоваться режимы «обычный», «ускоритель», «программное обеспечение в контуре» (SIL) или «процессор в контуре» (PIL) и одна цель.
Не устанавливайте флажок Создание кода > Проверка > Время выполнения функции измерения. Если эта опция выбрана при защите модели, программа отключает параметр и выводит предупреждение.
Защищенные ссылочные модели должны поддерживать генерацию кода без защиты паролем.
Защищенная модель должна быть совместима с типом содержимого каждой защищенной ссылочной модели. В этой таблице приведены сведения о совместимости.
Совместимость типов контента для создания кода
| Защищенный тип содержимого родительской модели | Совместимые типы содержимого защищенной ссылочной модели |
|---|---|
Binaries |
|
Binaries с 'ObfuscateCode' установить в значение 'false' |
|
Obfuscated source code |
|
Readable source code |
|
Если тип содержимого защищенной родительской модели и защищенной ссылочной модели не совпадают, при создании кода применяется тип содержимого, обеспечивающий более высокий уровень защиты. Например, защищенный набор родительских моделей для Binaries производит Binaries для защищенных ссылочных моделей, для которых установлено значение Obfuscated source code. Защищенный набор родительских моделей для Readable source code производит Obfuscated source code для защищенных ссылочных моделей, для которых установлено значение Obfuscated source code.
Чтобы избежать ошибки при создании кода модели, включающей защищенную модель:
Имя защищенной модели должно быть уникальным от других имен модели в той же иерархии ссылок на модель.
Интерфейсы должны совпадать.
Параметры должны быть совместимыми.
Если на защищенную модель ссылается другая защищенная модель, модель должна:
Поддержка режима ускорителя. Необходимо выбрать Simulate в диалоговом окне Создать защищенную модель (Create Protected Model) или задать 'Mode' кому 'Accelerator' или 'CodeGeneration' с помощью Simulink.ModelReference.protect функция.
Использовать значение по умолчанию 'CodeInterface' установка: 'Model reference'.
Не используйте парольную защиту для моделирования.
Не имеют обратных вызовов.
Поддержка операций, поддерживаемых защищенной родительской моделью без защиты паролем.
Используйте тип содержимого, совместимый с типом содержимого защищенной родительской модели, если защищенная родительская модель поддерживает создание кода. Список совместимых параметров типа содержимого см. в таблице в предыдущем разделе.
Не ссылайтесь на модель, которая имеет общее имя с другой защищенной моделью или с другой моделью в иерархии другой защищенной модели.
Если модель, которую требуется защитить, ссылается на защищенную модель, защищенная ссылочная модель должна соответствовать предыдущим требованиям.
Примечание
Защищенная модель, созданная с помощью опции Использовать сгенерированный код HDL, позволяет осуществлять шифрование и поддержку моделирования и создания кода HDL из модели, ссылающейся на защищенную модель. Нельзя запутывать исходный код HDL, иметь обратные вызовы или использовать вложенные защищенные модели с этой опцией. Дополнительные сведения об ограничениях генерации кода HDL см. в разделе Ограничения защищенной модели для генерации кода HDL (кодер HDL).