Используя Model-Based Calibration Toolbox™, можно сгенерировать оптимизированные текущие таблицы для основанных на потоке моторных контроллеров. Используйте калибровочные таблицы в Flux-Based PM Controller Powertrain Blockset™ текущие параметры блоков контроллера.
На основе нелинейных моторных данных о потоке калибровочные таблицы оптимизируют:
Моторный КПД
Максимальный крутящий момент на ампер (MTPA)
Ослабление потока
Чтобы сгенерировать оптимизированные текущие таблицы, выполните эти шаги рабочего процесса.
Шаги рабочего процесса | Описание | MathWorks® Tooling |
---|---|---|
Соберите нелинейные моторные данные о потоке от тестирования динамометра или анализа конечных элементов (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 |
Электрическая моторная угловая скорость, rad/s |
n |
Частота вращения двигателя, об/мин |
Vdc | Напряжение на шине инвертора |
P |
Количество пар полюса |
Наконец, для каждой точки данных, создайте файл, содержащий:
Общий поток, Ψtotal, в Wb
Позволенный поток, Ψmax, в Wb
поток d-оси, Ψd, в Wb
поток q-оси, Ψq, в Wb
текущая d-ось, Id, в A
текущая q-ось, Iq, в A
Текущая величина, Is, в A
Моторный крутящий момент, Te, в N · m
Частота вращения двигателя, 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 · m
Частота вращения двигателя, 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, в N · m
В Model Browser выберите Fit Models.
В Fit Models сконфигурируйте Детальную модель с этими ответами и входными параметрами.
Ответы | Локальные входные параметры | Рабочие точки |
---|---|---|
|
|
|
Чтобы подбирать модель, выберите OK. При появлении соответствующего запроса примите изменения в данных. По умолчанию подгонка использует Гауссову модель процесса (GPM), чтобы соответствовать данным.
После того, как подгонка завершается, исследуйте модели ответа на Iq. Model Browser отображает информацию, которую можно использовать, чтобы определить точность подгонки модели.
В Model Browser выберите Iq
. Исследуйте поверхность ответа и диагностическую статистику. Эти результаты показывают на довольно точную подгонку. Можно просмотреть каждый тест, чтобы исследовать ответ на каждую рабочую точку скорости крутящего момента.
Сохраните свой проект. Например, выберите Files> Save Project. Сохраните gs_example.mat
к work
папка.
После того, как вы подбираете модель, создаете функции и таблицы, запускаете оптимизацию и заполняете калибровочные таблицы.
Для сравнения калибровочное тематическое исследование максимальной производительности PMSM содержит калибровочные результаты.
Импортируйте модели и создайте функции, чтобы использовать, когда вы оптимизируете калибровку. В этом примере, настроенных функциях для:
Текущая величина, Is
Закрутите на ампер, TPA
В MATLAB, на вкладке Apps, в группе Automotive, нажимают MBC Optimization.
В Браузере Клетки выберите Import Models. Если это уже не открыто в браузере MBC Model Fitting, откройте gs_example.mat
проект.
В Моделях Импорта нажмите OK. Закройте Import Tool CAGE.
На панели инструментов Cage Browser используйте мастер 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
.
В Браузере Клетки выберите 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
В Браузере Клетки тщательно проверьте Цели и Ограничения.
В Браузере Клетки выберите Run.
Результаты оптимизации похожи на них.
В Браузере CAGE выберите Fill 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
файл. В этом примере данные о скорости находятся в об/мин. Чтобы использовать калибровочные данные в параметрах блоков, преобразуйте точки останова скорости от об/мин до rad/s.
Параметр | Команды 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'; |