F2837xD, DRV8305 FOC Application

5 次查看(过去 30 天)
huseyin kahraman
huseyin kahraman 2020-11-18
Hi.
I am trying to build a motor driver for my school project and I am a bit new and inexperienced about this issue. I have a couple of questions regarding both the control side and the embedded side. If experienced people can give me answers about my problems, I would be grateful! My questions:
1) I have developed a model. Position control with FOC. My PWM carrier frequency is 10khz and the sample time of my model is 10e-5 sec. I have checked the frequency response of all 3 loops. After the check the bode plot, I have seen that my bandwidth according to -3dB is 500Hz for the Current loop, 150 Hz for Speed Loop, and 14 Hz for the position loop. I have developed an LPF for all these bandwidths. With these bandwidths and Low Pass Filters, I have observed pretty good current waveforms, Back EMF waveforms, and also speed and positions. But When I check the other industrial applications, the people said that for example, the current loop control freq is 24khz, speed is 4 Khz and Position is 2Khz for their application. It seems too much for me. What is the problem with that? Am I right about that, I mean the bandwidth which I get from bode plots are representing the control loop frequency of my loops?
2) As I said before, my sample time in the model is 10e-5 sec, ie. 100 kHz. When I put my model into F2837xD MCU, all my loops and models time step must be 10 Khz. Isn't it?
3) Also I have encountered a few videos about FOC with F2837xD in Matlab and they are looking a bit different from my model. I have designed all my loops and blocks on my own, I mean I didn't use any block related to F2837xD. After all these steps, I have built my model as C codes and get into F2837xD MCU. But all after this, I have seen a few videos and documents about my application. Some people are using DMC(Digital Motor Control) and FCL(Fast Current Loop) Libraries. I don't even use them in my application. Are these libraries required for me? I am asking this because I have tried to run my code in F2837xD and the code interrupted instantaneously after a few sec of start and I have gotten many errors related to "division". As I said, I am running all codes with 10-5 sample time and 10kHz carrier freq in my MCU. After that, I have reduced my sample time and It seems running, at least not interrupting.
As I said, I am a bit new about this application, If you can help me with my questions I would be grateful! Thank you!

回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by