Actuators & Physical Modeling
전기 에너지를 물리적 회전이나 선형 운동으로 변환하는 모터 및 액추에이터의 구동 원리와, 이를 정밀하게 제어하기 위한 하드웨어 인터페이스를 다루는 학습 노드입니다.
Article
M
Me
hyunyoun's Blog
computer-architecture-embedded-systemscomputer-architectureembedded-systemsroboticscontrol-systems-mechanicsactuatorsphysical-modelinglearning10 min read
1. Overview
액추에이터와 물리 모델링(Actuators & Physical Modeling)은 소프트웨어의 가상 공간에서 계산된 수학적 명령을, 기어(Gear)와 전류(Current)라는 매개체를 통해 현실 세계의 무거운 쇳덩어리를 움직이는 운동 에너지(Kinetic Energy)로 치환하는 하드웨어-소프트웨어 경계면 공학입니다.
학습자는 CPU의 약한 3.3V 디지털 신호가 H-브리지(H-Bridge) 회로를 거쳐 수십 암페어(A)의 폭발적인 아날로그 전력으로 증폭되는 **모터 드라이버(Motor Driver)**의 전력 변환 역학을 뜯어봅니다. 나아가 코일에 흐르는 전류와 자기장이 만들어내는 토크(Torque)의 물리학을 이해하고, 모터의 관성(Inertia), 마찰력(Friction), 백래시(Backlash) 같은 비선형적인 물리 법칙들을 미분 방정식으로 표현하는 **플랜트 모델링(Plant Modeling)**을 통달하여, 제어기가 예측 가능한 가상 환경을 수학적으로 구축하는 로보틱스 아키텍트 역량을 확보합니다.
2. Scope & Boundaries
In-Scope
- 전력 전자 역학 (Power Electronics): H-브리지 인버터, 펄스 폭 변조(PWM) 전력 제어, 데드 타임(Dead Time) 폭파 방지.
- 전기-기계 변환 (Electro-mechanical): BLDC(브러시리스 직류) 모터, 스테핑(Stepper) 모터, 서보(Servo) 모터의 구동 원리와 토크 상수.
- 물리계 수학적 모델링 (Plant Modeling): 질량-용수철-댐퍼(Mass-Spring-Damper) 시스템, 상태 공간 방정식(State-Space Equation), 전달 함수(Transfer Function).
- 비선형성 (Non-linearity): 기어 마찰(Stiction/Coulomb Friction), 기어 백래시(Backlash), 센서 노이즈(Noise).
Out-of-Scope
- 제어 알고리즘 본체: PID 제어기나 LQR 피드백 루프 같은 제어(Control) 자체 02-08-02. Control & Stability 영역.
- 공간 좌표 변환: 로봇 팔의 관절 각도를 통해 끝단의 위치(X,Y,Z)를 구하는 운동학 02-08-03. Kinematics & Planning 영역.
Boundaries
- Modeling vs. Control (02-08-02): 물리 모델링(02-08-01)이 "이 로봇 팔은 100의 힘을 주면 관성 탓에 0.5초 뒤에 30도만큼 꺾인다"는 '현실 물리계의 스펙과 수학적 시뮬레이터(Plant)를 만드는 작업'이라면, 제어(02-08-02)는 "그 스펙을 바탕으로 정확히 30도에서 멈추기 위해 브레이크를 언제 밟을지 계산하는 수학적 두뇌(Controller)를 만드는 작업"입니다.
3. Counterexample
- PWM과 관성의 무지 (Bang-Bang Control Trap): 모터를 돌리기 위해 PWM 0%에서 갑자기 100%로 풀 파워를 때려버리는 무식한 펌웨어 설계. 무거운 로봇 팔의 거대한 관성(Inertia)을 무시하고 순간적으로 엄청난 전압을 때리면, 코일이 저항을 견디지 못하고 전류 스파이크가 튀어 모터 드라이버 칩이 물리적으로 불타버립니다. 부드러운 가속 프로파일(S-Curve/Trapezoidal) 모델링이 없는 구동은 하드웨어 파괴로 직결됩니다.
- 선형성의 착각 (Ideal Plant Illusion): 마찰력도 0, 기어 틈새(백래시)도 0인 완벽한 수학 공식(전달 함수)만 짜놓고, 제어기를 돌려보니 "시뮬레이션에선 완벽한데 현실에선 모터가 덜덜 떤다"며 당황하는 초보자. 현실의 쇳덩어리는 멈춰있을 때 정지 마찰력(Stiction)이 커서 힘을 줘도 안 움직이다가 임계점을 넘는 순간 확 튕겨 나가는 극단적 비선형성을 가집니다. 이 끈적끈적한 쿨롱 마찰(Coulomb Friction)을 모델링(식)에 넣지 않으면 제어기는 영원히 현실을 통제할 수 없습니다.
4. Prerequisites
- 타이머와 PWM (Basic): 디지털 논리로 아날로그 전압의 평균을 흉내 내는 PWM 기법을 알아야 모터의 속도를 통제할 수 있습니다. (02-05-06 Embedded Controllers)
- 고전 역학 (Recommended): (힘과 가속도), (토크와 각가속도) 같은 기본 뉴턴/오일러 물리 법칙에 대한 직관이 필요합니다.
5. Learning Map
6. Learning Topics
Basic
Core Topic 01: 3.3V로 24V 쇳덩어리를 치는 펌프, H-브리지 (H-Bridge Inverter)
- Why to Learn: MCU 코어에서 나오는 3.3V 좁쌀만 한 전기로는 장난감 모터 하나 돌릴 수 없으므로, MCU의 두뇌 신호를 거대한 전력(24V, 10A) 근육으로 스위칭 증폭해 내는 전력 전자 회로의 뼈대를 쥐기 위함입니다.
- What to Learn:
- Concepts: H-브리지 회로, MOSFET 스위칭, 슛스루(Shoot-through) 단락, 데드 타임(Dead Time).
- Skills: 정방향/역방향 전류 스위칭 매트릭스, PWM 듀티 통제.
- Tools: 오실로스코프 (PWM 파형 검증).
- Trade-offs: 스위치를 아주 빠르게 껐다 켰다(수십 kHz) 하면 모터가 부드럽게 돌지만 칩에 스위칭 열(Heat)이 미친 듯이 나서 방열판이 필요하고, 느리게(수백 Hz) 켜면 칩은 시원한데 모터에서 삐~ 하는 귀신 소리(가청 주파수 공진)가 나는 주파수 딜레마.
- How to Learn:
- 1단계: 4개의 스위치(트랜지스터)를 H자 모양으로 배치하고, 대각선 스위치 2개만 열면 전류가 오른쪽으로 흘러 모터가 정회전, 반대 대각선을 열면 전류가 왼쪽으로 역류하여 역회전하는 무식하고도 직관적인 스위칭 역학을 해부합니다.
- 2단계: 정회전 상태에서 역회전으로 급히 바꿀 때, 기존 스위치가 채 닫히기도 전에 반대쪽 스위치를 열어버리면 위쪽 24V에서 아래쪽 GND로 전기가 직행(쇼트)하여 불꽃이 튀며 칩이 타버리는 현상(Shoot-through)을 막기 위해, 중간에 0.001초 모두 다 끄고 쉬는(Dead Time) 생존 본능을 뜯어봅니다.
- Implement: 4개의 boolean 변수(
S1,S2,S3,S4)로 구성된 파이썬 스위치 시뮬레이터.S1과S2가 동시에True가 되는 순간(같은 쪽 위아래 스위치 On)Short_Circuit_Explosion()에러를 던져 프로그램이 폭파되는 데드 타임 방어벽 데모 구축.
Recommended
Core Topic 02: 자석을 쫓는 전기의 채찍질, BLDC와 엔코더 (BLDC Mechanics)
- Why to Learn: 닳아 없어지는 물리적 브러시(Brush)를 없애버린 수명 무한의 BLDC 모터를 굴리기 위해, 눈을 가린 채 허공에 전기를 쏘는 게 아니라 모터의 회전 위치를 정확히 보고 코일을 치는 정밀 제어의 눈을 달기 위해서입니다.
- What to Learn:
- Concepts: BLDC(Brushless DC) 모터, 홀 센서(Hall Sensor), 광학 엔코더(Optical Encoder), 전기각(Electrical Angle) vs 기계각(Mechanical Angle).
- Skills: 6스텝(6-Step) 정류(Commutation), 포지션 피드백 리딩.
- Tools: 로직 애널라이저(엔코더 A/B/Z 상 파형).
- Trade-offs: 홀 센서는 내구성이 좋고 싸지만 모터 한 바퀴 돌 때 위치를 6번밖에 못 읽어서 저속에서 덜덜 떨리는 반면, 2000줄짜리 광학 엔코더를 달면 한 바퀴에 8000번 위치를 추적하여 바늘 꿰는 정밀 제어가 가능해지지만 센서 가격이 모터보다 비싸지는 광학의 비용.
- How to Learn:
- 1단계: BLDC 안에는 영구자석이 빙빙 돌고 바깥쪽엔 3개의 전자기 코일 뭉치(U, V, W)가 있습니다. 자석이 N극을 내밀 때 귀신같이 그 앞쪽 코일만 S극으로 변환시켜 자석을 유혹해 당기는 타이밍 마법(Commutation)을 해부합니다.
- 2단계: 자석이 대체 지금 어디 있는지 보이지 않는 쇳덩이 속에서, 빛의 깜빡임을 세는 센서(엔코더)로 현재 각도를 0.1도 단위로 읽어 들여 CPU에게 "지금 타이밍에 쳐라!"라고 인터럽트를 때리는 물리적-디지털 변환을 뜯어봅니다.
- Implement: 현재
Rotor_Angle(0~359도)을 가진 모터 객체 시뮬레이션.Encoder.read()가 각도를 반환하면 MCU 루틴이 60도 구간마다 U/V/W 코일의 PWM(On/Off) 상태를 스위칭하여, 매 틱(Tick)마다 회전 토크(Torque)가 +값으로 연속 생성되는 6스텝 통전 로그 증명.
Practical
Core Topic 03: 쇳덩어리의 수학적 영혼 주입, 플랜트 미분 방정식 (State-Space Equation)
- Why to Learn: 현실의 모터에 PWM을 쏴보고 "어 1초 뒤에 한 바퀴 도네"라며 주먹구구로 코딩하는 짓을 멈추고, 코딩 단 한 줄 치기 전에 랩탑 화면 속 가상 시뮬레이터에서 로봇의 뼈와 관성을 100% 똑같이 구동시키는 수식을 쥐기 위함입니다.
- What to Learn:
- Concepts: 상태 공간 모델(State-Space Model, ), 질량-스프링-댐퍼 시스템, 모터 전기-기계 방정식.
- Skills: 상태 변수(State Variable) 정의, 차분 방정식(Difference Equation) 변환, 루프 시뮬레이션.
- Tools: MATLAB / 파이썬 SciPy.
- Trade-offs: 플랜트 수식을 도메인의 전달 함수(Transfer Function)로 짜면 입력 1개 출력 1개짜리 단순 모터에선 수식이 예뻐지지만, 입력 10개 출력 10개짜리 드론이나 관절 로봇에서는 수학이 꼬여 터지므로 결국 무지막지한 행렬 덩어리(State-Space)로 쑤셔 박아 컴퓨터로 때려 푸는 현대 제어의 타협.
- How to Learn:
- 1단계: 모터에 전압 를 걸면 전기 코일에 저항()과 인덕터()가 전류 흐름을 방해하고, 그 전류가 기계 쪽으로 넘어와 토크()를 만들면 이번엔 쇳덩이의 관성 모멘트()와 마찰력()이 끈적하게 각가속도()를 깎아먹는 2원화 물리 법칙을 융합합니다.
- 2단계: 복잡한 2차 미분 방정식을 컴퓨터가 풀 수 있게 제일 쪼잔한 변수 단위(상태 변수 각도, 각속도)로 쪼갠 뒤, 라는 거대한 1차 행렬 곱셈 덩어리로 예쁘게 포장하는 기하학을 뜯어봅니다.
- Implement: 모터의 관성 , 마찰계수 을 갖는 파이썬 행렬 시뮬레이션. 전압
u를 계단(Step) 형태로 입력했을 때, 루프 안에서 상태 행렬이 미분 적분(Euler Method)되어 속도 커브가 형태로 부드럽게 꺾여 올라가는 모터 응답 곡선(Step Response) 데이터 추출.
Advanced
Core Topic 04: 완벽한 수학의 붕괴, 비선형 마찰과 백래시 (Non-linearities)
- Why to Learn: 미분 방정식(Linear)만 믿고 완벽한 제어 코드를 짰는데, 막상 현실 기계에 물려보니 로봇 팔이 덜덜 떨며 춤을 추는 끔찍한 현상을 해결하기 위해 방정식 바깥의 더러운 현실 노이즈를 쑤셔 넣기 위해서입니다.
- What to Learn:
- Concepts: 정지 마찰(Stiction), 쿨롱 마찰(Coulomb Friction), 기어 백래시(Backlash), 데드존(Dead-zone).
- Skills: 비선형 블록(Non-linear Block) 이산화 삽입, 루그레(LuGre) 마찰 모델 적용.
- Tools: Simulink 비선형 블록 다이어그램.
- Trade-offs: 정지 마찰 모델을 복잡하게 넣을수록 가상 플랜트가 현실 기계와 100% 똑같이 움직이지만(Digital Twin), 미분 방정식 안에
if (velocity == 0)같은 분기문이 떡칠되어 시뮬레이션 연산 속도가 나락으로 떨어지고 해석적(수학적) 증명이 불가능해지는 난관.
- How to Learn:
- 1단계: 모터를 1단 기어에서 2단 기어로 돌릴 때, 톱니바퀴 이빨 사이에 공간(틈새)이 있어 모터가 반대 방향으로 도는 찰나의 순간 기어가 허공을 치고 각도 오차가 증발해 버리는 백래시(Backlash)의 잔혹한 물리를 해부합니다.
- 2단계: 속도에 비례해서 마찰이 커진다는 선형적 착각을 부수고, 멈춰있을 땐 땅바닥에 껌딱지처럼 달라붙어 힘()을 줘도 각도()가 0으로 버티다가(Dead-zone), 임계점을 뚫는 순간 미친 듯이 미끄러지는 쿨롱 정지 마찰 기하학을 뜯어봅니다.
- Implement: 가상 모터 플랜트의 업데이트 수식 중간에
if abs(velocity) < 0.01 and torque < Breakaway_Torque: velocity = 0방어벽을 박음. 천천히 토크를 증가시켜도 로봇 팔이 멈춰있다가,Torque=5를 넘는 순간 확 튕겨 나가며 계단 펄스 오버슛을 뿜는 비선형 지터링(Jittering) 시각화.
7. Terminology
8. References
Primary
- [P1] CS2023 - AR/Embedded Systems (Actuators) — Core requirements.
- [P2] SWEBOK v4.0 - Computing Foundations / Embedded Systems Integration — System boundaries.
Secondary
- [Electric Motors and Drives: Fundamentals, Types and Applications] Austin Hughes — The motor bible.
- [Modern Control Engineering] Katsuhiko Ogata — Classical control foundations.
Industry
- [STMicroelectronics: Motor Control Application Note (AN1905)] — Practical drive physics.
- [Texas Instruments: InstaSPIN-FOC Technical Reference] — Industry standard for BLDC.
9. Final Checklist
Primary
- 'PWM'의 듀티비(Duty Cycle)가 증가할 때 모터의 평균 회전 속도가 왜 물리적으로 비례하여 상승하는지 에너지 보존 관점에서 설명 가능한가? (P1)
- 'H-브리지' 회로에서 대각선이 아닌 '같은 세로선'의 두 스위치가 켜졌을 때 어떤 물리적 참사(Shoot-through)가 발생하는지 입증할 수 있는 가? (P1)
Secondary
- '서보 모터'가 부하를 견디기 위해 '토크'를 발생시킬 때, 내부 모터 모델과 기어비(Gear Ratio)가 속도와 힘의 물리적 교환에 어떤 영향을 주는지 소통 가능한가?
- '역기전력(BEMF)'을 측정하여 센서 없이도 회전 속도를 알아낼 수 있는 하드웨어적 조건과 수리적 근거를 도출할 수 있는 가?
Industry
- 고정밀 로봇 팔 설계 시, '스테퍼 모터'의 미세 보폭(Micro-stepping) 기술이 물리적 진동과 소음을 줄여주는 원리를 제안할 수 있는 가? (SFIA)
- 전기 자전거 제어기 설계 시, 회생 제동(Regenerative Braking)을 통해 모터의 운동 에너지를 전기로 역전송하는 물리적 경로를 기술할 수 있는 가?