83 lines
2.7 KiB
ReStructuredText
83 lines
2.7 KiB
ReStructuredText
====================================
|
|
``foc`` FOC motor controller example
|
|
====================================
|
|
|
|
The main purpose of this example is to provide a universal template to
|
|
implement the motor controller based on the kernel-side FOC device and
|
|
the application-side FOC library.
|
|
|
|
At the moment, this example implements a simple open-loop velocity controller.
|
|
|
|
Hardware setup
|
|
--------------
|
|
|
|
This example has not yet implemented any mechanism to protect the
|
|
powered device. This means that there is no overtemeprature
|
|
protection, no overcurrent protection and no overvoltage protection.
|
|
|
|
Make sure that you power the device properly and provide current
|
|
limits on your own so as not to break your hardware.
|
|
|
|
Configuration
|
|
-------------
|
|
|
|
The FOC PI current controller parameters can be obtained from the given
|
|
equations::
|
|
|
|
Kp = ccb * Ls;
|
|
pp = Rs / Ls;
|
|
Ki = pp * Kp * T;
|
|
|
|
where:
|
|
- Kp - PI proportional coefficient
|
|
- Ki - PI integral coefficient
|
|
- Rs - average phase serial resistance
|
|
- Ls - average phase serial inductance
|
|
- pp - pole plant
|
|
- ccb - current control bandwidth
|
|
- T - sampling period
|
|
|
|
Sample parameters for some commercially available motors
|
|
--------------------------------------------------------
|
|
|
|
========================== == ========== ========= ======= =====
|
|
Motor model p Rs Ls i_max v_max
|
|
========================== == ========== ========= ======= =====
|
|
Odrive D6374 150KV 7 0.0254 Ohm 8.73 uH ? ?
|
|
Linix 45ZWN24-40 2 0.5 Ohm 0.400 mH 2.34A 24V
|
|
Bull-Running BR2804-1700 7 0.11 Ohm 0.018 mH 1.2A 12V
|
|
iPower GBM2804H-100T 7 5.29 Ohm 1.05 mH 0.15A 12V
|
|
========================== == ========== ========= ======= =====
|
|
|
|
* Odrive D6374 150KV
|
|
|
|
====== =========== ===== ======== ======
|
|
f_PWM f_notifier ccb Kp Ki
|
|
====== =========== ===== ======== ======
|
|
20kHz 10kHz 1000 0.0087 0.0025
|
|
====== =========== ===== ======== ======
|
|
|
|
* Linix 45ZWN24-40 (PMSM motor dedicated for NXP FRDM-MC-LVMTR kit)
|
|
|
|
====== =========== ===== ======== ======
|
|
f_PWM f_notifier ccb Kp Ki
|
|
====== =========== ===== ======== ======
|
|
10kHz 5kHz 1000 0.4 0.1
|
|
====== =========== ===== ======== ======
|
|
|
|
* Bull-Running BR2804-1700 kV (motor provided with the ST P-NUCLEO-IHM07 kit)
|
|
|
|
====== =========== ===== ======== ======
|
|
f_PWM f_notifier ccb Kp Ki
|
|
====== =========== ===== ======== ======
|
|
20kHz 10kHz 200 0.036 0.022
|
|
====== =========== ===== ======== ======
|
|
|
|
* iPower GBM2804H-100T (gimbal motor provided with the ST P-NUCLEO-IHM03 kit)
|
|
|
|
====== =========== ===== ======== ======
|
|
f_PWM f_notifier ccb Kp Ki
|
|
====== =========== ===== ======== ======
|
|
20kHz 10kHz TODO TODO TODO
|
|
====== =========== ===== ======== ======
|