Hallo Leute!
Ich habe hier eine Schaltung in LTSpice aufgebaut, in der ich einen DAC
durch eine PWM nachbilden will und damit anschließend eine 4-20mA
Schleife steuern will.
In der Schaltung wird ein Offset von 3mA vorgegeben und dann soll
zwischen 3 und ca. 22mA mittels PWM geregelt werden.
Ich habe also mal für verschiedene Duty-Cycles die Graphen anzeigen
lassen. PWM-Frequenz ist 60Hz (geht nicht anders, Taktfrequenz des uCs
ist nur 1MHz) - die Periodendauer beträgt also rund 16ms.
Gezeigt werden hier Schritte von 0 bis 16ms in Schritten von 1ms.
Aber die Abstände sind nicht gleich, finde ich. Woran liegt das und wie
kann man das beheben?
Ferdinand
Nachtrag - ich habe hier noch den Eingang der Pulsquelle - da ist doch
auch irgendwas nicht ganz normal. Muss ich an rise- und fall-Time was
verändern? Ich hatte da mal ein bisschen dran herumgespielt, aber dann
kam teilweise auch ein seltsames Signal heraus.
OK, scheint ja eine Alleinunterhaltung zu sein ;-)
Falls dennoch einer reinguckt - ich habe noch ein anderes Phänomen, dass
ich viel wichtiger finde.
Ich habe jetzt alle Tastverhältnisse zwischen 0 und 100% in 1ms
Schritten durchgemacht und mir den Ausgangsstrom angeguckt.
Von 0 - 50% (0ms - 8ms) ist im Ausgangsstrom stets eine Schrittweite von
1,512x mA zu sehen.
Dann von 8ms auf 9ms ist die Schrittweite plötzlich nurnoch 1,237x mA
und das zieht sich auch konstant bis zum Ende durch.
Da ist also in der Mitte des Tastverhältnisses plötzlich ein Knick drin
- ist der simulationsbedingt, oder hat das physikalische Gründe? Wenn
mir einer das jetzt beantworten könnte, wäre ich wirklich sehr sehr
dankbar!
Ich hole das nochmal hoch - ich hoffe immernoch, irgendwer kann mir da
eineen Raut zu geben.
Kann ich mit einer PWM einen linearen DAC aufbauen, oder macht mir die
Ladekurve des Kondensators da einen Strich durch die Rechnung?
Ferdinand schrieb:> Von 0 - 50% (0ms - 8ms) ist im Ausgangsstrom stets eine Schrittweite von> 1,512x mA zu sehen.>> Dann von 8ms auf 9ms ist die Schrittweite plötzlich nurnoch 1,237x mA> und das zieht sich auch konstant bis zum Ende durch.
Sieht so aus, als wenn etwas in die Begrenzung geht. Schau Dir doch an,
ob die Spannungen vor bzw. nach den einzelnen Stufen noch linear sind.
Zumindest nach R14/C7 sollte noch alles recht proportional zum
Tastverhältnis sein.
Hast du Angst die Schaltung kurz aufzubauen ?
Sieht doch recht gut aus fuer die simple Wandlung.
Ich hasse Simulatoren ... sind genau so gut wie wenn man Mist misst.
Hoch leben die Empiriker ;-) Vor Weihnachten schaffst du das.
Oder fang es etwas einfacher an - simulier erstmal nur den Tiefpass und
wähle die Werte so, das du ein möglichst 'ripple' freies 0V bis 3,3 Volt
Signal am Ausgang bekommst, denn du möchtest ja vermutlich die 60 Hz am
Ausgang nicht sehen. Ausgangsimpedanz der treibenden PWM spielt hier
auch eine Rolle.
Die Anpassung an die Stromschleife kommt dann später.
Edi R. schrieb:> Sieht so aus, als wenn etwas in die Begrenzung geht.
Also das denke ich nicht, ich habe die Potentiale an allen Punkten
kontrolliert - das passt. Auf den vorherigen Bildern sieht man
lediglich, dass der vorletzte und der letzte Plot in die Begrenzung
gehen, weil der letzte OP da nicht mehr genug Aussteuerpsannung für den
Transistor haben. Aber das habe ich behoben.
Edi R. schrieb:> Zumindest nach R14/C7 sollte noch alles recht proportional zum> Tastverhältnis sein.
Hier ist mal ein Plot vom RC-Tiefpass - grün ist nach der ersten Stufe,
blau nach der zweiten. Einmal vom kompletten Verlauf und einmal als
Ausschnitt, wo sich die Spannungen quasi gesetzt haben. Das sieht
eigentlich ganz gut aus.
Periodendauer sind 16ms, jeweils in Schrittweite von 1ms von 1ms bis
16ms.
Rigi Taler schrieb:> Hast du Angst die Schaltung kurz aufzubauen ?
Natürlich nicht, nur wenn ich vorher schon sehen kann, dass ich komplett
auf dem Holzweg bin, dann probier ich lieber noch ein wenig herum -
aufbauen werde ich das ganze gleich noch.
Rigi Taler schrieb:> Ich hasse Simulatoren
Ich würde nicht sagen, dass ich sie hasse, aber manchmal denke ich, dass
man sich damit auch gut selbst verarschen kann (wenn man es nicht
richtig macht).
Matthias Sch. schrieb:> wähle die Werte so, das du ein möglichst 'ripple' freies 0V bis 3,3 Volt> Signal am Ausgang bekommst
Das habe ich hier nach dem zweiten TP eigentlich schon. Am Ausgang
schwankt der Strom nur um paar 100nA.
Matthias Sch. schrieb:> Ausgangsimpedanz der treibenden PWM spielt hier> auch eine Rolle.
Ja klar, aber die Simulation hat ja erstmal keine.
Noch eine andere Frage: Ich benutze den internen DCO vom Controller -
der schwankt ja je nach Temperatur und Exemplar schon ein wenig. Das
müsste aber doch theoretisch egal sein, da auch das Tastverhätnis
gleichermaßen variiert, oder sehe ich das falsch?
Danke auf jeden Fall schonmal für die Rückmeldungen!
Mit den 3mA Offset bekomme ich jedenfalls eine höhere Auflösung für die
restliche Spanne. Wegen den Bauteiltoleranzen gehe ich nicht auf 4mA,
sonst liege ich evtl. schon drüber und nach unten geht ja nicht.
Jetzt kann ich zwischen 3mA und 22mA per PWM regeln.
Vom 16Bit Timer bei 1MHz Taktfrequenz nutze ich effektiv 14Bit, der
Timer-Wert geht also bis 16384. Daruas resultieren die 60Hz.
Meine Spanne von 19mA kann ich THEORETISCH also mit 1,15uA auflösen.
So, ich habe mir den Plot jetzt mal auf A3 ausgedruckt und mit 'nem
Lineal nachgemessen - auch hier sehe ich von 1-8ms jeweils einen Abstand
zwischen den Spannungskurven (nach dem 2. TP) von 2,3cm und von 8-16ms
einen Abstand von 1,9cm.
Also der Ausgangsstrom liegt definitiv am Wechsel
Duty-Cycle<8<Duty-Cycle. Nur weiß ich jetzt halt nicht, ob das an der
Simulation liegt - ich glaube es langsam...weil ich es mir nicht
erklären kann, wieso das so sein sollte.
So Mädels - ich hab's jetzt. Das ist ein Simulationsproblem. Ich habe
die Anstiegs-/Abstiegszeit der Quelle etwas variiert, sthet jetzt
jeweils auf 100ps. Jetzt sind alle Abstände gleich.
Trotzdem interessantes Problem, aber keine Idee, wieso!
...ist ein Simulationsproblem ?
Bei einer derartigen Schaltung kann man doch nichts falsch machen.
Verstehst du 'was von Elektronik...oder nur 'was von Simulation ?
Zeit verplempern und Geistern nacheilen...ist auch Arbeit ;-)
Ferdinand schrieb:> So Mädels - ich hab's jetzt. Das ist ein Simulationsproblem.
Nee leider nicht: rechne die e-Funktion doch mal nach:
Vereinfacht als Tiefpaß 1. Ordnung mit 100ms Zeitkonstante bei 16 ms
Periode ergibt sich bei 80.00% PWM und 5.000V Versorgung eine mittlere
Ausgangsspannung von ca 4001 mV.
Wie kannst Du bei einer so nichtlinearen Funktion wie es die e-Funktion
ist erwarten daß etwas lineares herauskommt? Das geht nur dann wenn die
Periodendauer genügend kurz gegenüber der Zeitkonstanten ist.
Dein Tiefpaß ist hierfür völlig unterdimensioniert.
Gruß Anja
Ferdinand schrieb:> Das> müsste aber doch theoretisch egal sein, da auch das Tastverhätnis> gleichermaßen variiert, oder sehe ich das falsch?
Nee, das ist völlig richtig. Frequenzänderungen haben keinen Einfluss
auf das Tastverhältnis, wenn der Oszillator nicht gerade 'springt' - und
das tut er mit Sicherheit nicht.
Ferdinand schrieb:> Matthias Sch. schrieb:>> Ausgangsimpedanz der treibenden PWM spielt hier>> auch eine Rolle.>> Ja klar, aber die Simulation hat ja erstmal keine.Ferdinand schrieb:> Ich habe> die Anstiegs-/Abstiegszeit der Quelle etwas variiert, sthet jetzt> jeweils auf 100ps. Jetzt sind alle Abstände gleich.
Lol, und ich sach noch ... Natürlich hängt die Anstiegszeit von der
Ausgangsimpedanz der PWM ab. Je power, desto steil.
Ferdinand schrieb:> So Mädels - ich hab's jetzt. Das ist ein Simulationsproblem. Ich habe> die Anstiegs-/Abstiegszeit der Quelle etwas variiert, sthet jetzt> jeweils auf 100ps. Jetzt sind alle Abstände gleich.>> Trotzdem interessantes Problem, aber keine Idee, wieso!
Du hast in deiner ursprünglichen Schaltung für die Anstiegs und
Abfallszeiten jeweils 0 eingetragen. LTSpice rechnet aber in diesem Fall
nicht mit 0, sondern setzt einen Standardwert ein.
Dieser ist in der Regel "1m".
Ist z.B. bei einer Spule ebenso: Wenn du beim Innenwiderstand 0
eingibst, rechnet LTSpice automatisch mit 1m. Ebenso mit dem ESR eines
Kondensators.
Michael
Anja schrieb:> Wie kannst Du bei einer so nichtlinearen Funktion wie es die e-Funktion> ist erwarten daß etwas lineares herauskommt?
Hallo Anja!
Ich freue mich ja generell über jeden Beitrag, aber wenn er nur aus
Kritik besteht, dann hilft mir das natürlich auch nicht weiter.
Anja schrieb:> Das geht nur dann wenn die> Periodendauer genügend kurz gegenüber der Zeitkonstanten ist.> Dein Tiefpaß ist hierfür völlig unterdimensioniert.
Dann sei doch mal so gut und hilf mir ein wenig auf die Sprünge - wie
meinst du das oder wie sollte ich es verändern?
Ich habe die Schaltung jetzt mal aufgebaut - folgendes Ergebnis:
Mittels try & error habe ich erstmal die PWM-Werte für 4 und 20mA
ermittelt und im Controller gespeichert. Diese Werte bringen mir jetzt
exakt 4,000 und 20,000mA.
Um die Linearität des ganzen zu testen, habe ich jetzt also im
Controller Zwischenwerte errechnet und mir ausgeben lassen - Resultat:
Jeder Wert stimmt...und jetzt ohne Scheiß...auf ca. 1uA genau! Da bin
ich selber verblüfft. Die ganze Geschichte ist also erstmal höchst
linear, wenn man bedenkt, wie einfach die ganze Geschichte gehalten ist.
Wie sich das alles unter Temperatur verschiebt ist noch eine andere
Geschichte. Auf jeden Fall bringt mir eine Duty-Cycle-Erhöhung um 1 ca.
1,1 uA Ausgangsstromerhöhung.
Problem der ganzen Geschichte ist noch das sehr sehr langsame
Ansprechverhalten - der Endwert benötigt teilweise zwischen 2 und 10s,
bis er wirklich seinen Sollwert erreicht hat.
Wackeln tun die Werte auch nur um ca. 1uA.
Jetzt muss ich mal gucken, wo ich noch Cs verkleinere, um die Regelung
etwas zu beschleunigen und dabei den Ausgang kontrollieren auf
Restwelligkeit.
Aktuell messe ich am Ausgang über dem Transistor ca. 50kHz mit einer
Amplitude von 20mV - das ist natürlich nicht so schön...aber die messe
ich auch, wenn ich das Oszi nur ans Netzteil anschließe - die kommen
also daher :-\
So, ersmtal soviel zum aktuellen Stand. Über Anmerkungen bin ich
weiterhin dankbar!
Ferdinand
Ferdinand schrieb:> Ich freue mich ja generell über jeden Beitrag, aber wenn er nur aus> Kritik besteht, dann hilft mir das natürlich auch nicht weiter.>> Anja schrieb:>> Das geht nur dann wenn die>> Periodendauer genügend kurz gegenüber der Zeitkonstanten ist.>> Dein Tiefpaß ist hierfür völlig unterdimensioniert.
Wenn das kein Wink mit dem Zaunpfahl ist wie es richtiger wäre dann
versteh ich die Welt net mehr.
Ferdinand schrieb:> Jetzt muss ich mal gucken, wo ich noch Cs verkleinere, um die Regelung> etwas zu beschleunigen und dabei den Ausgang kontrollieren auf> Restwelligkeit.
Das ist genau die Falsche Richtung damit wird das ganze wieder stärker
nichtlinear. Du brauchst für hohe Linearität entweder eine höhere
PWM-Frequenz oder eine höhere Zeitkonstante.
Ferdinand schrieb:> Jeder Wert stimmt...und jetzt ohne Scheiß...auf ca. 1uA genau!
Du hast aber hoffentlich kein Meßgerät mit Sigma-Delta-Wandler das jetzt
genau den nichtlinearitäts-Fehler Deines Aufbaus bei der Messung
nachempfindet ?????
Nach meiner Überschlagsrechnung müßtest du bis zu 5uA
Linearitätsabweichung haben.
Gruß Anja
Hi Anja!
Anja schrieb:> Das ist genau die Falsche Richtung damit wird das ganze wieder stärker> nichtlinear. Du brauchst für hohe Linearität entweder eine höhere> PWM-Frequenz oder eine höhere Zeitkonstante.
OK, macht bei näherer Überlegung Sinn, danke! Kannst du mir denn einen
Anhaltspunkt geben, wie die Zeitkonstante sein sollte, bzw. hast du eine
Grundlage, nach der ich das berechnen kann?
Anja schrieb:> Du hast aber hoffentlich kein Meßgerät mit Sigma-Delta-Wandler das jetzt> genau den nichtlinearitäts-Fehler Deines Aufbaus bei der Messung> nachempfindet ?????
Sorry, das kann ich grad nicht nachvollziehen. Kannst du mir das genauer
erläutern? Ich messe hier mit meinem Tischmultimeter, nach welchem
Prinzip der arbeitet, kann ich nicht sagen. Inwiefern empfindet der
Sigma-Delta-Wandler denn die nicht-Linearität nach? Der zeigt mir doch
den gerade fließenden Strom an, Ende aus. Dachte ich zumindest - wie ist
es wirklich?
Anja schrieb:> Nach meiner Überschlagsrechnung müßtest du bis zu 5uA> Linearitätsabweichung haben.
Wie funktioniert deine Überschlagsrechnung? 5uA wären ja auch noch voll
in Ordnung - trotzdem wäre ich an der Berechnung interessiert.
Gruß und danke!
Ferdinand