주요 콘텐츠

성능과 충실도 간의 상호 절충 관계 분석하기

물리 시스템 모델을 설계할 때는 실제 시스템과 비교하여 모델 성능과 충실도 간의 균형을 맞춰야 합니다. 모델의 충실도를 높이면 더 정확한 결과를 얻을 수 있지만, 계산 요구 사항도 증가합니다. HIL(Hardware-in-the-Loop) 시뮬레이션 같은 응용 사례는 엄격한 계산 비용 요구 사항을 가집니다. 이러한 응용 사례를 위해, 많은 블록들이 Suitable for HIL Simulation이라는 문구가 포함된 파라미터화를 제공합니다. 이러한 파라미터화는 추상화를 사용하여 계산 비용을 줄이고 속도를 향상시킵니다. 또한 일부 물리적 특성을 제외하거나 파라미터를 집중화(lumping parameters)함으로써 성능을 향상시킬 수 있습니다. 성능을 개선하기 위해 충실도를 조정할 경우, 업데이트된 모델 결과가 기준(baseline)과 비교하여 허용 가능한 수준인지 검증하십시오.

충실도가 낮은 모델일수록 계산 효율성을 우선시하므로, 시뮬레이션 시간이 더 단축되고 하드웨어 시스템과 더 원활하게 통합할 수 있습니다. 고충실도 모델은 더 정확한 결과를 얻고 물리적 세부 사항을 캡처하기 위해 더 많은 계산 리소스를 사용합니다. 고충실도 모델은 타깃 하드웨어가 가진 리소스보다 더 많은 리소스를 필요로 하기 때문에 HIL에 적합하지 않을 수 있습니다. HIL의 경우, 구체적인 계산 비용 요구 사항은 타깃 하드웨어에 따라 달라집니다.

성능 향상을 위해 모델 간소화하기

불연속성이나 빠른 동특성을 일으키는 요소를 피함으로써 모델의 실행 속도를 높일 수 있습니다. 하드 스톱이나 백래시, 스틱-슬립 마찰, 클러치와 같은 요소는 불연속성을 유발하기 쉽습니다. 충분한 감쇠 없이 강성이 큰 스프링에 작은 질량이 연결된 경우, 시스템 동특성이 빨라져 각 시간 스텝에서의 계산 비용이 증가할 수 있습니다.

성능 또는 고충실도 구성이 가능한 모델을 보려면 Vehicle with Four-Wheel Drive 모델을 여십시오. 다음을 입력합니다.

openExample('sdl/VehicleWithFourWheelDriveExample')
이 모델은 시스템에 토크를 제공하기 위해 Engine으로 레이블이 지정된 Generic Engine 블록을 사용합니다. Torque Converter 블록은 엔진과 Gearbox로 레이블이 지정된 Simple Gear 블록 사이에서 댐퍼 역할을 합니다. Gearbox 블록은 두 Differential 블록에 모두 토크를 전달합니다. 4개의 타이어 블록은 회전 에너지를 병진 에너지로 변환하여 Vehicle Body 블록을 구동하며, 이 블록은 타이어와 도로 표면 간의 상호 작용을 계산합니다.

Model that represents a four-wheel drive vehicle.

4개의 타이어 블록은 3개의 타이어 Variant가 포함된 Variant Subsystem 블록입니다. 각 Variant는 서로 다른 블록을 사용하여 타이어 동특성을 나타냅니다. 활성 Variant와 비활성 Variant를 확인하려면 Left Front 서브시스템을 더블 클릭하십시오. 자세한 내용은 Variant Subsystem, Variant Model, Variant Assembly Subsystem 항목을 참조하십시오.

Tire subsystem canvas view showing the Magic Formula option selected.

비활성 Variant는 캔버스에서 연한 회색으로 표시됩니다. 각 Variant를 더블 클릭하여 구현을 확인할 수 있습니다.

디폴트 구현은 Tire (Magic Formula) 블록을 사용하며, 이 블록은 슬립 각도, 종방향 슬립, 수직 하중을 사용하여 타이어를 계산합니다. 이 블록은 고충실도 계산을 제공하지만, 다른 두 구현보다 모델의 시뮬레이션 실행 속도가 느립니다. Simple 서브시스템은 Tire (Simple) 블록을 사용하며, 이 블록은 슬립이 없는 단순한 모델을 나타냅니다. 이 서브시스템을 사용하면 모델 실행 속도는 빨라지지만 타이어 계산 충실도는 낮아집니다.

