Quantcast
Channel: Dave (Wisconsin) Wilson's Activities
Viewing all 534 articles
Browse latest View live

Effective voltage of motor under rated power

$
0
0

When I test my ACIM  motor by using lab13e, the motor working at maximum speed ,and I Increasing load , normally the phase voltage will reached 15V which is the effective value of rated voltage .The Vector sum of α current and β current close to 1(PU) , but the phase voltage still can not reached 15V. Let's see the pictures.


example codes available of Decoupling?

$
0
0

Dear all/Dave Wilson,

I am using TMS320F2811 and TMS320F28069 device to develop induction motor control algorithm. I am using control suit example codes to develop sensor less vector control algorithm.

Example code used.

HVACI_Sensorless_2833x (\\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVACI_Sensorless_2833x\...)

I refer “Teaching Old Motors New Tricks - Part 3” video. In this video there are discussion about back EMF and axis Decoupling (cross coupling term) in lab exercises. These term are added in Vq and Vd reference.

Is there any example codes of these lab available on TI website?

Regards,

Suprit 

InstaSpin BLDC startup current spike

$
0
0

I am using the Instaspin BLDC code to run a small 12 volt motor. We are using the cascaded level 8 configured code. I notice a current spike when I enable the motor to start. This initial spike sometimes trips my 6 amp TZ circuit. The max running current of our motor is about 4 amps. The start current is set to IQ(0.1). 

From what I can see in the code when the motor is first started it uses the start current to feed into the current PID. I assume the PID is the cause of the intitial current spike as it takes time for it to stabilize the current. Are there any examples or methods used to make the startup current be more smooth and reduce the initial current. I know I could disable the TZ on startup, but I would rather make the current start slower and reduce the current spike. 

I also have a problem when our motor voltage drops from 19 volt to 12 volts quickly. This is due to a user unplugging a power cord. The motor will stall and try to keep running which will cause an over current TZ event. What is the best way to keep the motor running smoothly with a sudden drop in voltage?

Have SPRUHJ1C Chapter 21 and Chapter 22 released yet?

$
0
0

Wondering if Chapter 21 and Chapter 22 in InstaSPIN User's Guide released ?

If not is there any helping documents/resources in the same topic "

Building Your InstaSPIN-FOC and InstaSPIN-MOTION
Board

"

Thanks for help

Controlling Low Side FETs (DRV8301-69m-kit)

$
0
0

Hi folks,

I posted this question to the motor driver forums but was recommended by Nicholas to come here with my problem. Here is the link to my exchange with him: http://e2e.ti.com/support/applications/motor_drivers/f/38/p/449884/1618330#1618330

I'm trying to figure out how to control the low side FET's to be able to utilize regenerative braking for the system I'm working on. Here is the last thing I posted on the motor drive forums and it's where I'm currently at:

" I've spent quite a bit of time looking through hal.c and came up short with what I wanted. I guess I was looking for a duty cycle parameter or something and didn't notice anything. Although, after further reading, I've noticed that epwm 1,2, and 3 get initialized in Hal.c:
// initialize PWM handles
obj->pwmHandle[0] = PWM_init((void *)PWM_ePWM1_BASE_ADDR,sizeof(PWM_Obj));
obj->pwmHandle[1] = PWM_init((void *)PWM_ePWM2_BASE_ADDR,sizeof(PWM_Obj));
obj->pwmHandle[2] = PWM_init((void *)PWM_ePWM3_BASE_ADDR,sizeof(PWM_Obj));

Each ePWM has an A and B associated with it for high side and low side FETs. The pwm object associated with the pwmHandle has a slew of different variables associated with it. After ctrl+f'ing through spruh18e.pdf, I've found this:

B Duty modulation for EPWMxA is set by CMPA, and is active high (that is, high time duty proportional to CMPA).
C Duty modulation for EPWMxB is set by CMPB and is active high (that is, high time duty proportional to CMPB).

So it sounds like I need to write to the CMP registers to get the duty cycle that I want. In my main file (inside the forever loop), I write the following for a duty cycle of 0%:

halHandle->pwmHandle[0]->CMPA = 0; 
halHandle->pwmHandle[1]->CMPA = 0;
halHandle->pwmHandle[2]->CMPA = 0;

All I get is a high pitched noise coming from my motor as it continues to spin. Am I off track or getting close?  "

