Сгенерируйте параметры токового контроллера

Используя основанную на модели Toolbox™ калибровки, можно сгенерировать оптимизированные таблицы токов для контроллеров электродвигателя на основе потока. Используйте таблицы калибровки для Blockset™ Powertrain Flux-Based PM Controller токовых параметров блоков контроллера.

На основе данных о нелинейном потоке двигателя таблицы калибровки оптимизируют:

  • Эффективность мотора

  • Максимальный крутящий момент на ампер (MTPA)

  • Ослабление потока

Чтобы сгенерировать оптимизированные текущие таблицы, следуйте этим шагам рабочего процесса.

Шаги рабочего процессаОписаниеMathWorks® Набор инструментов

Сбор и постобработка данных двигателя процесса

Сбор данных о нелинейном потоке двигателя из проверки или анализа конечных элементов (FEA). В данном примере файловые PMSMEfficiencyData.xlsx содержит данные, которые вам нужны:

  • Общий поток, Ψtotal, в Wb

  • Допустимый поток, Ψmax, в Wb

  • d-составляющая потока, Ψd, в Wb

  • q-составляющая потока, Ψq, в Wb

  • d-составляющая тока, Id, в A

  • q-составляющая тока, Iq, в A

  • Величина тока, Is, в A

  • Крутящий момент двигателя, Te, в Н· м

  • Скорость двигателя, n, в об/мин

Н/Д

Моделируйте данные о двигателе

Используйте одноэтапную модель, чтобы соответствовать данным. В частности:

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

  • Фильтрация данных

  • Подгонка модели

Model-Based Calibration Toolbox

Сгенерируйте калибровку

Калибровка и оптимизация данных с помощью целей и ограничений. В частности:

  • Создайте функции.

  • Создайте таблицы из модели.

  • Запустите оптимизацию.

  • Сгенерируйте и заполните оптимизированные таблицы калибровки токового контроллера, которые являются функциями крутящего момента двигателя и скорости двигателя.

Model-Based Calibration Toolbox

Установите параметры блоков

Используйте оптимизированные таблицы калибровки токового контроллера для параметров токового контроллера блока Flux-Based PM Controller.

Powertrain Blockset

Сбор и постобработка данных двигателя процесса

Соберите эти данные о нелинейном потоке двигателя из проверки или анализа конечных элементов (FEA):

  • d- и q- ток оси

  • d- и q- оси потоки редактирования

  • Крутящий момент двигателя

Используйте собранные данные и скорость двигателя, чтобы вычислить общий поток, максимальный поток и текущую величину:

ψtotal=ψd2+ψq2is=id2+iq2n=60ωe2πPψmax=Vdc3ωe

В уравнениях используются эти переменные:

id, iq

d- и q- ток оси, соответственно

is,Ток величины
Ψd, Ψq

d- и q- оси редактирования потока, соответственно

Ψtotal, ΨmaxСуммарный и допустимый поток, соответственно
ωe

Угловая скорость электродвигателя, рад/с

n

Скорость двигателя, об/мин

Vdc

Напряжение шины инвертора

P

Количество пар полюсов

Наконец, для каждой точки данных создайте файл, содержащий:

  • Общий поток, Ψtotal, в Wb

  • Допустимый поток, Ψmax, в Wb

  • d-составляющая потока, Ψd, в Wb

  • q-составляющая потока, Ψq, в Wb

  • d-составляющая тока, Id, в A

  • q-составляющая тока, Iq, в A

  • Величина тока, Is, в A

  • Крутящий момент двигателя, Te, в Н· м

  • Скорость двигателя, n, в об/мин

Для этого примера:

  • Пары полюсов, P, равны 4

  • Напряжение шины инвертора, Vdc, 500

файл данных matlab\toolbox\mbc\mbctraining\PMSMEfficiencyData.xlsx содержит данные потока двигателя.

Моделируйте данные о двигателе

Чтобы смоделировать данные мотора, используйте приложение MBC Model Fitting для импорта, фильтрации и подгонки данных с помощью модели «точка за точкой». В данном примере файл данных PMSMEfficiencyData.xlsx содержит большой набор данных. Можно было бы рассмотреть использование проекта эксперимента (DOE), чтобы ограничить данные. Однако набор данных представляет типичные результаты анализа FEA.

Поскольку существует простая зависимость между токами d - и q-составляющей для рабочих точек с фиксированной скоростью крутящего момента, модель «точка за точкой» обеспечивает точную подгонку.

