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

Используя инструменты Mathworks, можно создать интерполяционные таблицы для внутреннего контроллера постоянного магнита синхронного двигателя (PMSM), который характеризует d-ось и q-ось, текущую в зависимости от потока q-оси и d-оси.

Чтобы сгенерировать параметры потока для блока Flux-Based PMSM, выполните эти шаги рабочего процесса. Скрипт в качестве примера CreatingIdqTable.m вызовы gridfit смоделировать текущую поверхность с помощью рассеянных или полурассеянных данных о потоке.

Рабочий процессОписание

Шаг 1: загрузите и предварительно обработайте данные

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

  • d-и q-текущая ось

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

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

Шаг 2: сгенерируйте равномерно расположенные с интервалами табличные данные из данных, имеющий разброс

Используйте gridfit функция, чтобы сгенерировать равномерно распределенные данные. Визуализируйте объемные поверхностные диаграммы потока.

Шаг 3: установите параметры блоков

Установите переменные рабочей области, которые можно использовать для параметров блоков Flux-Based PM Controller.

Шаг 1: загрузите и предварительно обработайте данные

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

  • d-и q-текущая ось

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

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

  1. Откройте скрипт в качестве примера CreatingIdqTable.m.

  2. Загрузите и предварительно обработайте данные.

    % Load the data from a |mat| file captured from a dynamometer or 
    % another CAE tool.
    load FEAdata.mat;
    

  3. Определите минимальные и максимальные значения потока.

    flux_d_min = min(min(FEAdata.flux.d)) ;
    flux_d_max = max(max(FEAdata.flux.d)) ;
    flux_q_min = min(min(FEAdata.flux.q)) ;
    flux_q_max = max(max(FEAdata.flux.q)) ;

  4. Постройте широкие текущие точки, используемые, чтобы собрать данные.

    for i = 1:length(FEAdata.current.d)
        for j = 1:1:length(FEAdata.current.q)
        plot(FEAdata.current.d(i),FEAdata.current.q(j),'b*');
        hold on
        end
    end

  5. Постройте текущие предельные точки развертки и круг.

    for angle_theta = pi/2:(pi/2/200):(3*pi/2)
        plot(300*cos(angle_theta),300*sin(angle_theta),'r.');
        hold on
    end
    xlabel('I_d [A]')
    ylabel('I_q [A]')
    title('Sweeping Points'); grid on;
    xlim([-300,0]);
    ylim([-300,300]);
    hold off

Шаг 2: сгенерируйте равномерно расположенные с интервалами табличные данные из данных, имеющий разброс

Таблицы потока и могут иметь различные размеры шага для токов. Равномерно разрядка строк и столбцов помогает улучшить точность интерполяции. Этот скрипт использует интерполяцию сплайна.

  1. Установите интервал для строк таблицы и столбцов.

    % Set the spacing for the table rows and columns
    flux_d_size = 50;
    flux_q_size = 50;

  2. Сгенерируйте линейные расположенные с интервалами векторы для точек останова.

    % Generate linear spaced vectors for the breakpoints
    ParamFluxDIndex = linspace(flux_d_min,flux_d_max,flux_d_size);
    ParamFluxQIndex = linspace(flux_q_min,flux_q_max,flux_q_size);

  3. Создайте 2D декартовы координаты на основе токов q-оси и d-оси.

    % Create 2-D grid coordinates based on the d-axis and q-axis currents 
    [id_m,iq_m] = meshgrid(FEAdata.current.d,FEAdata.current.q);

  4. Составьте таблицу для текущей d-оси.

    % Create the table for the d-axis current
    id_fit = gridfit(FEAdata.flux.d,FEAdata.flux.q,id_m,ParamFluxDIndex,ParamFluxQIndex);
    ParamIdLookupTable = id_fit'; 
    figure;
    surf(ParamFluxDIndex,ParamFluxQIndex,ParamIdLookupTable'); 
    xlabel('\lambda_d [v.s]');ylabel('\lambda_q [v.s]');zlabel('id [A]');title('id Table'); grid on;
    shading flat;

    текущая d-ось, Id, в зависимости от потока q-оси, λq, и потока d-оси, λd.

  5. Составьте таблицу для текущей q-оси.

    % Create the table for the q-axis current
    iq_fit = gridfit(FEAdata.flux.d,FEAdata.flux.q,iq_m,ParamFluxDIndex,ParamFluxQIndex);
    ParamIqLookupTable = iq_fit'; 
    figure;
    surf(ParamFluxDIndex,ParamFluxQIndex,ParamIqLookupTable');
    xlabel('\lambda_d [v.s]');ylabel('\lambda_q [v.s]');zlabel('iq [A]'); title('iq Table'); grid on;
    shading flat;

    текущая q-ось, Iq, в зависимости от потока q-оси, λq, и потока d-оси, λd.

Шаг 3: установите параметры блоков

Установите параметры блоков на эти значения, присвоенные в скрипте в качестве примера.

ПараметрMATLAB® Commands

Vector of d-axis flux, flux_d

flux_d=ParamFluxDIndex;

Vector of q-axis flux, flux_q

flux_q=ParamFluxQIndex;
Corresponding d-axis current, id
id=ParamIdLookupTable;

Corresponding q-axis current, iq

iq=ParamIqLookupTable;

Ссылки

[1] Ху, Dakai, Yazan Alsmadi и Луня Сюй. “Высокое качество нелинейное моделирование IPM на основе измеренного статора извилистое потокосцепление”. IEEE® Transactions на Промышленных Приложениях, Издании 51, № 4, июль/август 2015.

[2] Чен, Сяо, Джиэбин Ван, Bhaskar Сенатор, Панайотис Лазари, Tianfu Sun. “Высокочастотная и В вычислительном отношении Эффективная Модель для Внутренних Машин Постоянного магнита, Рассматривая Магнитное Насыщение, Пространственные Гармоники и Эффект Потери в железе”. Транзакции IEEE на Industrial Electronics, Издании 62, № 7, июль 2015.

[3] Оттоссон, J., М. Алэкула. “Компактное поле, ослабляющее реализацию контроллера”. Международный Симпозиум по Силовой электронике, Электрическим Дискам, Автоматизации и Движению, июль 2006.

Смотрите также

|

Внешние веб-сайты