mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik LT-Spice Einbindung von excel-file in Spannungsquelle mit Hilfe von PWL-File


Autor: Ralph B. (rberres)
Datum:
Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
Hallo Lt Spezialisten

Ich würde gerne in LT Spice eine Spannungsquelle modifizieren.

Und zwar sollte er einen Spannungsverlauf wie in Kurve1.txt generieren.

Hintergrund ist folgender.

Ich würde gerne den unteren Kennlinienteil aus ADL5311 entzerren, so das 
die entzerrte Kurve bis 0,2V runter reicht. Ab da kann sie von mir aus 
einen scharfen Knick machen. Das wenn möglich analog.

Dadurch würde der nutzbare Dynamikbereich des ADF5211 log Powermeter 
Moduls von ca 60db auf fast 90db erweitert werden.

Das ganze wollte ich erst mit LT-Spice simulieren, ehe ich ans 
Steckbrett gehe.

Vielleicht hat auch einer eine Idee, wie man diesen unteren Teil 
zwischen 0,8V und 0.5V mit Hilfe der Kennlinie einer Diode entzerren 
kann.

Die Rückfalllösung wäre den Bereich von 0,8V-0,5V mit einen 8Bit ADC zu 
erfassen damit die Adressleitungen eines Eproms anzusteuern und mit 
einen 8Bit DA Wandler die Datenleitungen wieder in eine analoge Spannung 
zu verwandeln, welche dem Ausgangssignal des Powermoduls hinzu addiert 
wird.
Das müsste mit mindestns 100Ksamples passieren.

Man müsste dann das Eprom mit Korrekturwerte befüllen, was ziemlich 
aufwendig wäre.

Da es zum wobbeln gebraucht wird ( mit maximal 50Hz Wobbelfrequenz ) 
scheidet ein Mikrokontroller warscheinlich eher aus, weil die Daten 
mindestens 100000 mal/Sek aktuallisiert  und errechnet werden müssten.

Jetzt bin ich auf sinnvolle Antworten gespannt.

Ralph Berres

Autor: Der Zahn der Zeit (Gast)
Datum:
Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
Hallo Ralph,

ich verstehe deinen Wunsch nach sinnvollen Antworten vollkommen... In 
diesem Sinne will ich mir Mühe geben.

Ich habe zwar LT Spice, arbeite aber mit einem anderen Simulator. Dort 
habe ich mit Erfolg folgendes probiert:

Eine PWL Source in der Schaltung anlegen, anschließend editieren. Eine 
Tabellenfenster geht auf, siehe Screeenshot.

Aus deiner Excel-Tabelle die Zeilen -50 bis -85 dB in die Zwischenablage
von dort in Notepad ++ kopiert,
dort alle Dezimalkommas gegen Dezimalpunkte getauscht,
und alle cr/lf gegen tab getauscht (geht beides in NP++ sehr schnell)
Die entstandene Zeile mit "Paste" in den PWL-Editor eingefügt.

Das sollte reichen, irgendeine Funktionskontrolle kann ich mir wohl 
sparen.

Vielleicht geht so was ja auch in LT Spice

Nebenbei: Die Zeile lautet (hoffentlich bleiben wenigstens die Tabs 
erhalten):
-50  0.824  -51  0.804  -52  0.784  -53  0.765  -54  0.747  -55  0.731 
-56  0.717  -57  0.703  -58  0.691  -59  0.679  -60  0.668  -61  0.657 
-62  0.646  -63  0.636  -64  0.626  -65  0.616  -66  0.607  -67  0.599 
-68  0.591  -69  0.584  -70  0.577  -71  0.571  -72  0.565  -73  0.560 
-74  0.556  -75  0.552  -76  0.549  -77  0.546  -78  0.543  -79  0.541 
-80  0.540  -81  0.538  -82  0.537  -83  0.536  -84  0.535  -85  0.535

Aber nun zu meinen weniger sinnvollen Fragen und Anmerkungen:

Warum willst du das simulieren? Dass du das linearisieren kannst, ist 
klar und dass die Fehler, die dabei bleiben, in der Simulation nicht 
erkennbar sind, auch.

Ein kleiner Mikrocontroller zur Linearisierung sollte auch ausreichen. 
Ich bin nicht der Spezialist dafür, aber einiger der einfachen MSP430, 
mit denen ich gerne arbeite, können weit über 100 kHz mit 12 Bit samplen 
und es bleibt auch Zeit, um so einen einfachen Algorithmus auszuführen.

