Если требуется скрыть сведения о реализации модели, совместно используемой третьей стороной, создайте защищенную модель. Вместо того чтобы включать файлы исходной модели, защищенная модель включает производные файлы для поддержки указанных функций. Чтобы создать защищенную модель, поддерживающую необходимые пользователю функции и содержащую минимальную информацию о модели, следуйте этим рекомендациям. Параметры, выбранные для модели до и во время резервирования, определяют, что может сделать с ней пользователь защищенной модели. Рассмотрим компромиссы различных вариантов конструкции. Для поддержки дополнительных функциональных возможностей защищенная модель должна содержать больше содержимого, поэтому может быть видно больше элементов конструкции. Поскольку в защищенной модели используются производные артефакты из ссылки на скомпилированную модель, после ее защиты изменить модель невозможно.
При разработке модели, которую вы будете защищать, согласовывайте с пользователем защищенной модели выбор настроек, позволяющих их системе ссылаться на защищенную модель. После защиты модели нельзя изменять такие опции, как настройки параметров конфигурации, чтобы сделать защищенную модель совместимой с родительской моделью. Прежде чем защищать модель, настройте ее для использования совместимых опций.
После защиты имя защищенной модели изменить нельзя. Чтобы избежать конфликтов имен, выберите имя модели, уникальное для других моделей в системе. Выберите имя модели, не конфликтующее с другими моделями в иерархии моделей пользователя. Используйте имя для сохранения исходной (незащищенной) модели перед ее защитой.
Перед защитой модели выберите параметры конфигурации, согласовав их с пользователем защищенной модели. Когда родительская модель ссылается на защищенную модель, параметры конфигурации моделей должны быть совместимыми. Например, если для параметра Решатель задано значение Variable-step для защищенной модели модель, которая ссылается на защищенную модель, должна иметь значение решателя Variable-step. Если модель содержит несколько наборов конфигурации, защищенная модель использует набор конфигурации, который активен при защите модели. Чтобы минимизировать несовместимость параметров, отправьте набор конфигурации модели пользователю защищенной модели, чтобы он мог использовать конфигурацию для родительской модели. Дополнительные сведения см. в разделе Совместное использование конфигурации с несколькими моделями.
За исключением портов ввода и вывода, минимизируйте количество элементов конструкции, которые обеспечивают интерфейс в модели. Для обеспечения взаимодействия с внешними компонентами защищенная модель не защищает эти элементы конструкции. Для следующих элементов рассмотрим эти альтернативные варианты, позволяющие обеспечить защиту.
Настраиваемые параметры - минимизируйте количество настраиваемых параметров в коде, которые используют класс хранения, отличный от Auto или Localizable. Параметры, использующие глобальный класс хранения в сгенерированном коде модели, отображаются в коде защищенной модели. Если пользователю защищенной модели требуется доступ к настраиваемым параметрам, согласуйте список параметров, предоставляемых защищенной моделью. Дополнительные сведения см. в разделе Конфигурация генерации кода C для элементов интерфейса модели.
Объекты данных - объекты данных, включая объекты данных параметров и сигналов, объекты типов данных и объекты шины, хранящиеся извне, не защищены. Включать только объекты данных, доступ к которым требуется пользователю защищенной модели. Используйте объекты данных для мониторинга сигналов и калибровки параметров во время разработки модели. После калибровки задайте значения параметров, а затем поместите их в линию. Дополнительные сведения см. в разделе Объекты данных.
Хранилища данных - не используйте глобальные хранилища данных для сигнальных объектов. Глобальные хранилища данных могут сделать данные видимыми в ссылочных моделях. Вместо этого используйте порты ввода и вывода для передачи данных по ссылкам модели. Блоки памяти хранилища данных можно использовать в качестве локальных для модели хранилищ данных. Дополнительные сведения см. в разделе Локальные и глобальные хранилища данных.
Аргументы модели - минимизация числа аргументов, используемых моделью. Когда защищенная модель использует аргументы, пользователь защищенной модели должен указать значения аргументов в родительской модели. Эти элементы данных видны пользователю защищенной модели. Для каждого аргумента модели сообщите спецификации аргумента пользователю защищенной модели.
Функции Simulink - рассмотрим объем функций Simulink, используемых моделью. Если функция Simulink имеет глобальную область действия или находится на корневом уровне модели, она обеспечивает видимый интерфейс с защищенной моделью. Если функция Simulink не должна взаимодействовать с защищенной моделью, попробуйте указать область в подсистеме модели. Дополнительные сведения см. в разделе Функциональные блоки Simulink в области действия в подсистемах.
Блоки протоколирования - не используйте протоколирование на основе блоков в защищенной модели. К блокам файлов и к блокам рабочей области, которые используют Timeseries форматировать функцию в защищенных моделях и, следовательно, сделать записанные данные видимыми для пользователя защищенной модели. Регистрация сигналов и другие опции, использующие селектор сигналов, не работают для сигналов внутри защищенной модели.
Если при разработке модели требуется использовать один из предыдущих элементов конструкции, но этот элемент не требуется пользователю модели, можно использовать варианты для исключения элемента конструкции из защищенной модели. Примером является использование блока To File во время тестирования для регистрации данных, доступ к которым пользователю защищенной модели не требуется. Чтобы исключить блок с помощью вариантов, выполните следующие действия.
Вставьте блок исполнения, например блок ручного приемника исполнения, в сигнал, который ведет к блоку «В файл».
Подключите первый вывод блока вариантов к блоку «В файл».
Подключите второй выход блока вариантов к блоку терминатора для завершения сигнала.
Для регистрации сигнала во время тестирования модели активируйте вывод первого варианта.
Для защиты модели без использования блока регистрации активируйте вывод второго варианта. Защищенная модель использует только активный вариант, поэтому сигнал завершается без регистрации.

