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