Для сравнения, пример калибровки максимальной эффективности PMSM содержит подгонку модели.

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

В данном примере PMSMEfficiencyData.xlsx содержит следующие данные контроллера двигателя:

  • Общий поток, Ψtotal, в Wb

  • Допустимый поток, Ψmax, в Wb

  • d-составляющая потока, Ψd, в Wb

  • q-составляющая потока, Ψq, в Wb

  • d-составляющая тока, Id, в A

  • q-составляющая тока, Iq, в A

  • Величина тока, Is, в A

  • Крутящий момент двигателя, Te, в Н· м

  • Скорость двигателя, n, в об/мин

  1. В MATLAB®на вкладке Apps, в группе Automotive, нажмите MBC Model Fitting.

  2. На главной странице Model Browser нажмите Import Data. Щелкните OK, чтобы открыть файл источника данных.

  3. Перейдите к matlab\toolbox\mbc\mbctraining папка. Откройте файл данных PMSMEfficiencyData.xlsx. Откроется Редактор данных с вашими данными.

Фильтрация данных

Можно фильтровать данные, чтобы исключить записи из модели подгонки. В этом примере настройте фильтр, чтобы включать только поток и ток величин, которые меньше заданного порога. В частности:

  • Токовые величины, Is, меньше или равны 300 A.

  • Общий поток, Ψtotal, меньше или равен допустимому потоку Ψmax

  1. В редакторе данных выберите Tools > Filters, чтобы открыть Filter Editor. Создайте следующие фильтры:

    • Is <= 300

    • Flux <= Flux_allowed

Определите тестовые группы

Для моделей «точка за точкой» необходимо задать тестовые группы. В примере задайте группы для крутящего момента и скорости двигателя. Установите допуски таким образом, чтобы Model-Based Calibration Toolbox группировали небольшие изменения крутящего момента и скорости в одной и той же рабочей точке.

  1. В редакторе данных выберите Tools > Test Groups, чтобы открыть диалоговое окно Define Test Groupings. Создайте группы для крутящего момента и скорости двигателя.

  2. Установите следующие допуски:

    • Крутящий момент двигателя, Trq, к 1.000

    • Скорость двигателя, n, для 10.000

  3. В редакторе данных выберите File > Save & Close. Примите изменения данных.

Подгонка модели

Подгонка данных к модели «точка за точкой» с этими откликами, локальными входами и рабочими точками:

  • Ответы

    • q-составляющая тока, Iq, в A

  • Локальные входы

    • d-составляющая тока, Id, в A

  • Рабочие точки

    • Скорость двигателя, n, в об/мин

    • Крутящий момент двигателя, Te, в Н· м

  1. В Model Browser выберите Fit Models.

  2. В Fit Models сконфигурируйте модель Point-by-Point с этими откликами и входами.

    ОтветыЛокальные входыРабочие точки

    Iq

    Id

    Trq

    n

  3. Чтобы подогнать модель, выберите OK. При появлении запроса примите изменения в данных. По умолчанию для подгонки используется модель Гауссова процесса (GPM), чтобы соответствовать данным.

  4. После завершения подгонки исследуйте модели отклика на Iq. В Model Browser отображается информация, которую можно использовать для определения точности модели подгонки.

    • В Model Browser выберите Iq. Исследуйте поверхность отклика и диагностическую статистику. Эти результаты указывают на достаточно точную подгонку. Можно просмотреть каждый тест, чтобы изучить реакцию для каждой рабочей точки крутящего момента.

  5. Сохраните свой проект. Например, выберите Files > Save Project. Сохраните gs_example.mat на work папка.

Сгенерируйте калибровку

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

Для сравнения, пример калибровки максимальной эффективности PMSM содержит результаты калибровки.

Импорт моделей и создание функций

Импортируйте модели и создайте функции, которые будут использоваться при оптимизации калибровки. В этом примере настройте функции для:

  • Ток величины, Is

  • Крутящий момент на усилитель, TPA

  1. В MATLAB, на вкладке Apps, в группе Automotive, нажмите MBC Optimization.

  2. В браузере клеток выберите Models. Если он еще не открыт, в браузере MBC Model Fitting откройте gs_example.mat проект.

  3. В окне «Импорт моделей» нажмите кнопку OK. Закройте инструмент для импорта CAGE.

  4. На панели инструментов браузера Cage используйте New Function Model мастер для создания следующих функций:

    • Is = sqrt(Id^2 + Iq^2)

    • TPA = Trq/Is

  5. В браузере клеток проверьте, что функциональные модели для Is и TPA иметь эти описания.

  6. Выберите File > Save Project. Сохраните gs_example.cag на work папка.

