Closed Candas1 closed 3 months ago
If this generates too much work (changing the examples, ....) This alternative should have less impact:
getfoccurrents:
getdccurrents:
and no changes in loopfoc.
I only added a getABCurrents function and it looks like that
before: RAM: [= ] 9.2% (used 4536 bytes from 49152 bytes) Flash: [=== ] 27.3% (used 71540 bytes from 262144 bytes) loopfoc = 260us
RAM: [= ] 9.2% (used 4536 bytes from 49152 bytes) Flash: [=== ] 27.3% (used 71500 bytes from 262144 bytes) loopfoc = 260us
So no real space saving, no performance impact, but a single function to enhance in the future. If you think it's useful I can send you the PR.
I thought a getDQCurrents function (park transform) wouldn't be useful because it's used only once. But if you guys want to implement FOC for steppers, you could reuse such a function. Inverse park is used for both bldc and stepper motors also, it could be a getABVoltages function.
@Candas1 should be close this one?
Hi,
This is not adding a feature, but could make further changes easier. There is duplicate code here and here
This could be made a function getAlphaBeta or getClarkTransform that uses foc currents as inputs, and returns alpha and beta. A function getParkTransform could use the electrical angle, alpha and beta and return DQcurrents. getDCCurrent could use the electrical angle, alpha and beta and return DCcurrent.
Eventually, foc_current torque control type in loopfoc would do:
And dc_current torque control type in loopfoc would do: