- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Engineers,
I'm using own application based on TLE9879 Eval Kit Hall Sensor example. Everything is working flawlessly but I'm unable to reach declared motor maximum speed unloaded and loaded.
Rated loaded speed : 18000rpm
Rated unloaded speed: 22-25000rpm.
Actual unloaded speed with eval kit is 17220rpm.
Below are wizard parameters. Most change was achieved by maximum Ki Kp duty cycles which make sense, but now I'm unable to increase speed even further. Voltage is as per motor datasheet. Current also.
Any hint where to look now? Thank you
- Labels:
-
MOTIX™ MCU
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @Georges_Lab ,
Apologies for the delay in response and thanks for reaching out to us.
We would like to know a few things
1. How did you control the speed and up to what speed the actual speed was following the reference.
2, Were the Kp and Ki values constant always ?
3. For the given condition can you please share the hall sensor feedback and also the voltages to the machine (for the exact same duration) ?
4. Hall sensor offset might cause wrong excitation which might result in steady state error. Can you please share the hall sensor feedback data and also the motor input voltages (for the exact same duration) at another instance when the reference and the actual speed are the same ?
Thanks,
Sai
Sai
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Sai,
thank you very much for reply.
1. code to start motor is below. At moment set 25 000 rpm. I will test at which point it will stop following reference.
2. Ki Kp was adjusted by wizard in keil IDE. If they are not changed silently in your example code, then they are constant.
3. I will do measurement and send it to you.
4. will measure also and send it to you. Looks as reasonable idea.
I attached motor hall possition vs coil. I have no idea where to put this parameter in wizard, there is only check box 60degree offset. If you can give me hint I will be grateful .
Thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I just made requested measurement, as I have only 4ch oscilloscope I made hall measurement and phase measurement as 2 separate graphs, each have at least 1 signal common to make reference between them.
Motor reference speed is followed up to 16k rpm. (fluctuates between 16 and 17k rpm depend on battery voltage, 19-21V.
3. graphs with 16k name prefix. Are for referenced speed of 16 000rpm.
4. graphs with 20k prefix are not referenced. speed was set to 20 000rpm but only 16200rpm was actually reached. File 20k merge is manually merged two files to make all channels visible.
Below is code which set speeed and run motor. All control routines are without any modification from your hall example for dev board.
Emo_SetRefSpeed(-20000);
Main_lStartMotor();
Thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Problem starts to be blocker, Can you please send me update? Thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @Georges_Lab ,
Thanks for sharing over the data. Please deselect the hall angle offset enable option and also decrease the value of Ki, higher value of integral function causes the PI loop to saturate, which might be causing the output speed to remain at 16k rpm after certain stage. A better way to tune the PI controller would be to maintain the ratio of Kp/Ki same as the L/R of the motor.
From the image of the hall sensor shared, there is a misalignment between the stator magnetic axis and the hall sensor, this induces slight offset in the measurement, wrong commutation timing and incorrect speed feedback. Ref : http://pep.ijieee.org.in/journal_pdf/11-63-140309172401-04.pdf. This can be accounted for in the hall angle delay section.
Sai
Sai
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Enter either 0 rpm or the speed from which the output is deviating from the reference.
Sai
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ok, thank you, I will update you with result. I suppose that delay should be 15degree as per drawing of motor, right?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Georges_Lab , the angle to be entered is in electrical degrees, which is 2*mechanical angle in your case, and the three hall sensors are also placed 120 degrees electrically apart (60 degrees mechanically apart) I hope.
Sai
Sai
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
understood, thank you. Yes, all three halls looks like they are 60degrees mechanically apart.
I will send you result of tests later.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Sai,
I just made few trials.
1. When 60 degree offset is disabled then motor is not moving, just buzzing. Switch of windings to change order had no result
2. when changing angle delay while offset was enabled had no effect till 20 degrees. from 20 to 30 degrees speed was decreasing. Larger angle delay was not tried.
3. Tried Kp= 4 Ki=3 (also other ratio as 2/1 3/4 1/2...) without any change. Just startup ramp changed with smaller coeficients which was expected.
On Monday I can do waveform measurement and also L/R ratio measurement to setup Kp/Ki . But I was really hoping for some exciting change when delay angle was entered.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is definitely not pleasant to hear this. Looks like the 60 degree offset enable is matching the way hall sensors have been connected.
I'd suggest to first try changing the Kp and Ki parameters accordingly by keeping all the other parameters same as original.
Hall angle delay option is used in case one might need to compensate misalignments between the motor phases and the Hall sensors. The software takes into account this misalignments to generate a better synched pattern. This was expected to work in case misalignments were present. At my end, I'll go through the code and see what can work better.
Thanks,
Sai
Sai
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you very much for effort, really appreciate it as this project is for product which will be released in few months so fine tuning is mandatory now. On Monday I will do all measurement with oscilloscope to see what is actually happening and update you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Sai,
I just made some tests with oscilloscope:
When I adjusted startup currents then motor start up even with offset disabled, not every time but at least I was able to make measurement.
When offset is enabled and I increased angle delay it looks like it goes to opposite way, in another words I need negative delay. Is possible to put -10degrees delay somehow in code?
When I tried to simulate hall input without motor to see how output will react It ended with blown mosfets as they obviously was not able to close as fast without load. I have second board for future tests.
Then I edited hall table to make -60degree offset. But I was surprised as -60 looks like +120. Code for -60 and scope waveforms with comments on screen are enclosed. I also enclosed general bldc pattern, why looks waveforms inverted on scope? I would expect full voltage on excitation and then zero when phase is off.
Waiting for your input as customer is getting upset . Thank you.
/* HallOutPtns[16] - Hall and output patterns
* Value = f(current Hall pattern, expected Hall pattern, output pattern)
*/
(uint16)Ccu6_SetPtns(0, 0, 0x00), /* Hall pattern=0, forward direction (error) */
(uint16)Ccu6_SetPtns(1, 3, 0x1C), /* Hall pattern=1, forward direction */
(uint16)Ccu6_SetPtns(2, 6, 0x31), /* Hall pattern=2, forward direction */
(uint16)Ccu6_SetPtns(3, 2, 0x0D), /* Hall pattern=3, forward direction */
(uint16)Ccu6_SetPtns(4, 5, 0x07), /* Hall pattern=4, forward direction */
(uint16)Ccu6_SetPtns(5, 1, 0x13), /* Hall pattern=5, forward direction */
(uint16)Ccu6_SetPtns(6, 4, 0x34), /* Hall pattern=6, forward direction */
(uint16)Ccu6_SetPtns(0, 0, 0x00), /* Hall pattern=7, forward direction (error) */
/* T12Moden - T12 modulation enable patterns
* Table value = 0x80(MCMEN) + pattern for T12MODEN
* Pattern = COUT62*32 + CC62*16 + COUT61*8 + CC61*4 + COUT60*2 + CC60 */
(uint8)(0x00), /* Hall pattern=0, forward direction (error) */
(uint8)(0x80 + 0x0C), /* Hall pattern=1, forward direction */
(uint8)(0x80 + 0x30), /* Hall pattern=2, forward direction */
(uint8)(0x80 + 0x3C), /* Hall pattern=3, forward direction */
(uint8)(0x80 + 0x03), /* Hall pattern=4, forward direction */
(uint8)(0x80 + 0x0F), /* Hall pattern=5, forward direction */
(uint8)(0x80 + 0x33), /* Hall pattern=6, forward direction */
(uint8)(0x00), /* Hall pattern=7, forward direction (error) */
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I observed that when driver is stopped I can see nice smooth waveform as expected until motor stops. What is causing that smoothing when driver is stopped and motor is still moving is induction what I see?
You can see this on screens below. Also you can clearly see I need 30 degrees shift to the left. But everything I tried is moving phase to the right.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Sai, any news regarding problem? Thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @Georges_Lab ,
Apologies for the delay in response. Did you try by tuning the Kp and Ki parameters according to the L/R value of the motor and required rise time, etc ?
Give me a days time, will get back to you.
Sai
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, I'm sorry that I'm pushing you as I'm sure you have more work to do than just take care about me. But we are already behind deadline because of this tricky problem. Today I should receive some chinese drivers which was used with motor from same company. So I can compare waveforms.
Yes I tried to fiddle with Kp Ki, but except different speed up ramp was final speed still same.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, any update on your side?
I acquired eval boart from ST STEVAL_SPIN3201 . I'm able to run discussed motor with this board on full speed 23600RPM. Kp is 1000 Ki is 100 by default, rest of parameters are in attached images. How to achieve same parameters on infineon board? PWM speed is 50khz by default.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I compared ST eval output with infineon eval output and I can see different ouptut signal, ST which can reach motor max speed is more steepy, rise and fall edge is nice and sharp, but infineon is somehow disorted. I tried every parameter including BDRV charge/discharge current to max but edge is same. How can I adjust it to be same as ST one?
Already gate voltage looks odd, how to make it more rectangular?