В этом примере показано, как создать и использовать защищенную модель в симуляциях режима Normal и Accelerated, а также для генерации кода.
Прежде чем можно будет сгенерировать защищенные модели, необходимо было установить Simulink® Coder™. Чтобы сгенерировать представление только для чтения защищенных моделей, необходимо было установить Simulink® Report Generator™.
Откройте модель в качестве примера, sldemo_mdlref_bus
.
Рисунок 1: модель в качестве примера, sldemo_mdlref_bus
Эта модель содержит один блок Model, CounterA
. Чтобы защитить модель, на которую ссылается этот блок, щелкните правой кнопкой по блоку Model и выберите Subsystem & Model Reference> Create Protected Model for Selected Model Block. Диалоговое окно открывается, где можно выбрать опции для создания защищенной модели.
Рисунок 2: Защищенное диалоговое окно модели
Под Позволяют пользователю защищенной модели выбирать Open представление только для чтения модели, Симулировать и Генерировать код. У вас есть опция ввода паролей для 3 вышеупомянутых функциональностей. Эти 3 пароля используются, чтобы защитить соответствующие функциональности. Введите отдельные пароли для этих 3 опций и нажмите Create
. Защищенный файл модели, sldemo_mdlref_counter_bus.slxp
, сгенерирован в текущей рабочей папке. Можно использовать эту защищенную модель в симуляциях режима Normal и Accelerated, а также для генерации кода. Можно также открыть представление только для чтения модели. Исходный файл модели не требуется.
Чтобы симулировать модель, которая ссылается на защищенную модель, вы можете должны быть задать переменные в базовом рабочем пространстве. Например, защищенная модель, sldemo_mdlref_counter_bus
, нуждается в переменных базового рабочего пространства, которые задают шины в корневых портах ввода и вывода модели. Когда вы поставляете защищенную модель, необходимо включать определения необходимых переменных, или модель неприменима. protect
команда генерирует защищенную модель и определяет необходимые переменные. Например:
[~, neededVars] = Simulink.ModelReference.protect('sldemo_mdlref_counter_bus', 'Mode', 'CodeGeneration', 'OutputFormat', 'MinimalCode', 'ObfuscateCode', true, 'Harness', true, 'Report', true, 'Webview', true)
Второй выход protect
функция, neededVars
, включает переменные базового рабочего пространства, которые необходимо отправить получателю. Значение neededVars
массив ячеек, который содержит имена переменных базового рабочего пространства, требуемых для защищенной модели. Однако массив ячеек может также содержать имена переменных рабочей области, в которых не нужна модель.
Прежде чем вы совместно используете защищенную модель, отредактируете neededVars
удалить имена любых переменных, в которых не нужна модель. Сохраните необходимые переменные рабочей области в MAT-файл:
save('sldemo_mdlref_counter_bus_vars', neededVars{:});
Когда блок Model ссылается на защищенную модель, значок щита отображен на блоке.
Рисунок 3: Ссылка на защищенную модель
Щелкните правой кнопкой по значку щита и выберите Authorize.... Введите пароли, которые вы использовали при создании защищенной модели.
Рисунок 4: диалоговое окно Ввода пароля
Теперь можно симулировать модель или в Нормальном или в Режим Accelerator. Можно также создать топ-модель путем выбора Code> C/C ++ Code> Build Model.
Дважды кликните блок Model, чтобы открыть представление только для чтения модели. В качестве альтернативы щелкните правой кнопкой по значку щита и выберите Show Webview, чтобы открыть представление только для чтения модели.
Рисунок 5: защищенное веб-представление модели
Щелкните правой кнопкой по значку щита и выберите Display Report, чтобы открыть отчет
Рисунок 6: защищенный отчет модели