Ориентированное на поле управление PMSM Используя обучение с подкреплением

Этот пример показывает вам, как использовать метод системы управления обучения с подкреплением, чтобы реализовать ориентированное на поле управление (FOC) постоянного магнита синхронного двигателя (PMSM). Пример использует принципы FOC. Однако это использует агента обучения с подкреплением (RL) вместо ПИ-контроллеров. Для получения дополнительной информации о FOC, смотрите Ориентированное на поле управление (FOC).

Этот рисунок показывает архитектуру FOC с агентом обучения с подкреплением. Для получения дополнительной информации об агентах обучения с подкреплением, смотрите Агентов Обучения с подкреплением (Reinforcement Learning Toolbox).

Агент обучения с подкреплением регулирует d- ось и q- токи оси и генерируют соответствующие напряжения статора, которые управляют двигателем на необходимой скорости.

Отслеживающая скорость эффективность алгоритма FOC, который использует агента обучения с подкреплением, похожа на тот из FOC на основе контроллеров PI.

Модель

Пример включает mcb_pmsm_foc_sim_RL модель.

Примечание: можно использовать эту модель только для симуляции.

Эта модель включает FOC architetcure, который использует агента обучения с подкреплением. Можно использовать open_system команду, чтобы открыть модель Simulink®.

mdl = 'mcb_pmsm_foc_sim_RL';
open_system(mdl);

Когда вы открываете модель, она загружает сконфигурированные параметры включая параметры двигателя к рабочей области для симуляции. Чтобы просмотреть и обновить эти параметры, откройте mcb_pmsm_foc_sim_RL_data.m файл скрипта инициализации модели. Для получения дополнительной информации о параметрах управления и переменных, доступных в этом скрипте, смотрите Оценочные Усиления Управления от Параметров двигателя.

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

open_system('mcb_pmsm_foc_sim_RL/Current Control/Control_System/Closed Loop Control/Current Controller Systems');

Для получения дополнительной информации о подготовке и обучении агент обучения с подкреплением, чтобы управлять PMSM, смотрите, Обучают Агента TD3 Управлению PMSM (Reinforcement Learning Toolbox).

Примечание:

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

  • Агент в этом примере был обучен с помощью частоты PWM 5 кГц. Поэтому модель использует эту частоту по умолчанию. Чтобы изменить это значение, обучите агента обучения с подкреплением снова при помощи различной частоты PWM и обновите PWM_frequency переменная в mcb_pmsm_foc_sim_RL_data.m скрипт инициализации модели. Можно использовать следующую команду, чтобы открыть скрипт инициализации модели.

edit mcb_pmsm_foc_sim_RL_data;

Необходимый Mathworks® Products

  • Motor Control Blockset™

  • Reinforcement Learning Toolbox™

Модель симулируется

Выполните эти шаги, чтобы симулировать модель.

1. Откройте модель, включенную с этим примером.

2. Запустите эту команду, чтобы выбрать вариант Reinforcement Learning Системной подсистемы Токового контроллера, доступной в архитектуре FOC.

ControllerVariant='RL';

Можно перейти к Системной подсистеме Токового контроллера, чтобы проверить, активен ли вариант подсистемы Обучения с подкреплением.

open_system('mcb_pmsm_foc_sim_RL/Current Control/Control_System/Closed Loop Control/Current Controller Systems');

Примечание: модель выбирает вариант подсистемы Обучения с подкреплением по умолчанию.

3. Запустите эту команду, чтобы загрузить предварительно обученного агента обучения с подкреплением.

load('agent.mat');

Примечание: агент обучения с подкреплением в этом примере был обучен использовать ссылки скорости 0,2, 0.4, 0.6, и 0.8 PU (на модуль). Для получения информации связанный с системой на модуль, смотрите систему в относительных единицах.

4. Нажмите работает на вкладке Simulation, чтобы симулировать модель. Можно также запустить эту команду, чтобы симулировать модель.

sim(mdl);

5. Нажмите Data Inspector на вкладке Simulation, чтобы открыть Инспектора Данных моделирования. Выберите один или несколько из этих сигналов наблюдать и анализировать результаты simlation, связанные с отслеживанием скорости и эффективностью контроллера.

  • Speed_ref

  • Speed_fb

  • iq_ref

  • iq

  • id_ref

  • id

В предыдущем примере:

  • Комбинация PI и контроллеров обучения с подкреплением достигает необходимой скорости путем отслеживания изменений к опорному сигналу скорости.

  • Вторые и третьи графики инспектора данных показывают, что обученный агент обучения с подкреплением действует как токовый контроллер и успешно отслеживает обоих Id и Iq ссылочные токи. Однако небольшая установившаяся ошибка существует между ссылкой и acutal значениями Id и Iq токи.

Используйте симуляцию, чтобы сравнить агента RL с ПИ-контроллерами

Используйте эти шаги, чтобы анализировать отслеживание скорости и эффективность контроллера ПИ-контроллеров и сравнить их с тем из агента обучения с подкреплением:

1. Откройте модель, включенную с этим примером.

2. Запустите эту команду, чтобы выбрать вариант PI Controllers Системной подсистемы Токового контроллера, доступной в архитектуре FOC.

ControllerVariant='PI';

Можно перейти к Системной подсистеме Токового контроллера, чтобы проверить, активен ли вариант подсистемы ПИ-контроллеров.

open_system('mcb_pmsm_foc_sim_RL/Current Control/Control_System/Closed Loop Control/Current Controller Systems');

ПРИМЕЧАНИЕ: модель выбирает вариант подсистемы Обучения с подкреплением по умолчанию.

3. Нажмите работает на вкладке Simulation, чтобы симулировать модель. Можно также запустить эту команду, чтобы симулировать модель.

sim(mdl);

4. Нажмите Data Inspector на вкладке Simulation, чтобы открыть Инспектора Данных моделирования. Выберите один или несколько из этих сигналов наблюдать и анализировать результаты simlation, связанные с отслеживанием скорости и эффективностью контроллера.

  • Speed_ref

  • Speed_fb

  • iq_ref

  • iq

  • id_ref

  • id

5. Сравните эти результаты с предыдущими результатами запуска симуляции, полученными при помощи RLAgent (Обучение с подкреплением) вариант подсистемы.

В предыдущем примере:

  • Красные сигналы показывают результаты симуляции, что вы получаете использование RLAgent (Обучение с подкреплением) вариант подсистемы.

  • Синие сигналы показывают результаты симуляции, что вы получаете использование PIControllers (ПИ-контроллеры) вариант подсистемы.

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

ПРИМЕЧАНИЕ: можно также обновить задающую скорость до более высоких значений и так же сравнить эффективность между агентом обучения с подкреплением и ПИ-контроллерами.