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

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

Чтобы сгенерировать параметры потока для блока 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. Создайте 2-D координаты сетки на основе токов по оси D и оси Q.

    % 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® Команды

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] Hu, Dakai, Yazan Alsmadi, and Longya Xu. «Высокоточное нелинейное моделирование IPM на основе измеренных редактирований потока обмотки статора». IEEE® Сделки по отраслевым приложениям, том 51, № 4, июль/август 2015 года.

[2] Чен, Сяо, Джиэбин Ван, Bhaskar сенатор, Панайотис Лазари, Tianfu Солнце. «Высокочастотная и в вычислительном отношении эффективная модель для внутренних машин постоянного магнита, рассматривая магнитное насыщение, пространственную гармонику и эффект потери в железе». Сделки IEEE по промышленной электронике, том 62, № 7, июль 2015 года.

[3] Оттоссон, Дж., М. Алакула. «Компактная реализация контроллера ослабления поля». Международный симпозиум по степени, электроприводам, автоматизации и движению, июль 2006 года.

См. также

|

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