Jump to content
holo

Power balance error on Transient Magnetic

Recommended Posts

I'm trying to execute a power balance over a full electric period of a 4 pole motor (180 mechanical degrees) but I get an error :

 

evaluateInstances : Execution failed.
Failed execution
Failed to create a new instance of Power Balance.
BP_ERES  => Wrong parameter
BP_ERES  => failed...
BP_FNUM  => Evaluation interrupted
BAFOC2_1 => Evaluation failed
BAFOC2   => Evaluation failed
BAFOCC   => Evaluation aborted
evaluateInstances => failed
stdcom.error.SoftwareFortranException: evaluateInstances : Execution failed.
Failed execution
	at cad.core.common.error.ErrorManager.createFortranException(ErrorManager.java:153)
	at cad.flux.kernel.dbmanager.FGCProjectDbWrapper.evaluateInstances(Native Method)
	at cad.flux.kernel.dbmanager.FGCProjectDbAdapter.evaluateInstances(FGCProjectDbAdapter.java:1004)
	at cad.flux.kernel.dbmanager.FGCProjectDbAdapter.evaluateProjectInstances(FGCProjectDbAdapter.java:961)
	at cad.core.kernel.dbmanager.DbManager.evaluateProjectInstances(DbManager.java:2081)
	at cad.core.kernel.components.TransactionCreateInstance.processDBEvaluation(TransactionCreateInstance.java:416)
	at cad.core.kernel.components.TransactionCreateInstance.commit(TransactionCreateInstance.java:330)
	at cad.core.kernel.components.TransactionManager.commit(TransactionManager.java:292)
	at cad.core.kernel.components.TransactionManager.processTransactionCreateInstance(TransactionManager.java:652)
	at cad.core.kernel.components.TransactionManager.newProjectInstance(TransactionManager.java:739)
	at cad.flux.kernel.FGSupervisor.newProjectInstance(FGSupervisor.java:3502)
	at sun.reflect.GeneratedMethodAccessor378.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186)
	at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204)
	at org.python.core.PyObject.__call__(PyObject.java:507)
	at org.python.core.PyObject.__call__(PyObject.java:511)
	at org.python.core.PyMethod.__call__(PyMethod.java:156)
	at pydb$py.newObject$203(pydb.py:1586)
	at pydb$py.call_function(pydb.py)
	at org.python.core.PyTableCode.call(PyTableCode.java:167)
	at org.python.core.PyBaseCode.call(PyBaseCode.java:170)
	at org.python.core.PyFunction.__call__(PyFunction.java:434)
	at org.python.core.PyMethod.__call__(PyMethod.java:156)
	at pydb$py.__call__$159(pydb.py:1261)
	at pydb$py.call_function(pydb.py)
	at org.python.core.PyTableCode.call(PyTableCode.java:167)
	at org.python.core.PyBaseCode.call(PyBaseCode.java:307)
	at org.python.core.PyBaseCode.call(PyBaseCode.java:198)
	at org.python.core.PyFunction.__call__(PyFunction.java:482)
	at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:237)
	at org.python.core.PyMethod.__call__(PyMethod.java:228)
	at org.python.core.PyMethod.__call__(PyMethod.java:223)
	at org.python.core.PyObject.invoke(PyObject.java:3697)
	at org.python.core.PyInstance.instance___call__(PyInstance.java:377)
	at org.python.core.PyInstance.__call__(PyInstance.java:372)
	at org.python.core.PyObject.__call__(PyObject.java:405)
	at org.python.pycode._pyx113.f$0(<input>:1)
	at org.python.pycode._pyx113.call_function(<input>)
	at org.python.core.PyTableCode.call(PyTableCode.java:167)
	at org.python.core.PyCode.call(PyCode.java:18)
	at org.python.core.Py.runCode(Py.java:1398)
	at org.python.core.Py.exec(Py.java:1442)
	at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:276)
	at cad.core.kernel.components.PythonWrapper.runCode(PythonWrapper.java:628)
	at cad.core.kernel.components.PythonWrapper.runsource(PythonWrapper.java:623)
	at cad.core.kernel.components.PythonWrapper.runsource(PythonWrapper.java:598)
	at cad.core.kernel.components.PythonWrapper.runsource(PythonWrapper.java:593)
	at cad.core.kernel.components.PythonWrapper.execute(PythonWrapper.java:638)
	at cad.core.kernel.components.PythonWrapper.executeNewCommand(PythonWrapper.java:756)
	at cad.core.kernel.KernelModule.executeNewCommand(KernelModule.java:104)
	at cad.core.kernel.actions.implementation.type.CreateInstanceAction.doAction(CreateInstanceAction.java:108)
	at cad.core.common.dynamic.actions.UIActionManager.postAction(UIActionManager.java:145)
	at cad.core.common.dynamic.actions.UIActionManager.postAction(UIActionManager.java:274)
	at cad.core.kernel.KernelCommon.postAction(KernelCommon.java:306)
	at cad.core.kernel.encoder.ActionServerRequestsInputPlug.postAction(ActionServerRequestsInputPlug.java:88)
	at cad.core.kernel.encoder.ActionServerRequestsInputPlug.postAction(ActionServerRequestsInputPlug.java:82)
	at stdcom.protocole.actionserverrequests.ActionServerRequestsRouter.postAction(ActionServerRequestsRouter.java:70)
	at stdcom.protocole.actionserverrequests.ActionServerRequestsOutputPlug.postAction(ActionServerRequestsOutputPlug.java:96)
	at cad.core.frontal.decoder.FrontalDecoder.postAction(FrontalDecoder.java:464)
	at cad.flux.frontal.actions.implementation.algo.postpro.ExecuteEntityWithResult.postAct(ExecuteEntityWithResult.java:63)
	at cad.core.frontal.actions.implementation.type.CreateInstanceAction.interpret(CreateInstanceAction.java:309)
	at cad.core.frontal.components.box.frontaldialog.FrontalDescriptorDialogBox.internalRun(FrontalDescriptorDialogBox.java:296)
	at cad.core.frontal.frontalthread.WorkerThread.executeImplementer(WorkerThread.java:226)
	at cad.core.frontal.frontalthread.WorkerThread.run(WorkerThread.java:274)

 

