2018-07-11 02:21 AM
I use the SDK 4.3 and I have found this errors:
- in open loop mode when enabled the V/F mode and reverse rotation the OL_Calc when increase the absolute speed, the voltage decrease
void OL_Calc(COL this)
{ pVars_t pVars = CLASS_VARS; if (pVars->VFMode == TRUE) { /* V/F mode TRUE means enabled */ int16_t hMecSpeed01Hz = SPD_GetAvrgMecSpeed001Hz(pVars->oVSS); if (hMecSpeed01Hz >= 0) { int16_t hOLVoltage = pParams->hVFOffset + (pParams->hVFSlope*hMecSpeed01Hz); pVars->hVoltage = hOLVoltage; } else { int16_t hOLVoltage = pParams->hVFOffset - (pParams->hVFSlope*hMecSpeed01Hz); pVars->hVoltage = -hOLVoltage; } }}- when enable the startup on the fly, sometimes the initial speed is high (when the motor is stopped) because the read of the current is wrong. The source of the problem is the procedure of calibration. To solve the problem in the file MCTask.c I initialize the variable Iab to zero in functions TSK_HighFrequencyTask and FOC_CurrController
Curr_Components Iab = {0,0}
- in the startup on the fly sometimes with GCC and optimization enabled (-O2) the function RUC_Exec could go in HardFault_Handler. The source of the problem is the use of a NULL pointer for read the duration of the phase. Infact the pointer pVars->pPhaseParams could be NULL
pRUCPhasesParams_t pPhaseParams = pVars->pPhaseParams;
uint16_t hDurationms = pPhaseParams->hDurationms; /*Duration of the rev up phase*/2018-08-06 08:41 AM
Dear Davide,
I would like to understand why do you still use the 4.3 version of the library.
This version is not maintained and will not be patched. It would be a great help if you explain us why do you still use it. Perhaps did you face some issue with the 5.x . Or some limitation we are not aware of.
Thanks for your feedback
Regards
Cedric
2018-08-29 03:04 AM
Davide Zanni, Thanks. I modified the code you posted and the "startup on the fly" feature becomes much more stable than before.
2018-11-22 07:40 AM
I have founded another error in the startup on the fly. The first two current reading from the ADC are wrong, so I dischaged it. In function FOC_CurrController when the state is START, then for two times after the call to PWMC_GetPhaseCurrents, I set the components of the variable Iab to 0.
This error is present also in version 5.2
2018-11-23 08:08 AM
Dear Davide,
Thanks a lot for your shared feedback. We will investigate about it, and let you know about the outcome.
Best Regards
Patrice
2018-11-23 08:13 AM
2018-12-21 05:42 AM
Dear all,
For your information, this problem has been fixed in last SDK5.3 release.
Thanks and best regards,
Claire
2018-12-21 05:47 AM
2021-06-15 01:19 AM
The question has been moved from the "Motor Control Hardware" section to the "STM32 Motor Control" section (the question is about the STM32 MC SDK).
Best regards