Когда это необходимо, чтобы скрыть детали реализации модели, которую вы совместно используете с третьим лицом, создайте защищенную модель. Вместо включения ваших исходных файлов модели защищенная модель включает производные файлы, чтобы поддержать функциональности, которые вы задаете. Чтобы создать защищенную модель, которая поддерживает функциональности, которых требует ваш пользователь и это включает минимальную информацию о вашей модели, примените эти лучшые методы. Настройки, которые вы выбираете для модели прежде и во время защиты, задают то, что пользователь защищенной модели может сделать с ним. Рассмотрите компромиссы различных проектных решений. Чтобы поддержать дополнительные функциональности, защищенная модель должна включать больше содержимого и поэтому, больше элементов вашего проекта может отобразиться. Поскольку защищенная модель использует выведенные артефакты от скомпилированной модели - ссылки, вы не можете изменить модель после того, как вы защищаете его.
Когда вы разрабатываете модель, которую вы защитите, координата с пользователем защищенной модели, чтобы выбрать настройки, которые позволяют их системе ссылаться на вашу защищенную модель. После того, как вы защитите свою модель, вы не можете изменить опции, такие как настройки параметра конфигурации, чтобы сделать вашу защищенную модель совместимой с родительской моделью. Прежде чем вы защитите свою модель, сконфигурируете ее, чтобы использовать совместимые опции.
Вы не можете поменять имя своей защищенной модели после того, как вы защитите его. Чтобы избежать конфликтов по совпадению имен, выберите имя модели, которое уникально из других моделей в системе. Выберите имя модели, которое не конфликтует с другими моделями в иерархии модели вашего пользователя. Используйте имя, чтобы сохранить ваш источник (незащищенная) модель, прежде чем вы защитите его.
Прежде чем вы защитите свою модель, выберете настройки параметра конфигурации путем координирования с пользователем защищенной модели. Когда родительская модель ссылается на вашу защищенную модель, параметры конфигурации моделей должны быть совместимыми. Например, если вы устанавливаете параметр Solver на Variable-step
для вашей защищенной модели модели, которая ссылается на вашу защищенную модель, нужно было установить Solver на Variable-step
. Если ваша модель содержит несколько конфигураций модели, защищенная модель использует конфигурацию модели, которая активна, когда вы защищаете модель. Чтобы минимизировать несовместимости параметра, отправьте свой набор конфигурации модели пользователю вашей защищенной модели так, чтобы они могли использовать настройку для своей родительской модели. Для получения дополнительной информации смотрите Долю Настройка с Многоуровневыми моделями.
За исключением портов ввода и вывода, минимизируйте количество элементов дизайна, которые обеспечивают интерфейс в вашу модель. Чтобы позволить взаимодействовать через интерфейс с внешними компонентами, защищенная модель не защищает те элементы дизайна. Для следующих элементов рассмотрите эти альтернативные возможности, которые позволяют защиту.
Настраиваемые параметры — Минимизируют количество настраиваемых параметров в коде, которые используют класс памяти кроме Auto
или Localizable
. Параметры, которые используют глобальный класс памяти в сгенерированном коде вашей модели, отображаются в коде для защищенной модели. Если пользователь вашей защищенной модели требует доступа к настраиваемым параметрам, договоритесь о списке параметров, которые обеспечивает защищенная модель. Для получения дополнительной информации смотрите Настройку генерации кода C для Элементов Интерфейса модели.
Объекты данных — Объекты данных, включая параметр и объекты данных сигнала, объекты типа данных и объекты шины, которые вы храните внешне, не защищены. Включайте только объекты данных, к которым пользователь защищенной модели требует доступа. Используйте объекты данных контролировать сигналы и калибровать параметры, в то время как вы разрабатываете свою модель. После калибровки задайте значения для параметров, и затем встройте их. Для получения дополнительной информации смотрите Объекты данных.
Хранилища данных — не используют хранилища глобальных данных на объектах сигнала. Хранилища глобальных данных могут сделать данные видимыми через модели, на которые ссылаются. Вместо этого используйте импорт и выходные порты, чтобы передать данные через модели - ссылки. Можно использовать блоки Data Store Memory в качестве хранилищ данных, которые локальны для модели. Для получения дополнительной информации смотрите Хранилища Локальных и Глобальных данных.
Аргументы модели — Минимизируют количество аргументов, которые использует ваша модель. Когда ваша защищенная модель использует аргументы, пользователь вашей защищенной модели должен задать значения для аргументов в родительской модели. Эти элементы данных отображаются пользователю вашей защищенной модели. Для каждого аргумента модели, который использует ваша модель, передайте технические требования аргумента пользователю вашей защищенной модели.
Функции Simulink — Рассматривают осциллограф функций Simulink, которые использует ваша модель. Когда функция Simulink имеет глобальную область видимости или ограничена по объему на корневом уровне вашей модели, это обеспечивает видимый интерфейс с вашей защищенной моделью. Если вы не хотите, чтобы функция Simulink взаимодействовала через интерфейс в вашу защищенную модель, рассмотрите определение осциллографа в подсистеме вашей модели. Для получения дополнительной информации смотрите Ограниченные по объему Функциональные блоки Simulink в Подсистемах.
Логгирование Блоков — не использует основанный на блоке вход в систему вашей защищенной модели. блоки To File и блоки To Workspace, которые используют Timeseries
функция формата в защищенных моделях, и поэтому делает записанные данные видимыми защищенному пользователю модели. Логгирование сигнала и другие опции, которые используют селектор сигнала, не работают на сигналы в защищенной модели.
Если вы хотите использовать один из предыдущих элементов дизайна, в то время как вы разрабатываете свою модель, но элемент не требуется пользователем модели, можно использовать варианты, чтобы исключить элемент дизайна из защищенной модели. Пример использует блок To File во время тестирования к данным логов, к которым пользователь защищенной модели не требует доступа. Исключить блок при помощи вариантов:
Вставьте различный блок, такой как блок Manual Variant Sink, на сигнале, который приводит к блоку To File.
Соедините первый выход различного блока с блоком To File.
Соедините второй выход различного блока с блоком Terminator, чтобы отключить сигнал.
Чтобы регистрировать сигнал при тестировании модели, активируйте первый различный выход.
Чтобы защитить модель, не используя блок логгирования, активируйте второй различный выход. Защищенная модель использует только активный вариант, таким образом, сигнал отключен без того, чтобы быть регистрируемым.
Когда вы задаете функциональности для своей защищенной модели, защищенная модель включает артефакты, чтобы поддержать те функциональности. Ограничение включенных артефактов позволяет вам управлять тем, чем содержимое отображается пользователю вашей модели или внешнему атакующему, который хочет просмотреть или изменить вашу модель без разрешения. Рассмотрите компромиссы различных проектных решений. Чтобы поддержать дополнительные функциональности, защищенная модель должна включать больше содержимого и поэтому, больше элементов вашего проекта может отобразиться. Координата с пользователем вашей модели, чтобы договориться, что функциональности они требуют. Задайте поддержку только тех функциональностей.
Запутываемый исходный код — Использование эта опция, когда пользователь вашей защищенной модели должен скомпилировать сгенерированный исходный код. Защищенная модель включает запутываемую версию сгенерированного исходного кода. Это ведет себя то же самое как ваш исходный код, но больше затрудняет, чтобы понять для пользователя модели и потенциальных атакующих.
Скомпилированный код — Использование эта опция, когда пользователь вашей защищенной модели может пользоваться скомпилированной библиотекой из вашей защищенной модели. Защищенная модель включает двоичные файлы и заголовочные файлы, скомпилированные из вашего сгенерированного исходного кода. Это не включает исходный код. Эта опция предотвращает пользователя ваших и потенциальных атакующих модели от доступа к сгенерированному исходному коду модели.
Защита паролем — Использование эта опция, чтобы поддержать некоторую функциональность для пользователя вашей защищенной модели и защитить вспомогательные файлы от внешних атакующих. Для каждой опции, что вы задаете пароль, производные файлы, которые поддерживают ту опцию, защищены при помощи шифрования AES-256. Прежде, чем выполнить каждую функциональность, защищенная модель предлагает пользователю пароль. Координата с пользователем вашей защищенной модели, чтобы выбрать пароль для каждой опции. Если на вашу защищенную модель ссылается родительская модель, которая будет также защищена, сделает не, пароль - защищает функциональности, которые поддержит родительский элемент защищенная модель.
Цифровая подпись — Знак ваша защищенная модель при помощи сертификата, чтобы защитить получателя от использования модели, если это было изменено внешним атакующим. Когда вы подписываете свою модель, пользователь модели может проверить, что защищенная модель публикуется вами и не изменилась после того, как вы подписали его. После того, как вы подписываете модель, если она изменяется, пользователь не может использовать ее. Убедитесь, что компьютерное устройство хранения данных пользователя доверяемых сертификатов имеет сертификат из центра сертификации, который сертифицировал ваш сертификат.
Когда вы создаете защищенную модель, сгенерированный защищенный отчет модели включает в себя интерфейсный отчет. Интерфейсный отчет включает в себя информацию о технических требованиях ввода и вывода, экспортируемых функциях, интерфейсных параметрах и хранилищах данных. Используйте интерфейсный отчет в качестве ссылки, чтобы связаться с пользователем вашей защищенной модели.
Когда вы создаете защищенную модель, у вас есть опция, чтобы создать модель тестовой обвязки, которая ссылается на вашу защищенную модель. Используйте модель тестовой обвязки, чтобы задать информацию, которую пользователь запрашивает, чтобы соединить интерфейсом с вашей защищенной моделью с их системой. Обвязка содержит ту же конфигурацию модели, которую использует ваша защищенная модель. В модели тестовой обвязки можно включать определения данных, которые использует защищенная модель.