잠금 방지 제동 시스템 모델링
이 예제에서는 ABS(잠금 방지 제동 시스템)의 간단한 모델을 모델링하는 방법을 보여줍니다. 이동체가 급제동하는 조건에서의 동적 동작을 시뮬레이션합니다. 이 모델은 단일 바퀴를 표현하며, 이 모델을 여러 번 복제하여 바퀴가 여러 개인 이동체 모델을 만들 수 있습니다.
이 모델은 Simulink®의 신호 기록 기능을 사용합니다. 모델은 MATLAB® 작업 공간에 신호를 기록하여 여기서 신호를 분석하고 볼 수 있도록 했습니다. ModelingAnAntiLockBrakingSystemExample.m
에서 코드를 보고 이 작업이 어떻게 수행되는지 확인할 수 있습니다.
이 모델에서 바퀴 속도는 sldemo_wheelspeed_absbrake
라는 별도의 모델에서 계산됩니다. 그리고 이 구성요소는 'Model' 블록을 사용하여 참조됩니다. 참고로, 최상위 모델과 참조된 모델 모두 가변 스텝 솔버를 사용하기 때문에 Simulink가 참조된 모델에서 영점교차를 추적합니다.
분석 및 물리학
바퀴는 제동이 적용되기 전의 이동체 속도에 해당되는 초기 각속도로 회전합니다. 바퀴 각속도와 이동체 속도를 계산하는 데에는 별도의 적분기를 사용했습니다. 이 두 속도를 사용하여 미끄러짐을 계산하며, 이는 수식 1로 결정됩니다. 각속도로 표현되는 이동체 속도를 도입했다는 점을 참고해 주십시오(아래 참조).
수식 1
위의 표현식으로부터 바퀴 속도와 이동체 속도가 같으면 미끄러짐이 0이고, 바퀴가 잠기면 미끄러짐이 1임을 알 수 있습니다. 원하는 미끄러짐 값은 0.2
로, 이는 바퀴 회전 수가, 동일한 이동체 속도에서 제동력이 가해지지 않은 상태의 바퀴 회전 수의 0.8
배라는 의미입니다. 이는 타이어와 노면 사이의 점착력을 최대화하고 작용 가능한 마찰력으로 인한 정지 거리를 최소화합니다.
모델링
타이어와 노면 사이의 마찰 계수 mu
는 mu-slip 곡선으로 알려진 미끄러짐의 경험적 함수입니다. Simulink 룩업 테이블을 사용하여 블록 다이어그램에 MATLAB 변수를 전달하여 mu-slip 곡선을 생성했습니다. 이 모델은 마찰 계수 mu
에 바퀴 무게 W
를 곱하여 타이어 둘레에 작용하는 마찰력 Ff
를 산출합니다. Ff
를 이동체 질량으로 나누어 이동체 감속을 생성하며 이를 적분하여 이동체 속도를 구합니다.
이 모델에서는 이상적인 잠금 방지 제동 제어기를 사용하며, 이는 실제 미끄러짐과 원하는 미끄러짐 간의 오차를 기반으로 하는 '뱅뱅' 제어를 사용합니다. mu-slip 곡선이 피크 값에 도달하는 값을 원하는 미끄러짐 값으로 설정했으며, 이는 최소 제동 거리에 대한 최적값입니다(아래 참고 참조).
참고: 실제 이동체에서는 미끄러짐을 직접 측정할 수 없으므로 이 제어 알고리즘은 실용적이지 않습니다. 이 예제에서는 이러한 시뮬레이션 모델의 개념적 구성을 설명하는 데 사용됩니다. 이와 같은 시뮬레이션이 주는 엔지니어링 가치는 구체적인 구현 문제를 다루기에 앞서 제어 개념의 가능성을 보여주는 것입니다.
모델 열기
모델 창에서 Wheel Speed 서브시스템을 더블 클릭하여 엽니다. 이 서브시스템은 바퀴 미끄러짐, 원하는 바퀴 미끄러짐, 타이어 토크가 주어지면 바퀴 각속도를 계산합니다.
제동 압력의 변화율을 제어하기 위해 모델은 원하는 미끄러짐에서 실제 미끄러짐을 빼고 이 신호를 뱅뱅 제어에 전달합니다(오차의 부호에 따라 +1
또는 -1
). 이 켜짐/꺼짐 레이트는 제동 시스템의 유압 선과 연결된 지연을 나타내는 1차 지연을 통과합니다. 그런 다음 모델은 필터링된 레이트를 적분하여 실제 제동 압력을 산출합니다. 결과 신호에 바퀴(Kf
)에 대한 피스톤 면적 및 반경을 곱하면 바퀴에 가해지는 제동 토크가 됩니다.
이 모델에서는 바퀴의 마찰력에 바퀴 반경(Rr
)을 곱하여 바퀴에 대한 노면의 가속 토크를 구합니다. 제동 토크를 빼서 바퀴에 대한 순 토크를 얻습니다. 순 토크를 바퀴 회전 관성 I
로 나누면 바퀴 가속도가 산출되며, 이를 적분하여 바퀴 속도를 구합니다. 바퀴 속도와 이동체 속도를 양수로 유지하기 위해 이 모델에서는 한계가 설정된 적분기를 사용합니다.
ABS 모드에서 시뮬레이션 실행
시뮬레이션 탭에서 실행을 클릭하여 시뮬레이션을 실행합니다. MATLAB에서 sim('sldemo_absbrake')
명령을 실행하여 시뮬레이션을 실행할 수도 있습니다. 이 시뮬레이션에서는 ABS가 켜져 있습니다.
참고: 이 모델은 관련 데이터를 MATLAB 작업 공간에
sldemo_absbrake_output
이라는 구조체로 기록합니다. 기록된 신호에는 파란색 표시자가 있습니다. 이 경우yout
및slp
가 기록됩니다. Simulink 도움말에서 신호 기록에 대해 자세히 알아보십시오.
위의 플롯은 ABS 시뮬레이션 결과(디폴트 파라미터의 경우)를 보여줍니다. 첫 번째 플롯은 바퀴 각속도와 대응되는 이동체 각속도를 보여줍니다. 이 플롯은 바퀴가 잠기지 않으면서 바퀴 속도가 이동체 속도보다 낮게 유지되고 이동체 속도가 15초 이내에 0이 되는 것을 보여줍니다.
ABS를 사용하지 않은 경우의 시뮬레이션 실행
더 의미 있는 결과를 얻으려면 ABS를 사용하지 않는 이동체의 동작을 가정해 볼 수 있습니다. MATLAB 명령줄에서 모델 변수 ctrl = 0
을 설정합니다. 이렇게 하면 제어기에서 미끄러짐 피드백이 분리되며, 그 결과 최대 제동이 발생합니다.
ctrl = 0;
이제 시뮬레이션을 다시 실행합니다. 이는 ABS를 사용하지 않는 제동을 모델링합니다.
ABS를 사용한 제동과 ABS를 사용하지 않은 제동
이동체 속도와 바퀴 속도를 보여주는 플롯에서 약 7초 후 바퀴가 잠기는 것이 관측됩니다. 그 시점부터는 미끄러짐 곡선에서 최적이 아닌 부분에 제동이 적용됩니다. 즉, 미끄러짐 플롯에서 볼 수 있듯이 slip = 1
일 때 타이어가 포장면에서 너무 많이 미끄러져 마찰력이 떨어졌습니다.
아래에서 더 의미있는 비교 결과를 볼 수 있습니다. 두 경우에 대해 이동체가 이동한 거리를 플로팅했습니다. ABS를 사용하지 않은 이동체가 약 100피트 더 미끄러지며, 정지하기까지 약 3초가 더 걸립니다.
모델 닫기
모델을 닫습니다. 'Wheel Speed' 서브시스템을 닫습니다. 기록된 데이터를 지웁니다.
결론
이 모델은 Simulink를 사용하여 ABS 제어기가 작동하는 제동 시스템을 시뮬레이션하는 방법을 보여줍니다. 이 예제의 제어기는 이상화된 제어기이지만, 제안된 어떠한 제어 알고리즘에서도 이를 사용하여 시스템의 성능을 평가할 수 있습니다. 또한 Simulink와 함께 Simulink® Coder™를 제안된 알고리즘의 신속 프로토타이핑을 위한 유용한 툴로 사용할 수도 있습니다. 이동체에서 개념을 테스트하려면 C 코드를 제어기 하드웨어 용도로 생성하여 컴파일합니다. 이렇게 하면 개발 사이클 초기에 실제 테스트가 가능해져서 새로운 아이디어를 입증하는 데 필요한 시간이 크게 줄어듭니다.
HIL(Hardware-In-the-Loop) 제동 시스템을 시뮬레이션하는 경우 '뱅뱅' 제어기를 없애고 실시간 하드웨어에서 운동 방정식을 실행하여 바퀴 및 이동체 동역학을 에뮬레이션할 수 있습니다. 이를 수행하려면 Simulink Coder를 사용해서 이 모델에 대한 실시간 C 코드를 생성합니다. 그런 다음 이 코드와 생성 코드를 실행하는 실시간 하드웨어 사이에 인터페이스를 연결하여 실제 ABS 제어기를 테스트할 수 있습니다. 이 시나리오에서 실시간 모델은 바퀴 속도를 제어기에 보내고 제어기는 모델에 제동 동작을 보냅니다.