Simulation of BLDC Motor - error with derivative of omega

조회 수: 2 (최근 30일)
Marcel Thevagt
Marcel Thevagt 2025년 5월 9일
답변: Yifeng Tang 2025년 5월 9일
I have implemented the mathematical model of a BLDC motor with trapezoidal Back-EMF. With the parameters in the setup script, the system in the Kommutation_Mini model runs and shows somewhat reasonable behavior. There is also the commutation pattern etc. implemented.
However, when I add the derivative of omega to the total torque equation at the end of the BLDC_Motor.ssc file (line: 110), an error occurs. Of course, I would like to model the inertia of the rotor with this term. Here is the relevant line in the corresponding file:
T - T_m == B_m * w_m ; % J_m * w_m.der +
I attached all the necessary files, but the inertia term is commented out. So, in order to reproduce this error, just add the term to the torque calculation. Why does this error appear?
Error message:
Error:An error occurred during simulation and the simulation was terminated
Caused by:
['BLDC_Motor_Kommutation_Mini/Sensor/Solver Configuration']: When trying to advance one time step, nonlinear solver failed to converge, residual norm too large.

채택된 답변

Yifeng Tang
Yifeng Tang 2025년 5월 9일
Hi Marcel,
I'm NOT an expert in BLDC motor but I'm in general interested in Simscape language and customization. Could it be a sign error here? I mean the equation may need to be
T - T_m == - B_m * w_m - J_m * w_m.der;
I didn't examine the code in great detail, but I tested with this equation, and the model runs with no problem and reach steady-state ~1260 rpm. If I change J_m to a larger value, I noticed a longer rise time (reasonable). The value of viscous damping doesn't seem to change anything significantly, presumably because of the controller.
I suspect previously the B_m*w_m was also creating some "free" energy, but it's canceled out by the external damping you had. The inertia then adds a lot free energy when you included that term.
My best guess. Please verify.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Choose and Parameterize Blocks에 대해 자세히 알아보기

제품


릴리스

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by