Any help would be greatly appreciated!

-Jim

Effective voltage of motor under rated power

$
0
0

When I test my ACIM  motor by using lab13e, the motor working at maximum speed ,and I Increasing load , normally the phase voltage will reached 15V which is the effective value of rated voltage .The Vector sum of α current and β current close to 1(PU) , but the phase voltage still can not reached 15V. Let's see the pictures.

Current Regulator Problem

$
0
0

We're running a BLDC motor in torque-control mode, using Lab 04a on a DRV_8301 EVM kit with a 28069 Control Card.  We ask for a particular amount of Q-axis current and then vary the load.  The system speed reacts to the load.  When we decrease the load enough to approach rated speed on our motor, the torque starts to decrease.  We see a corresponding decrease in the phase current as well (as expected).  We're using our own measured motor parameters in User.h.  When we calculate the current phase angle from the measured phase voltage and current (on an oscilloscope), we find that the regulator does a good job applying 100% q-axis current up to a certain point, but then it seems we start to see a fair amount of field-weakening.  This is strange because the commanded d-axis current is zero.

Our thought was that we needed to mess around with the current regulator gains, so I opened up Lab 5a and played around with the two gains used in the lab, but I didn't see much change in behavior.  I ran the motor at 14A and 1300rpm (where we're normally starting to fall apart) and went up and down by a factor of 10 on both the proportional and integral gains, but the phase angle didn't change much.  The audible noise coming from the system did change a little, and the current waveshape did change very slightly, but no improvement in torque.

Based on the motor model and our DC bus, we should be able to apply 14A (and get the corresponding torque) up through about 2000rpm.  It seems like we're being limited somewhere, but the limits set up in User.h should be well above our operating point.  Plus, the d-axis current injection is very odd.  I'm not sure exactly where to turn at this stage, but any help would be appreciated.

Thanks,

Matt

overcoming holding torque

$
0
0

Hi,

Our setup is DRV8301 eval kit, F28069M, 42V supply, PMSM motor. Phase to Phase peak Kt = 32 oz-in/A. Ke = 23 Vpeak/kRPM. Encoder sensored control. flag_enableForceAngle = true.

Question 1: We've found that when motor is holding zero, or idle position,  - it seems to max out at approx 3.8A current draw (this was verified with a scope). What is triggering this limit?

The graphs below show 5 cases of where the holding torque is overcome (and the motor shaft forced out of position for approx 3 seconds before releasing).

I've seen several threads on this behaviour. But couldn't get to the source of our problem here. Before digging too deeply, could you point us in the right direction.

Motor max amps is set to 15.0. And we have seen that during position moves with high accel, the currents measured are greater than the apparent 3.8A holding limit (measured and verified on scope at values over 5.5Amps)

Question 2: Can we expect the torque figures (shown in Nm below) to be valid during these holding torque periods? I've included some of our motor data above. The torque plot below shows several cases where values range between roughly 3.2 to 3.5 at steady state currents. We have also seen bigger discrepancies than this in other testing trials.

Thanks in advance!


InstaSpin SVM Questions

$
0
0

I am relatively new to motor control and am in the process of trying to wrap my head around everything.  I am using the InstaSpin FOC motor control firmware on a TMS320F2807 chip and am wrestling with understanding the SVM code.  One question I have is there ever a point in time that an IGBT would ever be closed for longer than a period of the switching frequency?  Also, is there an application note that explains the Instaspin FOC SVM? 

Thanks,

Hayden

Overmodulation and other questions

$
0
0

I have been playing around with motoware on the LAUNCHXL-F28027F + BOOSTXL-DRV8301 platform for a while now.  For the most part I am coming to terms with it.  However I am left with several questions I haven't been able to solve to my satifaction.

How do I add overmodulation to lab11?  The lab notes say it is the same as lab 10a, but lab10a also uses the CTRL object.  I copied runCurrentIgnore, runCurrentReconstruction, and runSetTrigger from 11a.  I also copied the relevant svgencurrentHandle, etc initializations.  The motor runs, but the results are kind of odd.  In lab10 I can acheive ~3900rpm with modulation set to 0.67 and ~3100rpm with modultion of 0.5.  In lab11, with all my additions commented out and USER_MAX_VS_MAG_PU =0.5 I can still reach 3900rpm, shouldn't it only be 3100?


