1. 전달함수
1) 개요
전달함수는 시스템의 수학적 모델을 나타내는 방식중 하나로, 라플라스 변환을 통해 주파수영역에서 나타내 주고, 이 입출력 신호의 비를 G(s)로 표시하여 전달함수라고 한다.
2) 라플라스 변환
미분방정식을 쉽게 풀 수 있게 해주는 방법중 하나이다.
라플라스 변환은 시간영역에서 주파수영역으로 변환을 시켜준다.

3) 기계시스템의 전달 함수

2. 상태공간 설계
1) 상태변수
시스템 특성을 나타내는 변수. 병진운동에 대한 시스템의 특성을 알 수 있는 상태변수. 시간에 따라 변하는위치, 속도, 가속도 값에 의해 힘이 결정된다.

2) 상태공간모델 구성
- 상태방정식 : 차수가 높은 미분방정식을, 여러 개의 1차 미분방정식으로 나타낸 것

- 출력방정식 : 출력이 입력과 상태변수와 어떠한 관계로 이루어져 있는지를 보여주는 방정식

3. 제어 안정성 심화
1) 전달함수에서의 제어 안정성
- 전달함수는 시스템의 수학적 모델을 나타내는 방식중 하나이다.
- 극점의 위치에 따라 안정성이 결정되는데, LHP에 존재하면 안정하다고 볼 수 있다.

2) 상태공간에서의 제어 안정성
- 행렬의 고유값을 통해 안정돌르 분석할 수 있음
- 전달함수에서의 극점이, 상태공간에서 시스템 행렬의 고유값과 같음. 전달함수에서는 극점, 상태공간모델에서는 시스템 팽렬의 고유 값이 좌반면에 존재할 때, 그 시스템이 안정하다고 할 수 있다.
4. 순항제어기 설계
1) 순항제어기의 구조
Vehicle : 앞뒤로 움직이는 차량의 종방향 모델
Rdference : 운전자가 지정한 목표 송력
Speed : 현재 차량의 속력(바퀴수, IMU 센서로 측정)
Error : 오차. Reference - speed
Control Input : 제어 입력, 차량을 움직이기 위한 가속도가 차량에 인가 됨

2) 차량의 종방향 모델링
하위제어기를 포함한 내부시스템에서 목표 가속도를 입력을 받은 이후 엔진, 컨버터, 변속기, 바퀴로 이루어지는 파워트레인을 거쳐 힘이 전달됨
이때 바퀴가 움직임에 따라 차량의 가속도, 속도가 생성된다.

3) PI(Proportional-Integration) 제어기 설계
- 제어기의 설계 목표는 속력 오차가 없도록 만드는 것 (입력은 속력오차, 출력은 목표 가속도)
- 정상상태 오차가 없도록 설계 가능한 PI 제어기 설계
- 속력 오차 값을 이용하여 설계

5. String Stability
1) 유령정체 현상의 이유
유령정체 현상이란 차선변경 또는 앞 차량의 급정거로 인항 오차들이 점점 뒤로 와서 뒤에 있는 차량들이 정체되는 현상을 의미한다. 이러한 정체가 발생하지 않도록 제어기를 설계를 위한 조건을 알아야 한다.
2) Error Propagation
뒤쪽으로 갈수록 Error 값이 커지면서 전파 된다.
3) String Stability 필요성.
String Stability란 앞 차량의 오차가 뒤 차량오차로 전파되지 않는 것을 의미한다.
Spacing Error : 현재 상대거리와 목표 상대거리의 차이
전달함수로 표현하면 아래와 같음

사람이 운전하는 경우 안전거리, 응답속도가 달라 만족이 어렵다. 유동적인 상대거리를 설정할 필요가 있으며, String Stability를 만족시키는 제어기가 필요하다.
6. Constant Spacing Control
1) Cruise Control과 Adaptive Cruise Control의 차이
CC는 자차의 속력을 피드백으로 받고, ACC는 상대 거리를 프드백으로 받음
2) PD 제어기 설계
앞 차량의 움직임에 반응 속도가 빨라야 하기 때문에 응답속도를 개선하는 PD 제어기 설정. 앞 차랑의 움직임에 따라 상대거리 오차가 발생
3) Constant Spacing Control의 한계 이해
모든 차량이 같은 제어기 설계시 아래와같은 식이 나옴

