튜닝 컨트롤러에 유전자 알고리즘 사용


9

비선형 시스템 (예 : 비선형 진자)을 제어하기위한 논문 을 읽었습니다 . 비선형 시스템을 타겟팅하는 방법에는 여러 가지가 있습니다. 가장 일반적인 것은 피드백 선형화 , 백 스텝핑슬라이딩 모드 컨트롤러입니다.

필자의 경우 C ++에서 간단한 진자의 비선형 모델과 기타 조작기 문제를 제어하는 ​​이론적이고 실용적인 부분을 수행했습니다. 진자의 경우, 각도 변위 및 속도에 대한 추적 작업을 해결하기 위해 백 스텝핑 컨트롤러를 사용했습니다. 결과는

θ¨+(k/m)θ˙+(g/L)sinθ=u

어디 m=0.5,k=0.0001,L=.2g=9.81.

그래프 1

그래프 2

결과는 좋습니다. 그러나 컨트롤러를 조정하는 데 시간이 오래 걸립니다. 대부분의 논문 은 PD, PID 및 백 스텝핑 컨트롤러와 같은 컨트롤러를 조정 하기 위해 유전자 알고리즘 을 사용 합니다. 나는이 분야에서 단서가없고 누군가가이 개념에 대해 약간의 지식을 밝히기를 바란다. 최소한 간단한 진자를 제어하기위한 MATLAB 샘플이 있다면 바람직하다.

지금까지 컨트롤러를 수동으로 조정하기 위해 C ++ / Qt에서 간단한 GUI를 설계했습니다. 아래 그림에서 스텝 기능에 대한 컨트롤러의 응답입니다.

컨트롤러 튜닝 애플리케이션의 GUI 스크린 샷

답변:


1

파라미터 튜닝에 진화 적 방법 (GA는 그중 하나임)을 사용하는 것이 실제로 제어 영역에서 일반적인 방법 [1]입니다. 특히 비선형 시스템의 경우 최적의 매개 변수에 대한 분석 솔루션을 찾기가 어려울 수 있습니다. 혁신적인 방법은 거의 최적의 매개 변수를 효율적으로 검색하는 방법 중 하나입니다.

널리 사용되는 매우 성공적이고 보편적 인 방법은 CMA-ES 입니다. MATLAB을 포함 하여 많은 구현 이 있습니다. 다양한 형태의 폴 밸런싱이 종종 벤치 마크로 사용된다는 것을 알고 있습니다.

알고리즘을 적용하는 것은 일반적으로 그렇게 어렵지 않습니다. EA의 피트니스 기능이라고하는 결과의 성과를 평가하는 것이 일반적으로 가장 관여하는 부분입니다.

[1] PJ Fleming, RC Purshouse, 제어 시스템 엔지니어링의 진화 알고리즘 : 조사, 제어 엔지니어링 실습, 10 권, 11 호, 2002 년 11 월, 페이지 1223-1241, ISSN 0967-0661, http : //dx.doi. org / 10.1016 / S0967-0661 (02) 00081-3 .


GA에 대해 읽을 가치가 있다고 생각되는 좋은 책을 발견 한 적이 있습니까?
CroCo

8

유전자 알고리즘은 사용자가 시스템을 '미세 조정'할 필요를 없애고 컴퓨터가 시스템을 조정하는 방법을 파악할 수있게 해주는 기계 학습 기술입니다. 이 접근 방식의 장점은 연구원 / 사용자의 시간을 절약하고 종종 연구원 / 사용자가 스스로 달성 할 수있는 것보다 더 나은 시스템으로 이어질 수 있다는 것입니다.

유전자 알고리즘을 사용하는 일반적인 아이디어는 다음과 같은 몇 가지 기본 제어 흐름을 따릅니다.

Create_X_Number_Of_Random_Controllers()
while (Not_Yet_Satisfied_With_tuning)
    Score_Each_Controller_Based_On_Performance()
    Remove_Lowest_Performing_Controllers()
    Create_New_Controllers_By_Mixing_Best_Performers()
    Add_Slight_Randomness_For_Evolution()
Display_Top_Performer()

실제로이 원리를 쉽게 보여줄 수있는 가장 좋은 예는 유전자 진화를 사용하여 코스를 주행 할 수있는 차량을 디자인하는 '게임'입니다. 실제로는 직접 튜닝하지 않고도 미세 조정하려는 모든 시스템에 동일한 아이디어가 적용됩니다. 예 : http://rednuht.org/genetic_cars_2/


그것이 @CroCo가 유전자 알고리즘을 사용하여 의미 한 것이라면, 튜닝의 Ziegler Nichols 방법은 훌륭하게 절차 적이므로 구현하기에 훌륭한 후보가 될 것입니다.
SteveO

@CroCo가 의미하는 바를 알 수 없지만 Ziegler Nichols의 문제점은 여전히 ​​유전자 알고리즘과 마찬가지로 시스템의 모든 측면을 변경할 수 있으며 '진화'할 수있는 구성 요소 중 하나를 조정해야한다는 것입니다. 개발자가 무자비한 작업을 수행하지 않아도 일치
beeedy

1
이 답변은 여전히 ​​일반적인 달성 과정입니다. 유전자 알고리즘은 전체 연구 분야이며 복잡한 반응을 나타 내기까지는 복잡하지만, 모델을 튜닝하는 데 관심이 있다면 읽어보십시오.
beeedy

2
오버 튜닝 할 때 문자열을 매우 행복하게 만드는 잘못 묶인 유전자 알고리즘을 상상하고 있습니다.
Ramrod

1
@octopus가 언급했듯이 컴퓨터가 조정하려는 장치를 물리적으로 제어 할 수있는 시간을 오랫동안 허용하지 않으면 실제 물리 장비로는 달성하기가 어렵습니다. 성능을 기준으로 각 컨트롤러의 점수를 매기고 머신이 손상되지 않는지 확인합니다. 전체적으로 이것은 구현하기 위해 유전자 알고리즘에 대해 많은 독서를 해야하는 비교적 복잡한 작업이며, 이것은 작은 작업이 아닙니다.
beeedy

2

나는 당신이 유전자 알고리즘이라고 부르는 것에 혼란 스럽습니다. PD, PID 컨트롤러는 휴리스틱 또는 확률 론적 방법이 아니며 진화 알고리즘을 기반으로하지 않습니다. 대신, 시스템 응답의 극점과 0을 배치하여 원하는 성능 (오류 최소화, 응답 속도, 정착 시간, 안정성 및 교란 거부)을 제공 할 수 있도록하는 결정 론적 알고리즘입니다. 제 생각에는 좋은 학습 참고 자료는 Kuo의 자동 제어 시스템 책입니다. Raven의 자동 제어 공학 서적 에서 덜 엄격한 치료법을 찾을 수 있습니다 .


유전자 알고리즘 (GA)에 익숙하지 않습니다. 방금 일부 논문이 컨트롤러의 튜닝 부분이 GA를 사용하여 수행되었다고 주장하는 것을 보았습니다. 이 문제에 관한 논문에는 더 이상의 세부 사항이 없습니다. 도대체 GA가 무엇인지, 어떻게 활용할 수 있는지 모르겠습니다.
CroCo

파라미터 튜닝에 진화 적 방법을 사용하는 것은 매우 일반적인 기술입니다. 나는 당신이 묘사하고있는 분석적 접근법에 대한 대안적인 방법으로 생각할 것입니다.
Jakob
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.