ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자율주행/ADAS] 크루즈 컨트롤 (Cruise Control) MATLAB/Simulink 설계 봅시다
    카테고리 없음 2020. 2. 27. 06:40

    コントロール크루즈 컨트롤(Cruise Control)이란? 운전자가 엑셀레이터를 조작하지 않아도 운전자가 원하는 속도(Desired velocity)에 맞춰 차의 속도를 가속하는 전자제어 시스템으로 자동으로 차량 간격까지 조절하는 적응형 크루즈 컨트롤(Adaptive Control, ACC)과는 다르다. 크루즈 컨트롤은 순항 제어라고도 불린다.주파수 영역(Frequency domain)에서의 설계방법


    >


    차량의 초기 속도를 60[kph]와 가족입니다 면 actuator model이후(뒤)에 위치한 integrator block에서 초기 값을 설정하고 줘야 합니다. 'Integrator 1'이다 block를 더블 클릭하고 나쁘지 않아면 팝업의 창에 다음과 같이 입력하고 확인합니다.


    >


    Plot 결과는 'scope'라는 block을 더블 클릭하여 확인할 수 있으며 다소 다르다. MATLAB 워크스페이스에 저장하여 code로 plot 하고 싶다면 scope의 [View]-[Configuration Properties]에서 loggging을 체크하고 변수명을 정의하면 된다. 예에서는 Velocity로 하고, save format을 array로 했다. 편의성 향상을 위해 아라야도 structure로 설정하는 것이 좋다.


    >


    >


    위와 함께 설계한 시뮤루링크파ー 1을 아래 처음 부하였다. 다운을 받고 코드를 실행하면 자동적으로 시뮤루링크파ー 1까지 실행되고 결과가 plot, 챠후그와 같다. (시뮤루링크파ー 1은 20하나 6버전으로 제작한 것으로 20하나 5버전 또는 그 이하 버전에서 실행되지 않는다.)


    >


    예제에서는 PI 컨트롤러를 사용했는데 PD 컨트롤러를 선택해도 되고 gain도 자유롭게 설정하면 된다. 우연히 영역(Timedomain)에서의 설계비결-세로방향 제어를 위한 이산시의 상태공간표본(State-space representation)


    >


    이 때, 상태 변수 벡터 xs는 이후와 같다.


    >


    상태 공간에서 이산시간 리커티 대수 방정식(Discrete-time Algebraic Riccati Equation, DARE)의 해를 구함으로써 제어가 가능하다.Source code는 다음과 같다.


    상기 code를 실행하면, 결과는 향후와 함께 plot 된다.


    >


    주파수/가끔 영역에서 전체 레퍼런스 velocity를 잘 추종하는 것을 확인할 수 있다.


    댓글

Designed by Tistory.