Создайте интерполяционные таблицы из модели

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

  • d-составляющая тока, Id, как функция крутящего момента двигателя, Trq, и скорость двигателя, n.

  • q-составляющая тока, Iq, как функция крутящего момента двигателя, Trq, и скорость двигателя, n.

  1. В браузере клеток выберите Lookup Tables and Tradeoff. В разделе «Создание интерполяционных таблиц из модели» выберите Iq. Нажмите Next.

  2. В мастере создания интерполяционных таблиц из модели:

    • Очистить Use model operating points.

    • Установите Table rows значение 31.

    • Установите Table columns значение 29.

    • Нажмите Next.

  3. В создании интерполяционных таблиц из модели:

    • Выберите Id и Iq.

    • Нажмите Finish.

  4. В браузере CAGE рассмотрим таблицы.

Запуск оптимизации

В этом примере запустите оптимизацию со следующими спецификациями:

  • Токовые величины, Is, меньше или равны 300 A.

  • Максимизирует крутящий момент на ампер, TPA.

  1. В главном окне браузера клеток выберите Optimization.

  2. В разделе «Создать оптимизацию из модели» выберите TPA и Next.

  3. В создании оптимизации из модели:

    • Выберите Id.

    • Установите Objective type значение Maximize.

    • Нажмите Finish.

  4. Добавьте ограничение оптимизации для текущей величины, Is. В браузере CAGE выберите Optimization > Constraints > Add Constraints, чтобы открыть «Редактировать ограничение». Используйте диалоговое окно, чтобы создать ограничение на ток.

    • Is <= 300

  5. В браузере Cage Browser тщательно проверьте Цели и Ограничения.

  6. В браузере клеток выберите Run.

    Результаты оптимизации аналогичны этим.

Заполнение интерполяционных таблиц

  1. В браузере CAGE выберите Fill Lookup Tables.

  2. Воспользуйтесь мастером заполнения интерполяционной таблицы из результатов оптимизации, чтобы заполнить Id_Table и Iq_Table таблицы.

    • Для Id_Table, заполните Id.

    • Для Iq_Table, заполните Iq.

    Нажмите Next. Для Fill Method выберите Clip Fill (column-based).

    Нажмите Finish.

  3. Проверьте результаты для Iq_Table. Результаты аналогичны этим.

  4. Проверьте результаты для Id_Table. Результаты аналогичны этим.

  5. Выберите File > Save Project. Сохраните gs_example.cag на work папка.

Экспорт результатов

  1. Выберите File > Export > Calibration.

  2. Используйте команду Экспорт данных калибровки, чтобы выбрать элементы для экспорта и форматирования. Для примера экспорта таблицы Id и Iq и точки останова в файл MATLAB gs_example.m.

Установите параметры блоков

Оптимизированные токовые контроллеры таблицы калибровки являются функциями крутящего момента двигателя и скорости двигателя. Используйте таблицы для следующих параметров Flux-Based PM Controller блоков:

  • Corresponding d-axis current reference, id_ref

  • Corresponding q-axis current reference, iq_ref

  • Vector of speed breakpoints, wbp

  • Vector of torque breakpoints, tbp

Чтобы задать параметры блоков:

  1. Запустите m. файл, содержащий результаты калибровки Model-Based Calibration Toolbox для токового контроллера. Например, в командной строке MATLAB запустите gs_example.m:

    % Access data from MBC current controller calibration
    gs_example

  2. Присвойте параметры точек по оси Х данным, содержащимся в m. файл. В этом примере данные о скорости указаны в об/мин. Чтобы использовать данные калибровки для параметров блоков, преобразуйте точки останова скорости с об/мин в рад/с.

    ПараметрКоманды MATLAB
    Vector of speed breakpoints, wbp
    tbp=Trq_norm.X;
    Vector of speed breakpoints, wbp
    % MBC data for speed is in rpm.  
    % For the block parameter, use rad/s
    nbp=n_norm.X;
    conversion=(2*pi/60.);
    wbp=conversion.*nbp;
    Corresponding d-axis current reference, id_ref
    id_table=Id_Table.Z;
    id_ref=id_table';
    Corresponding q-axis current reference, iq_ref
    iq_table=Iq_Table.Z;
    iq_ref=iq_table';