본문 바로가기
공학 수학

LQR 제어 완벽 가이드 (2026), MATLAB/Simulink 예제로 쉽게 배우기

by 공학수학박사 2026. 4. 7.

자동 제어 시스템, 혹시 '블랙박스'처럼 느껴지시나요? 오늘은 그 속에서 묵묵히 활약하는 '숨겨진 영웅', LQR 제어기를 함께 파헤쳐 보겠습니다. LQR 제어의 핵심 이론부터 MATLAB/Simulink를 이용한 설계 및 구현 예제까지, 차근차근 알아볼 예정이니 함께 떠나보시죠!

1. 자동 제어 시스템의 숨겨진 영웅, LQR 제어란?

자동 제어 시스템 설계에서 LQR(Linear Quadratic Regulator) 제어는 중요한 역할을 합니다. LQR 제어는 시스템의 상태를 원하는 목표 상태로 최적화하는 데 사용되는 방법입니다. 이 방식은 선형 시스템과 이차 비용 함수를 사용하여 제어 입력을 결정합니다. LQR 제어기는 에너지 소비, 응답 속도, 안정성과 같은 다양한 성능 지표를 동시에 고려하여 시스템을 제어합니다.

본 글에서는 LQR 제어의 기본 개념과 설계 과정을 소개합니다. MATLAB/Simulink를 이용한 LQR 제어기 설계 예제를 통해 실제 적용 방법을 설명합니다. LQR 제어는 로봇 공학, 항공 우주, 자동차 산업 등 다양한 분야에서 활용됩니다. 이 글을 통해 독자는 LQR 제어의 기본 원리를 이해하고, 실제 시스템에 적용할 수 있는 능력을 키울 수 있습니다.

→ 1.1 LQR 제어의 기본 원리

LQR 제어는 시스템의 상태 변수와 제어 입력에 대한 가중치를 설정하여 비용 함수를 최소화합니다. 비용 함수는 일반적으로 시스템의 상태가 목표 상태에서 벗어나는 정도와 제어 입력의 크기를 반영합니다. 가중치 행렬 Q와 R은 각각 상태와 제어 입력의 중요도를 나타냅니다. Q는 상태 오차에 대한 가중치를, R은 제어 입력에 대한 가중치를 설정하는 데 사용됩니다.

LQR 제어기 설계의 핵심은 적절한 가중치 행렬 Q와 R을 선택하는 것입니다. Q와 R의 값을 조정함으로써 시스템의 응답 특성을 원하는 대로 변경할 수 있습니다. 예를 들어, Q의 값을 크게 하면 시스템의 응답 속도가 빨라지지만, 제어 입력의 크기가 커질 수 있습니다. 반대로 R의 값을 크게 하면 제어 입력의 크기가 줄어들지만, 응답 속도가 느려질 수 있습니다.

LQR 제어는 최적 제어 이론에 기반하며, 시스템의 안정성을 보장합니다. 리카티 방정식(Riccati equation)을 풀어 최적의 제어 이득을 계산합니다. MATLAB과 같은 소프트웨어를 사용하여 리카티 방정식의 해를 쉽게 구할 수 있습니다. 이후 섹션에서는 MATLAB/Simulink를 사용하여 LQR 제어기를 설계하고 시뮬레이션하는 방법을 자세히 설명합니다.

2. 최적 제어 이론: LQR 설계 핵심 배경 지식 파헤치기

LQR(Linear Quadratic Regulator) 제어기 설계의 핵심은 최적 제어 이론에 대한 이해입니다. 최적 제어 이론은 시스템의 성능을 나타내는 비용 함수를 최소화하는 제어 입력을 찾는 것을 목표로 합니다. 이를 위해 시스템의 동적 모델과 비용 함수를 설정하고, 최적의 제어 법칙을 도출하는 과정을 거칩니다.

→ 2.1 LQR 제어 설계의 기본 원리

LQR 제어는 선형 시스템에 적용되는 최적 제어 방법입니다. 시스템의 상태 변수와 제어 입력에 대한 가중치를 조절하여 원하는 제어 성능을 얻을 수 있습니다. 예를 들어, 로봇 팔의 위치 제어에서 LQR 제어를 사용하면, 에너지 소비를 최소화하면서 목표 위치에 빠르고 정확하게 도달하도록 설계할 수 있습니다.

