이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

lqr

선형-2차 조절기(LQR) 설계

설명

예제

[K,S,P] = lqr(sys,Q,R,N)은 연속시간 또는 이산시간 상태공간 모델 sys의 최적 이득 행렬 K, 그와 관련된 대수 리카티 방정식의 해 S, 폐루프 극점 P를 계산합니다. QR은 각각 상태와 입력의 가중 행렬입니다. 교차 항 행렬 N은 생략할 경우 0으로 설정됩니다.

예제

[K,S,P] = lqr(A,B,Q,R,N)은 연속시간 상태공간 행렬 AB를 사용하여 최적 이득 행렬 K, 그와 관련된 대수 리카티 방정식의 해 S, 폐루프 극점 P를 계산합니다.

예제

모두 축소

pendulumModelCart.mat는 출력이 카트 변위 x와 진자각 θ인, 카트 위에 놓인 역진자의 상태공간 모델을 포함합니다. 제어 입력 u는 카트에 가해지는 수평 힘입니다.

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

먼저 상태공간 모델 sys를 작업 공간으로 불러옵니다.

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

출력이 xθ이고 입력은 하나밖에 없으므로 Bryson의 규칙을 사용하여 QR을 구합니다.

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

lqr을 사용하여 이득 행렬 K를 구합니다. N이 지정되지 않았으므로 lqrN을 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

Bryson의 규칙은 일반적으로 만족스러운 결과를 제공하지만 이는 설계 요구 사항에 따라 폐루프 시스템 응답을 조정하기 위한 시행착오가 수반되는 반복적인 설계 절차의 출발점에 불과한 경우가 많습니다.

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을 정의합니다. 일반적으로 Bryson의 규칙을 사용하여 초기 가중 행렬 QR을 정의할 수 있습니다. 이 예제에서는 행렬 Q에 대해 출력 벡터 C에 스케일링 인자 5를 적용하는 것을 고려해 보고, 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 모델 객체로 지정됩니다.

상태 행렬로, nxn 행렬로 지정됩니다. 여기서 n은 상태의 개수입니다.

입력-상태 행렬로, nxm 입력-상태 행렬로 지정됩니다. 여기서 m은 입력의 개수입니다.

상태 비용 가중 행렬로, nxn 행렬로 지정됩니다. 여기서 n은 상태의 개수입니다. Bryson의 규칙을 사용하여, 다음과 같이 지정되는 Q의 초기값을 설정할 수 있습니다.

Qi,i=1maximum acceptable value of (errorstates)2, i{1,2,...,n}Q=[Q1,1000Q2,200000Qn,n]

여기서 n은 상태의 개수입니다.

입력 비용 가중 행렬로, 스칼라 또는 D'D와 크기가 같은 행렬로 지정됩니다. 여기서 D는 피드스루 상태공간 행렬입니다. Bryson의 규칙을 사용하여, 다음과 같이 지정되는 R의 초기값을 설정할 수 있습니다.

Rj,j=1maximum acceptable value of (errorinputs)2, j{1,2,...,m}R=[R1,1000R2,200000Rm,m]

여기서 m은 입력의 개수입니다.

선택적 교차 항 행렬로, 행렬로 지정됩니다. N이 지정되지 않은 경우 기본적으로 lqrN을 0으로 설정합니다.

출력 인수

모두 축소

폐루프 시스템의 최적 이득으로, 크기가 n인 행 벡터로 반환됩니다. 여기서 n은 상태의 개수입니다.

관련된 대수 리카티 방정식의 해로, nxn 행렬로 반환됩니다. 여기서 n은 상태의 개수입니다. 즉, S는 상태공간 행렬 A와 차원이 같습니다 자세한 내용은 icareidare를 참조하십시오.

폐루프 시스템의 극점으로, 크기가 n인 열 벡터로 반환됩니다. 여기서 n은 상태의 개수입니다.

제한 사항

입력 데이터는 다음 조건을 충족해야 합니다.

  • AB 쌍은 안정화 가능해야 합니다.

  • [Q,N;N',R]은 음이 아닌 정부호 행렬이어야 합니다.

  • R>0이고 QNR1NT0이어야 합니다.

  • (QNR1NT,ABR1NT)의 허수축에(또는 이산시간에서는 단위원에) 관측 불가능한 모드가 없어야 합니다.

  • lqr은 정칙 E를 갖는 설명자 모델을 지원합니다. lqr의 출력 S는 상응하는 명시적 상태공간 모델에 대한 대수 리카티 방정식의 해입니다.:

    dxdt=E1Ax+E1Bu

알고리즘

연속시간 시스템의 경우 lqr은 다음 2차 비용 함수를 최소화하는 상태 피드백 제어 u=Kx를 계산합니다.

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

이때 시스템 동특성 x˙=Ax+Bu가 적용됩니다.

lqr은 상태 피드백 이득 K 외에도 그와 관련된 다음 대수 리카티 방정식의 해 S

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을 생략할 경우 lqrN을 0으로 설정합니다.

R2006a 이전에 개발됨