본문 바로가기

LAB/지능 제어

지능제어(1) Introduction

728x90
반응형

 

 

1. Fuzzy theorem

 

지금까지의 집합(crisp set)은 어느 원소가 집합에 속하는지 아닌지에 대해 확실히 알 수 있다.

그러나 일상에선, 많은 집합들은 구성 요소의 기준이 명확하지 않다. 예를 들어 방 안 온도에 대해 생각해보자. 22도일 때 시원하다고 한다면, 22.1도는 시원하지 않은 것인가?

22도일 때는 시원함의 정도가 10, 26도일 때는 시원함의 정도가 5와 같은 느낌으로 정도를 표현할 수 있다면? 좀 더 납득 가는 결과를 얻을 것이다. 퍼지 집합이란 어떤 원소가 그 집합에 속한 정도까지 나타내는 것을 말한다. 퍼지 이론은 애매모호한 인간의 언어를 컴퓨터 언어로 표현하고자 한 이론이다. 

 

(1) Crisp set and Fuzzy set

Crisp set과 Fuzzy set의 차이

 

또다른 예시 - 이해가 가나요? 네!

 

(2) Membership Function

퍼지 집합을 표현하기 위해 소속 함수(Membership Function) 표시법을 사용한다. membership function이란 어떤 원소가 집합에 속한 정도를 나타내어 주는 함수다. 이는 mA(x)로 정의된다. MF란 입력 공간의 각 점이 0과 1사이의 membership value에 매핑되는 방법을 정의하는 곡선이다.

-> 출력 축은 0에서 1 사이의 멤버쉽 값으로 알려진 숫자다. 

-> 입력 공간은 때때로 담론의 우주(universe of discourse)라고 불린다. 

A라는 classical set이 다음과 같이 정의되었을 때, Fuzzy set은 classical set의 확장이다. X가 담론의 우주이고(X가 input space) 그 원소들이 x로 표시된다면, X의 fuzzy set인 A는 순서 쌍의 집합으로 정의된다. 

µA(x)를 A에서 x의 membership function이라고 한다. MF는 X의 각 요소들을 (0과 1 사이의) 멤버쉽 값에 매핑한다. 이러한 MF 유형에는 삼각형 멤버쉽 함수(trimf), 사다리꼴 멤버쉽 합수(trampf), 단순 가우스 곡선(gaussmf) 등이 있고, fuzzy logic toolbox에서 사용 가능하다. 

 

(3) Fuzzy logic Operators

Fuzzy logic은 standard Boolean logic의 상위 집합이다. 퍼지 값을 1(완전 참), 0(완전 거짓)과 같이 극단적으로 유지하면 표준 논리 연산자가 된다. 

 

 

 

2. Fuzzy control

 

퍼지 제어는 인간의 판단, 애매성을 포함한 제어 알고리즘을 if-then 형식으로 표현하고, 퍼지 추론을 이용하여 실행시킨 것이다. 

예를 들어 방의 온도를 22도로 유지하는 에어컨 시스템이 있다고 하자. 에어컨은 온도가 22도가 넘어설 때부터 작동한다. 즉 온도가 22도 이하라면 에어컨은 꺼질 것이다. 좀 더 구체적으로 Rule을 정하자면, 

온도 > 22 --> 에어컨 on

온도 > 25 --> 에어컨 출력 80%

온도 > 30 --> 에어컨 출력 90%

온도 > 35 --> 에어컨 출력 100%

이러면 온도에 따라 다르게 반응할 것이다. 그럼 수백 개의 제어문장으로 일일히 제어해야 하나? 퍼지의 membership function이 이 문제점을 해결해 줄 것이다. 

 

(1) If-Then Rules

다음 예시와 같이 조건문으로 정의되는 퍼지 규칙이다. X, Y는 변수 그리고 A, B는 입력 공간(X와 Y)의 퍼지 집합에 의해 결정되는 값이다. 

-> IF part를 선행 변수, THEN part를 결과라고 보면 된다. 

 

(2) Classical rules and Fuzzy rules

// Classical IF-THEN rules

RULE 1:
IF	speed is > 100
THEN stopping_distance is long

RULE 2:
IF	speed is < 40
THEN stopping_distance is short
// Fuzzy IF-THEN rules

RULE 1:
IF	speed is fast
THEN stopping_distance is long

RULE 2:
IF	speed is slow
THEN stopping_distance is short

Fuzzy rules은 Fuzzy set과 관련이 있다. 

-> IF 문은 0에서 1 사이의 단일 숫자를 반환하는 해석이다. 

-> THEN 문은 전체 퍼지 집합 B를 출력 변수 y에 할당하는 상황이다. 

 

 

 

3. Fuzzy Interence Process

 

