Hello,
I have been riding my board with two VESCs for a week or so now. I have been very impressed with the improvements especially regarding the lack of faults compared to the VESC 4.12 hardware. However, today I managed to throw an ABS Overcurrent fault by flooring the board while going about 1/2 speed and it almost threw me off. I used to have this happen all the time with the VESC 4.12 but I thought the VESC 6 had it fixed. Anyway, I am using 10s voltage, dual VESC 6, Dual 190kv motors. I pulled the fault info from the terminal.
Fault Info:
Fault : FAULT_CODE_ABS_OVER_CURRENT
Current : 148.4
Current filtered : 142.3
Voltage : 36.16
Duty : 0.485
RPM : 22474.2
Tacho : 214213
Cycles running : 34336
TIM duty : 4073
TIM val samp : 2
TIM current samp : 4200
TIM top : 8400
Comm step : 0
Temperature : 36.42
I see that it tried to pull 148 Amps. Is this from the battery? I do have the absolute max amp on the battery defined as 150A but it shouldn't ever need that much since the motor min/max is 80A. I would like to figure out why it threw this fault so I can correct whatever caused it. Something I thought of that may be contributing to it is the Ramping Time in the PPM configuration. I changed it to 0.05s for both positive and negative ramping as I want the board to respond aggressively.
Anyway, any help is greatly appreciated, I can tinker with any ideas you have.
Thanks!
As far as I understand things, getting a desired amount of current flowing is sort of a black art. Assume that we have a brushed motor running at 50% dutycycle and 10A, if we command 80A, where should we put the dutycycle? This problem is even more difficult as the three lead voltages change all the time, in your case over 350 times per second.... So when you TRY to push 80A through the motor, occasionally you in fact do overshoot the target value, and may occasionally hit the 150A. Correct me if I'm wrong....
I also wrote about that behavior in this thread: http://www.vesc-project.com/node/58 The first point. You can read Benjamins response to that and try the things he recommended. I hadn't time for it yet. I don't know if you can reproduce that fault that easy like I did, because leaning forward to compensate acceleration with an skateboard will throw you off a lot easier. I think that behavior is very dangerous for all electric skateboards and need to be solved as soon as possible. I am sorry that I can't test more on that fault the next two weeks. Hopefully I have time for that afterwards.
Thanks for the replies guys! Hexa, I did see your post the other day and I will try adjusting those things tomorrow and report back. It may be a bit different than your scenario since you are using higher currents on a larger motor with a different geometry. I am curious to see what Ben has to say since this seems to be a recurring issue with different motors.
Cheers!
Thanks for the response Frank. I have lowered the current to 60A and it seems to be better. Time will tell if I have the over current fault again. I also noticed something when braking or accelerating hard. At low speed, there is a sort of stutter. Nothing super aggressive but noticeable. I am wondering why it does this since I am using hall sensors. I'm starting to think it may be due to the stator saturation. I see there is a compensation area in the VESC Tool. Not sure where to go with it though. It could also possibly be around the speed that the VESC switches from sensor mode to sensorless operation. Any thoughts? I will post a video of the issue later tonight.
Thanks!
Here is a short clip of the issue: https://youtu.be/X3EVMvs4C_Q
I have tried bumping up the Sensored max ERPM from the default 2500 to 4000 but it made little to no difference. I have also double checked to make sure it is nothing mechanical such as belt or shaft slip. Is it a result of stator saturation? Any help is greatly appreciated.
Thanks!
Thanks for the reply Frank. I tried lowering the ERPM for the sensors and it made the issue worse. I also ran the motors in full sensorless and it began cogging around the same speed during brake/acceleration. My regen settings are -60 motor, -40 battery. I also just tried bumping the battery to -60 but it made no difference. Thanks.
When the motor does "funny things" when it goes sensorless at a specific RPM, then the observer is not following the rotor correctly. This can be caused by badly detected R, L and Lambda values.
I halve a spelling chequer
it came with my pea sea
it plainly marques four my revue
Miss steaks eye kin knot sea
I ran this poem threw it
I'm shore your pleased two no
Its letter perfect in it's weigh
My chequer told me sew.
My native language is Dutch, but I did "4th grade" (primary school) in an English speaking country (Canada). The first topic we covered was homonyms and homophones. to/too/two, bear/bare, brake/break and in this case seam/seem... So 40 years on, that's what I still know.... :-)
Thanks for the replies guys! I did remeasure both motors yesterday before the other tests. It was with the belt and wheel attached so I will retry this with only the motor. I will also try BLDC mode and lower currents and report back.
Cheers!
You could also try to do sensor detection again, maybe at higher current than the default. I have noticed that some motors have a bit uneven distribution of the sensors and click in a similar way. On one setup I used an encoder because the sensors were not even enough. However, other motors such as the trampa outrunners have nice and even sensors that don't click like that at all. I think the clicking could possibly be reduced by including some unevenness in the sensor distribution in the interpolation model for the sensors.
Regarding the overcurrent faults, the thread hexakopter linked has some tips that you can try out. I will experiment a bit more and see if I can get FOC to run under a bit higher saturation, which is a quite difficult subject since FOC is so dependent on knowing the motor parameters exactly.
Can you measure saturation? Statically? Does the inductance decrease?
Would it work to measure the inductance, and then with a DC current injected measure it again while ramping up the DC current?
It would already be very helpful if there was a tab in VESC_TOOL that allowed you to measure where the limits are.
Measuring the inductance during saturation is somewhat possible from the terminal by adjusting the pulse length if the inductance is low enough. It would also be possible to make a tab where the pulse length can be increased until a certain current is reached and a graph is plotted. The flux linkage however is not so easy to measure under high current. Maybe a lot of D axis current could be injected, but that has several other effects that have to be compensated for.
Hello guys,
So I tried a bunch of things and here are the results:
Remeasuring FOC detection parameters with no belt/wheel had basically no difference. I also put the motors in BLDC with sensors and it had similar problems as well as the start being not as smooth. I switched back to FOC and tried adjusting the observer gain at minimum duty cycle. This seemed to help slightly when set to 0.1 and 0.05.
After thinking about it for a while, I realized the vibration/stuttering started at the same speed in both sensorless and sensored operation with the sensorless cogging completely as the RPM approached 0. It was happening around 5-6mph so I calculated the ERPM for that speed (~7000) and set the Sensorless ERPM to that under the hall effect configuration. This completely fixed the issue. I think the reason it was problematic is I am running a low gear ratio. 15:28 so there is a lot of torque on the motor during braking and accelerating.
Frank, I know you said running the sensors this high rpm would be a problem if the sensors failed. I did run a simulated failure by disconnecting the halls while running and two things happened. If they were all unplugged, the vesc switched to normal sensorless operation. If only one or two sensors were disconnected, the motor ran poorly and cogged with no load, however, when riding, it is almost unnoticeable unless hard acceleration or braking is applied.
Do you guys see any issues in running the Sensorless ERPM this high? Now that we know the issue was a result of poor sensorless tracking at the low speed and high current, is there another work around other than the sensor RPM?
Thanks!
If it works well then you can leave the sensorless speed at 7000 ERPM. The sensor interpolation should work better at high speed as well, so it might not be a problem. It is correct that sensorless operation is used if all sensors are disconnected, but disconnecting only one or two can give weird effects as there is no way for the software to tell when that happens. The protection should prevent any hardware from failing at least, but you might get a sudden strong brake or lack of brake if the sensors get partly disconnected.
Thanks for the reply Ben. I will leave it like that then as it seems to be running perfectly! I have to say, I am loving the performance and lack of faults with these new controllers! You really hit the nail on the head with this one.
Cheers!
Hey Team,
We have designed a SPMSM motor and are using A200s VESC board for powering an e-bike.
Although I have tried many suggestions posted all over the forum, I want to understand the real problem to ensure I can improve the reliability of the system.
Here is the gist,
The motor is a 6.7kW design currently in Delta configuration to provide the required top speed without entering FWR.
previously we had sufficient torque at the wheel at 200Amps voltage when running in Wye/Star configuration but speed was limited.
We are running the load test on bench with rope and pulley method and on bike for real world usage analysis as well.
The system works flawlessly under 200Amps, Hall sensors are used till 6000ERPM.,
Now when the load is raised to output a torque of 25nm [20kg mass on 125mm radius pulley] the motor needs around 200+ Amps to start and 170Amps to keep rolling.
If I use the duty cycle control on a keyboard, it starts and shoots upto 240Amps and settles back to 170Amps without any issues every single time.
but if I use the current control method set the current to 240Amps and start it fails 3 out of 5 times with a ABS_Over_Current_Fault.
here is the copy of the configurations and log >> https://github.com/gowrav/sesc/files/5131447/ABS_Faults_Conf_Log.zip
In the below Images First 4 attempts are done using duty cycle control 20% and rest using current control 240A, I have limited the Max ERPM to 2500.
Things that I have tried.,
Halving and doubling Observer Gain from 2.66 >> seemed to make a difference but very unreliably
Observer gain at minimum duty is at 5% by default, I don't think it would be better to reduce it further.
Changing Time constant for Kp and Ki calculation >> No effect.
Increasing Absolute Max Current was tried but seemed unreasonable as it was still faulting at 400Amps [ Absolute Max Current ] for Max Current of 240Amps.
GL
You need to slow down the current change, reduce the Current KI by half. Or increase try increasing the Time constant for the PID up a lot.
To see what effect the changes are having go to Sampled Data page, then before pressing the keyboard arrow for current control mode, click the second button (circle one on left of the circle with at T). Which will start sampling when the motor starts.
Then you will get a nice graph of the current at startup and can play with the KP and KI until it doesn't overshoot and has good damping. Normally just changing the KI is sufficient to tame it.
Hey Euan,
Seems something is bothering the sampling program it worked for first 2 and then stopped taking samples and is getting stuck at 90% capture.., may be a full power cycle can address it.
There seems to be some improvement at 3500uS but increasing the time constant to 4000uS resulted in more faults.
Does this have fatal consequences if set too high ? also does it mean Ki set to low value increases acceleration time?
GL
If you lower the ABS max current limit down to a lower value, then you should be reasonably safe to experiment.
I found that you need to hold down the button for long enough to send the samples back, its a bit dodgy.
I don't think it will impact acceleration time unless you set it really low.
You might want to increase samples to 2000 and set Dec to 2 or more to see longer time.
My general approach is to lower the ABS max to what current you want maximum say 280A, then you can tune it till it no longer triggers the fault. You can also then use the button with the bug on it to show the samples around where the fault occurs.
Other things to try,
Hi everyone! The same is happening to me, when I run the detection my motor is spinning but just once and in the Print faults I have registered this fault: FAULT_CODE_ABS_OVER_CURRENT.
I'm working with a VESC 4.12, and it says that the maximum current thant can stand continuously is 50 A, but my Motor Current Max is 100 A. Does it has something to do with it? Also when I run detection the resistance and inductance values are 0. By the way, the detection appears as succesful but the motor is only spinning once, I have tried with other motors and they spin more times and in both directions.
Can anyone help me with this? I'm just a beginner so anything you know will be helpful to me!!