본문 바로가기

Theory/ControlTheory

T-S 퍼지 모델을 이용한 로터리 펜들럼 제어기 설계

T-S 퍼지 모델의 설명을 허덥하지만, 2009/07/07 - [쿼드콥터/Reference] - T-S Fuzzy Modeling에서 이야기 했었습니다. 그 T-S 퍼지 모델을 실제 적용하는 예제로 2009/04/17 - [공학기초/Robot] - Rotary type Inverted Pendulum (로터리 역진자) 시스템에서 이야기한 로터리 펜들럼에 적용해 보겠습니다. 이 주제는 실제

홍콩에 몹시 가고싶어한 한 선배의 열망을 담아 당시 이노무손들(손명공,손천돈)이 작업한 내용에 저는 숫가락만 살짝 결쳤던 논문 - Design of a Stabilizing Controller using T-S Fuzzy model for a rotary inverted pendulum - 에 수록된 내용입니다.

이미 이전에 T-S 퍼지 모델을 언급할 때 이야기 했듯이 T-S 퍼지 모델을 완성하면 위와 같은 형태가 됩니다.

여기서 r은 퍼지룰의 개수인데, 그것은 선형독립인 함수의 개수를 v라 할때 2의 v승으로 나타나게 됩니다. 또한 h는 함수의 소속정도를 의미합니다. 결국 각 A,B행렬들은 위의 세번째 수식으로 도출되게 되지요.

이때 모든 h들의 합은 1이 되어야합니다.

i번째 룰의 제어게인은 Ki라고 하고 결정된 제어입력 u는

위와 같은 형태가 됩니다. 그걸 최초식에 대입하면

저렇게 되겠지요. 제어기 설계를 위해 LMI(Linear Matrix Inequality: 선형행렬부등식)를 사용하기 위해 식을 좀 바꿔줘야하겠습니다

위와 같이요. 그러면

를 만족하는 양정의(positive definite matrix)행렬 P를 찾으면 됩니다. 이때 입력제한을 설정하고

출력제한도

같이 설정을 하면 위 선형행렬 부등식을 풀어버리면 됩니다. 당연히 사람의 손으론 불가능하니 MATLAB이라는 좋은 툴을 사용해야겠지요^^ 그럼 이미 이야기한 로터리 펜들럼에 어떻게 적용하는지를 보겠습니다.

위 그림에서 유도되었던 로터리 펜들럼의 결과식은

이었습니다. 문자의 혼돈을 피하기위해

위와 같이 x1은 폴의 각도, x3는 암의 각도이고, x2는 폴의 각속도, x4는 암의 각속도가 됩니다.

동작범위와

각 계수값들입니다.

위의 형태로 표현되기 위해

fi를 찾아야할텐데

그러면 먼저 gi들을 정의해야지요. 동역학을 보고, 선형독립인 함수를 잡아줍니다.

그러면, 위의 상수행렬부터 모두 설정되게 됩니다. 이전 T-S 퍼지 모델 설명할때 이야기했던 짧은 예제를 이용하면 그리 어렵지 않게 따라올수있을 것입니다.

이때 각 함수들의 최대 최소값을 찾고 소속정도를 의미하는 h함수들도 정의합니다.

그러면 독립인 함수를 4개로 봤으니 룰은 16개가 나타나게 되겠지요. 위 식을 계산하면 각 A, B행렬이 나타나게됩니다.

이때 당연히 제어게인도 16개가 나타나지요

PC에서 MATLAB을 이용한 시뮬레이션 결과를 나타낸것입니다.

이제 이전 로터리펜들럼에 실제 적용한 결과입니다.

사실 로터리 펜들럼은 동작될때 동작구간자체가 겨우 +-5도 정도이기 때문에 선형제어기 하나면 충분하다는 것도 알수있습니다.^^. 특히 제어게인 K들의 수치들을 보면 상당히 흡사하다는 것도 또한 알 수 있으니까요^^. 뭐 그러나 T-S 퍼지 모델을 이용한 제어기 설계를 실제 시스템에 적용해본 논문들을 찾기가 어렵기 때문에 실제 적용을 했다.... 정도의 약한 퀄리티이긴 하지만, 뭐 나름 의미를 가지는 내용이라고 할 수 있습니다.^^. (자기미화중^^)

반응형