Скалярное управление СДПМ

Автор
avatar-andrewraysandrewrays
Notebook

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

Введение

В данном примере мы рассмотрим реализацию скалярного управления синхронным двигателем с постоянными магнитами (СДПМ) и оценим влияние точности модели инвертора на динамику системы.

Скалярное управление электродвигателем

Скалярное управления — это популярный способ управления электродвигателями переменного тока, который не требует никаких датчиков обратной связи. То есть управление осуществляется в разомкнутом контуре. Ниже представлена схема такой системы управления.

vbyhz_scheme_new_2.png

Суть данного метода управления заключается в поддержании постоянным отношение напряжение/частота (В/Гц) во всем рабочем диапазоне скоростей. При выполнении данного условия можно считать магнитный поток в зазоре двигателя $\lambda$ постоянным:

$$\lambda \propto \frac{V_{ст}}{f_{ст}}$$

где $V_{ст}$ — номинальное напряжение статора, В; $f_{ст}$ — частота напряжения статора, Гц.

Для двигателей переменного тока скорость вращения ротора $\omega$ [об/мин] пропорциональна частоте напряжения статора $f_{ст}$ [Гц] и обратно пропорциональна числу пар полюсов $p$:

$$\omega = \frac{60 f_{ст}}{p}$$

Используя это выражение, мы можем определить такую требуемую частоту напряжения статора $f_{зад}$, чтобы достичь желаемой скорости вращения ротора $\omega_{зад}$:

$$f_{зад} = \frac{p \omega_{зад}}{60}$$

Теперь зная частоту напряжения статора, мы можем определить требуемую величиную напряжения $V_{зад}$:

$$V_{зад} = \left( \frac{V_{ном}}{f_{ном}} \right) f_{зад}$$

где $V_{ном}$ и $f_{ном}$ — номинальные значения напряжения и частоты электродвигателя.

Поддерживая постоянным значение отношения В/Гц, мы можем поддерживать относительно постоянным магнитный поток в зазоре двигателя $\lambda$. Однако отношение В/Гц не является постоянным на всем диапазоне скоростей вращения двигателя. Для компенсации падения напряжения на сопротивлении статора на низких оборотах, устанавливают минимальное требуемое напряжение, которое может равняться от 15% до 25% от номинального напряжения для конкретного двигателя. На высоких оборотах система управления не может поддерживать отношение В/Гц постоянным, потому что напряжение статора ограничено номинальным напряжением двигателя, поэтому требуемое напряжение остается постоянным, даже если требуемая частота напряжения статора увеличивается.

Скалярное управления применяется в задачах, где нагрузка не меняется с течением времени, а также когда не предъявляются высокие требования к динамике системы. Реализация данного метода управления относительно проста и не требует высокопроизводительного вычислителя.

Уровни абстракции физического компонента

Когда мы говорим об уровне абстракции компонента, мы подразумеваем точность его представления реальной системы. Слова "низкий уровень" и "высокий уровень" помогают нам оценить степень абстракции.

Компонент с низким уровнем абстракции неточно описывает реальную физическую систему. Такое представление компонента может вообще не учитывать динамику или использовать упрощенные модели для ее описания. Компонент с высоким уровнем абстракции описывает реальную физическую систему достаточно точно. Такое представление компонента учитывает большое количество факторов, влияющих на динамику.

Как правило, упрощенные компоненты требуют малое количество параметров, но позволяют быстро проводить симуляции. Подробные компоненты предоставляют широкие возможности для точной настройки их поведения для того, чтобы максимально близко повторить поведение реального объекта. Однако такие сложные компоненты снижают скорость симуляции.

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

fidelity_figure.png

Модели инвертора

Инвертор (полупроводниковый преобразователь, импульсный усилитель мощности) представляет собой электронную схему, построенную на базе силовых полупроводниковых ключей. Его задача состоит в периодическом подключении фазных обмоток СДПМ к источнику постоянного напряжения в соответствии с используемым алгоритмом управления.

Под силовым полупроводниковым ключом понимают полностью управляемые полупроводниковые силовые приборы, отличительной особенностью которых является наличие управляющего электрода, по которому подается сигнал как на переход из непроводящего состояния в проводящее, так и на обратный переход. В качестве ключей могут выступать биполярные плоскостные транзисторы (BJT), полевые МОП-транзисторы (MOSFET), биполярные транзисторы с изолированным затвором (IGBT), запираемые тиристоры (GTO) и т. д.

Для управления СДПМ используется трехстоечный инвертор.

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

  • динамика переключения,
  • паразитные потери,
  • тепловые эффекты,
  • неидеальные источники электрической энергии,
  • разбег параметров,
  • электрический шум.

Мы можем описать инвертор с помощью компонентов нескольких уровней абстракции:

  1. как упрощенный инвертор,
  2. как готовый блок (например, Converter (Three-Phase)),
  3. с помощью отдельных элементов ключей (например, MOSFET).