При указании функциональных возможностей для защищенной модели защищенная модель включает артефакты для поддержки этих функциональных возможностей. Ограничение включённых артефактов позволяет управлять тем, какое содержимое видно пользователю модели или внешнему злоумышленнику, желающему просмотреть или изменить модель без разрешения. Рассмотрим компромиссы различных вариантов конструкции. Для поддержки дополнительных функциональных возможностей защищенная модель должна содержать больше содержимого, поэтому может быть видно больше элементов конструкции. Согласовывайте свои функции с пользователем модели. Укажите поддержку только этих функций.
Запутанный исходный код (Obfuscated source code) - используйте этот параметр, когда пользователь защищенной модели должен скомпилировать сгенерированный исходный код. Защищенная модель включает запутанную версию созданного исходного кода. Он ведет себя так же, как исходный код, но его сложнее понять для пользователя модели и потенциальных злоумышленников.
Скомпилированный код - этот параметр используется, когда пользователь защищенной модели может использовать скомпилированную библиотеку из защищенной модели. Защищенная модель включает двоичные файлы и файлы заголовков, скомпилированные из сгенерированного исходного кода. Он не включает исходный код. Этот параметр запрещает пользователю модели и потенциальным злоумышленникам доступ к сгенерированному исходному коду модели.
Защита паролем - используйте этот параметр для поддержки некоторых функций пользователя защищенной модели и защиты поддерживающих файлов от внешних злоумышленников. Для каждого параметра, для которого указан пароль, производные файлы, поддерживающие этот параметр, защищены с помощью AES-256 шифрования. Перед выполнением каждой функции защищенная модель запрашивает у пользователя пароль. Согласовывайте с пользователем защищенной модели выбор пароля для каждого варианта. Если на защищенную модель ссылается родительская модель, которая также будет защищена, не используйте функции защиты паролем, поддерживаемые родительской защищенной моделью.
Цифровая подпись - подпишите защищенную модель с помощью сертификата, чтобы защитить получателя от использования модели, если она была изменена внешним злоумышленником. При подписании модели пользователь может проверить, что защищенная модель опубликована вами и не изменилась после ее подписания. После подписания модели, если она изменена, пользователь не может использовать ее. Убедитесь, что компьютер пользователя, хранящий доверенные сертификаты, имеет сертификат центра сертификации, который сертифицировал ваш сертификат.
При создании защищенной модели созданный отчет о защищенной модели включает отчет по интерфейсу. Отчет по интерфейсам содержит информацию о спецификациях ввода и вывода, экспортированных функциях, параметрах интерфейса и хранилищах данных. Используйте отчет интерфейса в качестве ссылки для связи с пользователем защищенной модели.
При создании защищенной модели можно создать модель кабельных трасс, которая ссылается на защищенную модель. Модель кабельных трасс используется для определения информации, необходимой пользователю для взаимодействия защищенной модели со своей системой. Электрический жгут содержит тот же набор конфигурации, что и защищенная модель. В модель кабельных трасс можно включить определения данных, используемые защищенной моделью.