Сконфигурируйте параметр модели как глобальную переменную для настройки во время выполнения

По умолчанию оптимизация генерации кода устраняет устройство хранения данных для параметров модели и большинства сигналов, которые не участвуют в интерфейсе функции точки входа. Чтобы сделать параметры настраиваемыми и связанные сигналы доступными, идентифицируйте их путем явной настройки.

В BasicRollMode подсистема модели rtwdemo_roll, сконфигурируйте параметр управления ПИД, чтобы он появился в коде как глобальная переменная, значение которой можно настроить.

  1. Откройте BasicRollMode подсистема.

  2. Откройте Model Data Editor, На вкладке Modeling нажмите Model Data Editor.

  3. В Model Data Editor выберите вкладку Parameters.

  4. В поле фильтра введите IntGain. На Model Data Editor показана строка, которая соответствует параметру Gain, и строка, которая соответствует переменной рабочей области.

  5. В Source столбце нажмите IntGain. Этот блок Gain появляется подсвеченным в диаграмме модели.

  6. В Value столбце рядом с intGain, нажмите кнопку действия (кнопка с тремя вертикальными точками) и выберите Explore.

  7. Преобразуйте переменную рабочего пространства модели в объект параметра. В Model Explorer щелкните правой кнопкой мыши intGain и выберите Convert to parameter object.

  8. На панели Dialog, на вкладке Code Generation, нажмите Configure in Coder App.

  9. В редакторе Отображения на вкладке Parameters измените настройку Storage Class для intGain на Model default, что указывает на то, что объект параметра препятствует оптимизации генерации кода от удаления памяти для переменной. С помощью этой настройки объект использует класс памяти, заданный в редакторе Отображения, в качестве данных по умолчанию для Model parameters категорий.

  10. Сохраните модель и перегенерируйте код.

    Минимизируйте окно отчета генерации кода для исследования позже в этом руководстве.

  11. В Представление кода:

    • Поиск intGain.

    • В rtwdemo_roll.c, наведите курсор на меню многоточия на P в выделенном коде P.intGain. В редакторе моделей заметьте, что представление кода подсвечивает блок, соответствующий сгенерированному коду.

    • Чтобы увидеть определение объекта параметра для intGain в rtwdemo_roll_data.cщелкните код определения в диалоговом окне.

Код, который вы генерируете из модели, хранит объект параметра в памяти. Поскольку вы оставили настройки класса памяти по умолчанию в редакторе сопоставлений кода для категории Model parameters установите значение Defaultгенератор кода определяет формат памяти, для примера, как поля структур.

Затем используйте модель тестовой обвязки и симуляцию «программное обеспечение в цикл» (SIL), чтобы сравнить результаты симуляции модели и сгенерированного кода .