В нашем примере мы рассмотрим две реализации: с упрощенным инвертором и на базе элементов MOSFET.

Описание модели с упрощенным инвертором

Модель включает алгоритм скалярного управления (подсистема Contol System), инвертор (подсистема Average-Value Inverter), датчики фазных токов и напряжений (подсистема Sensors) и электродвигатель с датчиком скорости и положения.

Желаемая скорость равна 1000 об/мин (блок Reference Speed). С помощью блока Start/Stop мы запускаем алгоритм.

pmsm_scalar_control_average_1733320526002.png

Система управления

В подсистеме реализуется алгоритм, рассмотренный выше. Для плавного изменения заданной частоты $f_{зад}$ используется блок Discrete-Time Integrator. Время выхода на желаемую скорость составляет 0.8 сек (блок Ramp Time).

Система управления работает на частоте 20 кГц, таким образом, шаг расчета для этой подсистемы равен 50 мкс.

Для формирования напряжений необходимо искусственно генерировать сигнал положения ротора. Данная функция реализуется в блок Position Generator, который генерирует пилообразный сигнал заданного периода с амплитудой 2π.

Выходами данной подсистемы являются не формируемые напряжения, а соответствующие коэффициенты заполнения ШИМ (сигналы DC), значения которых лежат в диапазоне от 0 до 1.

pmsm_scalar_control_average_1733320627926.png

Упрощенный инвертор

Данный блок служит для формирования трехфазных напряжений на основе сигналам коэффициентов заполнения ШИМ по формулам:

$$ \begin{align} V_{a} & = V_{пит} \gamma_{a} - \frac{\gamma_{a}+\gamma_{b}+\gamma_{c}}{3}, \\ V_{b} & = V_{пит} \gamma_{b} - \frac{\gamma_{a}+\gamma_{b}+\gamma_{c}}{3}, \\ V_{c} & = V_{пит} \gamma_{c} - \frac{\gamma_{a}+\gamma_{b}+\gamma_{c}}{3}, \\ \end{align} $$

где $\gamma_{a}, \, \gamma_{b}, \, \gamma_{c}$ - коэффициенты заполнения ШИМ, соответствующие напряжениям фаз.

pmsm_scalar_control_average_1733320707245.png

Инвертор на основе транзисторов

Более точная модель инвертора выполнена на основе блоков MOSFET). Для управления ключевыми элементами служит блок PWM Generator, который формирует сигналы управления по коэффициентам заполнения ШИМ. Частота ШИМ равна 20 кГЦ.

pmsm_scalar_control_mosfet_1733320840299.png

Запуск моделей

Загрузка нужных библиотек:

In [ ]:
using Plots
using DataFrames
plotlyjs();

Запуск модели с упрощенным инвертором:

In [ ]:
modelName = "pmsm_scalar_control_average";
if modelName  getfield.(engee.get_all_models(), :name)
    engee.load( "$(@__DIR__)/$(modelName).engee");
end

model = engee.run(modelName);

Чтение данных о мгновенных значения напряжений и токов, а также скорости вращения вала:

In [ ]:
t_average = model["Speed"].time;
Ia_average = model["Ia"].value;
Ib_average = model["Ib"].value;
Ic_average = model["Ic"].value;
Va_average = model["Va"].value;
Vb_average = model["Vb"].value;
Vc_average = model["Vc"].value;
Speed_average = model["Speed"].value;

Запуск модели с инвертором на основе транзисторов:

In [ ]:
modelName = "pmsm_scalar_control_mosfet";
if modelName  getfield.(engee.get_all_models(), :name)
    engee.load( "$(@__DIR__)/$(modelName).engee");
end

model = engee.run(modelName);

Чтение данных о мгновенных значения напряжений и токов, а также скорости вращения вала:

In [ ]:
t_mosfet = model["Speed"].time;
Ia_mosfet = model["Ia"].value;
Ib_mosfet = model["Ib"].value;
Ic_mosfet = model["Ic"].value;
Va_mosfet = model["Va"].value;
Vb_mosfet = model["Vb"].value;
Vc_mosfet = model["Vc"].value;
Speed_mosfet = model["Speed"].value;

Сравнение результатов моделирования

In [ ]:
plot(t_average, Speed_average, label="Упрощенный инвертор")
plot!(t_mosfet, Speed_mosfet, label="Инвертор на основе транзисторов")
plot!(ylabel = "Скорость вращения, об/мин", xlabel="Время, c")
Out[0]:

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

Заключение

В данном примере мы рассмотрели реализацию алгоритма скалярного управления на примере СДПМ, однако данный способ управления может применятся и для управления трехфазным асинхнонным двигателем.

Также мы увидели разницу в эпюрах скоростей вращения двигателя при моделировании упрощенного инвертора и инвертора на основе транзисторов.

Попробуйте посмотреть эпюры фазных токов и напряжений самостоятельно.