이때 Bode Plot을 찍어보면 0db를 넘는 경우가 항상 생기므로 string stability를 만족할 수 없음
고정된 목표 거리값 대신, 유동적 목표거리 선정이 필요하고 이를 CTG라고 부른다.
7. Constant Time Gap (CTG) Control
1) Constant Time Gap (CTG)
고정된 목표 상대거리 값을 사용하는 것이 아니라, 속도에 따라 변하는 목표상대 거리 값으로 선정해주는 방식

이때 h를 Time-Gap 파라미터라고 한다.
2) CTG 제어기 설계

3) CTG의 String Stability

적절한 람다값과 h 값을 선정해주면 항상 1보다 작거나 같은 값이 되도록 설계가 가능하다.
h는 파워트레인의 시간상수인 타우보다 2배 커야 한다는 조건이 있다.
8. 협동적응형순항제어 (Cooperative Adaptive Cruise Control)
1) 협동적응형순항제어 CACC의 개요
기존의 ACC보다 한단계 더 발전한 제어 방식으로 차량간 V2V통신을 이용하여 앞차량의 정보를 받아서 제어 사용한다. 이를 통해서 앞차량과의 간격을 더 가깝게 유지할 수있고 여러대의 차량이 군집으로 움직일 수 있게 된다.
2) 장점
- 고속도로를 더 효율적으로 사용할 수 있음
- 연비 향상
- 운전의 피로를 낮춤
- 사고의 위험도 감소
3) String Stability

h에 의해서만 String Stability가 영향을 받으며, h를 매우 작게 하더라고 항상 1 보다 아래로 갈 수 있다!
9. Active Steering
1) 능동형 조향시스템
- Steer by Wire 시스템은 기계적 연결장치가 줄어 무게를 줄이고 연비 향상을 가져올수 있으나 고장에 취약하고 가격이 비싸다는 단점을 가지고 있다.
- 능동형조향장치는 MDPS 방식과 SBW 방식의 중간 단계로 Active Front Steering(AFS) 라고 부르기도 한다. 유성기어에 의해서 기계적인 연결을 유지하면서 입력 조향각 대비 출력 조향각 크기를 가변할 수 있다.
2) 능동형 조향시스템의 역할
-차량의 조향성능, 횡방향 안정성을 향상시키기 위해 느동조향각을 추가. 자동차에 가해진 조향각과, 운전자가 원하는 조향각 사이의 차이가 발생하면 능동적으로 조향각을 조절한다. 빙판길과 같이 미그러운 노면 등에서, 조향의 응답성을 향상시킨다.
- 빠르게 달리는 경우 조향비를 높여 안정성을 확보하고, 느리게 달리는경우 조향비를 낮추어 반응성을 증진
3) 능동형 조향시스템 구성 및 제어
- AFS 제어기는 가변제어기와 차량 동특성 제어기와의 협력을 통해 제어 입력을 계산한다.
- VGR(가변 조향비)
낮은 조향비 : 적은 입력으로 큰 조향 출력 > 저속에서의 편의성 추구 (내가 핸들을 몇배 꺾어야 바퀴가 움직이는지 )
높은 조향비: 고속에서 안정성을 추구
- VDC(차량 동특성 제어기)
조향 입력, 브레이크 등의 입력을 받아 차량의 과도한 조향각, 미끄러짐을 감지
능동적으로 출력 조향각을 조절하여, 입력 조향각을 최대한 잘 따라갈 수 있도록 한다.
10. Torque Vectoring
1) Torque Vectoring 개요
- Vector : 크기와 방향을 모두 가지는 양
- Torque Vector : 바퀴로 전달되는 토크의 크기와 방향
- Torque Vectoring : 토크의 변화를 주어서, 벡터의 크기와 방향을 변화시키는 기술
2) 언더스티어와 오버스티어
- 언더스티어 : 운전자가 입력한 조향 값 보다 자동차가 덜 돌아간 것. 빠른 속도로 코너에 진입을 하게 되면서, 앞바퀴가 접지력을 잃고 미끄러지면서 발생
- 오버스티어 : 운전자가 입력한 조향값 보다 더 많이 돌아간 것. 언더스티어와는 반대로 뒷바퀴가 접지력을 잃었을 때 발생
3) 선회반경과 차동 장치
- 코너링 = "선회주행"을 하는 경우 좌우 바퀴 회전수가 달라야 한다.
- 차량이 선회주행을 하는 경우, 선회반경이 큰 바깥쪽 타이어를 더 빠르게 하고, 안쪽 타이어를 느리게 회전시키는 것이 유리!
- 차동기어는 이런 양쪽 바퀴가 서로 다른 속력으로 움직일 수 있게 해주는 장치이다.
4) Torque vectoring 의 역할과 종류
- 좌우 바퀴로 전달되는 토크를 독립적으로 조절 할 수 있는 기능
- 목적 : 선회 운동을 위해 차동기어, 디퍼렌셜의 기능을 유지 // 필요한 상황에 맞게 적절한 수준의 토크를 알맞은 바퀴로 전달하는 기능
- 종류 : 차동기어를 제어, 브레이크로 제어(힘의 손해가 발생)
11. 차량의 운동학 모델
1)운동학
시스템이 어떤한 방식으로 운동을 하는가를 보여주는 방식 // 운동의 원인인 힘을 고려하기 보다는, 물체의 이동, 이동에 따른 궤적, 속도, 가속도 등을 기하학을 이용해 나타내는 것에 초첨을 맞춤
2) 자동차 운동학 모델(Kinematic Bicycle 모델)의 가정
- 자동차는 평면으로 다님
- 타이어는 미끄러짐 없음
- 앞바퀴로만 조향
- 양쪽 바퀴를 하나의 바퀴로 취급
- 자동차의 속력은 일정
3) 자동차 운동학 모델 : 변수정의