Is there a reccomended way to add stall detection?  I'm thinking of the case where foriegn objects cause the rotor to lock and the motor needs to be shut down to prevent damage.  I noticed when I lock the shaft, speed estimates of ~1krpm are returned in most cases.  My current techniques is to declare a stall when est. rpm is <1.5k and reference rpm is >2.5krpm for > 1 second.  In the case where ref rpm is <2.5k I declare stall if current is >5A for more than 1 second.  Is there a more elegant way?  This is for a fan application.

The motor/controller will need to be tested with the fan removed, but this will wreak havok when used with the high gains required for the fan, the motor will oscillate and be very noisy.  Is there a way to detect the presence of the fan inertia?  Current on startup maybe?  Any other suggestions for how to solve this problem?


Is there a way to selectively optimize files in the motorware projects?  I noticed by default the debug level is 2, this make actually debugging anything quite a challenge.  If I set optimization to 0 the code is either too large or doesn't run.  I would like to be able to optimize most of the files, but leave the ones I am working on at -o0.

Should Is_A match up with the measured input current?  I had to increase USER_IQ_FULL_SCALE_CURRENT_A to 25 for my motor to reach full power.  When testing at full power Is_A shows >20A, but my power supply shows like 18A.

That's all I have for now.  Thanks in advance for the help.

Measuring power consumption with MotorWare 15 proj_lab5b

$
0
0

I am using the MotorWare project proj_lab5b, and I want to measure the power consumption of the motor. To measure the voltage, I read the gMotorVars.VdcBus_kV variable. But I can't find it's counterpart for the current. Is there such one?

How can I limit the minimum PWM pulse width in InstaSPIN-Motion?

$
0
0

Hello,

I try to run the InstaSPIN-Motion on my own board with F28069M.

I find that sometimes the PWM pulse is too short for the MOSFET to switch on/off completely as following picture. Is there any method that I can limit the minimum the PWM pulse width?

Thank you very much.

Best Regards.

what's the impact on performance when change from traditional svgen algorithm to the computation reducing algorithm now using.

$
0
0

hi:

   I find that in some old version of motorware, the svgen algorithm is traditional svgen algorithm to generate SVPWM signal.

however in the newest motorware, all of the svngen algorithms are reimplented like this (the doc call that Implements a SVM that saturates at the level of MaxModulation.),  does somebody know what's the impact on performance when using this algorithm instead of traditional svgen algorithm.

{

_iq Vmax,Vmin,Vcom;
_iq Va,Vb,Vc;
_iq maxModulation = SVGEN_getMaxModulation(handle);
_iq maxModulationNeg = -maxModulation;
_iq Va_tmp = -(pVab->value[0]>>1);
_iq Vb_tmp = pVab->value[1];

Va = pVab->value[0]; //alpha
Vb = Va_tmp + _IQmpy(SVGEN_SQRT3_OVER_2, Vb_tmp); //-0.5*alpha + sqrt(3)/2 * beta;
Vc = Va_tmp - _IQmpy(SVGEN_SQRT3_OVER_2, Vb_tmp); //-0.5*alpha - sqrt(3)/2 * beta;

// Clipping
Va=_IQsat(Va, maxModulation, maxModulationNeg);
Vb=_IQsat(Vb, maxModulation, maxModulationNeg);
Vc=_IQsat(Vc, maxModulation, maxModulationNeg);

Vmax=0;
Vmin=0;

// find order Vmin,Vmid,Vmax
if (Va > Vb)
{
Vmax = Va;
Vmin = Vb;
}
else
{
Vmax = Vb;
Vmin = Va;
}

if (Vc > Vmax)
{
Vmax = Vc;
}
else if (Vc < Vmin)
{
Vmin = Vc;
}

Vcom = (Vmax+Vmin)>>1; //0.5*(Vmax+Vmin)

// Subtract common-mode term to achieve SV modulation
pT->value[0] = (Vcom - Va);
pT->value[1] = (Vcom - Vb);
pT->value[2] = (Vcom - Vc);

return;
} // end of SVGEN_run() function

High acceleration rate using torque control in high speed BLDC

$
0
0

Hi,

Is it possible to achieve acceleration of 420krpmps in high speed BLDC using torque control with LAUNCH-F28027F-BOOST-DRV8301?

