[고등자동제어] Introduction

2020. 11. 12. 20:31·연구 Research/제어 Control

# 수업과 교재를 참고하며 쓰는 글입니다. (교재는 최신제어시스템 Modern Control System, 제13판, Richard C. Dorl & Robert H. Bishop)

# 개인 공부 목적 및 공유 목적이지만, 이 글의 자료는 함부로 가져가지 말아주세요.

 

 

 

내용 개요

내용 개요를 위해서 마인드맵을 그려보았습니다.

생각보다 쓸 내용이 많아서 마인드맵이 너무 커졌는데, 툴 사용법을 좀 더 잘 익히게 되면 좀 더 나아질 것이라 믿습니다 허허.

 


▼아래는 글씨를 읽을 수 있게 반씩 자른 버전 (클릭하면 확대됩니다.)

 

마인드맵 오른쪽 파트


마인드맵 왼쪽 파트

 


1. Control System

 

시스템을 제어한다는 것은 무엇인가?

기본적으로 Regulation과 Tracking으로 나눌 수 있습니다.

 

시스템을 원하는 trajectory를 따라가면서(Tracking), steady state 값을 유지하도록(Regulation) 다루는 것입니다.

시스템을 제어할 때는 stability(안정성), performance(성능), robustness(견실함)을 충족시켜야 합니다.

즉, 시스템은 즉각적으로 내가 원하는 값에 도달하면서, 그 원하는 값을 안정하게 유지하고, 외부의 노이즈를 견딜 수 있어야 합니다.

 

 

2. Method of System

부제 : Open loop control system VS. Feedback control system (Closed loop control system)

 

내가 입력한 input이 있을 때, 시스템에서 output이 나타납니다.

이 output을 측정하여 다시 시스템에 반영해 제어하는 것을 feedback control system입니다. output을 반영하지 않고 제어하는 시스템은 open loop control system입니다.

 

출처 : https://en.wikipedia.org/wiki/File:BasicClosedLoop.jpg (Author : Amin Rahimian)

위와 같은 시스템을 feedback control system이라고 합니다.

feedback control system을 구성하는 요소는 Controller, Actuator, Plant, Sensor 4가지입니다.

 

이해를 위해 RC카에 빗대어 표현을 하겠습니다.

 

Controller :

위에서 C(s)가 의미하는 것은 controller이고 일반적으로는 RC카에 설치된 컴퓨터(라고 하지만 마이크로컨트롤러)가 그 역할을 합니다. controller 대신 filter나 compensator로 불리기도 합니다.

내가 원하는 reference input과 실제 output 사이에 error가 있을 때 이것을 시스템이 받아들일 수 있는 input으로 바꾸어주는 역할을 합니다. RC카에서 특정 속력을 내고 싶다면 그 속력 입력값이 reference input이 됩니다.

 

Actuator :

C(s) 블록과 G(s) 블록 사이에 Actuator가 있습니다. 흔히 구동부라고 합니다. RC카를 제어할 때 그 바퀴를 구동부로 볼 수 있습니다.

 

Plant :

G(s) 블록으로 나타나는 부분입니다. RC카로 보면, 바퀴가 구동부지만 실제 RC카가 어떤 속력을 낼지는 환경적인 요소 및 RC카의 무게 등의 특성이 결합되어 나타납니다. Controller의 명령에 따라 작동한 RC카의 바퀴로 인해 바뀌는 RC카(와 기타 다른 요소, 노이즈의 조합) 시스템 자체가 Plant가 됩니다.

 

Sensor :

원하는 reference input에 도달했는지 알기 위해서는 output을 관찰해야합니다. 만약 RC카에 속력을 측정할 수 있는 센서가 있다면, 이 값을 측정하여 feedback할 수 있습니다.

 

 

3. Classification of System

 

우리가 다룰 시스템은 주로 LTI system이겠지만, 기본적으로 시스템의 종류에 대해 알아야 합니다.

 

1) 과거의 값을 현재에 반영하는가?

  • Static system : 현재의 output이 현재의 Input에만 영향을 받는다. - memoryless
  • Dynamic system : 현재의 output이 과거와 현재의 Input에 영향을 받는다. - have a memory

(미래의 input에 영향을 받는 시스템은 현실에서는 존재하지 않고, 이런 시스템을 non causal system이라고 합니다.)

 

2) Linearity

  • Linear system : superposition principle이 적용되는 시스템

 

3) Time domain에 따라

  • Continuous time system : 일반적인 시간 흐름에 따라 진행되는 시스템. Linear continous time system은 linear differential equation으로 표현할 수 있습니다.
  • Discrete time system : 정수 domain(-1, 0, 1, 2...)에 따라 진행되는 시스템. Linear discrete time system은 linear difference equation으로 표현할 수 있습니다.

Digital control system은 continuous time과 discrete time 모두 가지고 있는 시스템입니다.

 

 

4. History of Control theory

 

1956년 state space model을 기점으로 classical control과 modern control을 나누는 것 같습니다. classical control theory라 해서 의미가 없거나 사용하지 않는 것은 아닙니다.

 

  • Classical control theory : Single Input Single Output(SISO), Frequency domain에서 해석하는 기법들 (ex. Bode plot, Nyquist plot, Root-locus)
  • Modern control theory : Multiple Input Multiple Output(MIMO), State space method, Dynamic programming, maximum principle, Kalman filter 등 다양한 기법들이 등장함.

 

그런데 1970년대부터 AI 개념이 등장하고, ANN(Artificial Neural Network)이 등장하면서 1990년대에 제어 문제를 model-free approach로 해결하려는 시도가 있었습니다. 그 전에는 수학적으로 모델링해서 해석하는 model-based approach였죠. 둘은 대립하고 있는 한편, 공존하고 있습니다.

 

p.s.하지만 제 경험 상 대부분의 교수님들은 model-based approach가 더 합리적이라고 생각하셨습니다. 제어는 안정성이 매우 중요하기 때문에 사례를 기반으로 한 ANN을 어디까지 신뢰할 수 있을지가 넘기 어려운 부분이라고 생각합니다.

 


제어에서 필요한 수학적 지식 : Linear algebra, Vector differential equations, Calculus of variations, stochastic processes

 

'연구 Research > 제어 Control' 카테고리의 다른 글

[고등자동제어] System modeling  (2) 2020.12.03
[고등자동제어] State space와 transfer function의 관계  (2) 2020.11.19
[고등자동제어] State space model  (0) 2020.11.18
[고등자동제어] Z-transform  (0) 2020.11.17
[고등자동제어] Laplace Transform  (0) 2020.11.13
'연구 Research/제어 Control' 카테고리의 다른 글
  • [고등자동제어] State space와 transfer function의 관계
  • [고등자동제어] State space model
  • [고등자동제어] Z-transform
  • [고등자동제어] Laplace Transform
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (460)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability & Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (21)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 유학 생활 Daily (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Linear algebra
    teps
    LaTeX
    딥러닝
    ChatGPT
    IEEE
    서버
    논문작성
    Numerical Analysis
    Julia
    Statics
    MATLAB
    Dear abby
    인공지능
    논문작성법
    텝스공부
    Python
    JAX
    옵시디언
    생산성
    고체역학
    obsidian
    pytorch
    우분투
    에러기록
    WOX
    텝스
    Zotero
    수치해석
    matplotlib
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[고등자동제어] Introduction
상단으로

티스토리툴바