Transistor Kennlinien Kurve in C++ Builder - pow, polybezier oder pixels?
-
Hallo
irgendwie verstehe ich dein Problem nicht. Du hast deine Formeln, du hast die Darstellungsmöglichkeiten von Canvas. Warum setzt du das denn nicht so um?
bis bald
akari
-
hallo
ja hmm, ich weiß nicht wie ich das den canvas methoden umsetzen kann.
ich möchte eine wertetabelle machen, die für jeden punkt (der ja immer unterschiedlich ist) werte für x (= uce) und y (= ic) ausrechnen lassen.
Diese Punkte sollen dann aneinander gereit gezeichnet werden (also logischerweise mit der methode "pixels" von canvas), das ergibt ja dann automatisch die kennlinie.
ich weiß nun nicht wie ich das anstellen soll?
das proggen der wertetabelle ist mir ehrlich gesagt ein rätsel, sowie die übergabe der einzelnen werte an "Canvas pixels".ne gerade zeichne ich ja so:
for (int i = 10; i <= 200; i++)
PaintBox1->Canvas->Pixels[i][10] = clRed;nun müsste ich ja [i] jedesmal den neu errechneten wert von x (= uce) zuweisen, damit da dann der punkt an einer andren stelle gezeichnet wird. nur wie?
danke

