1. 개요[편집]
선형행렬부등식(Linear Matrix Inequality, LMI)은 결정변수 에 대해 행렬이 아핀하게 의존하고, 그 행렬이 (반)정부호일 것을 요구하는 제약이다.
이름과 달리 이건 스칼라 부등식 하나가 아니라 무한히 많은 부등식 을 한 줄로 압축한 것이다. 그럼에도 다루기 쉬운 이유는 두 가지다. 첫째, 가 에 아핀이고 정부호 행렬 집합이 볼록 원뿔이므로 실행 가능 집합이 항상 볼록이다. 둘째, 이 문제가 반정부호 계획법(SDP)의 한 표현이라 내점법으로 다항시간에 풀린다.
제어공학에서 LMI가 갖는 위상은 특별하다. 1990년대 초 “제어 설계 문제를 LMI로 쓸 수 있으면 푼 것이다”라는 인식이 자리 잡으면서, 그전까지 각각 전용 알고리즘을 요구하던 안정성 해석· 합성·강건 성능·다목적 설계가 하나의 볼록 최적화 언어로 통합됐다. 이 문서는 그 모델링 기술 — 어떻게 비선형으로 보이는 조건을 LMI로 바꾸는가 — 에 무게를 둔다. 원뿔의 기하와 쌍대성, 솔버 내부는 반정부호 계획법 문서에 있다.1
2. 역사 — 100년 걸려 풀린 부등식[편집]
이 분야의 족보는 놀랄 만큼 길다.
- 1890년대. 리아푸노프가 의 안정성을 , 과 연결한다. 최초의 LMI인데, 당시엔 부등식으로 보지 않고 를 고정한 등식(리아푸노프 방정식)을 풀었다. 해석적으로 닫히는 유일한 사례라 100년 가까이 이게 전부였다.
- 1940년대. 루리에와 포스트니코프가 비선형성이 낀 제어계의 안정성 조건을 세운다. 손으로 푸는 수밖에 없어 저차원에서 그래프를 그려 판정했다.
- 1960년대. 야쿠보비치·포포프·칼만의 KYP 보조정리(양실 보조정리)가 나온다. “모든 주파수에서 성립하는 부등식”과 “유한 크기 행렬 부등식”이 동치라는 결과이고, 무한 개 제약을 유한 개로 접는 이 정리가 이후 모든 것의 기반이 된다. 당시 해법은 리카티 방정식이었다.
- 1980년대. 뱌트니츠키와 스코로도딘스키가 LMI를 볼록 계획으로 직접 다룰 수 있음을 지적한다.
- 1988~94년. 네스테로프와 네미로프스키가 자기일치 배리어 이론으로 내점법을 원뿔 계획 전반에 확장한다. 반정부호 원뿔의 배리어 가 자기일치라서, LMI가 처음으로 “그냥 풀리는 문제”가 됐다. 1994년 보이드·엘가위·페롱·발라크리슈난의 책 Linear Matrix Inequalities in System and Control Theory가 나오면서 제어 분야 전체가 이 언어로 갈아탄다.2
리아푸노프가 부등식을 쓴 지 100년 만에 그 부등식을 컴퓨터가 직접 푸는 시대가 온 셈이다.
3. 슈어 보수정리 — 모델링의 절반[편집]
LMI 모델링에서 가장 많이 쓰이는 도구는 슈어 보수정리(Schur complement lemma)다. 일 때
가 성립한다. 좌변은 블록 행렬에 대한 선형 조건이고 우변에는 라는 이차·분수 항이 들어 있다. 즉 이 동치는 비선형 조건을 차원을 키워 선형화하는 사전으로 쓸 수 있다. 몇 가지 대표 용례:
- 노름 제약 는 , , 를 넣은 블록 LMI가 된다. 2차 원뿔 제약이 반정부호 원뿔에 포함되는 근거이기도 하다.
- 역행렬이 낀 이차형식 () 는 , , 로 두면 에 대해 선형인 제약으로 바뀐다. 노름을 트레이스 형태로 옮길 때 그대로 쓰인다.
- 조건에 나타나는 처럼 에 대해 이차인 리카티형 부등식도, 이차항을 슈어 보수로 되돌리면 블록 크기만 커진 LMI가 된다. 뒤에 나올 유계 실수 보조정리가 정확히 이 변환의 결과물이다.
주의할 점 하나. 위 사전은 어느 변수를 미지수로 볼 것인가에 따라 성립 여부가 갈린다. 와 이 동시에 미지수로 들어가면 그 순간 볼록성이 깨진다. 뒤에서 볼 합성 문제의 변수 변환이 전부 이 함정을 피하려는 몸부림이다.
또 하나의 필수 도구가 S-절차(S-procedure)다. “인 모든 에 대해 “이라는 조건부 이차 부등식을, 승수 을 도입해 이라는 무조건 부등식으로 바꾼다. 이 완화는 일반적으로 충분조건일 뿐이지만, 이차형식 하나에 대해서는 손실이 없다(무손실 S-절차). 유계 불확실성이나 도달 집합 추정을 LMI로 옮길 때 거의 항상 등장한다.
4. 제어의 표준 레퍼토리[편집]
4.1. 안정성 해석[편집]
가장 기본. 가 점근 안정 로
이 실행 가능. 미지수 에 대해 두 조건 다 LMI이므로 실행가능성 문제(feasibility problem) 하나다. 가 후르비츠인지는 고유값을 뽑아 보면 되니 이것만으로는 별 소득이 없어 보이는데, 진가는 여기서 조건을 얹기 시작할 때 드러난다.
4.2. 상태 궤환 합성 — 변수 변환의 마법[편집]
를 넣은 폐루프 의 안정성 조건은
인데, 항 때문에 에 대해 쌍선형이다. LMI가 아니다. 여기서 표준 처방이 나온다. 양변을 으로 좌우에서 합동변환(congruence)하고 로 새 변수를 잡으면
에 대해 완벽한 LMI다. 풀고 나서 로 되돌린다. 합동변환은 부호를 보존하므로(, 가역) 동치성도 잃지 않는다. 이 한 줄짜리 트릭이 “해석은 LMI인데 설계는 쌍선형”이라는 벽을 넘게 해 준 열쇠이고, LMI 논문의 8할이 이 변수 변환의 변주다.
4.3. 성능 — 유계 실수 보조정리[편집]
전달함수 에 대해 이면서 가 안정일 필요충분조건은 다음 LMI의 실행 가능성이다.
유계 실수 보조정리(bounded real lemma)이고, KYP 보조정리의 한 사례다. 원래 조건이 “모든 에 대해 최대 특이값이 미만”이라는 주파수 전역 조건이었는데, 그게 유한 크기 행렬 부등식 하나로 접혔다는 점이 핵심이다. 까지 변수로 올려 최소화하면 곧바로 노름 계산이 되고, 여기에 위 변수 변환을 결합하면 제어기 합성이 된다. 강건 제어의 리카티 기반 DGKF 해법과 이론적으로 등가지만, LMI 경로는 직달항의 계수 조건 같은 정칙성 가정에 덜 민감하고 무엇보다 제약을 더 얹기가 쉽다.
4.4. 다목적 설계와 극점 배치[편집]
“제약을 더 얹기가 쉽다”가 실무적으로 결정적인 이유다. 성능, 성능, 극점의 위치, 입력 진폭 한계를 하나의 최적화에 동시에 넣을 수 있다. 극점 배치의 경우, 복소평면의 영역을 꼴로 쓸 수 있으면(반평면·원판·부채꼴과 그 교집합이 전부 여기 들어간다) 폐루프 극이 그 안에 있을 조건이 다시 LMI가 된다. 감쇠비 하한을 부채꼴로, 정정 시간을 수직 반평면으로 지정하는 식의 요구가 그대로 제약이 된다.
대가는 보수성이다. 서로 다른 사양에 각각 다른 리아푸노프 행렬을 쓰면 문제가 볼록이 아니게 되므로, 실무에서는 모든 사양에 **하나의 공통 **를 강요한다. 이 완화는 충분조건일 뿐이라 진짜 최적해보다 못한 답을 준다. 얼마나 못한지를 정량화하는 방법은 대체로 없고, 이 보수성을 줄이는 확장(확장 LMI, 슬랙 변수 도입)이 2000년대 이 분야의 주요 화두였다.
4.5. 폴리토프 불확실성[편집]
가 정확히 모르는 값이고 꼭짓점들의 볼록 결합 안에 있다고 하자. 가 에 아핀이므로, 꼭짓점에서만 성립시키면 내부 전체에서 성립한다.
무한 개의 플랜트에 대한 강건 안정성이 개의 LMI로 끝난다. 파라미터가 개면 꼭짓점이 개라 지수적으로 늘어나는 것이 한계지만, 물리 파라미터 서너 개짜리 문제에서는 압도적으로 편하다.
여기에도 정직한 유보가 필요하다. 모든 꼭짓점에 대해 **하나의 **를 요구하는 것을 이차 안정성(quadratic stability)이라 하는데, 이건 파라미터가 임의로 빠르게 변해도 안정하다는 훨씬 강한 조건과 동치다. 파라미터가 실제로는 천천히 변하거나 아예 상수인 경우에는 필요 이상으로 보수적이다. 그래서 를 파라미터에 아핀하거나 다항식으로 두는 파라미터 의존 리아푸노프 함수가 쓰이고, 이때는 변수는 늘지만 보수성이 줄어든다.
5. 볼록성이 깨지는 지점 — BMI[편집]
LMI의 성공담만 늘어놓으면 균형이 안 맞는다. 정적 출력 궤환(, ) 설계는 앞의 변수 변환이 통하지 않는다. 로 합동변환해도 에서 가 끼어 있어 를 독립 변수로 잡을 수 없기 때문이다. 남는 것은
라는 쌍선형 행렬부등식(BMI)이고, BMI 실행가능성은 NP-난해임이 알려져 있다. 제어에서 가장 단순해 보이는 설계 문제 하나가 볼록 세계 바깥에 있는 셈이다.
대응은 전부 우회로다.
- 교대 최적화. 고정 → 풀기 → 고정 → 풀기. 각 단계는 LMI지만 전체는 국소해만 보장한다. 강건 제어의 D-K 반복이 같은 구조다.
- 원뿔 상보 선형화. 제약을 최소화로 완화해 선형화 반복을 돌리는 방식(엘가위 등). 수렴하면 좋고 아니면 아닌 휴리스틱이다.
- 비평활 최적화. 아예 를 직접 변수로 두고 스펙트럼 노름의 비평활 최적화를 돌린다. HIFOO나 MATLAB의
hinfstruct가 이 계열이고, 구조 지정 제어기(PID 형태, 고정 차수, 게인 스케줄 구조)를 다룰 수 있어 산업 현장에서 인기가 높다. 전역 최적 보증은 없다.
6. 비선형계로 — 제곱합[편집]
LMI의 표현력은 다항식 영역으로도 뻗는다. 다항식 가 제곱합(sum of squares)으로 쓰인다는 조건은
인 그램 행렬 의 존재와 동치다(는 단항식 벡터). 의 계수가 의 성분에 대해 선형이므로 이건 에 대한 LMI다. 비음수성은 일반적으로 판정하기 어려운 조건인데, 그보다 강한 SOS 조건은 SDP 한 번으로 판정된다는 것이 파릴로(2000)의 관점이다.
제어에서의 용도는 명확하다. 다항식 비선형계 에 대해 를 다항식으로 두고 가 SOS, 가 SOS라는 조건을 걸면, 비선형계의 리아푸노프 함수를 SDP로 탐색할 수 있다. 여기에 S-절차를 결합하면 흡인 유역의 내부 추정(불변 준위집합의 최대화)도 얻는다. 손으로 리아푸노프 함수를 찍어 맞히던 작업이 최적화 문제가 되는 순간이다. 한계도 분명하다 — 차수를 올리면 의 길이가 조합적으로 늘어 SDP 크기가 폭발하고, 비음수지만 SOS가 아닌 다항식(모츠킨 다항식이 고전적 반례)이 존재해 완화가 정확하지 않을 수 있다.
7. 도구 생태계[편집]
이 분야에서 흔한 오해 하나. 모델링 언어와 솔버는 다른 물건이다.
- 모델링 계층: YALMIP(뢰프베리), CVX(그랜트-보이드), cvxpy, PICOS. 사용자가
A'*P + P*A <= 0처럼 자연스럽게 쓰면, 이 계층이 이를 SDP 표준형으로 번역해 솔버에 넘긴다. 스스로 푸는 것이 아니다. - 솔버: SeDuMi, SDPT3, Mosek, SCS, COSMO, CSDP. 앞의 셋은 내점법, SCS·COSMO는 ADMM 계열 일차 방법이다. 상용인 Mosek이 안정성·속도에서 앞서는 편이고, 정밀도가 필요 없고 규모가 크면 일차 방법 쪽이 유리하다.
- 전용 툴박스: MATLAB Robust Control Toolbox의
feasp/mincx(구 LMI Lab), SOSTOOLS·SumOfSquares.jl(제곱합), JuMP(줄리아).
실무적 조언 하나만 덧붙이면, 의 크기는 개 변수라 상태 차원이 커질수록 급격히 비싸진다. 상태 100개짜리 유연 구조물 모델에서 LMI를 그대로 던지면 변수가 5000개를 넘어 내점법의 슈어 보수 행렬이 감당이 안 된다. 같은 문제를 리카티 방정식으로 풀면 에 끝난다. 다목적·강건 사양이 있으면 LMI, 규모가 크고 사양이 단순하면 리카티 — 이 감각이 현장의 기본기다. 조건수도 문제라, 상태 스케일링을 하지 않고 던지면 솔버가 “실행 불가능”이라고 답하는 일이 잦은데 대개 문제가 아니라 스케일이 잘못된 것이다.3
8. 관련 문서[편집]
- 반정부호 계획법 · 볼록 최적화 · 내점법
- 강건 제어 · 슬라이딩 모드 제어 · 모델 예측 제어
- 리아푸노프 방정식 · 리카티 방정식 · 최적 제어
- 제곱합 계획법 · 구조적 특이값 · 게인 스케줄링
- 고유값 문제 · 특이값 분해 · 촐레스키 분해
- 선형계획법 · 이차계획법 · 최적설계
9. Footnotes[편집]
-
그래서 두 분야가 같은 대상을 다른 이름으로 부른다. 최적화 하는 사람은 “SDP”, 제어 하는 사람은 “LMI”. 논문 제목만 보고 서로 남의 분야라고 넘겼다가, 한참 뒤에 같은 정리를 각자 다시 증명해 놓은 걸 발견하는 일이 실제로 있었다. ↩
-
1994년 책이 나온 뒤 몇 년간 제어 학회는 “기존 결과 + LMI로 다시 씀” 논문으로 넘쳐났다. 지금 보면 웃기지만, 그 덕분에 흩어져 있던 결과들이 한 언어로 정리된 것도 사실이다. 새 언어가 생기면 일단 사전부터 다시 쓰는 게 학계의 국룰이다. ↩
-
솔버가 뱉는 “infeasible”을 곧이곧대로 믿으면 안 된다는 뜻이다. 엄격 부등식 을 수치적으로는 로 풀기 때문에, 과 문제 스케일의 비가 어긋나면 멀쩡한 문제도 실행 불가능으로 나온다. 상태를 정규화하고, 가능하면 실행 가능성 여유를 목적함수로 최대화해 얼마나 아슬아슬한지를 숫자로 확인하는 것이 안전하다. ↩