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


9

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

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

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

어디 m=0.5,k=0.0001,L=.2 과 g=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.