비용 함수는 일반적으로 상태 변수와 제어 입력의 제곱항의 가중치 합으로 표현됩니다. 상태 가중치(Q)는 상태 변수의 목표값으로부터의 오차를 줄이는 정도를 결정합니다. 제어 입력 가중치(R)는 제어 입력의 크기를 제한하여 에너지 소비를 줄이는 역할을 수행합니다.

최적 제어 입력을 구하기 위해서는 리카티 방정식(Riccati equation)을 풀어야 합니다. 리카티 방정식은 비선형 미분 방정식이며, 해를 구하기 위한 다양한 수치 해석 방법이 존재합니다. MATLAB과 같은 소프트웨어는 리카티 방정식 해를 구하는 함수를 제공하므로, LQR 제어기를 쉽게 설계하고 구현할 수 있습니다.

LQR 제어는 비교적 설계가 간단하고 안정성이 보장된다는 장점이 있습니다. 하지만 시스템 모델의 정확도에 민감하며, 비선형 시스템에는 직접 적용하기 어렵다는 단점도 존재합니다. 따라서 실제 시스템에 적용하기 전에 시뮬레이션을 통해 성능을 검증하는 것이 중요합니다.

📌 핵심 요약

  • ✓ ✓ LQR 제어는 비용 함수 최소화가 목표
  • ✓ ✓ 상태(Q), 제어 입력(R) 가중치 조절 중요
  • ✓ ✓ 리카티 방정식으로 최적 제어 입력 계산
  • ✓ ✓ 모델 정확도에 민감, 시뮬레이션 검증 필수

3. LQR 제어기 설계 A to Z: MATLAB 활용 완전 정복

LQR (Linear Quadratic Regulator) 제어기 설계는 MATLAB 환경에서 효율적으로 수행할 수 있습니다. MATLAB은 LQR 제어기 설계를 위한 다양한 도구와 함수를 제공하며, Simulink를 통해 시스템 모델링 및 시뮬레이션을 용이하게 합니다. 이번 섹션에서는 MATLAB을 활용한 LQR 제어기 설계의 전반적인 과정을 소개하고, 실제 예제를 통해 LQR 제어기 설계 방법을 자세히 설명합니다.

→ 3.1 MATLAB 환경 설정 및 시스템 모델링

LQR 제어기 설계를 시작하기 전에 MATLAB 환경을 설정해야 합니다. Control System Toolbox가 설치되어 있는지 확인하고, 필요한 경우 설치를 진행합니다. 다음으로, 제어하고자 하는 시스템의 동적 모델을 MATLAB에서 정의합니다. 예를 들어, 상태 공간 모델을 사용하여 시스템을 표현할 수 있습니다.


A = [0 1; -2 -3]; % 시스템 행렬
B = [0; 1];    % 입력 행렬
C = [1 0];    % 출력 행렬
D = 0;        % 직달 행렬
sys = ss(A, B, C, D); % 상태 공간 모델 생성

이 코드는 간단한 2차 시스템을 상태 공간 모델로 정의하는 예시입니다. 실제 시스템에 맞게 행렬 A, B, C, D를 수정해야 합니다.

→ 3.2 가중치 행렬 Q 및 R 설정

LQR 제어기 설계에서 가중치 행렬 Q와 R은 성능 지표를 결정하는 중요한 요소입니다. Q는 상태 변수의 중요도를, R은 제어 입력의 중요도를 나타냅니다. 적절한 Q와 R을 선택하는 것은 LQR 제어기의 성능에 큰 영향을 미칩니다. 일반적으로 시행착오를 통해 최적의 값을 찾습니다.

예를 들어, 상태 변수 x1과 x2를 모두 중요하게 제어하고 싶다면 Q 행렬을 다음과 같이 설정할 수 있습니다.


Q = [1 0; 0 1]; % 상태 가중치 행렬
R = 1;       % 입력 가중치 행렬

Q 행렬의 대각 요소 값을 조정하여 각 상태 변수의 중요도를 조절할 수 있습니다. R 값을 증가시키면 제어 입력의 크기를 줄일 수 있습니다.

→ 3.3 LQR 제어 이득 계산 및 시뮬레이션

