Main Content

잠금 방지 제동 시스템 모델링하기

이 예제에서는 간단한 ABS(잠금 방지 제동 시스템)를 모델링하는 방법을 보여줍니다. 이 모델은 이동체가 급제동하는 조건에서의 동적 동작을 시뮬레이션합니다. 이 모델은 바퀴 하나를 표현하며, 이 모델을 여러 번 복제하여 바퀴가 여러 개인 이동체 모델을 만들 수 있습니다.

이 모델은 Simulink®의 신호 기록 기능을 사용합니다. 이 모델은 MATLAB® 작업 공간에 신호를 기록하며, 사용자는 이를 통해 신호를 보고 분석할 수 있습니다. 신호가 기록되는 방법을 보려면 ModelingAnAntiLockBrakingSystemExample.m 파일의 코드를 확인하십시오.

sldemo_absbrake 모델에서 바퀴 속도는 sldemo_wheelspeed_absbrake라는 별도의 모델에서 계산됩니다. 그리고 이 컴포넌트는 Model 블록을 사용하여 참조됩니다. 최상위 모델과 참조된 모델 모두 가변 스텝 솔버를 사용하기 때문에 Simulink는 참조된 모델에서 영점교차를 추적하게 됩니다.

모델 물리학

바퀴는 제동이 적용되기 전의 이동체 속도에 해당되는 초기 각속도로 회전합니다. 모델은 바퀴 각속도와 이동체 속도를 계산하기 위해 별도의 적분기를 사용합니다. 모델은 이 두 속도를 사용하여 미끄러짐을 계산하며, 이는 수식 1로 결정됩니다. 참고로, 이동체 속도는 각속도로 표현됩니다.

$$\omega_v = \frac{V}{R} \mbox{ (equals the wheel angular speed if there is no slip)}$$

수식 1

$$ \omega_v = \frac{V_v}{R_r}$$

$$slip=1-\frac{\omega_w}{\omega_v}$$

$$\omega_v = \mbox{ vehicle speed divided by wheel radius}$$

$$ V_v = \mbox{ vehicle linear velocity}$$

$$ R_r = \mbox{ wheel radius}$$

$$ \omega_w = \mbox{ wheel angular velocity}$$

바퀴 속도와 이동체 속도가 같으면 미끄러짐이 0이고, 바퀴가 잠기면 미끄러짐이 1입니다. 원하는 미끄러짐 값은 0.2로, 이는 바퀴 회전 수가, 동일한 이동체 속도에서 제동력이 가해지지 않은 상태의 바퀴 회전 수의 0.8배라는 의미입니다. 이 값은 타이어와 노면 사이의 점착력을 최대화하고 작용 가능한 마찰력으로 인한 정지 거리를 최소화합니다.

모델 분석

타이어와 노면 사이의 마찰 계수 mu는 mu-slip 곡선으로 알려진 미끄러짐의 경험적 함수입니다. mu-slip 곡선은 Simulink 룩업 테이블로 블록 다이어그램에 MATLAB 변수를 전달하여 생성됩니다. 이 모델은 마찰 계수 mu에 바퀴 무게 W를 곱하여 타이어 둘레에 작용하는 마찰력 Ff를 산출합니다. Ff를 이동체 질량으로 나누어 이동체 감속을 생성하며 이를 적분하여 이동체 속도를 구합니다.

이 모델에서는 이상적인 잠금 방지 제동 제어기를 사용하며, 이는 실제 미끄러짐과 원하는 미끄러짐 간의 오차를 기반으로 하는 뱅뱅(bang-bang) 제어를 사용합니다. 원하는 미끄러짐 값은 mu-slip 곡선이 피크 값에 도달하는 값으로 설정되었으며, 이는 최소 제동 거리에 대한 최적값입니다.

실제 이동체에서는 미끄러짐을 직접 측정할 수 없으므로 이 제어 알고리즘은 실용적이지 않습니다. 이 예제에서는 알고리즘을 사용하여 이러한 시뮬레이션 모델의 개념적 구성을 설명합니다.

Wheel Speed 서브시스템을 더블 클릭하여 엽니다. 이 서브시스템은 바퀴 미끄러짐, 원하는 바퀴 미끄러짐, 타이어 토크가 주어지면 바퀴 각속도를 계산합니다.

제동 압력의 변화율을 제어하기 위해 모델은 원하는 미끄러짐에서 실제 미끄러짐을 빼고 이 신호를 뱅뱅 제어에 전달합니다(오차의 부호에 따라 +1 또는 -1). 이 켜짐/꺼짐 레이트는 제동 시스템의 유압 선과 연결된 지연을 나타내는 1차 지연을 통과합니다. 그런 다음 모델은 필터링된 레이트를 적분하여 실제 제동 압력을 산출합니다. 결과 신호에 바퀴(Kf)에 대한 피스톤 면적 및 반경을 곱하면 바퀴에 가해지는 제동 토크가 됩니다.

