Настройка функции и стратегии

Калибровка функции является процессом калибровки интерполяционных таблиц путем сравнения стратегии электронного модуля управления (ECU) со статистической моделью. Simulink® модель представляет стратегию установки пиролиза. Дополнительные сведения о процессе см. в разделе Процесс калибровки и заполнения таблиц функций.

Основанная на модели калибровочная Toolbox™ калибрует оценщик или функция для подсистемы управления в ECU. Функциями обычно являются алгебраические наборы одной или нескольких интерполяционных таблиц. Вы используете функции для оценки сигналов в двигателе, которые неизмеримы или дорого измеряются и важны для управления. Тулбокс может калибровать подсистему ECU, непосредственно сравнивая ее с моделью объекта управления той же функции.

Стратегия является алгебраическим набором интерполяционных таблиц и формирует структуру функции. Model-Based Calibration Toolbox использует стратегию для оценки сигналов в двигателе, которые не могут быть измерены.

Чтобы вычислить функцию один за другим с моделью, вам нужно иметь стратегию, которая принимает некоторые или все те же переменные, что и модель. Стратегия выражена с помощью схем Simulink. Можно импортировать стратегию или создать стратегию.

Можно импортировать функции для выбранных подсистем Simulink.

Добавление функции

Функция состоит из модели и набора интерполяционных таблиц, организованных в стратегии.

Чтобы добавить функцию, выберите File > New > Feature. Это автоматически переключает вас на вид Feature Filling и добавляет пустую функцию к сеансу.

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

Импорт стратегии из Simulink

  1. Выделите верхний узел функции в дереве отображения.

  2. Выберите File > Import > Strategy.

  3. Выберите соответствующий файл модели Simulink.

    Если существует один внешний выход, CAGE автоматически импортирует стратегию.

  4. Если существует несколько внешних выходных портов, CAGE предлагает вам импортировать все выходные порты в отдельные функции.

  5. Используйте MBC Feature Importer для предварительного просмотра интерполяционных таблиц и функций импорта для выбранных подсистем Simulink. Нажмите OK.

  6. Чтобы просмотреть текстовое представление стратегии, выберите узел Feature.

Если при анализе схемы Simulink происходит сбой и вы видите сообщение об ошибке, то тулбокс отбрасывает изменения в текущем проекте CAGE. Исправьте модель Simulink и повторно обработайте ее.

Структура модели и иерархии стратегий

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

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

  • CAGE создает подфункцию из выходов в подсистемах. CAGE работает назад от выходных портов и включает все входные блоки к выходному порту в подфункции, включая блоки вне подсистемы. Подфункции не идентичны подсистемам Simulink.

  • CAGE показывает иерархию подфункций в дереве функций. Каждая подфункция также отображается на верхнем уровне дерева.

Интерполяционные таблицы, нормализаторы и константы

Имена и повторное использование

  • Если параметр является допустимым именем переменной, а не MATLAB® выражение, CAGE использует имена переменных, чтобы определить имена интерполяционной таблицы и нормализатора. Это поддерживает повторное использование интерполяционной таблицы и избегает необходимости в явных блоках нормализатора.

  • Для констант CAGE использует имя блока или постоянное имя переменной, если оно задано. Константы используются повторно, если они имеют то же имя что и существующая константа, и значение то же самое.

  • Если интерполяционная таблица с таким же именем существует в проекте, и входные выражения для этих интерполяционных таблиц совпадают, то тулбокс повторно использует интерполяционную таблицу. Точно так же тулбокс повторно использует нормализаторы, если они имеют те же входы, что и существующий нормализатор.

    Если интерполяционная таблица с таким же именем существует в проекте, и новая интерполяционная таблица имеет другие входы, то CAGE спрашивает, какую опцию вы хотите:

    • Создайте интерполяционную таблицу с другим именем (суффиксом _1).

    • Повторно соедините входы интерполяционной таблицы с помощью текущих Блоков Simulink соединений.

    • Отменить. Затем можно отредактировать модель, чтобы разрешить различия при необходимости.

