-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
V_neutral_Offset #17
Comments
Hi @MarcP75006 Practically you see that it's not that simple. I first recognized it watching this Oszi-screenshot that there is a huge difference between the "theory-V_neutral" and where the real V_neutral voltage level should be. So if you need to tune these values yourself, the hardest part will be to find a single operation point where your BLDC turns in closed loop BEMF mode. This can only be done with trial and error and playing around with the values. As soon as it's rotating smoothly, you can increase/decrease your dutycycle by 10, and adjust you V_neutral-offset again. Generally be aware that this is still more or less just a workaround and not 100% reliable for serious applications. Also please use a power supply with current limitation to avoid damage to your motor. Hope this somehow answered you questions. Let me know if you need more info. |
Great thanks for your reply. Let's see if I got it correctly : The method compares the BEMF voltage to half the DC bus voltage assuming that the zero crossing events occur when the BEMF is equal to DC/2. We cannot measure directly DC+ and DC- at the coils, and DC/2 at the neutral point. So we derive DC/2 from the following: ADC_VDD_2 read by the A0 pin is already scaled down to Vsupply/2 by a voltage divider on the BLDC-SHIELD_IFX007T and further scaled down by a 1/4.7 voltage divider (R32/R28 on the shield) for 5V compatibility. Since V_neutral (DC/2) on the neutral point of the two energized coils is proportionnal to both ADC_VDD_2 and the dutycycle, But because DC/2 is non zero and increases with duty cycle, a V_neutral_offset whose value also depends on the duty cycle, has to be substracted. Am I right? Best regards. |
Jip, that's correct! |
Hello, I am working on my side to try to construct the code for the sensorless configuration having your current library as a guide, but I am obtaining no movement for the close loop part where the BEMF is used to synchronize the bridges. I was wondering why there is no code available already and if Arduino UNO is strong enough to carry out this application. Thanks in advance! |
Hello, Good luck. `
*/ #include "IFX007T-Motor-Control.h" //Create an instance of 'IFX007TMotorControl' called 'MyMotor' void setup() MyMotor.begin(); MyMotor.MotorParam.V_neutral[0] = 160; // High dutycycle, when V_neutral is const MyMotor.configureBLDCMotor(MyMotor.MotorParam); void loop() }` |
Thank you so much for the help @MarcP75006! |
Hello,
it is not clear to me where the V_Neutral_Offset used to calculate V_Neutral for BEMF zero-crossing detection comes from (electrically, I mean).
Also, how did you measure the raw V_Neutral_Offset values in the "explanation_parameters" graph shown in the readme file ? In other words, how could I measure it at various duty cycles in order to find the V_neutral[n] parameters with my own setup ?
Thanks a lot for your help.
The text was updated successfully, but these errors were encountered: