Download Simulation
Auf dieser Seite können Sie verschiedene Simulationsprogramme und Simulationsergebnisse per Download herunterladen.
Die Simulationsergebnisse liegen als gezippte Textdokumente vor (Dezimaltrennzeichen = Punkt, Spaltentrenner = Tab).
Die Simulationsprogramme als ausführbare EXE-Dateien (64-Bit Konsolenanwendung).
Alle Simulationsbeispiele wurden mit folgenden Parametern simuliert:
Simulationszeit=0-100s, Schrittweite=10nsGrundfrequenz=400Hz, Modulationsfrequenz=12000HzModulationsart: UnterschwingungsverfahrenStarttemperatur (Tamb)=25,00°CStatorinduktivität Ls1/Ls2/Ls3=0,195mH, Statorwiderstand Rs1/Rs2/Rs3=15,8mΩRotorinduktivität Lr1/Lr2/Lr3=0,238mH, Rotorwiderstand Rr1/Rr2/Rr3=10mΩHauptinduktivität Lh1/Lh2/Lh3=11,1mH, Schlupf=0,040Anfang Plotzeit=99,995s, Ende Plotzeit=100s, Plotschrittweite=1µs, im Bereich der Schaltverluste=10ns
Achtung: der Download und die Benutzung dieser Programme und Daten erfolgt auf eigene Gefahr! Für Schäden insbesondere für unmittelbare oder mittelbare Folgeschäden, Datenverlust, entgangenen Gewinn, System- oder Produktionsausfälle die durch die Nutzung oder durch das Herunterladen von Daten entstehen, wird keine Haftung übernommen.
Simulationsvergleich zwischen 2-Level-IGBT-Wechselrichter mit offenem und geschlossenem Wasserkühler:2-Level, 3-Phasen, 450A-Modul, Uzk=700V, offener Wasserkühler (773KB), Simulationsprog.: 2Level_450A_700V_offWKühler (102KB)2-Level, 3-Phasen, 450A-Modul, Uzk=700V, geschlossener Wasserkühler (779KB), Simulationsprog.: 2Level_450A_700V_geschlWKühler (102KB)
Simulationsvergleich zwischen 3-Level-IGBT-Wechselrichter und 2-Level-IGBT-Wechselrichter:
3-Level, 3-Phasen, 300A-Modul, Uzk=2x400V, geschlossener Wasserkühler Modulationsgrad=0,75 (880KB), Simulationsprog.: 3Level_300A_2x400V_geschlWkühler (395KB)
2-Level, 3-Phasen, 300A-Modul, Uzk=800V, geschlossener Wasserkühler Modulationsgrad=0,69 (794KB), Simulationsprog.: 2Level_300A_800V_geschlWkühler (102KB)
Für den 2-Level-3Phasen-300A-IGBT-Wechselrichter ist eine Dynamic Link Library (DLL) verfügbar. Durch Einbindendieser Bibliothek in numerische Simulationsprogramme lassen sich damit komplexe umrichtergespeiste Antriebesimulieren. Sie kann kostenlos angefordert werden.Beispiel:% Level2_300A_800V_geschlWKuehler_ASM.m% Transiente thermisch-elektrische Simulation 3Phasen-2Level-Wechselrichter, Last: Asynchronmotor (Motorbetrieb)% Version 1.0, 02.05.2022% IGBT-Modul 300A/1200V, Uzk=800V% Kuehlkoerper: geschl. Wasserkuehler mit 14,5mm Deckplatte% Waermeleitpaste: silikonfrei% Kuehlmedium: Wasser 8l/min% Last: Asynchronmotor, (Ls, Rs, Lh, Lr, Rr, Schlupf)% Motordaten: nur LR-Last, dann Lh = 1E-10, Lr = 1E-10, Rr = 1E-10% ------------------------------------------------------------------------% Lib-Funktionen Level2_300A_800V_geschlWKuehler_ASM.m:% call DatReset:% alle Variable in der DLL initialisieren (ton/toff, Ut, Zth)% call DatenSchreiben:% Steuer-Datenfeld[] in der DLL übergeben und den Variablen zuweisen% DatenfeldSchreiben[1] = d_SimuZeit_Ende Simulationszeitende% DatenfeldSchreiben[2] = d_Ls123 Statorinduktivität% DatenfeldSchreiben[3] = d_Lh123 Hauptinduktivität% DatenfeldSchreiben[4] = d_Lr123 Rotorinduktivität% DatenfeldSchreiben[5] = d_Rs123 Statorwiderstand% DatenfeldSchreiben[6] = d_Rr123 Rotorwiderstand% DatenfeldSchreiben[7] = d_S Schlupfwert% DatenfeldSchreiben[8] = d_Tamb Tambient% DatenfeldSchreiben[9] = i_Gate_S1 Gate Schalter 1% DatenfeldSchreiben[10] = i_Gate_S2 Gate Schalter 2% DatenfeldSchreiben[11] = i_Gate_S3 Gate Schalter 3% DatenfeldSchreiben[12] = i_Gate_S4 Gate Schalter 4% DatenfeldSchreiben[13] = i_Gate_S5 Gate Schalter 5% DatenfeldSchreiben[14] = i_Gate_S6 Gate Schalter 6% call DatBerechnenLesen:% Berechnung in der DLL bis Simulationszeitende mit anschließender Übertragung der Meßdaten% Ergebnisfeld[1] = d_Is1 Strom Stator 1% Ergebnisfeld[2] = d_Is2 Strom Stator 2% Ergebnisfeld[3] = d_Is3 Strom Stator 3% Ergebnisfeld[4] = d_Ir1 Strom Rotor 1% Ergebnisfeld[5] = d_Ir2 Strom Rotor 2% Ergebnisfeld[6] = d_Ir3 Strom Rotor 3% Ergebnisfeld[7] = d_Us1 Spannung Stator 1% Ergebnisfeld[8] = d_Us2 Spannung Stator 2% Ergebnisfeld[9] = d_Us3 Spannung Stator 3% Ergebnisfeld[10] = d_Ur1 Spannung Rotor 1% Ergebnisfeld[11] = d_Ur2 Spannung Rotor 2% Ergebnisfeld[12] = d_Ur3 Spannung Rotor 3% Ergebnisfeld[13] = d_T_Schalter1 Temperatur Schalter 1% Ergebnisfeld[14] = d_T_Schalter2 Temperatur Schalter 2% Ergebnisfeld[15] = d_T_Diode1 Temperatur Diode 1% Ergebnisfeld[16] = d_T_Diode2 Temperatur Diode 2% Eingabe Statorinduktivität (Ls1/2/3 in H)d_Ls123 = 0.00019500;% Eingabe Hauptinduktivität (Lh1/2/3 in H)d_Lh123 = 0.01110000;% Eingabe Rotorinduktivität (Lr1/2/3 in H)d_Lr123 = 0.00023800;% Eingabe Statorwiderstand (Rs1/2/3 in Ohm)d_Rs123 = 0.015800;% Eingabe Rotorwiderstand (Läufer)(Rr1/2/3 in Ohm)d_Rr123 = 0.010000;% Schlupfwert (0-1)d_S = 0.040;% Eingabe Tamb (0.00-300C)d_Tamb = 25;% Vorbelegung Variabled_Is1 = 0;d_Is2 = 0;d_Is3 = 0;d_Ir1 = 0;d_Ir2 = 0;d_Ir3 = 0;d_Us1 = 0;d_Us2 = 0;d_Us3 = 0;d_Ur1 = 0;d_Ur2 = 0;d_Ur3 = 0;d_T_Schalter1 = 0;d_T_Schalter2 = 0;d_T_Diode1 = 0;d_T_Diode2 = 0;% Externer Bibliothek ladenloadlibrary('Level2_300A_800V_geschlWKuehler_ASM_dll.dll' , 'Level2_300A_800V_geschlWKuehler_ASM_dll.h')% Funktion DatReset in externer Bibliothek aufrufen (Daten zurücksetzen)calllib('Level2_300A_800V_geschlWKuehler_ASM_dll' , 'DatReset');% Datenfeld mit Daten zusammensetzen (1. Schaltmuster)i_Gate_S1 = 1; i_Gate_S2 = 0; i_Gate_S3 = 1; i_Gate_S4 = 0; i_Gate_S5 = 1; i_Gate_S6 = 0;d_SimuZeit_Ende = 0.00000823;DatenfeldSchreiben = [d_SimuZeit_Ende, d_Ls123, d_Lh123, d_Lr123, d_Rs123, d_Rr123, d_S, d_Tamb, i_Gate_S1, i_Gate_S2, i_Gate_S3, i_Gate_S4, i_Gate_S5, i_Gate_S6];% Funktion DatSchreiben in externer Bibliothek aufrufen (Daten nach DLL schreiben)calllib('Level2_300A_800V_geschlWKuehler_ASM_dll' , 'DatSchreiben', DatenfeldSchreiben);% Funktion DatBerechnenLesen in externer Bibliothek aufrufen (Daten in DLL berechnen, Daten von DLL lesen)DatenfeldLesen = [d_Is1, d_Is2, d_Is3, d_Ir1, d_Ir2, d_Ir3, d_Us1, d_Us2, d_Us3, d_Ur1, d_Ur2, d_Ur3, d_T_Schalter1, d_T_Schalter2, d_T_Diode1, d_T_Diode2];[~, Ergebnisfeld] = calllib('Level2_300A_800V_geschlWKuehler_ASM_dll' , 'DatBerechnenLesen', DatenfeldLesen);disp(Ergebnisfeld);% 2. Schaltmusteri_Gate_S1 = 1; i_Gate_S2 = 0; i_Gate_S3 = 1; i_Gate_S4 = 0; i_Gate_S5 = 0; i_Gate_S6 = 1;d_SimuZeit_Ende = 0.00002161;DatenfeldSchreiben = [d_SimuZeit_Ende, d_Ls123, d_Lh123, d_Lr123, d_Rs123, d_Rr123, d_S, d_Tamb, i_Gate_S1, i_Gate_S2, i_Gate_S3, i_Gate_S4, i_Gate_S5, i_Gate_S6];calllib('Level2_300A_800V_geschlWKuehler_ASM_dll' , 'DatSchreiben', DatenfeldSchreiben);DatenfeldLesen = [d_Is1, d_Is2, d_Is3, d_Ir1, d_Ir2, d_Ir3, d_Us1, d_Us2, d_Us3, d_Ur1, d_Ur2, d_Ur3, d_T_Schalter1, d_T_Schalter2, d_T_Diode1, d_T_Diode2];[~, Ergebnisfeld] = calllib('Level2_300A_800V_geschlWKuehler_ASM_dll' , 'DatBerechnenLesen', DatenfeldLesen);disp(Ergebnisfeld);% 3. Schaltmusteri_Gate_S1 = 0; i_Gate_S2 = 1; i_Gate_S3 = 1; i_Gate_S4 = 0; i_Gate_S5 = 0; i_Gate_S6 = 1;d_SimuZeit_Ende = 0.00003265;DatenfeldSchreiben = [d_SimuZeit_Ende, d_Ls123, d_Lh123, d_Lr123, d_Rs123, d_Rr123, d_S, d_Tamb, i_Gate_S1, i_Gate_S2, i_Gate_S3, i_Gate_S4, i_Gate_S5, i_Gate_S6];calllib('Level2_300A_800V_geschlWKuehler_ASM_dll' , 'DatSchreiben', DatenfeldSchreiben);DatenfeldLesen = [d_Is1, d_Is2, d_Is3, d_Ir1, d_Ir2, d_Ir3, d_Us1, d_Us2, d_Us3, d_Ur1, d_Ur2, d_Ur3, d_T_Schalter1, d_T_Schalter2, d_T_Diode1, d_T_Diode2];[~, Ergebnisfeld] = calllib('Level2_300A_800V_geschlWKuehler_ASM_dll' , 'DatBerechnenLesen', DatenfeldLesen);disp(Ergebnisfeld);% 4. Schaltmusteri_Gate_S1 = 0; i_Gate_S2 = 1; i_Gate_S3 = 0; i_Gate_S4 = 1; i_Gate_S5 = 0; i_Gate_S6 = 1;d_SimuZeit_Ende = 0.00005107;DatenfeldSchreiben = [d_SimuZeit_Ende, d_Ls123, d_Lh123, d_Lr123, d_Rs123, d_Rr123, d_S, d_Tamb, i_Gate_S1, i_Gate_S2, i_Gate_S3, i_Gate_S4, i_Gate_S5, i_Gate_S6];calllib('Level2_300A_800V_geschlWKuehler_ASM_dll' , 'DatSchreiben', DatenfeldSchreiben);DatenfeldLesen = [d_Is1, d_Is2, d_Is3, d_Ir1, d_Ir2, d_Ir3, d_Us1, d_Us2, d_Us3, d_Ur1, d_Ur2, d_Ur3, d_T_Schalter1, d_T_Schalter2, d_T_Diode1, d_T_Diode2];[~, Ergebnisfeld] = calllib('Level2_300A_800V_geschlWKuehler_ASM_dll' , 'DatBerechnenLesen', DatenfeldLesen);disp(Ergebnisfeld);% 5. Schaltmusteri_Gate_S1 = 0; i_Gate_S2 = 1; i_Gate_S3 = 1; i_Gate_S4 = 0; i_Gate_S5 = 0; i_Gate_S6 = 1;d_SimuZeit_Ende = 0.00006033;DatenfeldSchreiben = [d_SimuZeit_Ende, d_Ls123, d_Lh123, d_Lr123, d_Rs123, d_Rr123, d_S, d_Tamb, i_Gate_S1, i_Gate_S2, i_Gate_S3, i_Gate_S4, i_Gate_S5, i_Gate_S6];calllib('Level2_300A_800V_geschlWKuehler_ASM_dll' , 'DatSchreiben', DatenfeldSchreiben);DatenfeldLesen = [d_Is1, d_Is2, d_Is3, d_Ir1, d_Ir2, d_Ir3, d_Us1, d_Us2, d_Us3, d_Ur1, d_Ur2, d_Ur3, d_T_Schalter1, d_T_Schalter2, d_T_Diode1, d_T_Diode2];[~, Ergebnisfeld] = calllib('Level2_300A_800V_geschlWKuehler_ASM_dll' , 'DatBerechnenLesen', DatenfeldLesen);disp(Ergebnisfeld);% Externer Bibliothek aus dem Speicher entladenunloadlibrary('Level2_300A_800V_geschlWKuehler_ASM_dll');Ergebnis:Is1 Is2 Is3 Ir1 Ir2 Ir3 Us1 Us2 Us3 Ur1 Ur2 Ur3 T_S1 T_S2 T_D1 T_D20.0001 0.0001 -0.0001 0 0 0 0.0000 0.0000 -0.000 0 0 0 25.0000 25.0000 25.0000 25.00008.2817 8.2817 -16.5633 8.1066 8.1066 -16.2131 120.4036 120.4036 -240.8073 145.6964 145.6964 -291.3929 25.0004 25.0000 25.0000 25.00001.3612 21.9210 -23.2821 1.3302 21.4560 -22.7862 -121.7651 240.4247 -118.6596 -145.1956 292.1178 -146.9222 25.0087 25.0000 25.0000 25.00161.3332 21.6487 -22.9819 1.3023 21.1807 -22.4830 -0.2728 -2.5241 2.7969 -0.0324 1.7593 -1.7269 25.0084 25.0000 25.0000 25.0018-4.4217 33.0127 -28.5909 -4.3315 32.3007 -27.9692 -120.8192 239.1026 -118.2835 -145.3419 292.9829 -147.6410 25.0083 25.0001 25.0000 25.0018