MATLAB의 lqr() 함수를 사용하여 LQR 제어 이득 K를 계산할 수 있습니다. lqr() 함수는 시스템 모델, 가중치 행렬 Q, R을 입력으로 받아 최적의 제어 이득 K를 반환합니다. 계산된 제어 이득을 사용하여 폐루프 시스템을 구성하고 시뮬레이션을 통해 성능을 검증할 수 있습니다.


K = lqr(A, B, Q, R); % LQR 제어 이득 계산
Acl = A - B*K;     % 폐루프 시스템 행렬
Bcl = B;
Ccl = C;
Dcl = D;
sys_cl = ss(Acl, Bcl, Ccl, Dcl); % 폐루프 시스템 모델 생성
t = 0:0.01:10;       % 시간 벡터
u = zeros(size(t)); % 입력 신호 (제로 입력)
x0 = [1; 0];       % 초기 상태
[y, t, x] = lsim(sys_cl, u, t, x0); % 시뮬레이션 실행
plot(t, x);          % 결과 플롯
xlabel('Time (s)');
ylabel('State Variables');
legend('x1', 'x2');

이 코드는 계산된 제어 이득 K를 사용하여 폐루프 시스템을 구성하고 초기 상태에 대한 시스템의 응답을 시뮬레이션하는 과정을 보여줍니다. 시뮬레이션 결과를 통해 시스템의 안정성과 성능을 확인할 수 있습니다. 2026년에는 더욱 발전된 LQR 설계 도구가 MATLAB에 추가될 것으로 예상됩니다.

Simulink를 활용하여 LQR (Linear Quadratic Regulator) 제어 시스템을 모델링하고 시뮬레이션하는 방법을 안내합니다. Simulink는 복잡한 시스템의 동적 거동을 시뮬레이션하고 분석하는 데 유용한 도구입니다. LQR 제어기를 실제 시스템에 적용하기 전에 시뮬레이션을 통해 성능을 검증하는 것은 매우 중요합니다.

Simulink 모델은 일반적으로 다음과 같은 주요 구성 요소로 이루어집니다. 시스템 모델, LQR 제어기, 입력 신호, 출력 신호 및 스코프(Scope) 블록이 있습니다. 시스템 모델은 제어 대상의 동적 특성을 나타내는 수학적 모델을 Simulink 블록으로 구현한 것입니다. LQR 제어기는 MATLAB에서 설계한 LQR 게인(Gain)을 Simulink 모델에 통합하여 구현합니다.

  • 시스템 모델: 제어 대상의 수학적 모델
  • LQR 제어기: MATLAB에서 설계한 게인(Gain) 값 적용
  • 입력 신호: 시스템에 가해지는 외부 입력
  • 출력 신호: 시스템의 응답
  • 스코프(Scope): 시뮬레이션 결과 시각화

MATLAB에서 설계된 LQR 게인(Gain) K는 Simulink의 Gain 블록을 사용하여 구현됩니다. 시스템의 상태 변수를 입력으로 받고, LQR 게인(Gain) K를 곱하여 제어 입력을 생성합니다. 이 제어 입력은 시스템 모델에 적용되어 시스템의 상태를 원하는 목표 상태로 유지하도록 합니다. 예를 들어, MATLAB에서 K = lqr(A, B, Q, R) 명령어를 통해 얻은 K 값을 Gain 블록에 입력합니다.

→ 4.3 시뮬레이션 설정 및 결과 분석

Simulink 시뮬레이션을 실행하기 전에 적절한 시뮬레이션 시간을 설정해야 합니다. 시뮬레이션 결과는 스코프(Scope) 블록을 통해 시각적으로 확인할 수 있습니다. 스코프(Scope) 블록은 시스템의 상태 변수, 제어 입력 등을 시간에 따라 표시하여 시스템의 성능을 평가하는 데 도움을 줍니다. 시뮬레이션 결과를 분석하여 LQR 제어기의 성능을 평가하고, 필요에 따라 Q, R 가중치 행렬을 조정하여 성능을 개선할 수 있습니다.

📊 LQR 시뮬링크 모델 구성

구성 요소 설명 추가 정보
시스템 모델 제어 대상 모델 수학 모델 기반
LQR 제어기 게인 K 적용 MATLAB lqr() 함수
입력 신호 외부 입력 계단, 임펄스 등
출력 신호 시스템 응답 상태 변수
스코프 결과 시각화 시간 응답 그래프
게인 K 적용 Gain 블록 사용 K 값 직접 입력

