Other Parts Discussed in Thread: MSPM0G3507, DRV8329AEVM, DRV8329
Tool/software:
Hello my dear supporters and engineers,
I'm currently using LP-MSPM0G3507 and DRV8329AEVM to spin the motor using the "C:\ti\mspm0_sdk_2_02_00_05\examples\nortos\LP_MSPM0G3507\motor_control_pmsm_sensorless_foc\sensorless-foc_DRV8329" example. However, I'm having several problems measuring the values.
Things to fix in the code:
- Receive Target RPM via LIN communication and control motor speed
- Improve motor current waveform (The distorted current waveform needs to be improved to a sine wave-like waveform.)
- Stop motor operation and set fault flags in case of faults such as overvoltage, overcurrent, overheat, open/short circuit, etc.
- Send high voltage, motor current, current speed, and fault status via LIN communication
Issues I am facing
1. I cannot jump to a specific function by definition. The following functions cannot be opened:
updateConfigsInit()
updateConfigs()
applicationConfig(void *gpMC_App)
appReset(void *gpMC_App)
applicationLowPriorityRun(void *gpMC_App)
getMCAppSize()
※ I need to know the measurement method and update cycle of the values in g_pMotorInputs.
2. I would like to know what I can do to improve the current waveform.
I took the following actions:
Changed pUserInputRegs->systemParams.currLoopKp =3.42 in ISR.C to pUserInputRegs->systemParams.currLoopKp =1, and changed pUserInputRegs->systemParams.currLoopKi = 3678 to pUserInputRegs->systemParams.currLoopKi = 0.
As a result, I could feel a slight difference at 2000 RPM.
currLoopKp =3.42 and currLoopKi = 3678
currLoopKp =1 and currLoopKi = 0 (But the waveform keeps changing.)
However, the waveform shakes badly and does not come out as a consistent waveform. Also, the waveform at low RPM and the waveform at high RPM are very different. I would like to know what parameters or algorithms I should change to always get a consistent sine wave waveform regardless of RPM.
If you need any additional information, please reply.
Thank you.