lqr

Проект Линейно-квадратичного регулятора (LQR)

Описание

пример

[K,S,P] = lqr(sys,Q,R,N) вычисляет оптимальную матрицу усиления K, решение S из связанного алгебраического уравнения Riccati и полюсов с обратной связью P для модели в пространстве состояний непрерывного времени или дискретного времени sysQ и R матрицы веса для состояний и входных параметров, соответственно. Перекрестная матрица термина N обнуляется, когда не использовано.

пример

[K,S,P] = lqr(A,B,Q,R,N) вычисляет оптимальную матрицу усиления K, решение S из связанного алгебраического уравнения Riccati и полюсов с обратной связью P использование матриц пространства состояний непрерывного времени A и B.

Примеры

свернуть все

pendulumModelCart.mat содержит модель в пространстве состояний инвертированного маятника на корзине, где выходные параметры являются смещением корзины x и угол маятника θ. Вход u управления горизонтальная сила на корзине.

[x˙x¨θ˙θ¨]=[01000-0.13000010-0.5300][xx˙θθ˙]+[0205]uy=[10000010][xx˙θθ˙]+[00]u

Во-первых, загрузите модель в пространстве состояний sys к рабочей области.

load('pendulumCartModel.mat','sys')

Поскольку выходными параметрами является x и θ, и существует только один вход, используйте правило Брайсона, чтобы определить Q и R.

Q = [1,0,0,0;...
    0,0,0,0;...
    0,0,1,0;...
    0,0,0,0];
R = 1;

Найдите матрицу усиления K использование lqr. Начиная с N не задан, lqr наборы N к 0.

[K,S,P] = lqr(sys,Q,R)
K = 1×4

   -1.0000   -1.7559   16.9145    3.2274

S = 4×4

    1.5346    1.2127   -3.2274   -0.6851
    1.2127    1.5321   -4.5626   -0.9640
   -3.2274   -4.5626   26.5487    5.2079
   -0.6851   -0.9640    5.2079    1.0311

P = 4×1 complex

  -0.8684 + 0.8523i
  -0.8684 - 0.8523i
  -5.4941 + 0.4564i
  -5.4941 - 0.4564i

Несмотря на то, что правило Брайсона обычно обеспечивает удовлетворительные результаты, это - часто только начальная точка эмпирической итеративной методики проектирования, чтобы настроить ваш отклик системы с обратной связью на основе конструктивных требований.

aircraftPitchModel.mat содержит матрицы пространства состояний самолета, где вход является углом отклонения лифта δ и выход является углом подачи самолета θ.

[α˙q˙θ˙]=[-0.31356.70-0.0139-0.4260056.70][αqθ]+[0.2320.02030][δ]y=[001][αqθ]+[0][δ]

Для ссылки шага 0,2 радианов рассмотрите следующие критерии расчета:

  • Время нарастания меньше чем 2 секунды

  • Время урегулирования меньше чем 10 секунд

  • Установившаяся ошибка меньше чем 2%

Загрузите данные модели к рабочей области.

load('aircraftPitchModel.mat')

Задайте стоивший за состояние взвешенный матричный Q и управление взвешенный матричный R. Обычно можно использовать Правило Брайсона, чтобы задать взвешенные матрицы начальной буквы Q и R. В данном примере считайте выходной вектор C наряду с масштабным коэффициентом 5 для матричного Q и выберите R как 1. R скаляр, поскольку система имеет только один вход.

R = 1
R = 1
Q1 = 2*C'*C
Q1 = 3×3

     0     0     0
     0     0     0
     0     0     2

Вычислите матрицу усиления использование lqr.

[K1,S1,P1] = lqr(A,B,Q1,R);

Проверяйте переходной процесс с обратной связью со сгенерированной матрицей усиления K1.

sys1 = ss(A-B*K1,B,C,D);
step(sys1)

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

Q2 = 25*C'*C
Q2 = 3×3

     0     0     0
     0     0     0
     0     0    25

[K2,S2,P2] = lqr(A,B,Q2,R);
sys2 = ss(A-B*K2,B,C,D);
step(sys2)

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

Входные параметры

свернуть все

Модель динамической системы, заданная как ss объект модели.

Матрица состояния, заданная как n- n матрица, где n количество состояний.

Матрица входа к состоянию, заданная как n- m матрица входа к состоянию, где m количество входных параметров.

Стоившая за состояние взвешенная матрица, заданная как n- n матрица, где n количество состояний. Можно использовать правило Брайсона, чтобы установить начальные значения Q данный:

Qi,i=1максимальное приемлемое значение  (errorstates)2, i{1,2,...,n}Q=[Q1,1000Q2,200000Qn,n]

Здесь, n количество состояний.

Производственная затрата взвешенная матрица, заданная как скаляр или матрица одного размера с D'D. Здесь, D проходная матрица пространства состояний. Можно использовать правило Брайсона, чтобы установить начальные значения R данный:

Rj,j=1максимальное приемлемое значение  (errorinputs)2, j{1,2,...,m}R=[R1,1000R2,200000Rm,m]

Здесь, m количество входных параметров.

Дополнительная перекрестная матрица термина, заданная как матрица. Если N не задан, затем lqr наборы N к 0 по умолчанию.

Выходные аргументы

свернуть все

Оптимальное усиление системы с обратной связью, возвращенной как вектор-строка из размера n, где n количество состояний.

Решение связанного алгебраического уравнения Riccati, возвращенного как n- n матрица, где n количество состояний. Другими словами, S та же размерность как матрица пространства состояний A. Для получения дополнительной информации смотрите icare и idare.

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

Ограничения

Входные данные должны удовлетворить следующим условиям:

  • Парный A и B должно быть stabilizable.

  • [Q,N;N',R] должен быть неотрицательный определенный.

  • R>0 и QNR1NT0.

  • (QNR1NT,ABR1NT) не имеет никакого неразличимого режима на мнимой оси (или модульный круг в дискретное время).

Советы

  • lqr модели дескриптора поддержек с несингулярным E. Выход S из lqr решение алгебраического уравнения Riccati для эквивалентной явной модели в пространстве состояний:

    dxdt=E1Ax+E1Bu

Алгоритмы

Для систем непрерывного времени, lqr вычисляет управление с обратной связью состояния u=Kx это минимизирует квадратичную функцию стоимости

J(u)=0(xTQx+uTRu+2xTNu)dt

подвергните системной динамике x˙=Ax+Bu.

В дополнение к обратной связи состояния получают K, lqr возвращает решение S из связанного алгебраического уравнения Riccati

ATXE+ETXA+ETXGXE-(ETXB+S)R-1(BTXE+ST)+Q = 0

и полюса с обратной связью P = eig(ABK). Матрица усиления K выведен из S использование

K=R1(BTS+NT).

Для систем дискретного времени, lqr вычисляет управление с обратной связью состояния un=Kxn это минимизирует

J=n=0{xTQx+uTRu+2xTNu}

подвергните системной динамике xn+1=Axn+Bun.

Во всех случаях, когда вы не используете перекрестную матрицу термина N, lqr наборы N к 0.

Представлено до R2006a

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