Интерполяционная таблица и структура нормализатора

  • Общие нормализаторы могут использоваться как входы в нескольких интерполяционных таблицах. Можно просмотреть общие нормализаторы в верхней части дерева интерполяционной таблицы CAGE.

  • Можно создавать 1-D таблицы с нормализаторами или без. Если вы добавляете блок CAGE Function из cgeqlib без нормализатора при разборе создается 1-D интерполяционная таблица с внутренним нормализатором. Если блок Function имеет в качестве своего входа нормализатор, то можно использовать общие нормализаторы (из списка доступных нормализаторов в CAGE). После создания вы не можете перейти от использования общих нормализаторов к внутренним нормализаторам.

  • двумерные интерполяционные таблицы всегда имеют общие нормализаторы. Если вход в блок Table не является нормализатором, то CAGE создает нормализатор при анализе стратегии.

    CAGE присваивает имена нормализаторов с помощью имен переменных точек останова интерполяционной таблицы (или индексов строк/столбцов), если они доступны. Если выражение задает точки останова, а не переменную, то CAGE называет нормализаторы с помощью формы tablename_normY или tablename_normX.

  • Если вы меняете имя блоков inports, table или normalizer для блоков, связанных с существующими элементами CAGE, то имя элементов CAGE изменяется. Имя уникально для текущего проекта CAGE (суффикс _1 добавляется при необходимости для создания уникального имени).

  • Таблицы Prelookup должны поступать в блок интерполяции с помощью блока Prelookup.

  • Блоки нормализатора, если они используются, должны быть входами в интерполяционные таблицы.

Импорт данных

  • Данные таблицы и нормализатора импортируются из Simulink.

    Вы должны иметь возможность запускать Update Diagram на модели Simulink, и данные должны иметь один источник. В противном случае данные интерполяционной таблицы остаются пустыми, и необходимо настроить интерполяционные таблицы, нормализаторы и константы с помощью Диспетчера калибровки.

  • Постоянные данные считываются из блоков Constant или Gain.

Поддержка блоков

Блоки

Описание

Math OperationsCAGE поддерживает подмножество блоков Simulink. Чтобы просмотреть поддерживаемые блоки, откройте cgeqlib библиотека.

Блоки Switch

CAGE может импортировать блок Simulink Switch и блок MultiportSwitch. Когда вы импортируете блок Switch, CAGE преобразует его в блок CAGE под названием IfExpr. Можно просмотреть блок в cgeqlib библиотека.

Logical Operator и Relational Operator

Логические и логические выражения: CAGE может импортировать блоки Logical Operator и Relational Operator.

Product и Sum

Полиномиальные выражения: CAGE строит полиномиальные выражения с помощью формы Хорнера (Product и Sum блоки).

Dot Product

Позволяет реализовать взвешенные суммарные выражения.

Interpreted MATLAB Function

Используется для реализации более общих функций в функциях CAGE. Функция должна быть векторизована, то есть она должна принимать матричные входы вида ([u1,u2,u3,…,un]).

Кондиционирование сигнала

CAGE игнорирует блоки формирования сигналов. Несколько стандартных блоков Simulink предназначены для обусловления сигналов, но можно игнорировать блоки в целях статического анализа в CAGE. Эти блоки включают блоки Signal Conversion, Rate Transition, Data Type Conversion и Initial Condition. CAGE игнорирует их, облегчая импорт существующих стратегических схем.

Merge и If

CAGE поддерживает блоки Merge, питаемые включенными или подсистемами If/ElseIf/Else, распространенными в отраслевых моделях.

Поддерживаются только скалярные входы, за исключением блоков MATLAB Function, Dot Product, Polynomial и Interpreted MATLAB Function, которые принимают несколько входы в качестве входов для выражения (например u(1)+u(2)).

Обработка циклов

CAGE не может обрабатывать выражения с циклами. Если CAGE обнаруживает цикл, то CAGE спрашивает, хотите ли вы разорвать цикл, введя переменную под названием previousOutportName. Если возможно, CAGE пытается разбить циклы на границе функции (для примера, верхний уровень или выход подсистемы).

Если вы решите не нарушать цикл, сообщение об ошибке информирует вас, какие блоки участвуют в цикле.

