본문으로 바로가기

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 퍼지 모델을 이용한 제어기 설계를 실제 시스템에 적용해본 논문들을 찾기가 어렵기 때문에 실제 적용을 했다.... 정도의 약한 퀄리티이긴 하지만, 뭐 나름 의미를 가지는 내용이라고 할 수 있습니다.^^. (자기미화중^^)


댓글을 달아 주세요

  1. 2009.07.31 18:56

    비밀댓글입니다

    • BlogIcon PinkWink 2009.07.31 20:38 신고

      ㅎ... 죄송합니다. 어려운 질문입니다.
      ㅎㅎㅎ
      관심있는 분야가 단지 제작이라면
      마이크로프로세서하나를 선정하시고 익혀가시면서 만들고자하는 로봇의 형태를 잡으십시오^^

      만약 관심있는 분야가 이족보행이나, 벨런싱로봇처럼 불안정해서 제어라는 개념이 심도있게 탑재되어야한다면, 동역학이라는 학문과 자동제어라는 학문의 이해가 필요합니다.

      그러나 가장 먼저하셔야할것은
      제생각에는 역시 목표를 잡으셔야할 듯합니다.
      그냥 공부해보자... 하시면 진도가 잘 안나가더군요... (제경우에는)^^

      그리고... 질문은 가급적 개인정보가 유출되지 않는한
      비밀글이 아니라 공개로 해주시길 바랍니다.^^

  2. 케이크 2011.08.07 22:18 신고

    안녕하세요 ㅎㅎ

    포스팅한 자료들 공부에 너무 많이 도움이 되네요..ㅎ

    다름이 아니라.. 질문이 있는데요..

    TS Fuzzy모델은 어떻게 simulink로 나타내지요?

    FIS Editor로 mamdani방식은 어떻게 하겠는데 TS는 감이 안잡히네요 ㅎ

    input/output을 어떤걸로 해야할지, rule은 어떤식으로 짜야하는지..

    총체적 난국이네요.. 도와주세요 ㅠㅠ

    • BlogIcon PinkWink 2011.08.08 07:43 신고

      T-S 퍼지 모델을 시뮬링크로 꾸민적이 없습니다.ㅠㅠ
      원 시스템을 (비선형 동역학 모델) 그대로 사용했습니다.
      T-S퍼지 모델은 선형제어기로 제어가 되지 않는 시스템에서
      병렬분산보상기(PDC)를 설계하기 위해 등가의 모델을 구하는데 사용했을 뿐이랍니다.^^