이 책에 대하여
- 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.py18 +test_control2.py9 + 부록 참조표test_appendix.py20) 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 — 기호·약어·용어집
의존 관계 (큰 줄기)
- 제7부 실전 프로젝트는 해당 이론 장을 전제로 한다(예: 7.4 LQR 균형 ← 4.5, 7.5 EKF 융합 ← 5.3).
- 부록은 어느 장에서나 참조용으로 펼쳐 본다.