Hallo, ich sitze seit Wochen an einem total bescheuerten Problem. Im Zuge eines Uni-Projekts in Elektronik, möchte ich gerne einen Bipolar-Transistor bzw. das Verhalten mit Matlab simulieren. Dazu möchte ich eigentlich lediglich das Eingangssignal U_B in die Simulation aufnehmen und dann z.B. I_B, U_CE und I_C plotten. Der Transistor soll als Schalter benutzt werden und befindet sich in der Emitter-Schaltung. Als nächsten Schritt will ich dann mit den Simulationsdaten die Verlustleistung über die Simulationszeit auftragen, aber das ist verhältnismäßig simpel und geling bereits, wenn ich die Werte aus dem Datenblatt annehme. Ich habe bisher vereinfacht mit dem Ebers-Moll-Modell gearbeitet. Die Simulationsergebnisse kommen aber einfach nicht hin. Grund dafür ist, dass ich absolut auf dem Schlauch stehe und nicht weiß, wie ich U_BE berechnen soll, da das ja im Normalbetrieb die treibende Kraft ist (I_B(f(U_BE) etc.). Bisher bin ich davon ausgegangen, dass U_B = U_BE ist. Ein weiteres Problem ist, dass ich nur ein Datenblatt habe, aus dem viele benötigte Werte nicht direkt hervorgehen. Es handelt sich um einen NPN-Silizium-Carbid (SiC) Bipolar-Transistor. Zur Not habe ich noch ein SPICE-Modell, aus dem ich Kleinsignal-Parameter für das Gummel-Poon-Model entnehmen könnte (z.B. CJE, VJE etc.). Ich vermute ich brauche nur eine fehlende Funktion, wie ich z.B. U_BC oder U_BE berechne bzw. ermitteln kann und wie ich dann darüber U_CE berechne. Das soll erstmal als Einführung reichen, ich habe sonst auch noch seitenweise Matlab-Code, um zu veranschaulichen, was ich bisher gemacht habe. Ich bin wirklich verzweifelt und habe das Internet komplett auf den Kopf gestellt, also wenn mir jemand helfen kann, wäre ich sehr dankbar. Mit den besten Grüßen, Seb
Ich wuerd mal mit einem Silizium NPN beginnen, und das Datenblatt genau lesen. Ein SiC hat andere Parameter Werte, ist sonst aber gleich.
Ich weiß ja nicht wie genau das werden soll, aber wenn du das dynamische Schaltverhalten so gut wie mit SPICE simulieren willst, dann wird das heftig. http://www.inf.ethz.ch/personal/cellier/MS/luoan_ms.pdf
:
Bearbeitet durch User
Seb schrieb: > Zur Not habe ich noch ein SPICE-Modell Warum simulierst du den Transistor dann nicht in Spice?
Das ist richtig, ob SiC, oder normal Si ist dabei auch relativ egal, da die Menge der gegebenen Parameter im Datenblatt ja auch gleich sind. Die Modellierung ist auch gleich. Aber genau darin liegt das Problem. Ich brauche Funktionen für I_B(U_BE) I_C(U_BE bzw I_B) und U_CE(U_BE bzw. I_B). Das Transportmodell, welches aus Ebers-Moll hervor geht, ist dabei aber nur wenig hilfreich. Das Programm in Matlab gibt mir Werte aus, die nichts mit den Werten der SPICE-Simulation zu tun haben.
Yalu X. schrieb: > Seb schrieb: >> Zur Not habe ich noch ein SPICE-Modell > > Warum simulierst du den Transistor dann nicht in Spice? Die Herausforderung ist ja gerade, dass ich nachbilden will, was SPICE im Hintergrund macht... Als Auswertung käme dann die Diskussion, ob die Simulation in Matlab hinreichend genau ist und was man besser machen könnte. Es muss nicht die Weltformel sein, aber 3 Funktionen, die das Ein- und Ausgangsverhalten beschreibt, damit man daraus die Verlustleistung berechnen kann, wäre schon toll.
Seb schrieb: > Ich habe bisher vereinfacht mit dem Ebers-Moll-Modell > gearbeitet. Ja, gut. > Die Simulationsergebnisse kommen aber einfach nicht hin. > Grund dafür ist, dass ich absolut auf dem Schlauch stehe > und nicht weiß, wie ich U_BE berechnen soll, Das verstehe ich nicht. Es gibt doch im Ebers-Moll-Modell eine Gleichung, die den Zusammenhang zwischen I_b und U_be beschreibt?! (Zumindest in der allwissenden Müllhalde gibt es die.) Das ist doch der gesuchte Zusammenhang. > da das ja im Normalbetrieb die treibende Kraft ist > (I_B(f(U_BE) etc.). Jein. In der technischen Anwendung neigt man dazu, den Bipolar- transistor als spannungsgesteuertes Bauteil anzusehen. Für das eigene Verständnis ist es aber besser, sich ihn als stromgesteuert vorzustellen. Im Transistor stehen Ladungsträgerdichten in Wechselwirkung; die Spannungen stellen sich irgendwie passend ein. Beim Duschen bist Du ja auch primär am Wasserstrom interessiert. Der Druck ist nur notwendiges Übel, damit das Wasser bis zu Dir in den vierten Stock kommt. ;-) > Bisher bin ich davon ausgegangen, dass U_B = U_BE ist. Äähh... ja, davon gehe ich auch aus. > Ein weiteres Problem ist, dass ich nur ein Datenblatt > habe, aus dem viele benötigte Werte nicht direkt hervorgehen. > Es handelt sich um einen NPN-Silizium-Carbid (SiC) > Bipolar-Transistor. Das ist der Normalfall. > Das soll erstmal als Einführung reichen, ich habe sonst auch > noch seitenweise Matlab-Code, um zu veranschaulichen, was > ich bisher gemacht habe. Ich bin wirklich verzweifelt und > habe das Internet komplett auf den Kopf gestellt, also wenn > mir jemand helfen kann, wäre ich sehr dankbar. Hmm. Das ist, offen gestanden, schwer zu glauben. Also, entweder hast Du (aufgrund mangelnder Erfahrung) noch grobe Schnitzer in Deiner Modellierung, oder Deine Vorstellungen von der erzielbaren Genauigkeit sind überhöht - oder beides.
Seb schrieb: > Ich brauche Funktionen für I_B(U_BE) Ist Bestandteil des Ebers-Moll-Modelles (zumindest in der Formulierung, die in der Wikipedie steht.) --> Exponenzialfunktion. > I_C(U_BE bzw I_B) I_C (I_B) ist die Stromverstärkung (und in guter Näherung eine Konstante.) > und U_CE(U_BE bzw. I_B). Geht nicht. Der Bipolartransistor ist (in guter Näherung) eine gesteuerte Stromquelle; der Ausgangskreis (Kollektorkreis) hat Stromquellencharakteristik. Folge: Die Spannung hängt primär vom Lastwiderstand ab. Kann es sein, dass Dir ziemlich elementares Grundwissen zum Bipolartransistor fehlt?
Das Ganze ist nicht so einfach : I_B(U_BE) gibt's so nicht. Es ist eher : Ube(Ib,Temp) etwa exp() hfe(Ic) = Ic/Ib ungleich const, auch nicht in guter Naeherung. Ich seh es auch so... da fehlt viel Wissen ueber den Bipolartransistor. Eine Simulation ist nicht wirklich das Richtige zum Beginnen.
Possetitjel schrieb: > Kann es sein, dass Dir ziemlich elementares Grundwissen > zum Bipolartransistor fehlt? Okay, dann mal ans Eingemachte. Nehmen wir mal als ersten Meilenstein nur das veinfachte Transportmodell an. Dafür habe ich in meinem Matlab-Modell zunächst die benötigten Konstanten und Simulationsparameter definiert: - Boltzmannkonstante (k = 1.38e-23 VAs/K)# - Elementarladung (q = 1.602e-19 As) - Betriebstemperatur (T = 300 K, zur Ermittlung der Temperaturspannung) - U0 = 600 V - U_BE = 0 V... 20 V (soll später PWM-Signal werden, jetzt erstmal linear steigend, damit ich mir ansehe, wie sich die Ströme verhalten) - R_L = 1000 ohm (hängt hinter dem Kollektor) Nun die Daten aus dem SPICE-Modell (welches ich netterweise vom Hersteller bekommen habe): - Stromverstärkung im Normalbetrieb (B_N = 140) - Sättigungsstrom (I_S = 5.1e-48 A) Soweit so gut, nun zum Transportmodell: I_B = (I_S/B_N) * exp((U_BE/U_T)); I_C = I_B .* B_N; I_E = -(I_C+I_B); Das funktioniert auch soweit. Nun verstehe ich einerseits nicht, wie ich auf die Spannung U_CE kommen soll, da sich effektiv der Widerstand des Transistors über die Zeit ändert. Die beiden Arbeitspunkte AUS und EIN sind mir bewusst, aber die kritische Verlustleistung entsteht ja genau bei dem Übergang dieser beiden. Und genau DEN will ich modellieren. Kann es sein, dass der Ansatz komplett verkehrt ist? Für die Velrustleistung habe ich die Formel P_tot = U_CE * I_C + U_BE * I_B Nur komm ich nicht auf dieses blöde U_CE. U_CE sollte im AUS-Zustand ja U_O entsprechen, da der Widerstand des Kondensators quasi unendlich ist. Im EIN-Zustand ist der Widerstand im Datenblatt mit R_ON_sat = 17e-3 ohm angegeben. Wenn ich jetzt wüsste, wie das Übergangsverhalten des Widerstandes WÄHREND des Schaltens aussieht (gehe von e-Funktion aus), dann könnte ich doch I_C*R_Trans nehmen, um auf mein U_CE zu kommen, richtig? Dann sollte im EIN-Zustand U_CE = ~0 V sein, bzw. U_CE_sat aus dem Datenblatt (= 0.85 V) und im AUS-Zustand U_CE = U_0 sein, richtig? Ich komme mir wirklich verdammt dämlich vor, vermutlich ist es ganz einfach.. Schande über mein Haupt (ich komme ursprünglich aus der Hardware-Enticklung mit VHDL - falls das als Entschuldigung zählen sollte)
Da ist noch vielen an Parametern falsch :
> U_BE = 0 V... 20 V
Ein silizium NPN ist bei einem Volt Ube schon kaputt. Ein Bipolar
Transistor ist stromgesteuert, nicht spannungsgesteuert.
Es gibt da noch die Ic - Uce kennlinien...
:
Bearbeitet durch User
Nimm doch lieber CMOS Transistoren die verbrauchen weniger Strom
Mach doch einmal die Widerstandsgerade im Ic-Uce Diagramm, mit dem Lastwiderstand, auf der faehrst du hin und her.
Jetzt Nicht schrieb: > Mach doch einmal die Widerstandsgerade im Ic-Uce Diagramm, mit dem > Lastwiderstand, auf der faehrst du hin und her. Super Idee! Dann habe ich den Widerstand, den ich als Spannungsteiler nur in Relation zum Lastwiderstand legen muss. Ist es denn möglich die Kennlinie selber zu erstellen? Angenommen ich gebe nicht den Spannungsverlauf U_BE an, sondern I_B. Dann muss ich die 1. Formel für I_B umstellen nach U_BE und die Simulation füttern. Darauf gebe ich einen Vektor mit den Werten der Widerstandslinie an. Die rise-time aus dem Datenblatt gibt an, wie "schnell" er diese Gerade entlang fährt (zumindest ist es eine Gerade bei ohmscher Last). Und für jeden Widerstandswert kann ich auch direkt auf den Zeitpunkt die generierte Verlustleistung berechnen... Richtig? -_-
Seb schrieb: > - U_BE = 0 V... 20 V 20V zwischen Basis und Emitter sieht erstmal... merkwürdig aus. Zumindest für Si ist das grob falsch - allerdings habe ich noch keinen SiC-Transistor in der Hand gehabt. (Es kann also sein, dass das stimmt. Kann ich nicht beurteilen.) > - R_L = 1000 ohm (hängt hinter dem Kollektor) Mal merken. Brauchen wir weiter unten. > - Sättigungsstrom (I_S = 5.1e-48 A) Ist das ernst gemeint?! 10^(-48)A? > Soweit so gut, nun zum Transportmodell: > I_B = (I_S/B_N) * exp((U_BE/U_T)); > I_C = I_B .* B_N; > I_E = -(I_C+I_B); > > Das funktioniert auch soweit. Nun verstehe ich einerseits > nicht, wie ich auf die Spannung U_CE kommen soll, da sich > effektiv der Widerstand des Transistors über die Zeit ändert. Bitte nicht in die Tischkante beissen. Danke ;-) U_CE = U0 - I_CE * R_Last In Worten: Der Transistor bildet mit dem Lastwiderstand im Kollektorkreis einen (variablen) Spannungsteiler. Die Summe aus der Spannung über der Last und der Kollektorspannung des Transistors muss die Betriebsspannung ergeben. Wenn Du den Kollektorstrom und den Kollektorwiderstand (=Lastwiderstand) kennst, kannst Du den Spannungsabfall an der Last ausrechnen. Der zur vollen Betriebsspannung fehlende Teil muss dann über dem Transistor abfallen. > Die beiden Arbeitspunkte AUS und EIN sind mir bewusst, aber > die kritische Verlustleistung entsteht ja genau bei dem > Übergang dieser beiden. Und genau DEN will ich modellieren. Ja. > Kann es sein, dass der Ansatz komplett verkehrt ist? > Für die Velrustleistung habe ich die Formel > P_tot = U_CE * I_C + U_BE * I_B Nein, passt schon. Schaltzeit, Schaltfrequenz usw. natürlich beachten. > Nur komm ich nicht auf dieses blöde U_CE. Sollte geklärt sein. > U_CE sollte im AUS-Zustand ja U_O entsprechen, Ja. > da der Widerstand des Kondensators quasi unendlich ist. Kondensator? - Kollektor. Ja, richtig. > Im EIN-Zustand ist der Widerstand im Datenblatt mit > R_ON_sat = 17e-3 ohm angegeben. Sportlich. - Ja, richtig erkannt. > Wenn ich jetzt wüsste, wie das Übergangsverhalten des > Widerstandes NEIN! Vergiss den "Widerstand" beim Bipolartransistor. Du kannst den Kollektorstrom beschreiben. I_C gibt zusammen mit R_Last die Spannung über der Last. U_CE + U_Last = U_betrieb. > WÄHREND des Schaltens aussieht (gehe von e-Funktion aus), > dann könnte ich doch I_C*R_Trans nehmen, um auf mein U_CE zu > kommen, richtig? Ja... Nein. R_Trans ist nicht bekannt (und existiert auch nicht wirklich). Der Kollektorkreis hat Stromquellenverhalten! R_last ist aber bekannt. I_C * R_last = U_last. U_last + U_CE = U_gesamt. > Dann sollte im EIN-Zustand U_CE = ~0 V sein, bzw. U_CE_sat > aus dem Datenblatt (= 0.85 V) Ja, korrekt. > und im AUS-Zustand U_CE = U_0 sein, richtig? Ja, auch korrekt. > Ich komme mir wirklich verdammt dämlich vor, vermutlich ist > es ganz einfach.. Hmm, ja, ist es. Ich habe es schon mehrfach geschrieben: Der Ausgangskreis (=Kollektorstromkreis) ist in guter Näherung eine Stromquelle. Es ist nicht möglich , die Spannung am Transistor ohne Beachtung der Last zu berechnen. Das geht nicht. Man muss indirekt über I_Last, R_Last, U_Last, U0 rechnen. > Schande über mein Haupt (ich komme ursprünglich aus der > Hardware-Enticklung mit VHDL - falls das als Entschuldigung > zählen sollte) Kein Problem. Jeder hat mal angefangen.
Seb schrieb: > Dann habe ich den Widerstand, den ich als Spannungsteiler > nur in Relation zum Lastwiderstand legen muss. Mach das nicht. Löse Dich mal von der Vorstellung, Du brauchtest unbedingt einen "Widerstand", um die Leistung ausrechnen zu können, denn das ist nicht der Fall. Den Kollektorstrom kennst Du direkt durch Deine Gleichungen. Die Kollektorspannung kannst Du, wie ich im anderen Beitrag beschrieben habe, aus Betriebsspannung, Kollektorstrom und Lastwiderstand berechnen. Jetzt hast Du alles, was Du brauchst. Der Bipolartransistor ist kein steuerbarer Widerstand, sondern eine steuerbare Stromquelle !
Possetitjel schrieb: > Bitte nicht in die Tischkante beissen. Danke ;-) Schon passiert... OHH-mannomannoma... Naja gut, daran hab ich Trottel echt nicht gedacht. Ich hatte in Ersatzschaltbildern den Transistor immer als variablen Widerstand hingemalt, nicht als variable Stromquelle. Und dass ich den Zusammenhang "U_CE = U0 - I_CE * R_Last" nicht gesehen habe ist echt bitter. Vielen Dank schonmal! Possetitjel schrieb: > 20V zwischen Basis und Emitter sieht erstmal... merkwürdig > aus. Zumindest für Si ist das grob falsch - allerdings habe > ich noch keinen SiC-Transistor in der Hand gehabt. (Es kann > also sein, dass das stimmt. Kann ich nicht beurteilen.) U_BE max bei 175°C wird im Datenblatt als 20V angegeben. Ich wollte auch erstmal nur schauen, wie sich die Plots verhalten, wenn ich daran rumschraube. Ich habe jetzt einen linearen Anstieg auf max. U_BE_sat = 3.5 V, da ich den Transistor als Schalter im Sättigungszustand halten möchte. Possetitjel schrieb: > Ist das ernst gemeint?! 10^(-48)A? Mit dem Sättigungsstrom bin ich unsicher. In dem SPICE-Dingen stehen IS und ISE: .model FSICBH017A NPN( IS=5.1e-48 BF=140 NF=1 ISE=7.56e-26 NE=2 BR=0.16 + RB=0.076 RC=0.0146 XTI=3 XTB=-1.1 EG=3.2 TRC1=4e-3 + CJE=5.72e-9 VJE=2.9 MJE=0.5 CJC=2.72e-9 VJC=2.9 MJC=0.5) Generell finde ich es seltsam, dass man diesen Wert eigentlich IMMER braucht, er aber nicht im Datenblatt angegeben ist (zumindest nicht in dem mir vorliegenden). Mit dem B_N bzw. BF = 140 aus dem SPICE-Modell bin ich auch unsicher, da dieser Wert ebenfalls nicht explizit im Datenblatt steht...
Seb schrieb: > Possetitjel schrieb: >> Bitte nicht in die Tischkante beissen. Danke ;-) > > Schon passiert... OHH-mannomannoma... Und ich hatte Dich extra gewarnt... >> 20V zwischen Basis und Emitter sieht erstmal... merkwürdig >> aus. Zumindest für Si ist das grob falsch - allerdings habe >> ich noch keinen SiC-Transistor in der Hand gehabt. (Es kann >> also sein, dass das stimmt. Kann ich nicht beurteilen.) > > U_BE max bei 175°C wird im Datenblatt als 20V angegeben. Ahh... Vorsicht: Polarität beachten. Eine Basis-Emitter-Flussspannung von 20V ist schwer vorstellbar. Eine (maximal zulässige) Emitter-Basis-Sperrspannung von 20V liegt eher im Bereich des Möglichen. >> Ist das ernst gemeint?! 10^(-48)A? > > Mit dem Sättigungsstrom bin ich unsicher. In dem SPICE-Dingen > stehen IS und ISE: > .model FSICBH017A NPN( IS=5.1e-48 BF=140 NF=1 ISE=7.56e-26 NE=2 BR=0.16 > + RB=0.076 RC=0.0146 XTI=3 XTB=-1.1 EG=3.2 TRC1=4e-3 > + CJE=5.72e-9 VJE=2.9 MJE=0.5 CJC=2.72e-9 VJC=2.9 MJC=0.5) Hmmm. Gut. Dann wird das wohl seine Richtigkeit haben. Man sieht daran allerdings, dass das Modell ein reines Rechenmodell ist, das wenig mit der Physik zu tun hat: Ein Ampere (1A) sind grob gerechnet 10^20 Elektronen je Sekunde. 10^(-48)A ist ein einzelnes Elektron in 10^19 Jahren... > Generell finde ich es seltsam, dass man diesen Wert eigentlich > IMMER braucht, er aber nicht im Datenblatt angegeben ist > (zumindest nicht in dem mir vorliegenden). Nee. Der Schaltungsentwickler, für den das Datenblatt gemacht ist, braucht den Wert nie. Der geht vom Kollektorstrom aus, dividiert den durch die (geschätzte) Stromverstärkung und hat so den Basisstrom. Die Basisspannung kennt er - das ist bei Silizium ungefähr 0.7V :) Die ganze Rechnerei mit den Transportgleichungen und den absurd kleinen Strömen ist nur für Computersimulation wichtig. Für den Computer gilt der klassische Spruch von Gauß: "Mangelnde ... Bildung zeigt sich am deutlichsten in äußerster Schärfe im Zahlenrechnen." Der Computer versteht ja nicht, was er da rechnet... > Mit dem B_N bzw. BF = 140 aus dem SPICE-Modell bin ich auch > unsicher, da dieser Wert ebenfalls nicht explizit im Datenblatt > steht... Der Transportfaktor steht i.d.R. nicht im Datenblatt - aber die Stromverstärkung :) Aber nicht wundern, wenn dort "hfe = 50...200" steht. Solche Streuung ist normal.
Vielleicht solltest du mal Google befragen oder hast du die Treffer schon alle durch. Google: transistor simulation matlab Beispiel mit obiger Suche: http://de.mathworks.com/help/physmod/elec/ref/npnbipolartransistor.html
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.