CAGE игнорирует блоки Delay и блоки Resettable Delay, чтобы облегчить синтаксический анализ цикла.

Импорт старых стратегий

Для анализа стратегий из предыдущих релизов можно использовать функцию cgStrategyTables чтобы задать стиль для поведения синтаксического анализатора стратегии. Использование cgStrategyTables для импорта любых старых стратегий, сохраненных в файлах модели Simulink.

  • Для стратегий из R2013a или более поздних версий CAGE интерпретирует первый вход в двумерную интерполяционную таблицу как Y (строки). Ранее CAGE проанализировал первый вход как столбцы, а второй как строки. Используйте cgStrategyTables режимы обратной совместимости для ранее сохраненных стратегий, при необходимости.

  • Для стратегий от R2008a до R2012b, блоки интерполяционной таблицы всегда интерпретируются как интерполяционные таблицы, потому что существуют отдельные блоки интерполяции и нормализации. В R2008a блок нормализатора был добавлен к cgeqlib библиотека.

    Чтобы задать стиль синтаксического анализатора R2008a, используйте:

    cgStrategyTables('R2008a') 

  • Для стратегий старше R2008a CAGE интерпретирует интерполяционные таблицы 1-D как нормализаторы, если они поступают в интерполяционную таблицу.

    Чтобы проанализировать pre-R2008a стратегии, используйте эту функцию:

    cgStrategyTables('Pre-R2008a') 
    Это возвращает поведение анализатора к pre-R2008a интерпретации 1-D интерполяционных таблиц. CAGE выдает предупреждение при преобразовании интерполяционной таблицы 1-D в нормализатор. Вы можете выключить предупреждение:
    warning off mbc:cgslparser:ObsoleteNormalizer

  • Чтобы сбросить стиль анализатора на R2013a и более поздние версии, используйте:

    cgStrategyTables('R2013a') 

  • Чтобы запросить текущий стиль таблицы стратегии, введите:

    Style = cgStrategyTables

Создайте стратегию

Чтобы создать стратегию из CAGE, а не импортировать существующую модель:

  1. Выделите правильную функцию, выбрав узел Feature.

  2. Выберите Feature > Edit Strategy.

    Три окна Simulink открыты:

    ОкноОписание

    Стратегия

    Используется для редактирования стратегии.

    Библиотека, cgeqlib

    Блоки, доступные для создания стратегии.

    Библиотека

    Существующие блоки в проекте CAGE, организованные в библиотеки. Блоки являются From блоками, ссылающимися на элементы CAGE, такие как таблицы и нормализаторы.

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

  4. Чтобы проанализировать стратегию в сеансе CAGE, дважды щелкните синий круг вывода.

The cgeqlib библиотека содержит все блоки, доступные для создания стратегии.

Стратегии экспорта

Экспортировать стратегии Simulink, если вы хотите:

  • Включите стратегию в модель транспортного средства Simulink.

  • Скомпилируйте стратегию с помощью Simulink Coder™ для создания кода С

  • Оцените стратегию с помощью Simulink.

Чтобы экспортировать стратегию из CAGE:

  1. Выделите узел Feature, который содержит стратегию, которую вы хотите сохранить.

  2. Выберите File > Export > Strategy.

  3. Присвойте имя стратегии.

    Стратегия сохранена как файл модели Simulink.

При экспорте данные таблицы хранятся в переменных. Индексы записываются в параметры Simulink с помощью выражений двоеточия.

  • Для двумерных интерполяционных таблиц 0:size (Table,1)-1, 0:size (Table,2)-1, TableName

  • Для 1-D интерполяционных таблиц с общими нормализаторами, 0:length (Table)-1, TableName

  • Для 1-D интерполяционных таблиц NormalizerName и TableName

  • NormalizerName, 0:length(Normalizer)-1

Данные хранятся в рабочем пространстве модели. Данные рабочему пространству модели копируются в новую модель при копировании блока стратегии. Вы должны иметь возможность запускать Update Diagram на модели Simulink, или процесс копирования не работает. Для копирования модели стратегии требуется Model-Based Calibration Toolbox.

Похожие темы