fuzzy inference process에는 5가지 파트가 있다. (in the MATLAB Fuzzy logic Toolbox)

 

(1) Fuzzification of the input variables

입력을 받아, 멤버쉽 함수를 통해, 입력이 적절한 퍼지 집합 각각에 속하는 정도를 결정한다. 입력은 항상 crisp value이고 출력은 멤버쉽의 fuzzy degree다.(출력은 항상 0과 1 사이 간격이다.)

 

(2) Application of the fuzzy operator(AND or OR or NOT) in the antecedent

IF 문이 2개 이상인 경우, 퍼지 연산자를 적용하여 해당 Rule의 선행 부분의 결과를 하나의 숫자로 얻는다. 그러면 이 숫자가 출력 함수에 적용된다. 

-> fuzzy logic toolbox에서는 min(최소)과 prod(곱셈)의 2가지 내장 AND 방식이 지원된다. 

-> 또한 max(최대)와 probabilistic method(확률적 OR 방법)의 2가지 내장 OR 방식이 지원된다. 

 

(3) Implication from the antecedent to the consequent

선행 요소(IF문, 단일 숫자)를 기반으로 결과(THEN문, fuzzy set)를 형성한다. implication process에서의 입력은 선행 변수에 의해 주어진 단일 숫자이고, 출력은 퍼지 집합이다. 각 Rule에 대해 implication(암시)이 발생한다. 출력 퍼지 집합을 잘라내는 min(최소)과, 확장하는 prod(곱셈) 2가지 기본 제공 방법이 지원된다. 

 

(4) Aggregation of the consequents across the rules

각 Rule에 대한 출력을 통일한다. 

 

(5) Defuzzification

Defuzzification의 input은 통합 퍼지 집합(fuzzy set)이고, output은 crisp number이다. 출력 변수가 2개 이상일 경우, 각 변수에 대한 최종 출력은 crisp number이다. 

가장 일반적인 deffuzification 방법은 곡선 아래 영역의 중심을 반환하는 중심 계산이다. 5가지 내장형 방법이 지원되는데, centroid, bisector(이등분선), middle of maximum, largest of maximum, smallest of maximum이다. 

centroid 공식

-> 중심 method : 집합을 2개의 동일 질량으로 수직 절단하는 지점을 찾는다. 윗 그림을 보면, 퍼지 집합 A의 무게 중심을 나타내는 점이 해당 지점임을 볼 수 있다. 

 

 

 

4. 퍼지제어기 구조

 

퍼지화기, FRB, 퍼지 추론부, 비퍼지화기

(1) 퍼지화기(Fuzzifier) : Crisp한 수치적 정보 -> 퍼지 집합으로 변화시키는 연산

(b) : 퍼지화된 예시

(2) 비퍼지화기(Defuzzier) : [퍼지 제어기]에서 [퍼지 추론부의 출력]으로부터 [수치 데이터]를 얻어내는 장치

-> 퍼지 추론부의 출력은 퍼지 집합으로 표현되어 있다.

-> 수치 데이터(Crisp number data)

-> 무게 중심법(Center of gravity Method), 평균 중심법(Center of Average Method), 최대치법(Maximum Method) 등이 있다. 

 

 

 

5. Summary

 

-> 지능 제어는 제어할 system의 엄격한 모델링을 필요로 하지 않는다. 

-> 몇 가지 유형의 지능형 제어 방법이 있으며, 이 section에서는 fuzzy logic을 고려했다. 

    대부분 지능 제어 방법처럼, 퍼지 논리는 인간의 뇌에서 일어나는 추론 방식을 모델링하려고 시도한다.

 

-> fuzzy controller를 디자인하는 5가지 step

1. Define input and output variables
2. Define the subsets intervals
3. Choose membership functions
4. Set IF-THEN rules
5. Perform calculations (using Fuzzy inference) and adjust rules

 

-> fuzzy inference process의 5가지 step

1. Fuzzification of the input variables
2. Application of the fuzzy operator(AND or OR or NOT) in the antecedent
3. Implication from the antecedent to the consequent
4. Aggregation of the consequents across the rules
5. Defuzzification

 

-> Fuzzy logic은 속도, 위치, 레벨 제어, 로봇 궤적 제어 및 장애물 회피, 하이브리드 전기 자동차, 차량 능동형 suspension 시스템, 세탁기 등과 같은 machatronic application 분야에 사용될 수 있다. 

 

 

728x90
반응형

'LAB > 지능 제어' 카테고리의 다른 글

지능제어(2) 임시  (0) 2023.07.26
지능제어(2-1) Homework code1 - Truck Backer-Upper Control  (0) 2023.07.26
지능제어(1-1) Example code  (0) 2023.07.25