-
Hallo
nun müsste ich ja [i] jedesmal den neu errechneten wert
nein, das i bleibt genau so wie du es hast, du mußt den y-Wert (bei dir 10) immer neu berechnen.
Jetzt brauchst du einen Maßstab Pixel/Meßwert. Zum Beispiel 1 Pixel entsprechen 5 V (wenn da irgendwo Volt ist). Dann kannst du vom linken Pixel anfangen, indem du den niedrigsten möglichen Ausgangswert in deine Formel einsetzt, also
x = uce(0 * 5); // Pixel mal Maßstabdann kommt der nächste Pixel
x = uce(1 * 5); // Pixel mal Maßstabdas ganze natürlich in einer Schleife bis zum letzten möglichen Pixel.
Das Ergebnis deiner Rechnung mußt du gegebenfalls wieder mit einem passenden Maßstab verrechnen, um ihn dann anzeigen zu können.
bis bald
akari
-
Hi, habe hier mal eine Methode mit einem TChart:
float UTH = 1; //Pinch-Off-Spannung float beta = 1; //Transistor-Verstärkung float Step = 0.01; //Berechnungsschritte float ID; float UGS = 3; Chart->BottomAxis->Automatic = false; Chart->BottomAxis->Minimum = 0; Chart->BottomAxis->Maximum = 10; Chart->LeftAxis->Automatic = false; Chart->LeftAxis->Minimum = 0; Chart->LeftAxis->Maximum = 4; for(float UDS = 0; UDS<=Chart->BottomAxis->Maximum; UDS+=Step) { if(UDS < UGS-UTH) //Triodenbereich { ID = beta*((UGS-UTH)*UDS-(pow(UDS,2)/2)); } else //Sättigungsbereich { ID = (beta/2)*pow(UGS-UTH,2); } Series1->AddXY(UDS,ID); }
-
ui, das schaut aber kompliziert aus! hab mal activex charts eingefügt und ne menge einstellungen entdeckt.
ich glaub, dass wäre zu kompli.
aber danke
mit tchart kenn ich mich gar nicht aus
-
Du brauchst blos ein TChart auf die Form zu packen, dann einen neue Serie hinzufüngen und das wars dann auch schon.
-
JUHUHUU es klappt. ich denke jetzt weiß ich den rest auch weiter!
Vielen Dank an euch beide!!!!
Habt mir echt geholfen!Viele Grüße
-
Eigentlich trau ich mich gar nicht nochmal zu fragen, nur ich verzweifel langsam. Die Formeln zur Berechnung im vorherigen Teil dieses Beitrags sind nur für FET`s also MOS Feldeffekt Transistoren. Genau das bemerkte ich erst als ich fast alles fertig hatte *rotwerd*
Kann mir jemand sagen welche Formeln ich für einen ganz normalen bipolaren Transistor nehmen soll und wie ich das in meine Schleife einbaue:
die sieht ja so aus mit TChart:
float UTH = 1; //Pinch-Off-Spannung float beta = 1; //Transistor-Verstärkung float Step = 0.01; //Berechnungsschritte float ID; float UGS = 3; Chart->BottomAxis->Automatic = false; Chart->BottomAxis->Minimum = 0; Chart->BottomAxis->Maximum = 10; Chart->LeftAxis->Automatic = false; Chart->LeftAxis->Minimum = 0; Chart->LeftAxis->Maximum = 4; for(float UDS = 0; UDS<=Chart->BottomAxis->Maximum; UDS+=Step) { if(UDS < UGS-UTH) //Triodenbereich { //-> FET Formel, die ist ja falsch ID = beta*((UGS-UTH)*UDS-(pow(UDS,2)/2)); } else //Sättigungsbereich { //-> ID = (beta/2)*pow(UGS-UTH,2); } Series1->AddXY(UDS,ID); }
-
Für den Sättigungsbereich gilt:
Ic = Is*exp(UBE/UT)*(1+UCE/UA)
wobei Is: Sperrsättigungsstrom
UA: Early-Spannung
UT: Temperaturspannung (vgl. Diode) bei 20°C 26mVfalls du lieber Ib anstelle von UBE haben möchtest: Ib = Is/B0*exp(UBE/UT)
B0: extraploierte Stromverstärkung für UCE = 0VDie Formel für den Übergangsbereich weiss ich leider auch nicht, die müsste ähnlich wie jene der Diode sein.
Wenn du dein Projekt für einen Bipolaren brauchst, wieso lieferst du dann ein Beispielbild eine n-Kanal MOS-FET?
-
calibo-nostra schrieb:
Eigentlich trau ich mich gar nicht nochmal zu fragen, nur ich verzweifel langsam. Die Formeln zur Berechnung im vorherigen Teil dieses Beitrags sind nur für FET`s also MOS Feldeffekt Transistoren. Genau das bemerkte ich erst als ich fast alles fertig hatte *rotwerd*
Kann mir jemand sagen welche Formeln ich für einen ganz normalen bipolaren Transistor nehmen soll und wie ich das in meine Schleife einbaue:
das ist mal ein richtig tolles Beispiel wie eine Projektarbeit NICHT ablaufen sollte. Du schreibst eine Software und hast absolut kein Hintergrundwissen über das was Du da machst. Ich meine nicht das Programmieren, sondern die Elektronik. Vielleicht solltest Du Dich zuerst damit befassen, wenn Du das kapiert hast Dich erst dann ans Programmieren machen? Was bringen Dir die vorgekauten Lösungen hier wenn Du letztendlich nichts kapiert hast?
Zur Erinnerung: eine Projektarbeit dient dazu, sich mit einem Problem zu befassen, Problemlösungen selbstständig(!) zu erarbeiten(!), kurz: etwas daraus zu lernen. Dieses Wissen das Du Dir dann daraus erwirbst wirst Du nicht so schnell vergessen....die vorgekauten Lösungen bringen Dir sogesehen gar nichts.
-
Das ich Hintergrundwissen haben muss ist mir klar, das habe ich auch, nur keines welches mein Problem lösen könnte, da die Elektrotechnik sich nicht mit dem Zeichnen von Kennlinien eines Transistors auseinandersetz. Ich kenne die Elektrotechnik für Transistoren nur, wie sie sich lediglich nur damit befasst, Arbeitspunkte zu bestimmen und widerstände, spannungen und ströme auszurechnen, nicht aber wie nun eine stromsteuerkennlinie gezeichnet wird, und wie das eine Funktion ebschreibt, da alles irgendwie mit allem zusammenhängt.
Danke aber für diesen Kommentar, ich denke jetzt werde ich mich mit mehr Gewissen auf mein Projekt stürzen!
Danke auch wedmer! -- Diese Mos-FET Formel habe ich aus einem Tutorial, aber ist eben genau das falsche gewesen, wollte ja bipolare Trans-Kenn-Linien zeichnen!
Danke