.. _exampleVisual: ========================================= Visualisierung der Eisenverlustberechnung ========================================= Siehe :any:`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. .. image:: losses_iem_Bmin_by_Bmax.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. .. role:: big :big:`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 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')