AEGLOSLAB 제어공학 종합 핸드북

AeglosLab

제어공학 종합 핸드북

피드백의 직관에서 출발해 고전·디지털·현대 제어와 상태 추정·심화 주제까지, 읽고 → 손으로 돌려 보며 → 로봇(ROS2 Humble)에 올리는 제어공학.

8부 · 44장 · 갱신 2026-11-03

0.1 제어공학이란 무엇인가부터 읽기

이 책에 대하여

  • PREFIX: $CE$ — 모든 장 파일은 docs/book/CE-NN-제목.md, 헤더는 ## CE-NN: 제목 / ### CE-NN-MM: 제목.
  • 독자: 공학 수학 기초(미적분·선형대수 약간)를 아는 학부생·로보틱스/임베디드 실무자·독학자. 제어 이론은 처음이어도 입문부터 따라올 수 있게 구성.
  • 층위: 입문 → 이론(교재 수준) → 심화로 점층. 앞은 직관·물리 의미, 뒤는 밀도.
  • 깊이: 심화(다이어그램·코드·엣지케이스·교차참조).
  • 실습: ROS2 Humble(Ubuntu 22.04 가정), Python(NumPy·SciPy·Matplotlib·python-control), Gazebo·turtlesim. 핵심 장에 짧은 실습을 곁들이고, 제7부에 통합 프로젝트를 모음.
  • 장 구성(공통): 각 장은 본문 + 다이어그램·실습으로 전개하고, 끝에 "연습·생각해 볼 것"(해당 장의 마지막 약자-NN-MM)으로 마무리한다 — 전 장 공통 정책(부록 A.1~A.5은 변환표·치트시트·용어집 등 참조자료 성격상 예외).

읽는 법

  • 순서대로가 기본 — 뒤 장은 앞 장의 모델·표기를 전제한다.
  • 빠른 실무 경로: 급하면 0.1 → 1.1~1.3(모델·응답) → 2.5(PID) → 제7부 실전으로 건너뛰고, 막히는 이론만 다시 확인한다.
  • 이론 순차 학습: 제1부→제6부 순서.
  • 보강 장(7.7~7.10): v1 이후 추가한 장이다. 파일 번호는 끝 번호를 유지하고(기존 번호는 밀지 않음), 목차에서는 제7부 끝(7.6 다음)에 두어 그 순서로 읽는다 — 제어 구조(7.7)·궤적 생성(7.8)·안전(7.9)·로봇팔 실전(7.10). 7.7은 제2~4부 설계 장 다음에, 7.8는 7.3 경로추종과 함께 읽어도 좋다.
  • 각 장은 자기완결을 지향하되, 다른 장은 $CE-NN$으로 교차참조한다.
  • ⚠️ 표기: 미검증 코드·수치는 본문에서 "검증 필요"로 라벨링한다. 실제 구동 확인 전까지 단정하지 않는다.
  • ✅ 검증 환경: 이 책의 핵심 수치·코드 주장은 ros:humble 컨테이너(Ubuntu 22.04·Python 3.10·control 0.10.2 — 책의 목표 환경)에서 실제 실행해 검증했다(저장소 verify/) — python-control 수치 예제 47개(test_control.py 18 + test_control2.py 9 + 부록 참조표 test_appendix.py 20) PASS, ROS2 통신 스모크(test_ros2.sh) PASS, 제7부·보강 장의 실전 ROS2/제어 스크립트 12개(7.2~7.6·7.7~7.10) 개별 PASS. 코드 옆 "여러분 환경에서 재현"은 여전히 권장되는 습관이지 미검증이라는 뜻은 아니다. GUI(turtlesim·Gazebo)·실물 구동은 headless 한계로 독자 환경 몫.

표기 규약 (전권 공통)

  • 시간영역 신호 소문자 $y(t)$, 라플라스 변환 대문자 $Y(s)$, 이산은 $y[k]$·$Y(z)$.
  • 플랜트 $G(s)$, 제어기 $C(s)$, 개루프 $L(s)=C(s)G(s)$, 폐루프 기준입력→출력 $T(s)$.
  • 상태공간 ẋ = Ax + Bu, $y = Cx + Du$. 추정값은 $\hat{x}$, 오차 $e = x - \hat{x}$.
  • 벡터·행렬 볼드 없이 문맥으로 구분(grep 친화). 단위·기호 표는 부록 A.5.

장 인덱스

상태 범례: [ ] 미집필 · [~] 초안/부분 · [x] 작성 완료. 번호는 목표 지도이며 집필 중 추가·분할될 수 있다(기존 번호는 밀지 않음).

제0부 — 오리엔테이션

  • [x] 0.1 제어공학이란 무엇인가 — 피드백의 직관, 개루프·폐루프, 일상·로봇 예시, 이 책 사용법
  • [x] 0.2 수학 준비운동 — 복소수, 라플라스 변환, 미분방정식, 선형대수 기초(필요한 만큼)
  • [x] 0.3 개발 환경 준비 — Python·python-control 스택, ROS2 Humble·Gazebo·turtlesim 설치, 워크스페이스 셋업

제1부 — 시스템 모델링과 동특성

  • [x] 1.1 동적 시스템과 모델링 — 물리계→수식(질량-스프링-댐퍼·RC회로·DC모터·진자), 선형화
  • [x] 1.2 전달함수와 블록선도 — 라플라스 해석, 극·영점, 블록선도 대수, 신호흐름
  • [x] 1.3 시간 응답 — 1차·2차 시스템, 과도응답 사양(상승·정착·오버슈트), 정상상태 오차
  • [x] 1.4 시스템 식별 입문 — 계단·주파수 응답으로 모델 추정, 검증

