Используя основанную на модели Toolbox™ калибровки, можно сгенерировать оптимизированные таблицы токов для контроллеров электродвигателя на основе потока. Используйте таблицы калибровки для Blockset™ Powertrain Flux-Based PM Controller токовых параметров блоков контроллера.
На основе данных о нелинейном потоке двигателя таблицы калибровки оптимизируют:
Эффективность мотора
Максимальный крутящий момент на ампер (MTPA)
Ослабление потока
Чтобы сгенерировать оптимизированные текущие таблицы, следуйте этим шагам рабочего процесса.
Шаги рабочего процесса | Описание | MathWorks® Набор инструментов |
---|---|---|
Сбор данных о нелинейном потоке двигателя из проверки или анализа конечных элементов (FEA). В данном примере файловые
| Н/Д | |
Используйте одноэтапную модель, чтобы соответствовать данным. В частности:
| Model-Based Calibration Toolbox | |
Калибровка и оптимизация данных с помощью целей и ограничений. В частности:
| Model-Based Calibration Toolbox | |
Используйте оптимизированные таблицы калибровки токового контроллера для параметров токового контроллера блока Flux-Based PM Controller. | Powertrain Blockset |
Соберите эти данные о нелинейном потоке двигателя из проверки или анализа конечных элементов (FEA):
d- и q- ток оси
d- и q- оси потоки редактирования
Крутящий момент двигателя
Используйте собранные данные и скорость двигателя, чтобы вычислить общий поток, максимальный поток и текущую величину:
В уравнениях используются эти переменные:
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, в об/мин
В MATLAB®на вкладке Apps, в группе Automotive, нажмите MBC Model Fitting.
На главной странице Model Browser нажмите Import Data. Щелкните OK, чтобы открыть файл источника данных.
Перейдите к matlab\toolbox\mbc\mbctraining
папка. Откройте файл данных PMSMEfficiencyData.xlsx
. Откроется Редактор данных с вашими данными.
Можно фильтровать данные, чтобы исключить записи из модели подгонки. В этом примере настройте фильтр, чтобы включать только поток и ток величин, которые меньше заданного порога. В частности:
Токовые величины, Is, меньше или равны 300
A.
Общий поток, Ψtotal, меньше или равен допустимому потоку Ψmax
В редакторе данных выберите Tools > Filters, чтобы открыть Filter Editor. Создайте следующие фильтры:
Is <= 300
Flux <= Flux_allowed
Для моделей «точка за точкой» необходимо задать тестовые группы. В примере задайте группы для крутящего момента и скорости двигателя. Установите допуски таким образом, чтобы Model-Based Calibration Toolbox группировали небольшие изменения крутящего момента и скорости в одной и той же рабочей точке.
В редакторе данных выберите Tools > Test Groups, чтобы открыть диалоговое окно Define Test Groupings. Создайте группы для крутящего момента и скорости двигателя.
Установите следующие допуски:
Крутящий момент двигателя, Trq, к 1.000
Скорость двигателя, n, для 10.000
В редакторе данных выберите File > Save & Close. Примите изменения данных.
Подгонка данных к модели «точка за точкой» с этими откликами, локальными входами и рабочими точками:
Ответы
q-составляющая тока, Iq, в A
Локальные входы
d-составляющая тока, Id, в A
Рабочие точки
Скорость двигателя, n, в об/мин
Крутящий момент двигателя, Te, в Н· м
В Model Browser выберите Fit Models.
В Fit Models сконфигурируйте модель Point-by-Point с этими откликами и входами.
Ответы | Локальные входы | Рабочие точки |
---|---|---|
|
|
|
Чтобы подогнать модель, выберите OK. При появлении запроса примите изменения в данных. По умолчанию для подгонки используется модель Гауссова процесса (GPM), чтобы соответствовать данным.
После завершения подгонки исследуйте модели отклика на Iq. В Model Browser отображается информация, которую можно использовать для определения точности модели подгонки.
В Model Browser выберите Iq
. Исследуйте поверхность отклика и диагностическую статистику. Эти результаты указывают на достаточно точную подгонку. Можно просмотреть каждый тест, чтобы изучить реакцию для каждой рабочей точки крутящего момента.
Сохраните свой проект. Например, выберите Files > Save Project. Сохраните gs_example.mat
на work
папка.
После того, как вы подбираете модель, создаете функции и таблицы, запускаете оптимизацию и заполняете таблицы калибровки.
Для сравнения, пример калибровки максимальной эффективности PMSM содержит результаты калибровки.
Импортируйте модели и создайте функции, которые будут использоваться при оптимизации калибровки. В этом примере настройте функции для:
Ток величины, Is
Крутящий момент на усилитель, TPA
В MATLAB, на вкладке Apps, в группе Automotive, нажмите MBC Optimization.
В браузере клеток выберите Models. Если он еще не открыт, в браузере MBC Model Fitting откройте gs_example.mat
проект.
В окне «Импорт моделей» нажмите кнопку OK. Закройте инструмент для импорта CAGE.
На панели инструментов браузера Cage используйте New Function Model мастер для создания следующих функций:
Is = sqrt(Id^2 + Iq^2)
TPA = Trq/Is
В браузере клеток проверьте, что функциональные модели для Is
и TPA
иметь эти описания.
Выберите File > Save Project. Сохраните gs_example.cag
на work
папка.
Создайте таблицы, которые оптимизаторы Model-Based Calibration Toolbox используют для хранения оптимизированных параметров. В данном примере таблицы:
d-составляющая тока, Id, как функция крутящего момента двигателя, Trq
, и скорость двигателя, n
.
q-составляющая тока, Iq, как функция крутящего момента двигателя, Trq
, и скорость двигателя, n
.
В браузере клеток выберите Lookup Tables and Tradeoff. В разделе «Создание интерполяционных таблиц из модели» выберите Iq
. Нажмите Next.
В мастере создания интерполяционных таблиц из модели:
Очистить Use model operating points.
Установите Table rows значение 31
.
Установите Table columns значение 29
.
Нажмите Next.
В создании интерполяционных таблиц из модели:
Выберите Id
и Iq
.
Нажмите Finish.
В браузере CAGE рассмотрим таблицы.
В этом примере запустите оптимизацию со следующими спецификациями:
Токовые величины, Is, меньше или равны 300
A.
Максимизирует крутящий момент на ампер, TPA.
В главном окне браузера клеток выберите Optimization.
В разделе «Создать оптимизацию из модели» выберите TPA
и Next.
В создании оптимизации из модели:
Выберите Id
.
Установите Objective type значение Maximize
.
Нажмите Finish.
Добавьте ограничение оптимизации для текущей величины, Is. В браузере CAGE выберите Optimization > Constraints > Add Constraints, чтобы открыть «Редактировать ограничение». Используйте диалоговое окно, чтобы создать ограничение на ток.
Is <= 300
В браузере Cage Browser тщательно проверьте Цели и Ограничения.
В браузере клеток выберите Run.
Результаты оптимизации аналогичны этим.
В браузере CAGE выберите Fill Lookup Tables.
Воспользуйтесь мастером заполнения интерполяционной таблицы из результатов оптимизации, чтобы заполнить Id_Table
и Iq_Table
таблицы.
Для Id_Table
, заполните Id
.
Для Iq_Table
, заполните Iq
.
Нажмите Next. Для Fill Method выберите Clip Fill (column-based)
.
Нажмите Finish.
Проверьте результаты для Iq_Table
. Результаты аналогичны этим.
Проверьте результаты для Id_Table
. Результаты аналогичны этим.
Выберите File > Save Project. Сохраните gs_example.cag
на work
папка.
Выберите File > Export > Calibration.
Используйте команду Экспорт данных калибровки, чтобы выбрать элементы для экспорта и форматирования. Для примера экспорта таблицы 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
Чтобы задать параметры блоков:
Запустите m.
файл, содержащий результаты калибровки Model-Based Calibration Toolbox для токового контроллера. Например, в командной строке MATLAB запустите gs_example.m
:
% Access data from MBC current controller calibration
gs_example
Присвойте параметры точек по оси Х данным, содержащимся в 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'; |