Source code for pyleecan.Tests.Validation.Simulation.test_EM_IPMSM_FL_001

from numpy import ones, pi, array, linspace
from os.path import join
import matplotlib.pyplot as plt
from ....Tests import save_validation_path as save_path

from ....Classes.Simu1 import Simu1
from ....Tests.Validation.Machine.IPMSM_xxx import IPMSM_xxx

from ....Classes.InputCurrent import InputCurrent
from ....Classes.ImportGenVectLin import ImportGenVectLin
from ....Classes.ImportMatrixVal import ImportMatrixVal

from ....Classes.MagFEMM import MagFEMM
from ....Classes.Output import Output


[docs]def test_EM_IPMSM_FL_001(): """Test compute the Flux in FEMM of machine IPMSM_xxx, with and without symmetry """ simu = Simu1(name="EM_IPMSM_FL_001", machine=IPMSM_xxx) # Initialization of the simulation starting point simu.input = InputCurrent() # Set time and space discretization simu.input.time.value = linspace(start=0, stop=0.015, num=4, endpoint=True) simu.input.angle.value = linspace(start=0, stop=2 * pi, num=1024, endpoint=False) # Definition of the enforced output of the electrical module simu.input.Is.value = array( # Stator currents as a function of time [ [6.97244193e-06, 2.25353053e02, -2.25353060e02], [-2.60215295e02, 1.30107654e02, 1.30107642e02], [-6.97244208e-06, -2.25353053e02, 2.25353060e02], [2.60215295e02, -1.30107654e02, -1.30107642e02], ] ) simu.input.Ir = None # SPMSM machine => no rotor currents to define simu.input.set_Nr(3000) # Rotor speed [rpm] simu.input.angle_rotor_initial = 0.5216 + pi # Rotor position at t=0 [rad] # Definition of the magnetic simulation (no symmetry) simu.mag = MagFEMM( is_stator_linear_BH=2, is_rotor_linear_BH=2, is_symmetry_a=False, is_antiper_a=True, ) simu.struct = None # Copy the simu and activate the symmetry simu_sym = Simu1(init_dict=simu.as_dict()) simu_sym.mag.is_symmetry_a = True simu_sym.mag.sym_a = 4 simu_sym.mag.is_antiper_a = False out = Output(simu=simu) out.post.legend_name = "No symmetry" simu.run() out2 = Output(simu=simu_sym) out2.post.legend_name = "1/2 symmetry" out2.post.line_color = "r--" simu_sym.run() # Plot the result by comparing the two simulation plt.close("all") out.plot_B_space(out_list=[out2]) fig = plt.gcf() fig.savefig(join(save_path, "test_EM_IPMSM_FL_001_sym.png"))