Motor Control Reference Solution Packages for ACIM, Release V1.2.0

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Motor Control Reference Solution Packages for ACIM, Release V1.2.0

4,350 Views
pavelsustek
NXP Employee
NXP Employee

Dear all,

 

Let me inform you that Motor Control Reference Solution Packages for ACIM, Release V1.2.0  is fully available on NXP web page including full set of documentation (DRM, AN and UG).

 

  • Supported HW platform: HVP-MC3PH
  • Supported MCUs: KV31, KV46, KV58, KE18
  • New features:
    • Added KE18 MCU
    • SDK2.0 based peripherals configuration, coding style
    • All projects ready to be used with Pin & Clock Tools
    • FreeMASTER TSA table – the only FreeMASTER project file for all projects, removed necessity of correct output file selection according to IDE (KDS, IAR, Keil)
    • Latest RTCESL 4.4
    • Full motor identification – added mechanical parameter identification routines
    • Flux control – MTPA and field weakening algorithms

 

Documentation: reference manual (DRM150), application note (AN5051), user guide (packed with SW)

Supports IAR, KDS and Keil IDEs

More information, all related software and documentation can be found in http://www.nxp.com/motorcontrol_acim

 

Please let us know if you need more details about the Motor Control Reference Solution Packages.

 

Kind regards,

 

SW MC Library team.

Labels (1)
0 Kudos
12 Replies

3,755 Views
jozefcicka-b508
NXP Employee
NXP Employee

I misunderstand what project do you use. Let's make sure that we are talking about the same thing. 

Do you use whole ACIM project from SKD package located in

..\SDK_2.7.0_HVP-KV46F150M\boards\hvpkv46f150m\demo_apps\mc_acim\iar ? 

Do you use freemaster file from SDK package located in ..\SDK_2.7.0_HVP-KV46F150M\boards\hvpkv46f150m\demo_apps\mc_acim\acim.pmp ? 

Or do you only copy some new project file and freemaster file to old project? 

1.  I found that V/Rpm factor is accessible only in "Tuning mode = EXPERT" . Make sure that you have set MCAT in EXPERT tunning mode, becasue in BASIC tunning mode the V/Rpm factor is not accessible. 

pastedImage_3.png

2. I found that if acceleration parameter is changed then you must click to "STORE DATA" and then switch to "OUTPUT FILE tab" and click to "generate configuration file" (this will generate new m1_acim_appconfig.h file beacause same calculation must be done in MCAT script to correctly set speed ramp) and then rebuild whole SW and load to MCU. Because if you change acceleration parameter and then click to "update_target" then the speed ramp variable in MCU is updated incorrectly.

The "UPDATE TARGET" feature will not be accessible for this acceleration parameter which needs other calculations in MCAT script, this will be fixed in next SDK release. 

pastedImage_4.png

3. I found that if scalar required speed is set then, speed is ramping up and motor start spinning up (correct behavior). BUT if the speed is set to zero or some fault is generated and then new value of scalar required speed is set, then the speed ramp is not working and the motor is starting directly from zero rpm to required rpm without speed ramp. This is because speed ramp variables are not cleared if the motor stopped from previous run. 

 

I know this is bug, but we will fix it in next SDK release. The workaround is the resetting of MCU  every time if new scalar required speed is set. Or you can fix this bug by adding this lines of code:

g_sM1Drive.sScalarCtrl.fltSpdMeRamp = 0.0F;
g_sM1Drive.sScalarCtrl.sRampParSpdMe.fltState = 0.0F;

and paste it into this function:

static void M1_ClearFOCVariables(void)
which is located in m1_sm_ref_sol.c file. 

pastedImage_6.png

Try the steps I described. Set the low speed ramp (low acceleration parameter for example 100 rpm/sec) and try it in the way that I described in point 2. and 3. 

 

4. Do you have correctly set pole-pair parameter [pp] for your motor? Pole-pair parameter is crucial parameter.

5. Changing the IN parameter has no effect in scalar mode because scalar mode is open loop control without PI regulators, so the current limit works only in speed FOC mode.  

Thanks to you, we were able to find bugs in our software. 

0 Kudos

3,755 Views
sales3
Contributor I

I haven't tried yet the "lower the minimal voltage Umin"

I haven't tried yet changing "Vrpmfactor".

I will try those.

I've used the acim file for freemaster from the latest SDK.

