exponenta event banner

Управление двигателем постоянного тока

В этом примере показано сравнение трех методов управления двигателем постоянного тока для отслеживания команд уставки и снижения чувствительности к возмущениям нагрузки:

  • команда feedforward

  • интегральное управление с обратной связью

  • Регулирование LQR

Дополнительные сведения о модели двигателя постоянного тока см. в разделе «Начало работы: построение моделей».

Заявление о проблеме

В двигателях постоянного тока, управляемых якорем, приложенное напряжение Va управляет угловой скоростью w вала.

В этом примере показаны два способа управления двигателем постоянного тока для снижения чувствительности w к изменениям нагрузки (изменения крутящего момента, противоположные нагрузке двигателя).

Упрощенная модель двигателя постоянного тока показана выше. Крутящий момент Td моделирует нарушения нагрузки. Необходимо минимизировать изменения скорости, вызванные такими возмущениями.

Для этого примера физические константы:

R = 2.0;                % Ohms
L = 0.5;                % Henrys
Km = 0.1;               % torque constant
Kb = 0.1;               % back emf constant
Kf = 0.2;               % Nms
J = 0.02;               % kg.m^2/s^2

Сначала создайте модель состояния-пространства двигателя постоянного тока с двумя входами (Va, Td) и одним выходом (w):

h1 = tf(Km,[L R]);            % armature
h2 = tf(1,[J Kf]);            % eqn of motion

dcm = ss(h2) * [h1 , 1];      % w = h2 * (h1*Va + Td)
dcm = feedback(dcm,Kb,1,1);   % close back emf loop

Примечание.Расчет с помощью формы state-space для минимизации порядка модели.

Теперь постройте график реакции угловой скорости на ступенчатое изменение напряжения Va:

stepplot(dcm(1));

Щелкните правой кнопкой мыши по графику и выберите «Characteristics: Settling Time» для просмотра времени настройки.

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

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

Коэффициент Kff усиления передачи должен быть установлен на обратную величину коэффициента усиления постоянного тока от Va до w.

Kff = 1/dcgain(dcm(1))
Kff =

    4.1000

Для оценки конструкции прямой связи в условиях возмущений нагрузки смоделировать реакцию на w_ref=1 команды шага с возмущением Td = -0.1Nm между t = 5 и t = 10 секунд:

t = 0:0.1:15;
Td = -0.1 * (t>5 & t<10);       % load disturbance
u = [ones(size(t)) ; Td];       % w_ref=1 and Td

cl_ff = dcm * diag([Kff,1]);    % add feedforward gain
cl_ff.InputName = {'w_ref','Td'};
cl_ff.OutputName = 'w';

h = lsimplot(cl_ff,u,t);
title('Setpoint tracking and disturbance rejection')
legend('cl\_ff')

% Annotate plot
line([5,5],[.2,.3]);
line([10,10],[.2,.3]);
text(7.5,.25,{'disturbance','T_d = -0.1Nm'},...
            'vertic','middle','horiz','center','color','r');

Очевидно, что управление с прямой связью плохо справляется с нарушениями нагрузки.

Проект управления электродвигателем постоянного тока с обратной связью

Затем попробуйте использовать структуру управления с обратной связью, показанную ниже.

Для применения нулевой стационарной ошибки используйте интегральное управление формой

     C(s) = K/s
     where K is to be determined.

Для определения коэффициента усиления K можно использовать метод корневого локуса, применяемый к передаче 1/s * с разомкнутым контуром (Va- > w):

h = rlocusplot(tf(1,[1 0]) * dcm(1));
setoptions(h,'FreqUnits','rad/s');
xlim([-15 5]);
ylim([-15 15]);

Щелкните по кривым для считывания значений усиления и соответствующей информации. Разумным выбором здесь является K = 5. Обратите внимание, что инструмент SISO Design Tool предлагает интегрированный графический интерфейс пользователя для выполнения таких проектов (для получения подробной информации см. справку sisotool).

Сравните эту новую конструкцию с исходной конструкцией для того же тестового случая:

K = 5;
C = tf(K,[1 0]);            % compensator K/s

cl_rloc = feedback(dcm * append(C,1),1,1,1);
h = lsimplot(cl_ff,cl_rloc,u,t);
cl_rloc.InputName = {'w_ref','Td'};
cl_rloc.OutputName = 'w';
title('Setpoint tracking and disturbance rejection')
legend('feedforward','feedback w/ rlocus','Location','NorthWest')

Конструкция корневого локуса лучше устраняет нарушения нагрузки.

Проект управления двигателем постоянного тока LQR

Для дальнейшего повышения производительности попробуйте разработать линейный квадратичный регулятор (LQR) для структуры обратной связи, показанной ниже.

В дополнение к интегралу ошибки схема LQR также использует вектор состояния x = (i, w) для синтеза управляющего напряжения Va. Результирующее напряжение имеет вид

     Va = K1 * w + K2 * w/s + K3 * i
     where i is the armature current.

Для лучшего отклонения возмущений используйте функцию затрат, которая штрафует за большую интегральную ошибку, например, функцию затрат.

$$ C = \int^\infty_0 (20q(t)^2+\omega(t)^2+0.01V_a(t)^2) dt $$

где

$$ q(s) = \omega(s)/s. $$

Оптимальное усиление LQR для этой функции затрат вычисляется следующим образом:

dc_aug = [1 ; tf(1,[1 0])] * dcm(1); % add output w/s to DC motor model

K_lqr = lqry(dc_aug,[1 0;0 20],0.01);

Затем выведите модель с замкнутым контуром для целей моделирования:

P = augstate(dcm);                     % inputs:Va,Td  outputs:w,x
C = K_lqr * append(tf(1,[1 0]),1,1);   % compensator including 1/s
OL = P * append(C,1);                  % open loop

CL = feedback(OL,eye(3),1:3,1:3);      % close feedback loops
cl_lqr = CL(1,[1 4]);                  % extract transfer (w_ref,Td)->w

На этом графике сравниваются схемы Bode с замкнутым контуром для трех конструкций управления электродвигателями постоянного тока

bodeplot(cl_ff,cl_rloc,cl_lqr);

Щелкните по кривым, чтобы определить системы или проверить данные.

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

Наконец, мы сравним три проекта управления двигателем постоянного тока в нашем тестовом примере моделирования:

h = lsimplot(cl_ff,cl_rloc,cl_lqr,u,t);
title('Setpoint tracking and disturbance rejection')
legend('feedforward','feedback (rlocus)','feedback (LQR)','Location','NorthWest')

Благодаря своим дополнительным степеням свободы, компенсатор LQR лучше всего работает при отклонении возмущений нагрузки (среди трех рассмотренных здесь конструкций управления двигателем постоянного тока).