Also I'm having a hard time calculating the power balance manually. Because FLUX tells me that the power input is 6000W and the mechanical output is 4200W, however when I sum the joule losses+ the bertotti losses I get 4200+400=4600W. So where are the others 1400W (6000-4600) ?

I'm nearly sure I'm calculating it correctly. But I'm asking because I'm new to flux and I'm still understanding how it works. Is this difference normal or I am missing something?

 

I can give you my solved flu project, but I'd have to send it directly to you since the link expires after one download
Thanks, have a good day!

 

Share this post


Link to post
Share on other sites

Also, I have a question regarding the Bertotti losses. It computes the average iron losses over a period but.. does it take into account the length of the motor or it just computes the loses on one slice of steel?

Basically what I'm asking is, do I need to multiply the average losses * length of motor / thickness of steel slice to obtain the iron losses of the full motor?

Share this post


Link to post
Share on other sites

Hello Holo,

In fact, Berttoti losses are calculated taken into account the device length, since Berttoti approach deals with losses in the ferromagnetic volumes. However, losses are only calculated in the simulated part of the device: for example, if you are simulating only one pole of your four-poles machine and using periodicities your losses are equal to: 4200+4*400=5800W (not 4600 W, as you have said).

I do not know what is your problem with “Power Balance”. Cand you send me this macro in order to check it?

Best regards.

Share this post


Link to post
Share on other sites

Thanks for answering,

 

I've simulated a quarter and applied the periodicity to obtain the full motor. My actual bertotti losses are 2,58W * 4 quarters = 10W and I think it's too low. I'm not sure what I'm calculating incorrectly.

I think I'm also mixing things up because I'm not sure when I need to multiply by 4 and when I don't need to.

 

https://send.firefox.com/download/25f117c80a3e1ff3/#UjuguY_jRnr6PvaRreOgfg

 

This is the link of my solved flu project. I did it on FLux 2018. On the advanced menu you can see the power balance macro, it came integrated on the software.