Es gab vor ein paar Wochen den Beitrag 
Beitrag "Analoges Peak Meter", dort habe ich auch 
einen Entwurf und eine Simulation zu einem Log-Amp für NF vorgeschlagen, 
der über 5 bis 6 Dekaden arbeitet. Letztendlich bestimmt die Anzahl der 
Stufen die Genauigkeit und den Dynamikbereich. Eine solche Stufe dem 
ADL5311 nachzuschalten, sollte den Bereich auch erweitern. 
Nachgeschaltet braucht die Stufe ja auch nur unipolar zu sein.

DZDZ

Autor: Helmut S. (helmuts)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Die einfachste Möglicht wäre ein Tabelle mit Bv.

B1 out2 0 V=table(V(in),
+ 0, 0,
+ 10, 3
...
+ )

Die ist natürlich zu unhandlich, wenn man viele Einträge hat.
Deshalb einfach das Ganze in eine extra Datei kopieren und mit 
".include" einbinden.

.inc filename

Es gibt dann noch eine ähnliche Methode in der im File nur die x und y 
Werte stehen. Dafür muss man aber im Schaltplan etwas mehr Aufwand 
treiben. Siehe Anhang.

Welche Spalte in dem Excel ist eigentlich die Eingangsgröße für die 
Simulation?

Helmut

: Bearbeitet durch User
Autor: Ralph B. (rberres)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Zahn der Zeit schrieb:
> Aus deiner Excel-Tabelle die Zeilen -50 bis -85 dB in die Zwischenablage
> von dort in Notepad ++ kopiert,
> dort alle Dezimalkommas gegen Dezimalpunkte getauscht,
> und alle cr/lf gegen tab getauscht (geht beides in NP++ sehr schnell)
> Die entstandene Zeile mit "Paste" in den PWL-Editor eingefügt.
>
> Das sollte reichen, irgendeine Funktionskontrolle kann ich mir wohl
> sparen.
>
> Vielleicht geht so was ja auch in LT Spice
>
> Nebenbei: Die Zeile lautet (hoffentlich bleiben wenigstens die Tabs
> erhalten):
> -50  0.824  -51  0.804  -52  0.784  -53  0.765  -54  0.747  -55  0.731
> -56  0.717  -57  0.703  -58  0.691  -59  0.679  -60  0.668  -61  0.657
> -62  0.646  -63  0.636  -64  0.626  -65  0.616  -66  0.607  -67  0.599
> -68  0.591  -69  0.584  -70  0.577  -71  0.571  -72  0.565  -73  0.560
> -74  0.556  -75  0.552  -76  0.549  -77  0.546  -78  0.543  -79  0.541
> -80  0.540  -81  0.538  -82  0.537  -83  0.536  -84  0.535  -85  0.535

Ich habe es so versucht, und LTspice hat wenigstens nicht gemotzt.

Aber ich habe nur die ersten beiden Werte angezeigt bekommen.

Allerdings wollte ich die gesamte Kurve in der Simulation drin haben 
also von +10dbm bis -80dbm um wenn ich eine Entzerrerschaltung entwerfe 
das gesamte Ergebnis  also die gesamte linearisierte Kennlinie zu sehen.

Wie entfernt man denn in Notepad das cr/lf? und erstezt es gegen Tab?

Die kommas habe ich mühevoll in jeder Zeile durch einen Punkt ersetzt.

Helmut S. schrieb:
> Die ist natürlich zu unhandlich, wenn man viele Einträge hat.
> Deshalb einfach das Ganze in eine extra Datei kopieren und mit includ
> einbinden.
>
> .inc filename
>
> Es gibt dann noch eine ähnliche Methode in der im File nur die x und y
> Werte stehen. Dafür muss man aber im Schaltplan etwas mehr Aufwand
> machen. Siehe Anhang.

das ist mir ehrlich gesagt noch zu hoch. Da werde ich noch tieftauchen 
müssen, bis ich das verstanden habe.

Helmut S. schrieb:
> Welche Spalte in dem Excel ist eigentlich die Eingangsgröße für die
> Simulation?

Die erste Spalte ist das Eingangssignal des Powermetermoduls in dbm und 
die zweite Spalte ist die Ausgangsspannung des Moduls in Volt.

Der Zahn der Zeit schrieb:
> Ein kleiner Mikrocontroller zur Linearisierung sollte auch ausreichen.
> Ich bin nicht der Spezialist dafür, aber einiger der einfachen MSP430,
> mit denen ich gerne arbeite, können weit über 100 kHz mit 12 Bit samplen
> und es bleibt auch Zeit, um so einen einfachen Algorithmus auszuführen.