제2부 — 고전 제어: 해석과 설계

  • [x] 2.1 안정성 — BIBO, 특성방정식, Routh-Hurwitz 판별
  • [x] 2.2 근궤적법(Root Locus) — 작도 규칙, 설계 직관, 도구로 그리기
  • [x] 2.3 주파수 응답과 Bode 선도 — 이득·위상, 대역폭, 공진
  • [x] 2.4 Nyquist 안정성과 안정도 여유 — 이득여유·위상여유, 견고성
  • [x] 2.5 PID 제어 — 항별 물리 의미, 튜닝(Ziegler-Nichols 등), 안티와인드업·미분필터
  • [x] 2.6 보상기 설계 — Lead·Lag·Lead-Lag, 주파수영역 설계 절차

제3부 — 디지털 제어

  • [x] 3.1 이산시간 시스템과 z-변환 — 차분방정식, 펄스 전달함수
  • [x] 3.2 샘플링·이산화 — 에일리어싱, ZOH·Tustin, 샘플링 주기 선정
  • [x] 3.3 디지털 PID 구현 — 이산 PID 형태, 실시간 루프, 수치 주의점

제4부 — 현대 제어: 상태공간

  • [x] 4.1 상태공간 표현 — 상태방정식, 전달함수↔상태공간, 상사변환
  • [x] 4.2 가제어성·가관측성 — 판별, 표준형, 최소실현
  • [x] 4.3 극배치와 상태피드백 — 원하는 극 배치, 적분기 증강(추종)
  • [x] 4.4 상태 관측기 — Luenberger 관측기, 분리원리, 출력피드백
  • [x] 4.5 최적 제어 LQR — 비용함수, Riccati 방정식, LQG 개요

제5부 — 상태 추정: 칼만필터

  • [x] 5.1 확률·잡음 모델 기초 — 가우시안, 공분산, 프로세스·측정 잡음
  • [x] 5.2 칼만필터(KF) — 예측·갱신, 이득의 의미, 선형 추정 실습
  • [x] 5.3 비선형 추정 — 확장칼만(EKF)·무향칼만(UKF), 자코비안·시그마점
  • [x] 5.4 센서 융합 — IMU+GPS+Compass 자세·위치 추정, ESKF 개요

제6부 — 심화 주제

  • [x] 6.1 모델예측제어(MPC) — 수평선·제약 최적화, QP, 구현 개요
  • [x] 6.2 비선형 제어 — Lyapunov 안정성, 피드백 선형화, 슬라이딩 모드
  • [x] 6.3 강인 제어 입문 — 불확실성 모델, 민감도, H∞ 개념(진입점 위주)
  • [x] 6.4 적응 제어 입문 — MRAC·자기조정(진입점 위주)

제7부 — 실전: ROS2 Humble 프로젝트

  • [x] 7.1 ROS2 제어 아키텍처 — 노드·토픽·서비스, ros2_control 프레임워크, 실시간 고려
  • [x] 7.2 실전 ① 속도·위치 PID — DC모터/turtlesim 폐루프 제어
  • [x] 7.3 실전 ② 이동로봇 경로추종 — 차동구동 Pure Pursuit + PID(Gazebo)
  • [x] 7.4 실전 ③ 균형 제어 — 도립진자/밸런싱 로봇 LQR·상태피드백
  • [x] 7.5 실전 ④ 상태 추정 융합 — EKF로 오도메트리+GPS(2D 포즈, 실측 검증 9.1배 개선), IMU는 robot_localization 설정 스니펫으로 소개(미실행)
  • [x] 7.6 실전 ⑤ (선택) MPC 궤적 추종 — 제약 있는 점-로봇(이중적분기) 궤적 추종(실측 검증), 비선형 이동로봇 연결은 과제로 남김
  • [x] 7.7 제어 구조 — 피드포워드·2자유도·종속(cascade) (보강 장 — 제2~4부 설계 장 다음에 읽어도 좋다)
  • [x] 7.8 궤적·모션 프로파일 생성 — 사다리꼴·S-curve·다항식 (보강 장 — 7.3 경로추종과 짝)
  • [x] 7.9 안전·결함 처리 — 리밋·워치독·E-stop·결함 감지·페일세이프 (보강 장)
  • [x] 7.10 실전 ⑥ 로봇팔 관절공간 제어 — 2링크 매니퓰레이터, 계산토크법(MIMO 피드백 선형화) (보강 장)

부록

  • [x] A.1 부록 A — 라플라스·z 변환표
  • [x] A.2 부록 B — 선형대수·행렬 미적분 요약
  • [x] A.3 부록 C — python-control·NumPy·Matplotlib 치트시트
  • [x] A.4 부록 D — ROS2 Humble·Gazebo 환경 트러블슈팅
  • [x] A.5 부록 E — 기호·약어·용어집

의존 관계 (큰 줄기)

(준비) 0.1 ─ 입문 0.2 수학 0.3 환경 제1부 모델링 제2부 고전 제3부 디지털 제4부 상태공간 제7부 실전 ROS2 제5부 칼만 제6부 심화
  • 제7부 실전 프로젝트는 해당 이론 장을 전제로 한다(예: 7.4 LQR 균형 ← 4.5, 7.5 EKF 융합 ← 5.3).
  • 부록은 어느 장에서나 참조용으로 펼쳐 본다.