Share this post


Link to post
Share on other sites

 

39 minutes ago, Alejandro Rodríguez said:

Hello Holo,

 

 

In fact, Berttoti losses are calculated taken into account the device length, since Berttoti approach deals with losses in the ferromagnetic volumes. However, losses are only calculated in the simulated part of the device: for example, if you are simulating only one pole of your four-poles machine and using periodicities your losses are equal to: 4200+4*400=5800W (not 4600 W, as you have said).

 

 

I do not know what is your problem with “Power Balance”. Cand you send me this macro in order to check it?

 

 

Best regards.

 

 

 

Thanks for answering,

 

I've simulated a quarter and applied the periodicity to obtain the full motor. My actual bertotti losses are 2,58W * 4 quarters = 10W and I think it's too low. I'm not sure what I'm calculating incorrectly.

I think I'm also mixing things up because I'm not sure when I need to multiply by 4 and when I don't need to.

 

https://send.firefox.com/download/25f117c80a3e1ff3/#UjuguY_jRnr6PvaRreOgfg

 

This is the link of my solved flu project. I did it on FLux 2018. On the advanced menu you can see the power balance macro, it came integrated on the software.

Share this post


Link to post
Share on other sites

Just to be sure, this is how I'm doing the power balance right now (the numbers are rounded):

 

Torqueelectromag(mechanicalset rotor) = 27Nm average

Mechanical_power= 27Nm*1500*2*PI()/60 =4200W **

 

PowerP(current source) over a period = 2100W rms value * 3 current sources =6300W = P_input

 

Then I calculate the joule losses on the stranded coil conductors with a sensor. It gives a triphasic sine wave that goes from 0 to 9W . The sum of the 3 waves is about 13W constant.

 

The same but for the resistors that I put into the circuit: sine wave with 30W peak. the sum of 3 waves is 45W constant.

 

Bertotti losses = 2,56W

 

Since you mention I need to multiply by four, the end result should be like:

 

P_input = 4200W + 13W*4 + 45W*4 + 2,56W *4  = 4442 W

P_input from current sources = 6300W

 

diference = 1800W

 

**Considering mechanical losses=0. Also, the motor is running at 1500rpm.

Share this post


Link to post
Share on other sites

Hello Holo,

In fact, your problem is that you have made a mistake in the input power calculus. You have assumed that, as far as each current source provides 2100 W (mean value) the three will provide three times this quantity (this is, 6300 W). This is not the case, as far as you have a neutral cable (four cable connexion, taking into account the ground) the sources are consuming some of the energy produced by the others, in other words some of this power is coming back to the grid.

If you plot the sum of the active power of the three phases in each instant you will obtain the next curve below, with a mean (ignoring the transitory part) of 4235 W. This match much better with your results. Anyway, I advise you to simulate some additional rotor positions in order to assure global accuracy.

image.png

So you will have a power equilibrium as follows:

P_input = 4235 W

P_mec=4170 W (mean torque equal to 26.55 Nm)

P_Joule= 13+45=58 W

P_Berttoti=2.56*4 W=10.24 W

The rule is: any quantity calculated directly from the regions should be multiplied by the number of portions in your periodicity but the quantity calculated from the circuit are not multiplied since the circuit already takes into account the periodicity in order to obtain the electric variables (i.e., currents and voltages).

On the other hand, if you want to avoid the problem of the neutral in your circuit I advise you to try this connexion:

image.png

As you can see, the third current source is no longer necessary as far as the other two are already imposing the current to the third branch. If, anyway, you want to represent it (e.g., because you are interested in its behaviour) you should do as follows:

image.png

The resistance above should be a very high one, since this branch is only there to avoid that small differences between the current sources (i.e., numerical noise) leaves to inconsistent equations . For example a value for 1E7 is fine.

Hope this helps.

Best regards,

Mandy Kaiser and holo like this

Share this post


Link to post
Share on other sites

WOW thanks a lot!!!

That explains everything. I needed to sum the 3 graphs of power, it makes sense now.

I still can't believe I have 97% efficiency with this thing lol I'll double check it.

 

Have a good day.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...