5. 성능 극대화 비법: Q, R 행렬 가중치 조정 마스터하기

LQR(Linear Quadratic Regulator) 제어기 설계에서 Q 행렬과 R 행렬의 가중치 조정은 시스템 성능에 큰 영향을 미칩니다. Q 행렬은 상태 변수의 오차에 대한 가중치를 나타내며, R 행렬은 제어 입력에 대한 가중치를 나타냅니다. 이 두 행렬의 적절한 조정을 통해 원하는 시스템 응답 특성을 얻을 수 있습니다.

Q 행렬은 시스템의 상태 변수가 목표 값에 얼마나 정확하게 도달해야 하는지를 결정합니다. Q 행렬의 대각 성분 값을 크게 설정하면 해당 상태 변수의 오차를 줄이는 데 더 많은 제어 노력을 기울이게 됩니다. 예를 들어, 로봇 팔의 위치 제어에서 위치 오차를 줄이기 위해 위치 관련 상태 변수에 대한 Q 행렬의 가중치를 높일 수 있습니다.

R 행렬은 제어 입력의 크기에 대한 제약 조건을 설정합니다. R 행렬의 값을 크게 설정하면 제어 입력의 사용을 억제하여 에너지 소비를 줄이거나 액추에이터의 부담을 줄일 수 있습니다. 반대로 R 행렬의 값을 작게 설정하면 제어 입력의 사용에 제약이 줄어들어 시스템의 응답 속도를 높일 수 있습니다.

→ 5.1 Q, R 행렬 조정 전략

Q, R 행렬의 가중치 조정은 시행착오를 통해 이루어지는 경우가 많습니다. 하지만 몇 가지 일반적인 전략을 활용할 수 있습니다. 먼저, 원하는 시스템 응답 특성(예: 응답 속도, 오버슈트, 정상 상태 오차)을 정의합니다. 그 후, Q 행렬과 R 행렬의 값을 조정하면서 시뮬레이션을 통해 시스템 응답을 확인하고, 원하는 응답 특성에 가까워지도록 반복적으로 조정합니다.

예를 들어, 드론의 자세 제어 시스템에서 빠른 응답 속도가 중요한 경우, Q 행렬의 값을 크게 설정하고 R 행렬의 값을 작게 설정할 수 있습니다. 그러나 이 경우 제어 입력이 커져 에너지 소비가 증가할 수 있으므로, Q 행렬과 R 행렬의 값을 적절히 조절해야 합니다.

LQR 제어기 설계 시, Q 행렬과 R 행렬의 가중치 조정은 시스템 성능을 최적화하는 데 있어 중요한 과정입니다. 다양한 시뮬레이션과 테스트를 통해 시스템의 특성에 맞는 최적의 가중치를 찾는 것이 중요합니다.

6. LQR 제어 구현 시 흔한 함정 & 전문가 꿀팁

LQR (Linear Quadratic Regulator) 제어기 구현 시 흔히 발생하는 문제점을 파악하고, 전문가들이 제공하는 팁을 통해 더욱 효과적인 제어 시스템을 구축할 수 있습니다. LQR 제어는 이론적으로 강력하지만, 실제 시스템에 적용할 때는 다양한 어려움에 직면할 수 있습니다. 이러한 함정을 피하고 최적의 성능을 얻기 위한 실질적인 조언을 제공합니다.

→ 6.1 흔한 함정

첫째, 모델 불확실성 문제입니다. 실제 시스템은 모델링 과정에서 단순화되거나 무시되는 요소들이 존재할 수 있습니다. LQR 제어기는 모델을 기반으로 설계되므로, 모델과 실제 시스템 간의 차이가 클 경우 성능 저하 또는 불안정성을 초래할 수 있습니다. 따라서 시스템 모델링 시 가능한 한 정확한 모델을 구축하고, 불확실성을 고려한 강인 제어 기법을 적용하는 것이 중요합니다.