4) 자동차 운동학 모델 : 유도 과정

12. 차량의 동역학 모델
1) 동역학 개요
원동의 원인이 되는 힘을 고려해서, 이 힘이 시스템에 어떤 영향을 미치는지 분석해서 나타내는 방식
2) 변수 정의

3) 자동차 동역학 모델 유도과정

4) 자동차 동역학 모델 : 당태 공간 모델

5) 요약
결국 타이어 미끌림각 (앞바퀴의 조향각과, 앞바퀴가 가지는 속도 V와 차체와의 각도 세타간의 차이)에 의해서 자동차의 횡방향 힘이 발생.
타이어 코너링 강성은 타이어의 미끌림 각, 주변환경에 따라 비선형적이다
13. Pure Pursuit 기법
1) Pure Pursuit의 개요
로봇 또는 자동차가 주어진 경로를 기하학, 운동학만을 이용해 추종하는 방식. 차량의 미끄러짐과 같은 다이나믹한 특성은 무시된다.
2) 구성요소

3) Pure Pursuit의 원리 및 응용

14. Stanley 기법
1) Stanley 기법의 개요
2005년 DARPA 그랜드 챌린지에서 우승한 미국 Sebastian Thrun 교수팀이 사용한 자동차의 이름이자 제어기법이다
2) 구성요소

3) Stanley 기법의 원리 및 응용
- 원리 : 조향각도를 헤딩 오차의 횡방향 오차에 비례하도록 설계
- 응용(속도 상수를 추가하면 속도값이 작아져도 분모가 0에 가까워지는 것을 방지가능)

15. Full State Feedback 제어기
1) Full State Feedback 개요 및 설계
모든 상태변수를 이용하여 피드백 구조를 만들어 제어를 하는 방식. 제어기 설계를 위해 상태 공간모델 사용

설계

