Visualisierung der Eisenverlustberechnung¶
Siehe Alternative function definition for using the IEM model [4]: m.loss_funct = 3
Die Funktion pfe() für spezifische Eisenverlustemodelle in der Definition gemäß m.loss_func = 3 kann gleichzeitig genutzt werden, um Beiträge einzelner Induktionsschwingungen zu den Eisenverlusten oder Bereiche mit überwiegend rotierenden oder pulsierenden Felder zu visualisieren, wie das nachfolgende Beispiel verdeutlicht.
Darstellung spezifischer Größen bei der Eisenverlustberechnung
Nach Berechnung der Eisenverluste im Stator werden der Quotient des minimalen und des maximalen Induktionsbetrages Bmin/Bmax in Farbabstufungen dargestellt. Der Wert 0 entspricht blau und der Wert 1 der Farbe Rot. Helle Bereiche, d. h. mit Bmin ungefähr Bmax, sind solche mit überwiegend rotierendem Feld.
Skript-Datei
---------------------------------------------
-- General Definitions ----------------------
---------------------------------------------
exit_on_error = false
exit_on_end = false
verbosity = 2
---------------------------------------------
-- Model Generation -------------------------
---------------------------------------------
new_model_force("test","PMSM IL OM")
global_unit('mm') -- Globale unit (m, cm, mm)
pickdist(0.001) -- Minimum distance snap to nodes
cosys('polar')
-- Define general FE control data
m.hc_min = 95.0 -- Limit demagnetisa > 0:[%]Hc,<0:[kA/m]
m.con_hdcopy = 0.00 -- Hc-copy:Name:auto:0,intact:1, none:-1
m.b_max = 2.40 -- Max Induction [T] in colorgradation
m.b_min = 0.00 -- Move inside: 0 , Move outside: > 0
m.calc_fe_loss = 0.00 -- Calcul. FE-Loss > 0, areas <0, no = 0
m.eval_force = 0.00 -- Eval. force density > 0, no <= 0
m.allow_draw = 1.00 -- Draw Graphics :> 0: yes, 0: no
m.fline_dens = 1.00 -- F-Lines: 1: small, 2: medium, 3:thick
m.num_flines = 10.00 -- Number of Field-lines: < 100 > 2
m.name_bch_log = 0.00 -- Name bch-file in Logfile:> 0:yes,0:no
m.st_size_move = 0.00 -- Step size move: r/ph:[degr], x/y:[mm]
m.num_nonl_it = 1.00 -- Number of nonlinear Iterations < 99
m.perm_mode = 0.00 -- Permeability mode:>0:restore,0:actual
m.error_perm = 0.500E-01 -- Rel. Permeability error < 0.1 [%]
m.allow_demagn = 0.00 -- Allow Demagnetisation:= 1:yes,= 0:no
m.maenergy = 0.00 -- Force from magn energy 1 :yes,= 0:no
m.el_order_ag = 1.00 -- El. order in air gap: lin=1: quadr=2
m.export_scrpt = 0.00 -- Export parameters in script: yes > 0
pre_models("FE-contr-data");
-- Define basic model parameters
m.tot_num_slot = 12 -- Numer of Slots
m.num_slots = 3.00 -- Number of slots in Model (Rot-Mot)
m.num_poles = 4 -- Number of Poles 2p (>= 2)
m.npols_gen = 1 -- Number of Poles simulated (>= 1)
m.arm_length = 50 -- Effect. armature length [mm]
m.fc_radius = 34.2 -- Radius air-gap center (torque) [mm]
pre_models("basic_modpar");
-- CAD-Parameter Data:
-- STATOR_3
m.yoke_diam = 130. -- Outer diameter yoke DAS [mm]
m.inside_diam = 70.0 -- Inner diameter DIS [mm]
m.slot_height = 20.0 -- Total slot height HSL [mm]
m.slot_h1 = 2.00 -- Slot opening height H1S [mm]
m.slot_h2 = 4.00 -- Slot head height H2S [mm]
m.slot_width = 3.00 -- Slot width SWI,< 0 groove in Slot[mm]
m.slot_r1 = 0.00 -- Upper Radius R1S [mm]
m.slot_r2 = 0.00 -- Lower Radius R2S [mm]
m.wedge_width1 = 0.00 -- Distance middlepoints B1S [mm]
m.wedge_width2 = 0.00 -- Distance middlepoints B2S [mm]
m.nodedist = 1.00 -- Rel. node distance in iron > 0.5
m.middle_line = 0.00 -- Layers: 0,vert:1,horiz:2,vert+horiz:3
m.tooth_width = 9.00 -- Tooth width TW (replaces B1, B2) [mm]
m.slot_top_sh = 0.00 -- Top of slot: corner=2, line=1, arc=0
m.airgap = 1.00 -- Mesh in airgap: 2/3 airgap height[mm]
m.tot_num_sl = 12 -- Total number of teeth on 2pi
m.num_sl_gen = 3 -- Number of teeth be generated
m.zeroangl = 0.00 -- Reference angle to x-axis [grad]
m.mcvkey_yoke = 'dummy'
pre_models("STATOR_3");
-- CAD-Parameter Data:
-- Magnet-Sector
m.magn_rad = 33.5 -- Radius Magnet airgap side RA [mm]
m.yoke_rad = 20.0 -- Radius iron yoke inside RI [mm]
m.magn_height = 5.00 -- Magnet height HM [mm]
m.magn_width = 80.0 -- Magnet width: > 0: [%], < 0: BM [mm]
m.airgap = 1.00 -- Mesh height (2/3 airgap) [mm]
m.nodedist = 1.00 -- Rel. Node distance > 0.2 ..
m.condshaft_r = 20.0 -- Conduct. Shaft Radius:< yoke_rad [mm]
m.magn_num = 1.00 -- Number Magnet sections: > = 1
m.magn_perm = 1.05 -- Radius Iron between magnets [mm]
m.magn_l = 100. -- Magnet Length: < 150 % [%]
m.magn_ori = 1.00 -- Magnet: par = 1, Pol = 2, halbach = 3
m.magn_type = 2.00 -- Mag Type:Ac:1,Acp:2,Rc:3, Rcp:4,AAp:5
m.magn_shape = 0.00 -- Magnet surface radius or shape HA[mm]
m.br_height = 0.00 -- Iron bridge height: = 0: none BH[mm]
m.br_width = 0.00 -- Iron bridge width : = 0: none BW[mm]
m.zeroangl = 0.00 -- Reference angle to x-axis [grad]
m.cond_shaft = 0.00 -- El. Conductivity of shaft [S/m]
m.mcvkey_yoke = 'dummy'
m.mcvkey_mshaft = 'dummy'
pre_models("Magnet-Sector");
-- Connect stator and rotor, define boundary conditions
pre_models("connect_models");
-- Generate the Windings
m.num_phases = 3.00 -- Number of Phases m <= 500
m.num_layers = 1.00 -- Number of Layers (slot sides)per slot
m.num_wires = 20.0 -- Number of wires per slot side
m.current = 1.00 -- Wdg-Current [A] or flux [Vs/mm],peak
m.coil_span = 3.00 -- Coil span Y >= 1
m.num_slots = 3.00 -- Number of slots in Model (Rot-Mot)
m.mat_type = 1.00 -- Ma-type:1=Rot;21=lin-x;22=lin-y
m.wind_type = 1.00 -- W-typ:1=w&cur;2=w&flux;3=bar&cur
m.win_asym = 1.00 -- asy. slot pitch: 1=sym.; <1=asym.
m.wdg_location = 1.00 -- Windg location:1: stator, 2: rotor
m.curr_inp = 0.00 -- Curent:Const:0, Q-axis:1, D-axis:-1
m.dq_offset = 0.00 -- Offset to D-axis:>=0 Compl;<0 only Re
m.xcoil_1 = 44.433 -- center coordinate of 1. coil side [mm]
m.ycoil_1 = 11.906 -- center coordinate of 1. coil side [mm]
m.xcoil_2 = 0.000 -- center coordinate of 2. coil side [mm]
m.ycoil_2 = 0.000 -- center coordinate of 2. coil side [mm]
pre_models("Gen_winding");
---------------------------------------------
-- Calculations -----------------------------
---------------------------------------------
-- PM-/Reluctance Motor Simulation
m.move_action = 0.000 -- Move Action: rotate=0, linear=1
m.num_pol_pair = m.num_poles/2 -- Number of Pole pairs (>= 1)
m.speed = 1000.000 -- Speed: rotate [1/min]
m.skew_angle = 0.000 -- Skew angle [Deg, mm]
m.nu_skew_steps = 0.000 -- No of skew sect:>0:finite,0:infinite
m.eval_force = 0.000 -- Evaluate force density: no = 0,yes >0
m.current = 25.000 -- Nominal stator coil current(Peak) [A]
m.angl_i_up = 0.000 -- Angle current I vs. voltage Up [Deg]
m.num_par_wdgs = 0.000 -- Number of parallel Windings (>= 1)
m.magn_temp = 20.000 -- Temperature Magnet [Deg C]
m.optim_i_up = 1.000 -- Optimize < I vs Up : no = 0, yes > 0
m.calc_fe_loss = 1.000 -- Calculate Losses:>0, areas>0, no = 0
m.nu_move_steps = 91.0 -- Number of move steps
m.range_phi = 180.0 -- Move range angle
m.phi_start = 0.000 -- Start angle
m.pm_eff_aktiv = 100 -- Effektive Magnetlaenge [%]
m.fc_mult_move_type = 0. -- Type of move path in air gap
m.pocfilename = 'sin.poc' -- POC file
run_models("pm_sym_fast");
-----------------------------------------------------------------------
-- User specific iron loss calculation --------------------------------
-----------------------------------------------------------------------
-- Function and Modell definiton --------------------------------------
function colgrad(elkey,val,low,high) -- user defined function for color gradations
if val>=low and val<=high then -- of quantities
rval=(val-low)/(high-low)
col = 45-(45-21)*rval
draw_elem(elkey,col,0)
elseif val<low then
draw_elem(elkey,"white",0)
elseif val > high then
draw_elem(elkey,"black",0)
end
return
end
function pfe(Bx,By,Bmin,Bmax,fnu,nu,elkey)
-- ... <= Iron loss have to be calculated here
ph = 0 -- In this example do nothing
pw = 0
if nu == 1 then -- In case of fundamental flux density
colgrad(elkey,Bmin/Bmax,0,1) -- draw elements in color
end
iret = 1
return ph, pw, iret
end
-- Loss Calculations --------------------------------------------------
verbosity = 1 -- Reduce the level of feetback
m.frequency = 200
m.loss_funct = 3 -- Select above function pfe for specific iron loss calculation
m.beta_step = 1 -- Select load situation to be evaluated
m.coord_x = 59 -- Coordinates to address the stator yoke
m.coord_y = 5
post_models("calc_losses","L")
m.coord_x = 46.5 -- Coordiantes to address the stator teeth
m.coord_y = 2
post_models("calc_losses","L")
save_metafile("rotational_field.eps")
save_model('close')