이 모델에서는 바퀴의 마찰력에 바퀴 반경(Rr)을 곱하여 바퀴에 대한 노면의 가속 토크를 구합니다. 제동 토크를 빼서 바퀴에 대한 순 토크를 얻습니다. 순 토크를 바퀴 회전 관성 I로 나누면 바퀴 가속도가 산출되며, 이를 적분하여 바퀴 속도를 구합니다. 바퀴 속도와 이동체 속도를 양수로 유지하기 위해 이 모델은 한계가 설정된 적분기를 사용합니다.

ABS 모드에서 시뮬레이션하기

시뮬레이션 탭에서 실행을 클릭하여 시뮬레이션을 실행합니다. MATLAB 명령 창에 sim('sldemo_absbrake') 명령을 입력하여 시뮬레이션을 실행할 수도 있습니다. 이 시뮬레이션에서는 ABS가 켜져 있습니다.

이 모델은 관련 데이터를 MATLAB 작업 공간에 sldemo_absbrake_output이라는 구조체로 기록합니다. 기록된 신호에는 파란색 표시자가 있습니다. 이 경우 youtslp가 기록됩니다.

위의 플롯은 디폴트 파라미터에 대한 ABS 시뮬레이션 결과를 보여줍니다. 첫 번째 플롯은 바퀴 각속도와 대응되는 이동체 각속도를 보여줍니다. 두 번째 플롯은 바퀴가 잠기지 않으면서 바퀴 속도가 이동체 속도보다 낮게 유지되고 이동체 속도가 15초 이내에 0이 되는 것을 보여줍니다. 바퀴 가속도, 바퀴 슬립비, 제동 압력이 모니터링됩니다. 바퀴 슬립비는 바퀴가 잠겨 있는지 여부를 결정하는 데 사용됩니다. 제동 사이클은 정지 거리와 제동 압력을 모니터링하여 관찰됩니다.

ABS를 사용하지 않고 시뮬레이션하기

더 의미 있는 결과를 얻으려면 ABS를 사용하지 않는 이동체의 동작을 가정해 볼 수 있습니다. MATLAB 명령 창에서 모델 변수 ctrl = 0을 설정합니다. 이렇게 설정하면 제어기에서 미끄러짐 피드백의 연결이 끊어지며, 그 결과 최대 제동이 발생합니다.

시뮬레이션을 다시 실행하여 ABS를 사용하지 않는 제동을 모델링합니다.

ABS를 사용한 제동과 ABS를 사용하지 않는 제동

이동체 속도와 바퀴 속도를 보여주는 플롯에서 약 7초 후 바퀴가 잠기는 것이 관측됩니다. 그 시점부터는 미끄러짐 곡선에서 최적이 아닌 부분에 제동이 적용됩니다. 즉, 미끄러짐 플롯에서 볼 수 있듯이 slip = 1일 때 타이어가 포장면에서 너무 많이 미끄러져 마찰력이 떨어집니다.

이 플롯은 두 경우에 대해 이동체가 이동한 거리를 보여줍니다. ABS를 사용하지 않은 이동체가 약 100피트 더 미끄러지며, 정지하기까지 약 3초가 더 걸립니다.

확장된 모델링

이 예제의 제어기는 이상화된 제어기이지만, 어떠한 제어 알고리즘에서도 이를 사용하여 시스템의 성능을 평가할 수 있습니다. 제안된 알고리즘의 신속 프로토타이핑을 위해 Simulink Coder™를 사용할 수도 있습니다.

  • Simulink Coder는 이동체에서 개념을 테스트할 수 있도록 제어기 하드웨어에 맞는 C 코드를 생성하고 컴파일합니다. 이 프로세스를 따르면 개발 사이클 초기에 실제 테스트가 가능하므로 새로운 아이디어를 입증하는 데 필요한 시간이 크게 줄어듭니다.

  • HIL(Hardware-In-the-Loop) 제동 시스템을 시뮬레이션하는 경우 Simulink Coder를 사용하면 실시간 C 코드를 생성하여 뱅뱅 제어기를 없애고 실시간 하드웨어에서 운동 방정식을 실행하여 바퀴 및 이동체 동역학을 에뮬레이션할 수 있습니다. 그런 다음 이 코드와 생성 코드를 실행하는 실시간 하드웨어 사이에 인터페이스를 연결하여 실제 ABS 제어기를 테스트할 수 있습니다. 이 시나리오에서 실시간 모델은 바퀴 속도를 제어기에 보내고 제어기는 모델에 제동 동작을 보냅니다.

관련 항목