How to configure Belt Drive block for Hardware-in-the-Loop simulation?

조회 수: 8 (최근 30일)
To run a Hardware-in-the-Loop (HIL) simulation, I need to generate C++ code file from the circuit in the figure, which represents a model of a conveyor belt (Solver=ode14x):
The Simulink simulation works fine, but when I transfer the generated C++ code in the HIL platform, the host computer crashes with DRIVE_VERIFIER_detected_violation error. Note that when I replace the Belt Drive block with the Simple Gear block, the HIL simulation is then OK. Current setting of Belt Drive block:
  • Drive type: Open belt
  • Belt type: Flat band
  • Longitudinal stiffness: 1e+4 [N/m]
  • Longitudinal damping: 1e+5 [N/(m/s)]
  • Pre-tension: 21 [N]
  • Pulley radius (Pulley A and B): 0.1 [m]
  • Friction velocity threshold: 0.001 [m/s]
Any idea? I thank you in advance.

채택된 답변

Sebastian Castro
Sebastian Castro 2015년 10월 23일
The "Friction velocity threshold" parameter is usually the culprit here. This is usually a small region used to avoid numerical instability by linearly varying the friction force over the range [-0.001 0.001] m/s instead of adding a "jump" right at 0. What if you try increasing this value to make the slope of this force less steep around 0?
Alternatively, it could be that the stiffness and damping of the belt are adding some very fast dynamics that are hard to solve given your local solver time step. You could try either increasing the time step or reducing the stiffness and damping.
In both cases above, of course, you want to verify that you're not significantly affecting your simulation results.
- Sebastian
  댓글 수: 3
Sebastian Castro
Sebastian Castro 2015년 10월 28일
Hmm... Do you have any damping in the Revolute Joint block, or have you tried added a rotational damper in parallel with the Torque Source? Maybe the HIL simulation doesn't like runaway acceleration in an undamped system?
CignoNero74
CignoNero74 2015년 11월 4일
편집: CignoNero74 2015년 11월 4일
Hello Sebastian, the system was already damped, via Revolute Joint:Gear --> Internal Mechanics --> Damping Coefficient= 1 [N*m/rad/s], in order to have output = 2.7 [rad/s], when input is Step going from 0 to 2.7, at Step time=1. I have tried the option of a added Rotational Damper (with C connected to Mechanical Rotational Reference 2 and R connected to R of Rev-Rot Interface), with Damping coefficient=0.001, then =0.01, and 0.1. But always unsuccessfully. At this point, since I agree with you that the problem should be on steep acceleration at Step time=1 second, I changed input to a signal like the following one, extending the simulation time from 10s to 100s:
but unfortunately the HIL simulation still gives error. In particular it is a "div by zero" error, as notified by the latest version of the HIL sw that I have just updated.
Have a nice day.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 General Applications에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by