You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The MXLEMMING has been ported from the MESC Firmware, it's also the default Flux observer in Vesc.
4
+
The [MESC book](https://davidmolony.github.io/MESC_Firmware/operation/CONTROL.html#the-sensorless-observer) explains the math behind the flux observer.
5
+
6
+
It's a simple solution for sensorless motor control only using phase currents and motor parameters, if tracking the position at low speed and when not driving the motor is not relevant.
7
+
8
+
### Motor Parameters:
9
+
The MXLEMMING Flux Observer needs the following motor parameters to be set:
10
+
- phase resistance
11
+
- KV rating
12
+
- phase inductance
13
+
- pole pairs
14
+
15
+
It will not track the position if any of those parameters are missing.
16
+
17
+
The KV rating and pole pairs parameters are used to derive the motor flux linkage ([code](https://github.com/Candas1/Arduino-FOC-drivers/blob/202ba0c4ae11558f6391c4bdff1e130a8735e178/src/encoders/flux_observer/FluxObserverSensor.cpp#L10)) which is key for the flux observer to run well.
18
+
```
19
+
BLDCMotor motor = BLDCMotor(15, 0.1664, 17.0, 0.00036858); // Hoverboard Motor
20
+
```
21
+
flux_linkage parameter can be adjusted from the code.
22
+
23
+
### Current Sense
24
+
The current sense is required as this flux observer only relies on phase currents.
25
+
26
+
### Sensor Alignment
27
+
The flux observer sensor doesn't need sensor alignment.
28
+
```
29
+
motor.sensor_direction= Direction::CW;
30
+
motor.zero_electric_angle = 0;
31
+
```
32
+
33
+
### Bemf Threshold
34
+
The sensor also has a bemf_threshold parameter (0 by default) that prevents the flux observer from tracking if the estimated bemf is not high enough ([code](https://github.com/Candas1/Arduino-FOC-drivers/blob/202ba0c4ae11558f6391c4bdff1e130a8735e178/src/encoders/flux_observer/FluxObserverSensor.cpp#L29)).
35
+
This can help when starting the motor as the flux observer is not good at tracking the position at low speed.
36
+
37
+
### To do:
38
+
The Clarke transform is running both in the loopFOC and in the sensor update now, it can be remove from the sensor when the Alpha and Beta currents will be persisted as a BLDCMotor member.
0 commit comments