I've already run it with the Lab4 and get it running up to 36krpm with torque working nice. But the acceleration is very low for application I have. I need it to accelerate to a certain speed and deaccelerate another speed or maybe stop running but with very high acceleration rate.

I've also tried to apply the solution suggested in the post: InstaSPIN acceleration more than 500krpm/s2. But it does not worked, actually I coud not see any different behavior in Lab10a using it.

Thanks for attention,

Henrique.

How can I limit the minimum PWM pulse width in InstaSPIN-Motion?

$
0
0

Hello,

I try to run the InstaSPIN-Motion on my own board with F28069M.

I find that sometimes the PWM pulse is too short for the MOSFET to switch on/off completely as following picture. Is there any method that I can limit the minimum the PWM pulse width?

Thank you very much.

Best Regards.


InstaSpin lab04 current control issue

$
0
0

Hi Sir,

evm : DRV8301-69m-kit

motorware ver : v15

application : e-bike

motor pole pair : 7

user.h  USER_MOTOR_MAX_CURRENT          (5.0) --> for test

I used lab04. Iq=2.0 the motor run max speed = 3.4Krpm, I increase loader, the speed is no variable. when the loader is overhead , the speed is quickly count down to "0". then release the loader. The speed come back max speed.

I have used lab03b to test as below:

1. Set the SpeedRef_krpm = 3.4Krpm, I increase loader, the speed is no variable. when the loader is overhead , the speed is quickly count down to "0".  then release the loader. The speed come back max speed.. That's as the same as the lab04.

2. Set the SpeedRef_krpm = 2Krpm, I increase loader, the speed can count down. When I increase the loader , the speed can be variable.

I don't know why ? If the motor run max speed. I increase the loader the motor can out of control ???

Please help me to solve it, thanks a lot.

summary

Does InstaSPIN FOC provide DC bus voltage control during dynamic breaking?

$
0
0

When the PM motor is acting as a break (trying to slow down the RPM of the load it is carrying), the energy will feed back to the DC link capacitor.  Does InstaSPIN FOC control the breaking when the DC Bus voltage reach a user preset level so that you don't get a DC Bus Over Voltage Fault? 

In my application, I do not want to add a break controller on the DC bus to dump the energy on a breaking resistor.  What I want is a software solution that reduce or remove the breaking so that the DC bus does not go over voltage.  Can InstaSPIN FOC do that?

Thank you.

Townes

Calculating current consumption

$
0
0

Hello Chris,

we got a problem with an answer you provided me some time ago.

In this thread you confirmed the overall current consumption to be the Is_A value 

https://e2e.ti.com/support/microcontrollers/c2000/f/902/t/344125  

Perhaps it was a misunderstanding but the Is_A value is simply not representing the real overall current consumption, as you are stating yourself in this thread:

https://e2e.ti.com/support/microcontrollers/c2000/f/902/t/423108   

Unfortunately neither the calculation provided in this thread is giving us proper results.

So the question arises, is it possible to calculate the overall current consumption? If so could you please provide us with a working formula?

Regards,

Patrick

InstaSpin SVM Questions

$
0
0

I am relatively new to motor control and am in the process of trying to wrap my head around everything.  I am using the InstaSpin FOC motor control firmware on a TMS320F2807 chip and am wrestling with understanding the SVM code.  One question I have is there ever a point in time that an IGBT would ever be closed for longer than a period of the switching frequency?  Also, is there an application note that explains the Instaspin FOC SVM? 

Thanks,

Hayden

Does the estimator can work without voltage feedback circuit?

$
0
0

Hello,

I am using InstaSPIN-Motion with F28069M from Lab12b. Due to some reasons, my board doesn't have voltage feedback circuit. Are the following features still supported or need be modified?

1.I find that there are some function calls in CTRL_runOnLine_User regarding estimator(start with EST_). Since voltage feedback circuit is not supported, are the estimator functions still supported or I need remove the estimator related functions?

2.I know the Rs calibration is not supported without voltage feedback, can I enable the Rs calibration only in order to align the EQP angle with rotor angle? I do the test on DRV8312-69M-KIT by comment the voltage feedback code, the angle alignment is successful. But on my own board, the motor doesn't rotate successfully and the motor become very hot.

Thanks in advance.

Best Regards.

Viewing all 534 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>