둘째, Q 및 R 행렬의 부적절한 선택입니다. Q 행렬은 상태 변수의 가중치를, R 행렬은 제어 입력의 가중치를 나타냅니다. 이 행렬들의 값을 잘못 설정하면 원하는 제어 성능을 얻기 어렵습니다. 예를 들어, Q 행렬의 특정 요소에 너무 큰 가중치를 부여하면 해당 상태 변수의 오차를 줄이는 데만 집중하여 다른 상태 변수의 성능이 저하될 수 있습니다. 반대로 R 행렬의 가중치가 너무 작으면 제어 입력이 과도하게 커져 시스템에 무리를 줄 수 있습니다. 적절한 Q, R 행렬 선택은 시행착오와 경험을 통해 이루어지며, 시뮬레이션을 통해 성능을 검증하는 것이 필수적입니다.

셋째, 시스템의 비선형성을 간과하는 것입니다. LQR 제어는 선형 시스템에 적용되는 기법이지만, 실제 시스템은 종종 비선형적인 특성을 가집니다. 이러한 경우, LQR 제어기의 성능이 저하될 수 있습니다. 비선형 시스템에 LQR 제어를 적용하기 위해서는 선형화 기법을 사용하거나, 비선형 제어 기법과 결합하여 사용하는 방법을 고려해야 합니다.

→ 6.2 전문가 꿀팁

첫째, 적응형 LQR 제어를 고려하는 것입니다. 시스템의 파라미터가 시간에 따라 변하거나 불확실성이 큰 경우, 고정된 Q 및 R 행렬을 사용하는 LQR 제어기는 최적의 성능을 유지하기 어렵습니다. 적응형 LQR 제어는 시스템의 변화에 따라 Q 및 R 행렬을 실시간으로 조정하여 제어 성능을 향상시킬 수 있습니다. 예를 들어, 칼만 필터와 같은 추정기를 사용하여 시스템의 상태를 추정하고, 추정된 상태를 기반으로 Q 및 R 행렬을 업데이트하는 방식을 사용할 수 있습니다.

둘째, Robust LQR 제어를 활용하는 것입니다. 모델 불확실성이나 외란에 강인한 제어 성능을 확보하기 위해 Robust LQR 제어를 적용할 수 있습니다. Robust LQR 제어는 시스템의 불확실성을 고려하여 최악의 경우에도 안정성을 보장하는 제어 입력을 설계합니다. 대표적인 방법으로는 H-infinity 제어, μ-Synthesis 등이 있습니다.

셋째, 시뮬레이션 환경을 적극 활용하는 것입니다. LQR 제어기를 실제 시스템에 적용하기 전에 Simulink와 같은 시뮬레이션 도구를 사용하여 다양한 시나리오에서 성능을 검증하는 것이 중요합니다. 시뮬레이션을 통해 Q 및 R 행렬의 값을 조정하고, 시스템의 응답 특성을 분석하여 최적의 제어 성능을 얻을 수 있습니다. 또한, 실제 시스템에서 발생할 수 있는 예상치 못한 문제점을 미리 파악하고 대비할 수 있습니다.

예를 들어, 로봇 팔 제어 시스템을 설계할 때, 로봇 팔의 무게 변화나 외부 충격과 같은 요인으로 인해 모델 불확실성이 발생할 수 있습니다. 이 경우, 적응형 LQR 제어를 사용하여 로봇 팔의 상태를 실시간으로 추정하고, Q 및 R 행렬을 조정하여 안정적인 제어 성능을 유지할 수 있습니다. 2026년 현재, 다양한 산업 현장에서 이러한 고급 제어 기법들이 활발하게 적용되고 있습니다.

오늘부터 LQR 제어 전문가에 도전하세요

LQR 제어는 자동 제어 시스템의 성능을 최적화하는 강력한 도구입니다. 이 글에서 배운 MATLAB/Simulink 예제를 통해 LQR 제어기 설계 능력을 향상시키고, 실제 시스템에 적용하여 효율적인 제어 시스템을 구현해 보세요. 최적 제어의 세계를 탐험하며 당신의 엔지니어링 역량을 한 단계 업그레이드할 수 있습니다.

📌 안내사항

  • 본 콘텐츠는 정보 제공 목적으로 작성되었습니다.
  • 법률, 의료, 금융 등 전문적 조언을 대체하지 않습니다.
  • 중요한 결정은 반드시 해당 분야의 전문가와 상담하시기 바랍니다.