The IDE is IAR and I loaded it with the latest SDK files.

0 Kudos

3,755 Views
sales3
Contributor I

V/rpm factor set to 100% but greyed out.

0 Kudos

3,755 Views
sales3
Contributor I

Under parameters, motor parameters, J=0.000303 and Tm=0.834...forgot to mention.

0 Kudos

3,755 Views
sales3
Contributor I

I slowed the speed ramp acceleration in speed control all the way down to a value of 10 but don't notice much of an effect--still spins up the motor till current fault. Hard to tell any difference in how long till it trips out on current fault to be honest. I will try the lower Umin idea.  In the mean time...

I'll revisit a topic that I was told didn't matter...."missing symbol definitions" error upon freemaster start up.

So far I've just hit continue.

From other posts it was indicated this was due to freemaster not being able to find a certain map file (allegedly under project tab, options, map file). Not sure if it really matters or not.

0 Kudos

3,755 Views
jozefcicka-b508
NXP Employee
NXP Employee

Do you use software from last SDK release? Did you try scalar control mode or you slowed speed ramp, but still try motor identification algorithm? 

Can you send screen of speed, position and currents from scalar control mode? 

0 Kudos

3,755 Views
sales3
Contributor I
  1. Under the speed-loop tab of freemaster, I set the acceleration all the way to 2 rpm/sec and hit "update target" on that page. 
  2. I then went to Control Struc tab, cleared the fault, changed "scalar control" to the bright red "enabled" [("V/rpm greyed out, Usq_req=0 (light grey color), and Speedreq=60rpm (white color)]  
  3. I then changed the red toggle switch state control to "ON"
  4. The result is always a short spin-up of maybe 4 seconds at best and then a current fault.
  5. I've run this test repeatedly over and over trying various changes....e.g. Speedreq=300, 500, 700rpm and changing the motor parameters  In,Un,Fn parameters page and hit update target on that page. I notice if I take parameter  In down to 1 amp, Freemaster won't fault, will stay in the RUN mode, but the motor won't turn.
  6. Not sure what to have in the blocks for motor parameters J and Tm. For the other paramemters like Rs, Rr, etc. I used what I pulled from our wayyyy old Nxp motor drive software (that runs the same motor).
  7. I can try to get you snap shots but the ramp-up isn't very long to get enough time after hitting RUN. 

Thanks for helping me...each comment is a valuable piece of information to me.

0 Kudos

3,755 Views
sales3
Contributor I

ACIM Drum Washer Motor Freemaster Motor IDent: Trying to get an ACIM (washer drum motor) identified using the latest NXP HV (FSL HVP-MC3ph) platform and the 46 daughter card. We had this motor working fine on a much older Nxp inverter-based demo system.  The motor used to run off a DC bus of 320v...so I inputted this directly into the HV platform input and indeed freemaster reports it as 320v. Unfortunately I don't have much of a motor label (AC 3 phase 260hz 190v is all) but the motor spec sheet lists 2 specs under no load: #1: Input Power<160W, Current,4.45a, RPM>3550 and #2: Input power<105w, Current<0.9a, RPM>13500. I'm not sure what  label parameters to use for motor ID. Whatever I do, the motor spins for about 1 second, reports back Rs  but then under variable watch I get app state=fault and fault pending=1. 

0 Kudos

3,755 Views
jozefcicka-b508
NXP Employee
NXP Employee

Hi David,

try new version of ACIM application at first. You will find it in latest SDK release in motor control middle-ware. Build SDK package for HVP-KV46 board (make sure that motor control component with ACIM application is selected) using SDK builder: Welcome | MCUXpresso SDK Builder .

Fault pending = 1 is over-current fault, there are several reasons for this fault.

  • Phase voltage is 190V, but you have 320V in DC-bus. Did you set correct phase voltage 190V in "Parameters" tab in freemaster? 
  • Motor was identified with drum or without drum? 
  • Motor identification algorithm enters to second phase: NO-LOAD test? 
  • The fault occurs when the motor starts to spin or during the spinning? 
0 Kudos

3,755 Views
sales3
Contributor I

I suspect this motor is perhaps at the limit of the parameter measuring sensors on the board (although the predecessor way old Nxp board which this motor operated-upon had the same R value gain sets around the op amps.) Back to this board... I notice I can get it to spin for longer before current fault if I increase the Pn value. For example setting to Pn=900, Un=150, In=3.5, Fn=60, PP=2 gets me either what appears to be a longer spin or maybe its just a faster spin with coast...not sure. It doesn't appear jerky during that spin up. But the Rs=0.716 (now not negative at least.) I'm trying to get some motor parameters from the manufacturer for this newmotech washer drum motor as all I have are old ones (supposed from the manufacturer). How can one tell which current it is failing upon? The Phase current, PFC current, or the single current sense for all 3 phases? I set the Imax=10amps on parameters page but I'm not sure how this rolls into the equation either...what hardware sensor is it tied too? 

0 Kudos

3,755 Views
jozefcicka-b508
NXP Employee
NXP Employee

I suspect this motor is more powerful because of low Rs and Rr. NXP power stage is designed for 8A, this is maximal measurable current with current sensor. You should not change the Imax parameter, because this parameter is the current sensor scale. If you change Imax to 10A then the value of measured current will be incorrect because the NXP power stage can physically measure max 8A. 

But over-current fault is set by power-module. If the phase current reach 10.5A, then the over-current fault is set by HW. 

You increased Pn and the motor ran longer, this is because slower voltage ramp is used for motor start-up in the case of bigger Pn. Powerful motors with low resistance Rs must have slow voltage ramp with small voltage increments, because if the voltage ramp is too fast, then higher value of voltage is applied to the motor what causes that the current reach higher values then 10.5 amps for short time, but this phenomenon triggers the HW over-current fault. This problem can be solved by slowing down the voltage ramp. 

I suggest to try scalar control, this is open loop control without feedback. You can try this scalar control, but try it with slower speed ramp (you can change speed ramp (acceleration) in speed loop tab in freemaster) I think that you must click to "generate output file" in output tab and download SW with new parameters into MCU. 

If slowing down the speed ramp does not solve the problem, then you can lower the minimal voltage Umin which is applied to the motor in start-up in scalar mode. You will find it in m1_acim_appconfig.h file variable M1_SCALAR_U_MIN  (25.0F) and play with V/Rpm factor (you will find it in control struct tab and you can tune it online) until the motor can run in scalar mode without fault. 

The correct behavior of scalar mode is essential because the motor identification algorithm uses scalar control to spin motor and measure power in no-load test. If the scalar mode will work properly, then we can try to tune motor identification algorithm. It makes no sense to try motor identification algorithm without the properly functioning scalar mode. 

0 Kudos

3,755 Views
sales3
Contributor I

Thank You. I used the SDK builder you referenced and I am running the motor with NO drum (i.e. nothing attached to the motor shaft). The fault seems to occur after the motor spins, but it's hard to tell as I think freeemaster only spins it up for 1.5 secs or so. I can clear the fault and repeat the test--same result (fault pending=1, fault over current =on)I can't tell if it enters the 2nd phase--the only message I get is the first phase message about motor will start spinning. I inadvertently left off some voltages from the motor data sheet which I now correct:  motor label (AC 3 phase 260hz 190v is all label says) but the motor spec sheet lists 2 specs under no load: #1: Input Power<160W, Current,4.45a, RPM>3550, 150v 3 phase 60HZ and #2: Input power<105w, Current<0.9a, RPM>13500, 190v 3 phase 230Hz..(Looks like 2 different freq's and voltages dependent on speed.) We had a way old version of Freemaster working an equivalent older version NXP demo board (back in the Codewarrior days of 6 IGBT's and an RS232 freemaster interface) with the identical motor. I pulled those way old motor parameters and they are Rs=1.7, Rr=1.2, Ls=.0126H, Lr=0.016H, Lm=0.01H. (Must be a more powerful motor). I don't seem to get anything near those numbers with the current freemaster motor Ident but I can verify with an ohm meter that Rs is close to the 1.7 number. I've tried various settings for motor parameters but all it reports back on the right side is a NEGATIVE small number for Rs (e.g. -0.791 or slight variant). I varied Pn from 150 to 750...varied Un to either 150 or 190v, varied In from 1 to 6, varied Fn to either 60 or 230hz. I'm not sure what to enter for  measurement setup so they are set to 150hz, 2 hz, 1Nm respectfully. I tried to force the motor parameters to those values on the parameters page (not sure what to enter for Js or Tm) and then tried to hop over to the Control Struc tab, clear the fault and tried to run--same result.

0 Kudos