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.

../../../_images/losses_iem_Bmin_by_Bmax1.png

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')