2) Pole Placement
우리가 원하는 특정 고유 값을 가지도록 하는 방법.
Pole을 위치시킨다는 의미로 Full state feedback이 대표적인 예시이다
3) Full State Feedback 설계


16. Linear Quadratic 제어기
1) LQ 제어기
- 최적화 방식을 이요한 제어기중 하나.
- 설계 방식 : 시스템의 상태 방정식 구하기 > Performance Index 또는 비용함수 정의 > Algebraic Riccati Equation 수식을 풀어 K 값 선정
2) 비용함수
- 최적화 하고자 하는 변수의 상관관계를 통해 이루어진 함수
- 최적화 : 비용함수가 최대 또는 최소가 되는 최적의 변수 값을 찾는 과정
- 일반적으로 최대 최소의 값이 존재할 수 있는 2차 함수, 재곱의 형태를 이용해서 나타낸다

3) ARE(Algebraic Riccati Equation)
lQ 제어기 설계시 만족해야하는 2가지 조건을 풀어주는 수식

17. 상태관측기 설계
1) 상태관측기란?
시스템이 가지고 있는 상태를 알기 위한 장치
- 센서를 통해 얻을 수 없거나, 측정 할 수 없는 값들을 수식을 통해 관측 또는 추정하는 것을 의미
- 상태 추정기 = State Estimator로도 불린다.
2) 상태관측기 설계

3) 상태관측기 구조

18. 상태관측기 기반 제어기 설계
1) State Observer 와 State Feedback
적절한 L의 값을 찾는 것은 Full State Feedback 에서 다루었던, Pole Placement 방식을 통해서도 가능하다.


2) 상태관측기 기반 제어기 설계(자율주행차 횡방향)
- 고유값을 구하기 위해, 특성화 방정식을 이용.

- 고유값이 복소평면 좌반면에 존재해야 하기 때문에, -2와 -3에 존재한다고 가정

- Full State Feedback 제어기를 설계

- 상태 관측기를 설계

- 출력 값을 비교
- 차이를 관측기 이득 L을 곱하여 시스템 모델이 보정할 수 있도록 넣어줌
- 횡방향 상태 변수 x 값을 시스템 모델에서는 x*로 알수 있음
- Full State Feedback을 설계 가능
- 추정된 x값에 제어기 이득 K를 곱하면 u = -Kx 대신 y= -Kx를 입력으로 넣을 수 있다.

19. 모델예측 제어
1) 모델 예측 제어의 필요성 및 개요
자율주행은 여러가지 제약조건들을 동시에 고려해 주어야함. 이러한 문제를 해결하기 위해서 사용되는 방법 중 하나가 바로 모델 예측 제어.
모델 예측 제어 : 상태변수나 출력을 예측, 적절한 비용함수와 제약조건 설정, 최적화를 실행, 제어입력 계산
2) 이산시간 상태공간 모델
- 이산화 : 연속적인 시간에서 나타내었던 시스템을 컴퓨터가 이해할 수 있도록 바꿔주는 과정
- 이산화 된 시간 (Discrete Time)
- 이산화된 상태공간 모델 : 이산화된 시간에서 시스템의 상태공간 모델을 나타낸것
- 이산시간에서는 현재 입력과 상태변수를 기반으로, 시스템의 상태변수가 그 다음 sampling 시간에 어떻게 바뀌는지 알기 위한 형태로 나타낸다

3) 모델에측 제어의 구성요소

20. 지능제어
1) 퍼지제어
- 퍼지라고 하는 것은 시간적 정의로 "사고나 판단의 애매함"을 의미
- 애매한 것을 숫자로 나타내고, 이를 기반으로 제어를 하는 것.
2) 신경망 제어
- 뉴런의 수학적 모델링을 기반으로 구현된 신경망을 통해 제어하는 방식
- 입력으로부터 출력까지 모든게 오로지 신경망에 의해서만 연결된 방식으로 제어
- 왜 이런 제어가 잘 되는것인지에 대한 분석이 어렵다
3) 강화학습
여러 번의 시행착오를 거쳐 어려 개의 행동 중 보상을 최대화 하는 행동을 선택하는 방식
