Hi,
I’m controlling a 4-pole BLDC motor (24V) for a tilting door using STM32F303, configured via MC Workbench and monitored with ST Motor Pilot.
Control method is FOC with Hall sensors and 3-shunt current sensing. PWM frequency is 25kHz.
:wrench: Motor specs:
- Rs = 0.83Ω, Ls = 0.97mH
- BEMF = 8.75 Vrms/Krpm
- Inertia = 55.53 µN·m·s², Friction = 38.94 µN·m·s
- Max speed = 1000 rpm
🧠 Control parameters:
- Hall sensors: Displacement = 120°, Electrical angle = 60°
- FIFO = 16, Input capture filter = 4 µs
- Regulation time = 80 µs (2 PWM), T-rise = 1500 ns, T-noise = 2000 ns
- Angle interpolation enabled
- Speed control mode with Feed Forward enabled
- Torque & Flux cutoff frequency = 6000 rad/s
- Execution rate = 5 ms
:chart_decreasing: Issue:
Upward motion is relatively clean (minor oscillation), but downward motion shows strong oscillations. The torque required for closing is higher than for opening, and I can’t find PID values that stabilize the system.
:backhand_index_pointing_right: Questions:
- Could the electrical angle setting be incorrect?
- Should I disable angle interpolation?
- Is asymmetric PID tuning recommended for up/down motion?
- Any other parameters that could cause this instability?
Thanks in advance for your help!