Jump to content

holo

Members
  • Content Count

    21
  • Joined

  • Last visited

Everything posted by holo

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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?
  6. 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!
  7. Alright thank you! I left it for a while and I could finally see some results. However I find it really weird, since with other motors I reach steady state instantly.
  8. I want to simulate an Induction Motor using current sources on flux. The circuit I'm using it's attached on a picture. Right now I've set the current sources with sinusoidal waves of current I_a=10*sin(100*pi()*TIME) and I_b=10*sin(100*pi()*TIME-(2*pi()/3)). However the electromagnetic torque curve gives really odd results. I've attached the Flu file of this motor as well, so you can hopefully find my error cause I'm lost. I know I can use steady state ac magnetic 2d to simulate this kind of motor, but I wanted to use transient magnetic. Thanks for your time, Have a good day. induccion.FLU.zip
  9. Error with transient thermal - transient magnetic cosimulation. I´ve created the simulation following the flux documentation but after solving I get an error on the thermal side : BPR_RIDENT => REFPRO not found BPR_RIDENT => failed BPR_BSIMPLE => failed Also I can't see any result. The temperature remains constant.
  10. I'm doing a transient magnetic - steady state thermal cosimulation of a motor. I've set everything following the flux guide and started solving the problem. However on the thermal side I get an error saying "Unable to calculate torque : there is no air zone around mechanical set : MECHANICALSET_ROTOR". I didn't have this problem on the magnetic side and I had previously solved the transient magnetic problem and got a torque value correctly. What am I doing wrong here? By the way, the airgap is set manually to an air material that I have created that has similar properties to air. I think I did this because in the past I had problems when I set the airgap to be compressible air (or something like that).
  11. Thanks everyone! I've already managed to do it correctly. And @sts1983 I'll try your idea next time. It seems much easier and intuitive than creating a mesh line.
  12. Nevermind, I found the error. I needed to set all face regions with the same parameters, then it worked somehow. I'm trying to create a cosimulation with a Steady State Magnetic 2D project and a Steady State Thermal 2D project. The magnetic project is going well, I reach the step 4 in the guide that's on the documentation but I'm having a hard time with the thermal project. I've deleted the circuit physics of the project and then deleted the application type to create a new type with Steady State Thermal. I've already set everything regarding materials and mechanical sets. I've created the Spatial Quantity JOULE and I've updated the definition of the Face Regions for the coils. Right now I'm not sure what I'm doing wrong... Do you have any guide about thermal analysis with flux? This is the output of the error that happens when I execute "Check Physics": OCRI04 => Number RB.F3D.THERMIQUE_SURF_2D_I(0) out of bounds OCRI04 => Retrieval of INTEGER attribute aborted RG_R_OPAQ => failed RGFMA1 => Failed RGFTOU => failed FL6VPB => Failed ... FL6VPB_1 => Failed ... executeAlgo_c => failed stdcom.error.SoftwareFortranException: executeAlgo_c : Execution failed. Failed execution at cad.core.common.error.ErrorManager.createFortranException(ErrorManager.java:153) at cad.flux.kernel.dbmanager.FGCProjectDbWrapper.executeAlgo(Native Method) at cad.flux.kernel.dbmanager.FGCProjectDbAdapter.executeAlgo(FGCProjectDbAdapter.java:883) at cad.flux.kernel.dbmanager.FGCDbManager.executeAlgo(FGCDbManager.java:151) at cad.flux.kernel.FGSupervisor.executeNativeCommand(FGSupervisor.java:2153) at cad.core.kernel.Supervisor.executeCommand(Supervisor.java:1978) at sun.reflect.GeneratedMethodAccessor367.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.executeCommand$199(pydb.py:1560) 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__$172(pydb.py:1375) 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:456) at org.python.core.PyObject.__call__(PyObject.java:460) at org.python.pycode._pyx324.f$0(<input>:1) at org.python.pycode._pyx324.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.executeFunction(PythonWrapper.java:706) at cad.core.kernel.encoder.CommandServerRequestsInputPlug.executeCommand(CommandServerRequestsInputPlug.java:79) at stdcom.protocole.commandserverrequests.CommandServerRequestsRouter.executeCommand(Unknown Source) at stdcom.protocole.commandserverrequests.CommandServerRequestsOutputPlug.executeCommand(Unknown Source) at cad.core.frontal.decoder.FrontalDecoder.executeCommand(FrontalDecoder.java:690) at cad.core.frontal.actions.implementation.GeneralAction.executeBox(GeneralAction.java:286) at cad.core.frontal.actions.implementation.GeneralAction.act(GeneralAction.java:228) at cad.core.frontal.actions.implementation.ModlessImplementer.internalRun(ModlessImplementer.java:60) at cad.core.frontal.frontalthread.WorkerThread.executeImplementer(WorkerThread.java:226) at cad.core.frontal.frontalthread.WorkerThread.run(WorkerThread.java:274)
  13. Thanks for answering.. But I was wondering if theres a way to create a 2d curve with the first harmonic module on the Y axis and different values of an I/O parameter on the X axis. Right now I can do the fft spectrum separately for each value of the I/O parameter but I don't know how to do a 2d curve with the values I mentioned earlier.
  14. I want to create a 2D curve with the values of the first harmonic of TorqueElecMag(ROTOR) to see how it changes with an I/O Parameter. Is that possible?
  15. Thank you for answering. What you propose works but I had to use the parameter ANGPOS_MECHANICALSET_ROTOR to define the rotor angle. The mechanical set creates this parameter automatically and is the one that determines the rotor position. I didn't find this info in the flux documentation and I think it's important: When you create a mechanicalset of the type "Rotation around one axis" the angle is determined by a hidden parameter called ANGPOS_*, where * is the name of your mechanicalset.
  16. I'm designing a motor in which I need to set the current angle to be +60º from the rotor angle. At the moment I've created an I/O parameter (current_angle) to set the current source angle and then on the solving scenario I set both the rotor mechanical set position and this I/O parameter to compute different values. The issue with this mode is that it computes a lot of different values that I don't need, making the computation time extremely large. Is there any way to just solve the motor when the current_angle=rotor_angle+90º ?? To clarify a bit: rotor mechanical set position simulation values: 1,2,3....90 current_angle simulation values: 61,62,63...150 this gives 90*90 iterations = 8100 when I just need 90 iterations. My Aplication is a Steady State AC Magnetic 2D.
  17. I'm afraid i can't do that. But I've already solved my issue. I just went inside `\name.FLU\persistent\Jython_log\` and copied and pasted the logs into the flux command prompt. I had some issues doing so but I edited the scripts and now I have a new proyect that's nearly like the old one but wihtout the issues that I was facing. Thanks anyway!
  18. I've solved a motor then I pressed to save and close but now when I try to open it again I get a "Failed Execution" error. Is there any way to recover the motor? I don't mind about the solved data but I do want to recover the geometry and physics. I think the issue is related to a sensor that I didn't configure correctly. I did get some warnings about that sensor but I didn't think it could break everything like this Here is the advanced output, in case you need it: BDRDIS => Failed GP2AL4 => failed OpenProject => Failed openProject => failed stdcom.error.SoftwareFortranException: openProject : Execution failed. Failed execution at cad.core.common.error.ErrorManager.createFortranException(ErrorManager.java:153) at cad.flux.kernel.dbmanager.FGCProjectDbWrapper.openProject(Native Method) at cad.core.kernel.dbmanager.CProjectDbAdapter.openProject(CProjectDbAdapter.java:583) at cad.core.kernel.dbmanager.DbManager.openProject(DbManager.java:798) at cad.flux.kernel.actions.implementation.algo.project.FGOpenProjectAction.doAction(FGOpenProjectAction.java:105) at cad.core.common.dynamic.actions.UIActionManager.postAction(UIActionManager.java:145) at cad.core.kernel.KernelCommon.postAction(KernelCommon.java:302) at cad.flux.kernel.FGSupervisor.loadProject(FGSupervisor.java:2406) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 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:489) at org.python.core.PyObject.__call__(PyObject.java:493) at org.python.core.PyMethod.__call__(PyMethod.java:141) at pydb$py.loadProject$18(pydb.py:358) at pydb$py.call_function(pydb.py) at org.python.core.PyTableCode.call(PyTableCode.java:167) at org.python.core.PyBaseCode.call(PyBaseCode.java:138) at org.python.core.PyFunction.__call__(PyFunction.java:413) at org.python.pycode._pyx20.f$0(<string>:1) at org.python.pycode._pyx20.call_function(<string>) 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:267) at cad.core.kernel.components.PythonWrapper.exec(PythonWrapper.java:989) at cad.core.kernel.components.PythonWrapper.executeTuiRequest(PythonWrapper.java:740) at cad.core.kernel.actions.implementation.algo.python.ExecuteCommandAction.doAction(ExecuteCommandAction.java:89) 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 stdcom.protocole.actionserverrequests.ActionServerRequestsRouter.postAction(ActionServerRequestsRouter.java:54) at stdcom.protocole.actionserverrequests.ActionServerRequestsOutputPlug.postAction(ActionServerRequestsOutputPlug.java:79) at cad.core.frontal.decoder.FrontalDecoder.postAction(FrontalDecoder.java:473) at cad.core.frontal.actions.implementation.algo.python.ExecuteCommandAction.act(ExecuteCommandAction.java:85) at cad.core.frontal.actions.implementation.ModalImplementer.internalRun(ModalImplementer.java:82) at cad.core.frontal.frontalthread.WorkerThreadsManager.requestExecuteImplementer(WorkerThreadsManager.java:247) at cad.core.frontal.actions.implementation.AbstractImplementer.run(AbstractImplementer.java:92) at cad.core.frontal.actions.implementation.algo.project.OpenProjectAction.act(OpenProjectAction.java:102) at cad.core.frontal.actions.implementation.ModalImplementer.internalRun(ModalImplementer.java:82) at cad.core.frontal.frontalthread.WorkerThread.executeImplementer(WorkerThread.java:226) at cad.core.frontal.frontalthread.WorkerThread.run(WorkerThread.java:274)
  19. Thank you for answering. I've created the transformation you mention and a linked mesh line. Then I've set the lines on the OY axis to use the new mesh line. On the flux output I can see that this operation linked the lines on the OY axis with the respective ones on the OX axis. But I have a question.. Does it still take into account that i'm using a "odd periodicity"? This means that the magnetic poles are NSNS (north south north south) instead of NNNN. Also, I'm not using a infinite box. In previous versions of flux I didn't need one because the program would automatically set the boundary conditions. Is it still the case now on Flux 2018?
  20. The error code that I get executing "check physics" is: The lines :64 65 124 125 of the plan of periodicity have no linked discretisation. The mesh periodicity is not assured. The PERIODICITY PeriodicityNumberZaxis can not be taken into account Lines of the constraint without reference line: To obtain the same line mesh on lines, you may use a LINKED MESH_LINE I'm designing a quarter of a motor. The lines 64, 65, 124 and 125 correspond to the ones on the vertical axis. I'm using the periodicity setting to create the other quarters of the motor so that I get a full one. I've set Repetition number to 4, Offset to 0 and Odd periodicity. The mesh is automatically created with Mesh Faces. It has surface element with 98% of excelent quality and 2% of good. Checking the geometry doesn't give any errors. However I'm concerned that using cartesian and cilindrical coordinate systems on the same geometry may cause this error code. What do you think? I've tried creating a Linked Mesh Line. However It asks me to introduce a transformation that will define that Mesh Line, but I'm using a periodicity so it doesn't appear on the transformations menu. What can I do now? Thanks
×
×
  • Create New...