모델 캔버스의 최상위 수준으로 돌아갑니다. 4개의 타이어 모두에서 Simple Variant를 활성화하려면, 예제 링크의 두번째 항목에 있는 Simple 하이퍼링크를 클릭하거나 다음을 입력하십시오.

VehicleWithFourWheelDriveSetTires(bdroot,'simple')

Four-wheel drive model that uses four Tire (Simple) blocks.

이제 4개의 타이어가 모두 Simple 파라미터화를 사용합니다. Gearbox, Front Differential, Rear Differential 블록이 속도에 대해 구성되었는지 확인하려면 마찰 모델메싱 손실 없음 - HIL 시뮬레이션에 적합인지 확인하십시오. 또한 Simple Gear 블록에 대해 백래시 활성화가 선택 해제되어 있는지 확인합니다. 이제 모델이 덜 복잡해졌으며 디폴트 모델보다 더 빠르게 실행될 수 있습니다.

더 빠른 모델을 실행하여 데이터를 수집하고 시간 스텝 정보를 플로팅하려면 다음을 입력하십시오.

sim('VehicleWithFourWheelDrive')
simlogRef = simlog_VehicleWithFourWheelDrive;
tireRefNode = simlogRef.Left_Rear.Simple.Tire_Simple.A.w;
tRef = tireRefNode.series.time;
semilogy(tRef(1:end-1),diff(tRef),'-x')
title('Solver Step Size')
xlabel('Time (s)')
ylabel('Step Size (s)')
legend('Simple Tire',location='best')

Solver step size for the simple tire model.

시뮬레이션 시작 후 1초 시점에 발생하는 스파이크는 이벤트로 인해 솔버가 더 작은 시간 스텝을 취했음을 나타냅니다.

성능과 충실도 간의 차이 시각화하기

모델의 단순한 구현을 사용하여 기준 결과를 얻었으므로, 모델 충실도 변경에 따른 성능 비용이나 이점을 분석할 수 있습니다. 타이어 Variant를 다시 Tire (Magic Formula) 블록으로 전환하고 시뮬레이션을 실행한 후 결과를 플로팅합니다.

VehicleWithFourWheelDriveSetTires(bdroot,'MFormula')
sim('VehicleWithFourWheelDrive')
simlogRef = simlog_VehicleWithFourWheelDrive;
tireRefNode = simlogRef.Left_Rear.Magic_Formula.Tire_Magic_Formula.A.w;
tRef = tireRefNode.series.time;
hold on
semilogy(tRef(1:end-1),diff(tRef),'-o')
legend('Simple Tire','Magic Formula Tire',location='best')

Solver step size for the Magic Formula tire model shows denser time steps at the beginning and a unique event at around 1.2 seconds. A solver event also appears 1 second delayed from the Simple Tire model at around 7.5 seconds.

매직 포뮬러 파라미터화는 고충실도입니다. 시뮬레이션 시작 부분에서 시간 스텝이 더 밀집되어 있는 것은 모델 초기화에 더 오랜 시간이 걸린다는 것을 나타냅니다. 시뮬레이션 시작 후 1초 지점에서 첫 번째 스파이크가 발생한 후, 솔버는 두 번째 스파이크에 도달하며 느린 회복을 보입니다. 단순 타이어 파라미터화와 비교해 볼 때, 솔버는 결과를 계산하기 위해 추가 리소스를 사용합니다. 더 작은 스텝 크기는 시뮬레이션에서 추가적인 물리적 동작을 캡처한 결과입니다. 고충실도 구현은 약 1.2초 지점에서 단순 타이어 구현에서는 캡처하지 못한 이벤트를 캡처했습니다. 결과를 더 자세히 보기 위해 확대합니다.

The Magic Formula parameterization captures an event that the simple parameterization does not at approximately 1.2 seconds. The Magic Formula plot shows a spike. The simple plot does not.

또한, 약 8초 지점에서 고충실도 구현은 단순 구현에서보다 더 늦게 발생하는 이벤트를 보여줍니다.

Each parameterization captured the same event but at a different time in the simulation.

고충실도 모델은 더 상세하고 정확한 결과를 캡처하지만, 시뮬레이션 시간이 더 오래 걸리고 더 작은 솔버 스텝을 취합니다. 솔버 프로파일러를 사용하면 시뮬레이션에 대한 더 세부적인 인사이트를 얻을 수 있습니다. 솔버 스텝 크기와 실시간 모델 준비에 대한 자세한 내용은 Define Step Size and Number of Nonlinear Iterations for Simscape Real-Time Simulation 항목을 참조하십시오.

참고 항목

|