ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자율주행/ADAS] 크루즈 컨트롤 (Cruise Control) MATLAB/Simulink 설계
    카테고리 없음 2020. 3. 7. 23:48

    コントロール크루즈 컨트롤(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로 했다. 편의를 위해 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는 다음과 같다.


    상기 코드를 실행하면, 결과는 그 후와 함께 plot 된다.


    >


    주파수/시간 영역에서 모두 레퍼런스 velocity를 추종하는 것을 확인할 수 있다.


    댓글

Designed by Tistory.