Hallo, Für einen HiWi-Job an der Uni habe ich folgende Problemstellung. Ich benötige für einen Servo-Regler eine Spannung im Bereich von -1V bis 1V. Je nach Spannung und Polarität dreht der Motor dann durch den Regler in verschiedene Richtungen mit verschiedenen Drehzahlen. Die Genauigkeit ist hier erstmal nicht so wichtig es genügt wenn der Wert auf +-50mV eingestellt werden kann. Das ganze soll durch einen Arduino ermöglicht werden. Durch Internetrecherche bin ich auf die Möglichkeit die Spannung mittels PWM zu erzeugen gestoßen oder über R2R. Da ich dann aus dem Unipolaren Signal ein Bipolares Signal machen muss, bin ich auf eine Lösung mittels Operationsverstärker gekommen. http://masteringelectronicsdesign.com/design-a-unipolar-to-bipolar-converter-for-a-unipolar-voltage-output-dac/ Da ich mit meinem Arduino Spannungen zwischen 0 und 5V erzeugen kann muss ich abschwächen. Nun habe ich zwei Lösungsmöglichkeiten in Betracht gezogen. Entweder Abschwächung direkt beim Operationsverstärker. (Ich habe diesen Rechner zur Hilfe gezogen) http://masteringelectronicsdesign.com/differential-amplifier-calculator-2/ Oder die Abschwächung mit Hilfe eines Spannungsteilers. Nun komme ich nicht weiter. Zu allererst weiß ich nicht, welchen Operationsverstärker ich nehmen soll. Ist es grundsätzlich so, dass alle Operationsverstärker auch abschwächen können bis runter zu 0V oder gibt es auch Operationsverstärker die nur Signale über einer bestimmten Spannung ausgeben können? Außerdem weiß ich nicht ob es besser ist direkt durch den Operationsverstärker abzuschwächen oder den Operationsverstärker das Signal erstmal bipolar verstärken zu lassen z.B. von 0-5V auf -10V bis 10V und dann mit Hilfe eines Spannungsteilers abzuschwächen. Lohnt sich der Aufwand für R2R überhaupt oder ist es mit PWM auch getan (was ist genauer am Arduino und fällt das überhaupt ins Gewicht?) Kann mir jemand weiter helfen, am besten mit einer Kaufempfehlung für einen OP? Danke schonmal für die Hilfe und ich hoffe ich habe mein Problem verständlich geschildert. Gruß Moritz
ein paar wichtige fragen müssten wir noch klären: ist der Regler digital, also im Arduino und der Ausgang bereits das signal für die leistungsendstufe oder, wovon ich ausgehe, wird das +-1v signal der sollwert für einen nachgeschalteten Regler? das hat Einfluss drauf welche Bandbreite bzw. änderungsgeschwindigkeit diese Spannung haben muss. je höher diese sein muss, desto schwieriger wird es die pwm ausreichend zu filtern und gleichzeitig genug zeitliche Auflösung zu erhalten. machst du den filter mit niedriger eckfrequent dauert es lang bis dein sollwert eingeschwungen ist, machst du die eckfrequenz hoch wird die pwd nicht sauber gefiltert. also richtet sich die minimale eckfrequent erstmal nach deiner änderungsgeschwindigkeit für den sollwert. die pwd Frequenz muss deutlich darüber liegen, sodass der filter sie sauber unterdrücken kann. liegt sie jedoch zu hoch, wirst du Probleme haben die pwm fein genug aufzulösen durch den timer. es ist also in gewissen grenzen ein Kompromiss. das ausgangssingal dann auf einen Opv invertierend beschaltet. mit dem Verhältnis aus rin zu rv kannst du von 0.5 auf 0.2 skalieren. am nicht inv. einging kannst du durch eine entsprechende Spannung auf -1+1 verschieben.
Genau +-1V wird der Sollwert für einen nachgeschalteten Regler. Das Problem ist, dass der Regler (der dann den Motor steuert) für mich quasi eine Blackbox ist. Aus alten Unterlagen habe ich nur herausgefunden, dass er eben ein analoges Signal zwischen -1V und 1V benötigt. (Eigentlich zwischen -10V und 10V, die Geschwindigkeit soll aber begrenzt werden) Früher wurde das System über einen LPT Port, der zu einem DA Wandler geführt hat der wiederum ein analoges Signal an den Motor gegeben hat betrieben. Da der LPT Port immer Probleme macht und keiner mehr weiß was der DA Wandler macht und wie er es macht, soll nun eben auf einen Arduino umgestiegen werden, der den Regler des Motors bedient. Somit weiß ich nicht genau wie schnell sich das Signal einstellen muss. Allerdings wird der Motor nur dafür benützt eine Linearachse anzutreiben. Der Verfahrweg wird dann nochmal über ein Poti gemessen. "Arbeitsauftrag" meines Betreuers war es die Geschichte zum Laufen zu bringen. Es ist für den Versuchsaufbau unerheblich wie genau die Drehzahl des Motors eingestellt werden kann. Wichtig ist dass man sie einstellen kann und dass man einen Unterschied "merkt". Die Umschaltzeit von z.B. 0V auf 1V ist nicht so wichtig. Außer der Motorregler hat damit ein Problem was ich leider nicht wissen kann.
das klingt also nicht nach einem besonders dynamischen system, zumindest nicht was den sollwert angeht. wenn du von einer linearachse sprichst und du einen Drehzahlregler verwendest wird die achse ja fast zwangsläufig in die Anschläge fahren? bist du sicher, dass die Geschwindigkeit gesteuert wird und es sich nicht um einen lagerealer handelt? sei es drum, es klingt nach einer vergleichsweise langsamen Geschichte, was die sollwertänderungsrate angeht. d.h. ich würde definitiv auf pwm und tiefpass gehen. bei 2v und geforderten 50mv Genauigkeit ergeben das 40 schritte. das schafft ein 8bit timer mit links. allerdings solltest du, wenn du analogwrite beim Arduino verwendest bedenken dass der nur mit 500hz arbeitet. man kann die Frequenz des timers auch hochstehen. dann wird das mit dem filtern einfacher und ein system kann dynamischer werden. nehmen wir mal an für dein system reichen 10Hz locker aus. dann hast du mit einem tiefpass 1. ordnung vermutlich noch keinen besonders befriedigenden erfolg. aber das kannst du auch super mit lt spice simulieren. ich rate zu 2. Ordnung. wenn du es geschickt machst kannst du ein rc Glied am Ausgang des Arduino und dann deutlich hochohriger in den Opv rein über dessen gegenkopplung dann den 2. tiefpass setzen.
cableer schrieb: > wenn du es geschickt machst kannst > du ein rc Glied am Ausgang des Arduino und dann deutlich hochohriger in > den Opv rein über dessen gegenkopplung dann den 2. tiefpass setzen. Wenn man es ganz geschickt macht, baut man um den OPV einen aktiven Tiefpass mit komplexen Polstellen, z.B. einen Tschebyscheff Tiefpass 2.ter Ordung. Das gibt einen deutlich steileren Übergang vom Durchlassbereich zum Sperrbereich. Eine Gegenüberstellung der verschiedenen TP-Typen findet man z.B. um Tietze-Schenk. Halbleiter-Schaltungstechnik, Kap. 12 Aktive Filter
So hab mich mal schnell hier angemeldet. Ja Drehzahl wird geregelt. Der Motor treibt Zahnriemen an und das Bauteil wird somit auf der Linearachse verschoben. Ich muss dann natürlich das Poti auswerten welches am Aufbau mit dran hängt und bei erreichen der gewünschten Fahrposition das Signal auf 0V schalten. Dann weiß der Regler für den Motor er muss den Motor stoppen. Vielen Dank auf jeden Fall für die Hilfe schonmal. Muss mich erstmal mit Elektrotechnik anfreunden. Habe damit in meinem Studium sonst nicht viel am Hut. Was ich verstanden habe, ist dass ich einen Tiefpass zweiter Ordnung an mein PWM Ausgang am Arduino hänge. Hier die Frage was für einen Widerstand, Kondensator und was für eine Induktivität muss meine Spule haben. In einem Beispiel aus einem Arduino Buch war nur ein Tiefpass 1. Ordnung mit 1kOhm und 10nF. Daran Schalte ich nun wie bei http://masteringelectronicsdesign.com/differential-amplifier-calculator-2/ beschrieben meinen Opv und daran kommt nochmal ein Tiefpass 2. Ordnung. Mein größtes Problem ist weiterhin was für einen Opv kann ich dafür benützen geht z.B. https://www.reichelt.de/LM-358-DIP/3/index.html?ACTION=3&LA=446&ARTICLE=10483&artnr=LM+358+DIP&SEARCH=LM358 was mich hier verwirrt, ist die Beschreibung: Ausgangsspannung: 5 - 27 VDC
Wolfgang schrieb: > cableer schrieb: >> wenn du es geschickt machst kannst >> du ein rc Glied am Ausgang des Arduino und dann deutlich hochohriger in >> den Opv rein über dessen gegenkopplung dann den 2. tiefpass setzen. > > Wenn man es ganz geschickt macht, baut man um den OPV einen aktiven > Tiefpass mit komplexen Polstellen, z.B. einen Tschebyscheff Tiefpass > 2.ter Ordung. Das gibt einen deutlich steileren Übergang vom > Durchlassbereich zum Sperrbereich. Eine Gegenüberstellung der > verschiedenen TP-Typen findet man z.B. um Tietze-Schenk. > Halbleiter-Schaltungstechnik, Kap. 12 Aktive Filter der Gedanke war mit nur einem Opv auszukommen, weniger die qualitativ hochwertigste Lösung zu bieten. was die flanke angeht ist der tschebyscheff natürlich deutlich besser. @to: nicht mit spulen arbeiten. lieber nur rc. für mich klingt das so als wäre das "Poti auswerten" ein zweiter regelgreis der um den Drehzahlregler herum gestrickt wird als äußerer regelkreis. in dem fall ist die Bandbreite des sollwertes eben nicht total egal. wobei du mit einem langsameren äußeren kreis eher noch auf der sicheren Seite bist.
cableer schrieb: > @to: nicht mit spulen arbeiten. lieber nur rc. Wie gesagt für mich ist Elektrotechnik eher Neuland. Laut Wikipedia ist für mich ein Tiefpass erster Ordnung das hier: https://upload.wikimedia.org/wikipedia/commons/thumb/e/e8/Tiefpass.svg/330px-Tiefpass.svg.png Ein Tiefpass zweiter Ordnung das hier: https://upload.wikimedia.org/wikipedia/commons/b/be/LCR-Tiefpass.png Um vielleicht wieder auf die von mir benötigten Bauteile zurück zu kommen. Was für einen Operationsverstärker kann ich für meine Zwecke z.B. bei reichelt bestellen. Und welche Widerstände und welche Kondensatoren kann ich nehmen.
Moritz B. schrieb: > Was für einen Operationsverstärker kann ich für meine Zwecke LM358 könnte passen. Kann ab +-1.5V Versorgungsspannung betrieben werden. Siehe App Note im Anhang.
Es geht auch ohne Operationsverstärker, siehe Beispiel im Screenshot. Die Spannungsquelle V2 ist die 500Hz PWM des Arduino. Diese schaltet eine Konstantstromquelle aus Q1 und Q2. An R2 wird daraus eine Spannung, geglättet durch C1 und R1, C2. Die Nutzspannung wird zwischen out2 und virtGND abgegriffen. Mit 18% bis 65% PWM entstehen die gewünschten +1V bis -1V. Die Schaltung kann von -2,5V bis +1,8V liefern. V1 stellt die 5V Spannungsversorgung dar.
Hallo Moritz, ich würde die Schaltung mit dem OPV nehmen, die Du schon selber raus gesucht hast. Ich denke auch das Zeitgeschichten bei Dir eher eine untergeordnete Rolle spielen, da diese +/-1V nur eine Sollgröße für den Regler sind, die ihm sagt wie schnell das Ding und in welcher Richtung es fahren soll. Ich denke mal das jeder moderne OPV für Deine Sache ausreichend schnell. Jetzt mal konkret: Die Schaltung macht bei 0V -5V und bei +5V +5V. Demzufolge kommt bei 2,5V 0V raus. Du mußt also dafür sorgen, das Dein Arduino als Ruhezustand 2,5V ausgibt. Das geht am besten mit einem DA-Wandler (z.B. CP4901-E/P PDIP-8, das Teil kostet 1,39€ bei C). Da die OPV-Schaltung eine Steilheit von 1V/0,5V hat, mußt Du also eine Spannung von 2V für -1V und 3V für +1V ausgeben. Wie fein Du das stufen kannst hängt von Deinem DA-Wandler ab - die gibt es von 8 - 12bit. Du benötigst für Dein Projekt also einen OPV (LM358, TL081 oder auch einen klassischen Typ wie µA725/741), den DAC und den Arduino. Der Rest wird mit Software erledigt. Wenn Du ganz gut bist siehst Du noch was vor, das beim Einschalten 0V an Deine Blackbox gegeben werden und Verbindung zu Deiner Schaltung erst dann hergestellt wird wenn das System in einem stabilen Zustand ist. Dies scheint mir die einfachste Lösung zu sein. Aufwandsmäßig gibt es nach oben keine Grenzen - kommt halt drauf an was Du willst. Zeno
So rischdisch geil wäre ja die 0 .. -1V über eine 2. PWM und eine chargepump zu erzeugen. dann fällt die negative versorgungsspannung weg...
Joe F. schrieb: > So rischdisch geil wäre ja die 0 .. -1V über eine 2. PWM und eine > chargepump zu erzeugen. dann fällt die negative versorgungsspannung > weg... Prinzipiell hast Du da nicht ganz unrecht, aber Du brauchst halt 2 PWM's und dann muß das Signal auch ordentlich geglättet werden, denn die Blackbox des TO's wirkt definitiv nicht integrierend. Das Prinzip wie ich es beschrieben habe, wurde in unserer Firma über viele Jahre bei Schablonenbelichtern für die Steuerung des Kreuztisches (Masse so um die 50kg) benutzt. Die Positioniergenauigkeit war besser als 0,1µm. Also dieses Verfahren kann so schlecht nicht sein. Zeno
Zeno schrieb: > und dann muß das Signal auch ordentlich geglättet werden und genau da liegt auch das problem mit PWM. ich gebe dir vollkommen recht, dass eine lösung mit symmetrischem power supply und op-amp am besten ist. zusätzlich ein günstiger 8bit SPI DAC, und der lack glänzt.
:
Bearbeitet durch User
Vielen Dank für die vielen Antworten hatte über das Wochenende leider keine Zeit zu antworten. Ich werde mich jetzt mit Bauteilen eindecken und mal ein bisschen Praktisch herumprobieren. Falls ich noch Fragen habe bin ich hier ja gut aufgehoben! Danke :)
Joe F. schrieb: > So rischdisch geil wäre ja die 0 .. -1V über eine 2. PWM und eine > chargepump zu erzeugen. dann fällt die negative versorgungsspannung > weg... und wenn man die -U mit charge pump aus einer PWM erzeugt und von unten an einen Spannungsteiler führt und oben +VCC dann kann man am Mittelpunkt vonn -U bis +U steuern, so habe ich es mit einer Kontrastspannung eines LCD gemacht. http://www.holger-klabunde.de/dcdc/picdcdc.htm geht auch mit Atmel!
:
Bearbeitet durch User
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.