Naja für dich mag das programmieren eines Prozessors einfach von der 
Hand zu gehen. Für mich bedeutet es jedesmal wochen und monatelanges 
experimentieren mit dem Programmcode mit immer wieder viel Frust 
zwischendurch, weil ich wieder in Details festhänge.

Deswegen ziehe ich mich davor wie Gummi. Zudem ist der EMV Schmutz eines 
Prozessors welches dann ins gleiche Gehäuse soll wie das Powermessmodul 
eine nicht zu unterschätzende Störquelle, welches auch nicht so einfach 
in den Griff zu bekommen ist. Zumal bei Pegel von -80dbm.

Ich würde das schon am liebsten analog entzerren, auch wenn ich weis das 
das nicht so genau werden kann. Aber bei -80dbm , also wo die Kurve im 
Bildschirm schon ganz unten ist kann man Fehler von 2 bis 3db noch 
verschmerzen. Bei -70dbm sollte es aber schon auf etwa 1db genau sein.

Ralph Berres

Autor: Der Zahn der Zeit (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kein µC: Das verstehe ich, wahrscheinlich im Gegensatz zu den meisten 
anderen hier, die für alle Aufgabenstellungen der Welt einen PIC, 
Arduino oder Raspi einsetzen würden - weil sie die zwar gut, aber nichts 
anderes kennen. Wer einen Hammer hat, für den sieht alles wie ein Nagel 
aus. Mal so nebenbei eine IDE in Betrieb nehmen, sich mit C oder 
Assembler, der µC-Hardware, den Libraries und mehr zu befassen, um einen 
einfachen Table Look-up zu machen, bietet sich unter deinen Umständen 
nicht an. Nebenbei: Ich bin auch nur ein µC-Anfänger, kann kein C (nur 
Assembler), kann also kaum komplexe Programme schreiben, weiß aber dafür 
genau Bescheid, was zu welcher µs in meinem µC passiert. Ich habe halt 
auch mit Elektronik angefangen, als Transistoren noch neu und exotisch 
waren.

Ralph B. schrieb:
> Wie entfernt man denn in Notepad das cr/lf? und erstezt es gegen Tab?

Nicht Notepad sondern Notepad++! Dort kann man einen Cursor in eine 
ganze Spalte setzen oder eine oder mehrere Spalten gleichzeitig 
markieren (Alt-linke Maustaste oder Alt-Shift-Cursortasten). Im 
Screenshot habe ich die Spalte mit den "," markiert, und wenn ich jetzt 
"." drücke sind alle Kommas durch Punkte ersetzt. Das geht natürlich 
auch mit der üblichen Suchen und Ersetzen-Funktion. Mit der habe ich 
auch die cr/lf gegen tab getauscht, siehe das Suchen und 
Ersetzen-Fenster, das auch Suchen und Ersetzen von Steuerzeichen 
erlaubt.

Nebenbei: Ich hatte eine PWL-Spannungsquelle angelegt, eine 
PWL-Übertragungsfunktion wüsste ich jetzt auch nicht. Würdest du nicht 
die eigentlich brauchen?

Autor: Helmut S. (helmuts)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal mein Vorschlag. Im Anhang die Dateien für LTspiceXVII.
Achtung, man muss in der Tabelle für LTspice die Eingangswerte in 
steigender Reihenfolge haben.

Autor: Ralph B. (rberres)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helmut S. schrieb:
> Hier mal mein Vorschlag. Im Anhang die Dateien für LTspiceXVII.
> Achtung, man muss in der Tabelle für LTspice die Eingangswerte in
> steigender Reihenfolge haben.

Besten Dank

Das funktioniert jetzt.

Du kennst dich so gut mit dem LT Spice aus, Sag mal hast du das Programm 
geschrieben?

Jetzt habe ich erst mal eine Grundlage um das zugehörige 
Entzerrernetzwerk entwerfen zu können.

Hast du eine Idee wie sowas mit einer Diode zielführend sein könnte?

Bis eben hatte ich versucht auf einen Steckbrett sowas durchzuführen. 
Ich bin aber nicht wirklich weiter gekommen.

Der Zahn der Zeit schrieb:
> Nebenbei: Ich bin auch nur ein µC-Anfänger, kann kein C (nur
> Assembler), kann also kaum komplexe Programme schreiben,

Ähnlich geht es mir auch wobei ich kaum assembler kann, C überhaupt 
nicht, dafür ein bisschen Bascom und HT-Basic. Da benötige ich aber auch 
regelmäßig Schützenhilfe.

Der Zahn der Zeit schrieb:
> Nicht Notepad sondern Notepad++!

Findet man das unter Win7? muss ich mal schauen ob es da sowas gibt.

Der Zahn der Zeit schrieb:
> Nebenbei: Ich hatte eine PWL-Spannungsquelle angelegt, eine
> PWL-Übertragungsfunktion wüsste ich jetzt auch nicht. Würdest du nicht
> die eigentlich brauchen?

Klar wäre mie eine komplette Lösung lieber. Ich würde weniger die 
Übertragungsfunktion selbst benötigen als eine Idee wie man die 
Entzerrung mit möglichst geringen Aufwand umsetzen kann. Doch das wird 
mir niemand anbieten können. Es wäre ein Zufall, wenn jemand genau das 
schon gemacht hätte.

Insoweit bin ich ja schon heilfroh das Helmut mir ein schlüsselfertiges 
Objekt für das LTspice geliefert hat, welches ich nur noch in LTspices 
reinkopieren musste.

So habe ich wenigstens schon mal die Originalkurve in LT Spice wie mir 
sie das Powermetermodul auch liefert. Ich kann jetzt am PC 
Trockenübungen machen ehe ich versuche das hardwaremäßig umzusetzen.

Ralph Berres

: Bearbeitet durch User
Autor: Helmut S. (helmuts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe immer noch nicht warum du die dBm(-85 bis +10) hast und 
daraus diese 0,x bis 1,xV erzeugen willst.
Aus dem Logarithmierer-IC kommen doch bereits dei 0,x bis 1,xV heraus. 
Gibt es ein Blockschaltbid?

Autor: Der Zahn der Zeit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph B. schrieb:
> Ich würde weniger die
> Übertragungsfunktion selbst benötigen als eine Idee wie man die
> Entzerrung mit möglichst geringen Aufwand umsetzen kann. Doch das wird
> mir niemand anbieten können. Es wäre ein Zufall, wenn jemand genau das
> schon gemacht hätte.

Ich halte das jetzt nicht für sehr kompliziert. Ich würde das für dich 
machen, ein bisschen Arbeit kostet es aber doch, und die möchte ich 
nicht vergeblich machen. Auch ich würde zuerst die Quelle simulieren 
(das sollte ja schon in trockenen Tüchern sein) und dann eine Schaltung 
dahinter, wahrscheinlich abgeleitet von meiner oben erwähnten Schaltung, 
entwerfen, simulieren und optimieren.

DZDZ

Autor: Ralph B. (rberres)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helmut S. schrieb:
> Ich verstehe immer noch nicht warum du die dBm(-85 bis +10) hast und
> daraus diese 0,x bis 1,xV erzeugen willst.
> Aus dem Logarithmierer-IC kommen doch bereits dei 0,x bis 1,xV heraus.

Hallo Helmut

Ich würde das Modul ja so wie es ist nehmen. Aber mich stört das am 
unteren Ende der lineare Bereich bei ca -50dbm aufhört und unterhalb 
flacher wird, so das bei -80dbm Eingangspegel immer noch 0,5V rauskommen 
und nicht  wenn man den linearen Teil nach untern verlänern würde 0,2V.

Um das zu linearisieren würde ich gerne ein Entzerrernetzwerk aufbauen, 
damit ich linear bis möglichst weit an die -80db komme.

Um das aber simulieren zu können, muss ich in LT Spice eine 
Spannungsquelle haben, welche genau diese Ausgangsspannung des 
Powermetermoduls simuliert.

Da hast du mir ja jetzut weiter geholfen.

Darauf basierend kann ich jetzt in LT Spice Entzerrernetzwerke 
entwerfen.

Siehe Datenblatt ADL5513 und der von dem SV?AGF veröffentlichte 
Umsetzkennlinie, welche ich messtechnisch genauso verifizieren konnte.

Der Zahn der Zeit schrieb:
> Ich halte das jetzt nicht für sehr kompliziert. Ich würde das für dich
> machen, ein bisschen Arbeit kostet es aber doch, und die möchte ich
> nicht vergeblich machen. Auch ich würde zuerst die Quelle simulieren
> (das sollte ja schon in trockenen Tüchern sein) und dann eine Schaltung
> dahinter, wahrscheinlich abgeleitet von meiner oben erwähnten Schaltung,
> entwerfen, simulieren und optimieren.

Da habe ich absolut nichts dagegen., wäre sogar dankbar dafür. 
Ungeachtet werde ich auch an dem Vorhaben weiter dran bleiben. Ich kann 
ja nicht alles von der Kommunitie erledeigen lassen.

Nimm die
bv_logtable.zip vom Helmut und kopiere die 3 Files in LT Spice.

Bei mir hat es auf Anhieb funktioniert und ich hatte exakt die Kurve im 
Grafikfeld stehen.

So jetzt werde ich gleich mal Kuchen trinken und Kaffee essen, Ähhmm 
umgekehrt meine ich.

Ralph Berres

Autor: Der Zahn der Zeit (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ralph,

der erste Versuch war nicht sehr aufwändig. Leider weiß ich nicht, wie 
ich die Skala mit -85 dB beginnend hinbekomme. Ich verwende ja kein LT 
Spice. Also entspricht 0 s -85 dB. Die bräunliche Funktion ist die 
Eingangsspannung, die Ausgangsspannung zum Vergleich die rote. Mit zwei 
Stufen lässt sich vielleicht noch mehr erreichen, entweder noch flacher 
oder ein noch weiterer Bereich, aber bis hierhin finde ich es gar nicht 
schlecht. Bis -70 dB geht es ganz gut, bei - 80 dB glaube ich nicht, 
dass deine Quelle ausreichend reproduzierbare Werte liefert. Die Kurve 
läuft verdammt flach. Nur wegen der sportlichen Herausforderung wegen 
könnte man es trotzdem mal versuchen.

Mit einfachen Dioden ist die Schaltung sehr Temperatur-abhängig. Das 
lässt sich mit Mehraufwand zu korrigieren. Es gäbe also noch viel zu 
verbessern und an deine tatsächlichen Wünsche anzupassen.

Autor: Ralph B. (rberres)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
siehe mal ich war auch nicht untätig. Sogar einigermasen 
temperaturstabil.

Da könnte man jetzt noch Feinschliff machen.

Morgen Mittag werde ich das mal auf dem Steckbrett aufbauen.

Ralph

Autor: Ralph B. (rberres)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
noch ein Versuch

Autor: Helmut S. (helmuts)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch ein 3. Beispiel. Die Transistoren müssen natürlich auf 
gleiches Ube sortiert sein bzw. einen Dual-Transistor nehmen. Es fehlt 
der Differenzverstärker der an dem 10.1kOhm Widerstand die Spannung 
abnimmt und einen Offset addiert. Die grüne Kurve ist die Zielgerade.

: Bearbeitet durch User
Autor: Ralph B. (rberres)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sieht gut aus.

Werde ich mal ausprobieren.

Autor: Der Zahn der Zeit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde diesen Ansatz auch weiter verfolgen. Sehr einfach, auch wenn 
die noch erforderlichen Arbeitspunkt bzw. Signalpegelanpassungen gemacht 
wurden und inhärent temperaturstabil (jedenfalls wesentlich 
temperaturstabiler als unsere Ansätze). Auch leicht um einen weiteren 
Stützpunkt erweiterbar.

DZDZ

Beitrag #5688583 wurde vom Autor gelöscht.
Autor: Ralph B. (rberres)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mit Helmuts Vorschlag auch mal ein bischen simuliert.

Die X-Achs ist von -85 bis +10V skaliert. ( Volt ist hier = dbm )

bis -85dbm simd eta 1db Abweichung möglich.

Der Zahn der Zeit schrieb:
> Auch leicht um einen weiteren
> Stützpunkt erweiterbar.

wie könnte man diese Schaltung  um einen weiteren Stützpunkt erweitern?

Ralph Berres

Autor: Ralph B. (rberres)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mittlerweile habe ich zwei solcher Module über einen 6db Kombiner
zusammengeschaltet, und einer der Module über einen 30db Dämpfungsglied
angeschaltet. So kann ich den Dynamikbereich nach oben ausweiten, und
komme so auf insgesamt etwa 80db Dynamikbereich.

Ralph Berres

Autor: Ralph B. (rberres)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was das Modul bedrifft, habe ich die ganze Zeit das falsche Mdul 
betittelt.

Ich meinte die ganze Zeit das ADL5513 von Analog Device  siehe

https://www.sv1afn.com/adl5513.html

Ralph Berres

Autor: Ralph B. (rberres)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal ein Aufbau des Dual-Pfad Detektors mit 2 Sück ADL5513

im oberen Zweig gehört noch ein 30db Dämpfungsglied vor dem ADL5513 
Modul


Erreichter Dynamikbereich etwa 80db

Ralph Berres

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.