https://rn-wissen.de/wiki/api.php?action=feedcontributions&user=Rcsu&feedformat=atomRN-Wissen.de - Benutzerbeiträge [de]2024-03-29T07:16:29ZBenutzerbeiträgeMediaWiki 1.25.1https://rn-wissen.de/wiki/index.php?title=Bezugsquellen&diff=12253Bezugsquellen2007-06-10T17:37:51Z<p>Rcsu: /* Materialien */ Typo Korrekturen und Klarstellung Lötstop-Laminate</p>
<hr />
<div>{| {{Blaueschmaltabelle}}<br />
|Hier können Bezugsquellen eingetragen werden! Bitte aber pro Eintrag nicht mehr als '''2 bis 3 Zeilen''', ansonsten muss es ein Moderator kürzen! Dieser Artikel soll nicht als Werbeplattform mißbraucht werden, für Werbung gibts andere [[RN-Wissen:Site_support|Möglichkeiten]]. Er soll eine Hilfe für Bastler sein. '''Daher sollen hier auch nur Firmen eingetragen werden, welche eine Bestellmöglichkeit Webformular oder Online-Shop bereitstellen'''.<br />
Bitte auch keine Bewertungen der Lieferanten vornehmen, das ist Sache der Leser & Bastler indem Sie vergleichen.<br />
|}<br />
<br />
==Elektronikbauteile==<br />
<br />
;Conrad - http://www.conrad.de: Fast alle Standardelektronikbauteile, aber teuer<br />
<br />
;CSD-Electronic - http://www.csd-electronics.de/: Elektronik<br />
<br />
;Kessler-Electronic - http://www.kessler-electronic.de/: ( ehemals Simons ) Diverse Bauelemente (aktiv, passiv, Microcontroller), Literatur, PC-Komponenten, Messgeräte, Hifi, usw. Preisstaffelung für größere Mengen, Mindestbestellwert: 10 Euro<br />
<br />
;Distrelec Gruppe - http://www.distrelec.com: Diverse Bauelemente (aktiv, passiv, Microcontroller), Literatur, PC-Komponenten, usw.<br />
<br />
;Farnell In One - http://de.farnell.com/: elektronische Bauelemente (aktiv, passiv, Microcontroller), Sensoren, Literatur, Entwicklungskits, Kabel, Steckverbinder, Werkstattbedarf. Beliefert nur (bel.) angemeldete '''Gewerbe und Stud.''' (mit Nachweis) Nicht für privat. Sehr schnell. Sehr gut Sortiert (auch "exotische" Bauelemente)<br />
<br />
;Reichelt - http://www.reichelt.de: Diverse Bauelemente (aktiv, passiv, Microcontroller), Literatur, PC-Komponenten, Lichttechnik, Messtechnik, Software, Kabel, Steckverbinder, Werkstattbedarf, Werkzeug, Mindestbestellwert: 15 Euro<br />
<br />
;RS-Components - http://www.rsonline.de: Bauelemente: (aktiv, passiv, Microcontroller), Literatur, PC-Komponenten, Lichttechnik, Messtechnik, Software, Kabel, Steckverbinder, Werkzeug<br />
<br />
;Ribu Elektronik - http://www.ribu.at: Diverse Bauelemente, ICs, österreichische Seite<br />
<br />
;Schweizer Roboter-Shop - http://www.roboter-shop.ch: Diverse Bauelemente, Microcontroller, Bücher, Sensoren, Platinen, Mechanik<br />
<br />
;Digi-Key Corporation - http://de.digikey.com/: Diverse Bauelemente, Microcontroller, Sensoren, auch 'exotische' Bauteile, sehr umfangreiches Sortiment, kostenloser Katalog<br />
<br />
;Pollin Electronic - http://www.pollin.de/: Diverse Bauelemente und Sortimente zu Spottpreisen, fast alles Restposten oder Gebrauchte Teile, daher kein beständiges Sortiment<br />
<br />
==Sensoren==<br />
<br />
;Robotikhardware - http://www.robotikhardware.de: Drehgeber, Sharp-Entfernungssensoren, Ultraschallsensoren, Neigungssensoren, Temperatursensoren usw. speziell für Robotik-Bastler<br />
<br />
;Micromaus - http://www.micromaus.de: Sharp-Entfernungssensoren, Farbsensoren, Feuchtesensoren, Flexsensoren, Beschleunigungssensoren, Drucksensoren usw.<br />
<br />
;Roboter-Teile - http://www.roboter-teile.de/ : Lynxmotion Hexapot, Sensoren, CMU-Cam, AVR, PIC u.v.a.<br />
<br />
;Digi-Key Corporation - http://de.digikey.com/: Diverse Bauelemente, Microcontroller, Sensoren, auch 'exotische' Bauteile, sehr umfangreiches Sortiment, kostenloser Katalog. Hohe Versandkosten (über 30 Euro selbst bei Kleinteilen)<br />
<br />
;Krause Robotik - http://www.krause-robotik.de/Shop/: Diverse Sensoren und Mikrocontrollerboards. 4,65 € Versand<br />
<br />
==Motoren und Schrittmotoren== <br />
<br />
;mir-elektronik - http://www.mir-elektronik.de: Schrittmotoren, Endstufen, Bauteile, Literatur und Sonderposten<br />
;Lemo-Solar - http://lemo-solar.de/: Motoren, Getriebe, Elektronik-Bausätze, Sonderposten u.v.a.<br />
<br />
;Robotikhardware - http://www.robotikhardware.de: Schrittmotor-Angebote, Tamiya Modellbau Getriebemotoren, Devantech Getriebemotoren mit eingebauten Drehgeber<br />
<br />
;Nanotec - http://www.nanotec.de: Schrittmotoren für Industrieeinsatz, aber Einzelabnahme möglich<br />
<br />
;seacontrol - http://www.seacontrol.de: Ist komischerweise ein Aquaristikshop, hat aber auch Schrittmotoren (aus der eigenen Entwicklungsapteilung, oder so) von der Startseite in den online-shop, im shop unten links findet mann die Motoren<br />
<br />
;Farnell In One - http://de.farnell.com/: elektronische Bauelemente (aktiv, passiv, Microcontroller), Motoren, Schrittmotoren, Linearmotoren, Sensoren, Literatur, Entwicklungskits, Kabel, Steckverbinder, Werkstattbedarf. Beliefert nur (bel.) angemeldete '''Gewerbe und Stud'''. (mit Nachweis) Nicht für privat. Sehr schnell. Sehr gut Sortiert (auch "exotische" Bauelemente)<br />
<br />
==Platinen==<br />
<br />
;Multi PCB Leiterplatten Ltd. (GmbH) - http://www.multipcb.de: Leiterplatten-Discount mit 1-28 Lagen im Online-Kalkulator. Ab 48h Express. Service nur für gewerbliche Kunden.<br />
<br />
;PCB-Pool - http://pcb-pool.com: Platinenservice für private und gewerbliche Kunden.<br />
<br />
;Robotikhardware.de - http://www.robotikhardware.de: Günstige Standard Platinen zu vielen Robotik- und Microcontrollerschaltungen, inkl. Bauanleitung.<br />
<br />
;LeitOn GmbH - www.leiton.de - http://www.leiton.de: Leiterplatten sofort online kalkulieren und bestellen. Expressdienste von 1 bis 10 Lagen Multilayer in deutscher Industriequalität. Für Privat und Firmen! Ab 12h.<br />
<br />
;Top Tec PCB Ltd. - http://www.top-tec-pcb.de: Günstige Leiterplatten vom Prototyp bis zur Groß-Serie. Viele High-Tech-Optionen sind schon Inklusive.<br />
<br />
==Materialien==<br />
<br />
;Metall Store - http://www.metallstore.de/: Schrittmotoren, (Kugel-)Lager, diverse Bauelemente aus Alu, VA, Messing, Bronze, Kupfer, Werkzeuge, Spezialschrauben<br />
<br />
;Modulor - http://www.modulor.de/: Diverse Materialien Kunststoff, Gummi, Papier, Pappe, Holz, Metall, Textilien, Plexiglas ...<br />
<br />
;Igus - http://www.igus.de/: Gleitlager, Lineargleitlager, Kabelschleppen, Gelenklager, Polymergleitlager, Wellen ...<br />
<br />
;Kienzle Plexiglas - http://www.ernst-kienzle.de/: Acrylglas, Polycarbonat, Polyethylenterephtalatglycol (in vielen Farben, auch Formen machbar)<br />
<br />
;Maedler - http://www.maedler.de/: Antriebselemente und Normteile, Getriebe und Getriebemotoren, Pneumatikelemente, Zahnriemen, Zahnriemenräder, div. Lager ...<br />
<br />
;Octamex - http://www.octamex.de/: Leiterplatten (in versch. Dicken), Chemikalien zum Ätzen und Veredeln, Elektronikbauteile, Lötstop- und Bestückungsdruck-Laminate, Gehäusetechnik<br />
<br />
;Lelebeck - http://www.lelebeck.de/index.htm : Verbindungselemente, Mech. Sicherungselemente, Dichtungselemente, Sicherungen, Batterien, Schmiernippel, Druckverschlußbeutel. Mindestbestellwert 1 Euro, Versand ab 1 Euro, Rabattstaffel bis 30%<br />
<br />
;Aluminium Eloxieren - http://www.electronic-thingks.de/download/index.php#1 : Anleitung (runterscrollen, PDF "A-1 - Eloxieren von Aluminium") 307 KB runterladen.Lesenswert! Alle benötigten Farben u. Zubehör im Shop<br />
<br />
==Roboterboards==<br />
;Robotikhardware - http://www.robotikhardware.de: Roboterboards, universelle Microcontrollerboards, Sprachboards, Bausätze, Platinen, Schrittmotoren, Sensoren etc. Berücksichtigt [[RN-Definitionen]]<br />
<br />
;Krause-Robotik - http://krause-robotik.de/Shop: einige Mikrocontrollerboards<br />
<br />
<br />
<br />
==Starterkits und universelle Mikrocontrollerboards==<br />
;Robotikhardware - http://www.robotikhardware.de: Diverse Microcontrollerboards und Module(auch mit Funkmodul) für Einsteiger und Fortgeschrittene. Vom ATmega8, ATmega32, ATmega128 bis Mega2560. Bausätze, Platinen, Fertigmodule. Berückichtigt [[RN-Definitionen]] und sind somit kompatibel untereinander. Zubehör etc.<br />
;Mikrocontrollernet Shop - http://shop.mikrocontroller.net/: verschiedene AVR Microcontrollerboards, Bausätze, Zubehör <br />
;myAVR - http://www.myAVR.de: AVR Microcontrollerboards, Bausätze, Zubehör<br />
;Elektronikladen - http://elmicro.com/de/index.html: Evaluation Boards, Starter Kits, Controller Module & Software, Programmiergeräte & Tools, Robotik u.v.a.m.<br />
<br />
<br />
<br />
[[Kategorie:Grundlagen]]<br />
[[Kategorie:Praxis]]<br />
[[Kategorie:Robotikeinstieg]]</div>Rcsuhttps://rn-wissen.de/wiki/index.php?title=Funkmodule&diff=9737Funkmodule2006-11-26T19:10:32Z<p>Rcsu: /* 2,4-GHz Band */</p>
<hr />
<div>Recht beliebt ist die Kommunikation von Roboter und PC per Funk. Dabei beschränkt sich die Anwendung keineswegs nur auf die reine Fernsteuerung wie beim Modellbau. Über Funkmodule lassen sich auch komplexe Sensordaten, Umgebungsdaten oder sogar Bilder übertragen.<br />
<br />
Inzwischen gibt es recht preiswerte Funkmodule mit RS232-Schnittstelle auf dem Markt. Die Anbindung an einen Controller erfolgt bei den etwas teureren Modulen sehr oft per RS232-Schnittstelle und ist selbst für Laien kein Problem. Erhebliche Unterschiede gibt es in der Reichweite. Die Reichweite wird von Frequenzband, Sendeleistung aber auch Empfindlichkeit der Module bestimmt. Sehr beliebt ist im Robotik-Bereich das ISM-Band.<br />
<br />
<br />
==Das 433 MHz ISM-Band==<br />
Das ISM-Band erstreckt sich bei 433 MHz von 433,05 bis 434,79 MHz. Es wird schon seit längerem zur kundenspezifischen Nachrichtenübertragung mit kurzen bis mittleren Reichweiten genutzt. Dies ermöglicht bei bis zu 10 mW Leistung einige 100 m Reichweite im Freifeld. Die Hersteller von Funkmodulen geben oft Reichweiten zwischen 100 und 250 Metern an, wenn das Funkmodul die volle erlaubte Leistung von 10 Milliwatt leistet. Die Reichweitenangaben hängen aber stark von der Umgebung, Störfaktoren und eventuellen Hindernissen zwischen den Funkmodulen ab. Daher sollte man bei Vergleich von Funkmodulen die Reichweitenangabe nur als groben Richtwert nehmen und nicht überschätzen. Bei gleicher Leistung, gleicher Empfindlichkeit und identischer Antenne sollten die Reichweiten auch nahezu identisch sein. <br />
[[Bild:FunkmodulRT433F4.jpg|thumb|Beispiel eines beliebten ISM Funkmodules]]<br />
Man sollte also vielmehr Sendeleistung und Empfindlichkeit der Transceiver vergleichen, denn nicht alle Module nutzen die maximal erlaubte Sendeleistung voll aus. Und ein Modul mit unempfindlicherem Empfänger hat eventuell selbst bei höherer Sendeleistung eine geringere Reichweite. <br />
<br />
Grundsätzlich ist die Modulationsart beim 433 Mhz Band frei wählbar, wobei in einfachen Anwendungen AM und bei höheren Anforderungen FM verwendet wird. Geräte für das 433 MHz-Band müssen als einzige Voraussetzung ein CE-Zeichen tragen.<br />
Funkmodule mit AM-Modulation sind zum Teil deutlich billiger als Module mit FM-Modulation, jedoch ist die Anfälligkeit gegenüber Störungen weit höher, was in der Regel die Reichweite drastisch reduziert. Zum Teil gibt es hier Module, die schon nach wenigen Metern (10 bis 20) keine sinvolle Datenübertragung mehr zulassen. Wenn nur die Steckdose in einem Zimmer per Funk geschaltet werden soll, dann können jedoch solche günstigen AM-Module wegen ihres Preises dennoch interessant sein. Für die Fernsteuerung von Robotern sind allerdings FM-Module deutlich besser geeignet.. <br />
<br />
Die Nutzung der zur Verfügung stehenden Bandbreite in spektraler und zeitlicher Sicht ist im 433 Mhz Band nicht beschränkt. Dies hat neben Vorteilen bei einer kontinuierlichen Übertragung auch Nachteile in Form eines höheren Störpotentials. Man muss einfach davon ausgehen, dass im Nachbarbereich schon zahlreiche Module in dem gleichen Frequenzbereich senden. Vor allem wären hier Funksteckdosen, Temperatursensoren, Wetterstationen, Türklingeln, Heizungssteuerungen als bevorzugte Anwender dieses Bandes zu nennen. <br />
<br />
Eine sichere Übertragung kann nur bei kurzen Reichweiten oder in Verbindung mit einer leistungsfähigen Kanalcodierung erreicht werden. Module mit mehren Kanälen haben hier einfach deutliche Vorteile, indem Sie einfach auf eine andere Frequenz ausweichen können, wenn es auf einem Kanal zu Störungen kommt. Bei den leistungsfähigeren Modulen ist ein Kanalwechsel oft einfach durch einen RS232-Befehl per Software möglich. Abzuraten ist von Modulen, die nur auf einer einzigen Frequenz (Kanal) senden, wenn höhere Reichweiten erzielt werden sollen. Oder aber es ist vorher genau zu prüfen, ob diese Frequenzen auch wirklich frei von Störquellen sind. <br />
[[Bild:FunkmodulEasyradio.jpg|thumb|Es gibt sehr schmale kompakte Funkmodule]]<br />
Die erfahrenen Funk-Anwender sind sich der leidigen Tatsache bewusst, dass das 433-MHz ISM-Band völlig überladen ist, besonders auf dem europäischen Kontinent. Das rührt aber zur Hauptsache daher, dass fast alle bisherigen Anwendungen die Punktfrequenz von 433,92 MHz nutzen, was logischerweise auf dieser Frequenz zu einer hohen Dichte und damit zur Überbelegung führen musste. Das müsste aber so nicht sein, es gibt andere Frequenzen auch noch.<br />
Der schlechte Ruf des 400 MHz-Bandes kommt genau daher, dass alle Anwender sich auf diese Frequenz „gesetzt“ haben. So blieb es eben zumeist nicht aus, dass alle schlechten Erfahrungen hier gesammelt worden sind. Alle haben die handelsüblichen, preiswerten Funk-Module mit fester Frequenz 433,920 MHz eingesetzt, weil es Module mit alternativer Frequenz nicht gab. Wollte man dennoch eine andere Frequenz nutzen, musste ein anderes Modul eingesetzt werden, was erhebliche Kosten verursachen kann. <br />
<br />
Bei neuen Modulen wie beispielsweise dem RT433F4 oder Easy Radio ER400TRS gehört dieses trübe Kapitel zumindest teilweise der Vergangenheit an, denn hier stehen ja 10 verschiedene Frequenzen (Kanäle) zur Wahl. Noch besser sieht's im 868 Mhz Band aus.<br />
<br />
==Das neue 868 MHz Band== <br />
<br />
Dieses 868 Mhz Band ist noch nicht solange freigegeben wie das 433 Mhz. Allein deshalb gibt es schon weniger Störquellen, welche die Funkverbindung und damit auch die Reichweite beeinträchtigen. Im Gegensatz zum 433 MHz-Band sind die Vorschriften im 868 MHz-Bereich zudem deutlich restriktiver, um gegenseitige Störungen möglichst gering zu halten. Das Band ist in verschiedene Bereiche unterteilt, die für bestimmte Nutzungen freigegeben sind. <br />
<br />
<center><br />
http://www.roboternetz.de/bilder/ism-diagram.gif<br />
<br />
<br />
{| {{Blauetabelle}}<br />
|Bereich<br />
| Funktion<br />
| Kanalraster<br />
| Duty Cycle <br />
|-<br />
|1<br />
|Allgemein<br />
|Breitband<br />
|< 1% <br />
|-<br />
|2 <br />
|Alarm <br />
|25 kHz <br />
| < 0,1% <br />
|-<br />
|3 <br />
|Allgemein <br />
|Breitband <br />
| < 0,1% <br />
|-<br />
|4 <br />
|Alarm <br />
|25 kHz <br />
| < 0,1% <br />
|-<br />
|5 <br />
| Offen <br />
|<br />
| <br />
|-<br />
|6 <br />
|Allgemein <br />
|25 kHz / Breitband <br />
|< 10% <br />
|-<br />
|7 <br />
|Alarm <br />
|25 kHz <br />
| < 10% - 100% <br />
|-<br />
|8 <br />
|Allgemein <br />
| Breitband <br />
| < 10% - 100% <br />
|}<br />
</center><br />
<br />
Im Klartext heißt das, dass nicht auf allen Frequenzen der Funkmodule Dauersendungen beliebiger Länge durchgeführt werden dürfen. Es wird also nicht nur die Leistung vorgeschrieben, sondern auch die Nutzungszeit. Dies ist auf den ersten Blick nachteilig, hat aber ohne Zweifel den Vorteil, dass Kanäle nicht ständig besetzt oder gestört werden. Dadurch ist eine sichere kurze Funkübertragung gewöhnlich fast immer gewährleistet. Aber ganz muss auf Dauersendungen in diesem Frequenzbereich auch nicht verzichtet werden, es gibt Bereiche, wo dies erlaubt ist. So verfügt beispielsweise das Modul RT868F4 auch über einen Kanal, wo man sich bezüglich der Zeit keine Gedanken machen muss. <br />
<br />
Bei dem Funkmodul RT868F4 ist die Kanalaufteilung laut Datenblatt daher so vorgenommen wurden: (Auszug aus Doku) <br />
<br />
{| {{Blaueschmaltabelle}}<br />
|Die Kanäle 0, 1, 2 dürfen nur 0,6 Minuten pro Stunde im Sendebetrieb genutzt werden<br />
(= 1% duty cycle), unabhängig von der einstellbaren Sendeleistung (= max. +10dBm) SRD class 1f<br />
<br />
Die Kanäle 4, 5, 6 dürfen nur 0,06 Minuten pro Stunde im Sendebetrieb genutzt werden<br />
(= 0,1% duty cycle), unabhängig von der einstellbaren Sendeleistung (= max. +10dBm) SRD class 1g<br />
<br />
Der Kanal 11 darf im Dauer-Sendebetrieb genutzt werden<br />
(= 100% duty cycle), allerdings nur mit einer Sendeleistung von max. +4dBm (Einstellung ATS3=2) SRD class 1k<br />
|}<br />
<br />
==2,4-GHz Band==<br />
Im 2,4-GHz-Band sind Spread-Spectrum-Kommunikationssysteme erlaubt, und es werden Funkmodule angeboten, die diese Technologie verwenden. 2,4-GHz-Funkwellen breiten sich sehr geradlinig aus, werden im Vergleich zu Funkwellen aus dem 400-MHz-Bereich weniger gebeugt und besitzen eine geringere Reichweite als diese. Doch aufgrund der hohen Bitrate, der exzellenten Sicherheit bei Datenübertragung mit Spread-Spectrum-Technologie und der guten Rauschunempfindlichkeit wächst die Zahl der Anbieter in diesem Bereich, und der Markt ist bereits gesättigt.<br />
Da die Reichweite in diesem Bereich recht gering ist, oft deutlich unter 100 Metern, aber der Datendurchsatz sehr hoch ist, wird dieser Bereich beispielsweise gerne für Video-Übertragungen genutzt.<br />
<br />
==Wie schwierig ist die Verwendung von Funkmodulen== <br />
Durch einige sehr umfangreiche Beiträge im Roboternetz könnte man den Eindruck gewinnen, dass die Verwendung von Funkmodulen schwierig und nur den Experten vorbehalten sei. Das ist so einfach nicht richtig, etwas knifflig ist es nur bei Funkmodulen, die noch kein Funkprotokoll implementiert haben. Dies sind aber vornehmlich nur die sehr günstigen Module, bei diesen sind oft noch eine etwas umfangreichere Außenbeschaltung sowie komplexere Software-Algorithmen (Stichwort: Manchester Codierung) notwendig. Zudem gibt es bei diesen Modulen oft Probleme mit der Reichweite, weil sie nur eine Frequenz- und AM-Modulation nutzen. Wenn es um größere Reichweiten geht, ist von den ganz preiswerten Modulen (unter 20 Euro) abzuraten, weil die Preisunterschied im Endeffekt mit Außenbeschaltung am Ende auch nicht mehr sehr groß ist.<br />
Allenfalls für Lernzwecke und Aufgaben innerhalb eines Zimmers können auch diese Module sehr interessant sein. <br />
<br />
Aber bei den etwas teureren Modulen, zum Beispiel den oben genannten, ist bereits eine RS232-Schnittstelle vorhanden. Das bedeutet, die Anwendung solcher Module ist äußerst einfach. Gewöhnlich müssen diese Module nur mit 3 oder 5 Volt versorgt werden und können dann direkt mit 2 Leitungen an die Controllerpins (RX/TX) angeschlossen werden. Möchte man ein solches Funkmodul an den PC anschließen, so ist lediglich eine kleine Schaltung notwendig die den TTL-Pegel an die PC-Pegel (V24 +/-12V)) anpaßt. Eine Bauanleitung dazu wäre RN-FUNK. Bei dieser Bauanleitung werden 4 der oben genannten Module unterstützt. Das kleine Board sorgt dafür, dass alle Module mit einer Spannung zwischen 5 und 18 V versorgt werden können und dass die Module wahlweise direkt mit dem PC oder einem Controller verbunden werden können. <br />
<br />
<br />
<br />
<br />
<br />
--[[Benutzer:Frank|Frank]] 12:18, 1. Dez 2005 (CET)<br />
<br />
==Siehe auch==<br />
* [[RN-Funk]]<br />
<br />
==Weblinks==<br />
* [http://www.roboternetz.de/funkmodule.html Vergleichstabelle gängiger Funkmodule]<br />
<br />
[[Kategorie:Robotikeinstieg]]<br />
[[Kategorie:Grundlagen]]<br />
[[Kategorie:Elektronik]]<br />
[[Kategorie:Kommunikation]]</div>Rcsuhttps://rn-wissen.de/wiki/index.php?title=Funkmodule&diff=9736Funkmodule2006-11-26T19:07:57Z<p>Rcsu: /* Das neue 868 MHz Band */ Typo</p>
<hr />
<div>Recht beliebt ist die Kommunikation von Roboter und PC per Funk. Dabei beschränkt sich die Anwendung keineswegs nur auf die reine Fernsteuerung wie beim Modellbau. Über Funkmodule lassen sich auch komplexe Sensordaten, Umgebungsdaten oder sogar Bilder übertragen.<br />
<br />
Inzwischen gibt es recht preiswerte Funkmodule mit RS232-Schnittstelle auf dem Markt. Die Anbindung an einen Controller erfolgt bei den etwas teureren Modulen sehr oft per RS232-Schnittstelle und ist selbst für Laien kein Problem. Erhebliche Unterschiede gibt es in der Reichweite. Die Reichweite wird von Frequenzband, Sendeleistung aber auch Empfindlichkeit der Module bestimmt. Sehr beliebt ist im Robotik-Bereich das ISM-Band.<br />
<br />
<br />
==Das 433 MHz ISM-Band==<br />
Das ISM-Band erstreckt sich bei 433 MHz von 433,05 bis 434,79 MHz. Es wird schon seit längerem zur kundenspezifischen Nachrichtenübertragung mit kurzen bis mittleren Reichweiten genutzt. Dies ermöglicht bei bis zu 10 mW Leistung einige 100 m Reichweite im Freifeld. Die Hersteller von Funkmodulen geben oft Reichweiten zwischen 100 und 250 Metern an, wenn das Funkmodul die volle erlaubte Leistung von 10 Milliwatt leistet. Die Reichweitenangaben hängen aber stark von der Umgebung, Störfaktoren und eventuellen Hindernissen zwischen den Funkmodulen ab. Daher sollte man bei Vergleich von Funkmodulen die Reichweitenangabe nur als groben Richtwert nehmen und nicht überschätzen. Bei gleicher Leistung, gleicher Empfindlichkeit und identischer Antenne sollten die Reichweiten auch nahezu identisch sein. <br />
[[Bild:FunkmodulRT433F4.jpg|thumb|Beispiel eines beliebten ISM Funkmodules]]<br />
Man sollte also vielmehr Sendeleistung und Empfindlichkeit der Transceiver vergleichen, denn nicht alle Module nutzen die maximal erlaubte Sendeleistung voll aus. Und ein Modul mit unempfindlicherem Empfänger hat eventuell selbst bei höherer Sendeleistung eine geringere Reichweite. <br />
<br />
Grundsätzlich ist die Modulationsart beim 433 Mhz Band frei wählbar, wobei in einfachen Anwendungen AM und bei höheren Anforderungen FM verwendet wird. Geräte für das 433 MHz-Band müssen als einzige Voraussetzung ein CE-Zeichen tragen.<br />
Funkmodule mit AM-Modulation sind zum Teil deutlich billiger als Module mit FM-Modulation, jedoch ist die Anfälligkeit gegenüber Störungen weit höher, was in der Regel die Reichweite drastisch reduziert. Zum Teil gibt es hier Module, die schon nach wenigen Metern (10 bis 20) keine sinvolle Datenübertragung mehr zulassen. Wenn nur die Steckdose in einem Zimmer per Funk geschaltet werden soll, dann können jedoch solche günstigen AM-Module wegen ihres Preises dennoch interessant sein. Für die Fernsteuerung von Robotern sind allerdings FM-Module deutlich besser geeignet.. <br />
<br />
Die Nutzung der zur Verfügung stehenden Bandbreite in spektraler und zeitlicher Sicht ist im 433 Mhz Band nicht beschränkt. Dies hat neben Vorteilen bei einer kontinuierlichen Übertragung auch Nachteile in Form eines höheren Störpotentials. Man muss einfach davon ausgehen, dass im Nachbarbereich schon zahlreiche Module in dem gleichen Frequenzbereich senden. Vor allem wären hier Funksteckdosen, Temperatursensoren, Wetterstationen, Türklingeln, Heizungssteuerungen als bevorzugte Anwender dieses Bandes zu nennen. <br />
<br />
Eine sichere Übertragung kann nur bei kurzen Reichweiten oder in Verbindung mit einer leistungsfähigen Kanalcodierung erreicht werden. Module mit mehren Kanälen haben hier einfach deutliche Vorteile, indem Sie einfach auf eine andere Frequenz ausweichen können, wenn es auf einem Kanal zu Störungen kommt. Bei den leistungsfähigeren Modulen ist ein Kanalwechsel oft einfach durch einen RS232-Befehl per Software möglich. Abzuraten ist von Modulen, die nur auf einer einzigen Frequenz (Kanal) senden, wenn höhere Reichweiten erzielt werden sollen. Oder aber es ist vorher genau zu prüfen, ob diese Frequenzen auch wirklich frei von Störquellen sind. <br />
[[Bild:FunkmodulEasyradio.jpg|thumb|Es gibt sehr schmale kompakte Funkmodule]]<br />
Die erfahrenen Funk-Anwender sind sich der leidigen Tatsache bewusst, dass das 433-MHz ISM-Band völlig überladen ist, besonders auf dem europäischen Kontinent. Das rührt aber zur Hauptsache daher, dass fast alle bisherigen Anwendungen die Punktfrequenz von 433,92 MHz nutzen, was logischerweise auf dieser Frequenz zu einer hohen Dichte und damit zur Überbelegung führen musste. Das müsste aber so nicht sein, es gibt andere Frequenzen auch noch.<br />
Der schlechte Ruf des 400 MHz-Bandes kommt genau daher, dass alle Anwender sich auf diese Frequenz „gesetzt“ haben. So blieb es eben zumeist nicht aus, dass alle schlechten Erfahrungen hier gesammelt worden sind. Alle haben die handelsüblichen, preiswerten Funk-Module mit fester Frequenz 433,920 MHz eingesetzt, weil es Module mit alternativer Frequenz nicht gab. Wollte man dennoch eine andere Frequenz nutzen, musste ein anderes Modul eingesetzt werden, was erhebliche Kosten verursachen kann. <br />
<br />
Bei neuen Modulen wie beispielsweise dem RT433F4 oder Easy Radio ER400TRS gehört dieses trübe Kapitel zumindest teilweise der Vergangenheit an, denn hier stehen ja 10 verschiedene Frequenzen (Kanäle) zur Wahl. Noch besser sieht's im 868 Mhz Band aus.<br />
<br />
==Das neue 868 MHz Band== <br />
<br />
Dieses 868 Mhz Band ist noch nicht solange freigegeben wie das 433 Mhz. Allein deshalb gibt es schon weniger Störquellen, welche die Funkverbindung und damit auch die Reichweite beeinträchtigen. Im Gegensatz zum 433 MHz-Band sind die Vorschriften im 868 MHz-Bereich zudem deutlich restriktiver, um gegenseitige Störungen möglichst gering zu halten. Das Band ist in verschiedene Bereiche unterteilt, die für bestimmte Nutzungen freigegeben sind. <br />
<br />
<center><br />
http://www.roboternetz.de/bilder/ism-diagram.gif<br />
<br />
<br />
{| {{Blauetabelle}}<br />
|Bereich<br />
| Funktion<br />
| Kanalraster<br />
| Duty Cycle <br />
|-<br />
|1<br />
|Allgemein<br />
|Breitband<br />
|< 1% <br />
|-<br />
|2 <br />
|Alarm <br />
|25 kHz <br />
| < 0,1% <br />
|-<br />
|3 <br />
|Allgemein <br />
|Breitband <br />
| < 0,1% <br />
|-<br />
|4 <br />
|Alarm <br />
|25 kHz <br />
| < 0,1% <br />
|-<br />
|5 <br />
| Offen <br />
|<br />
| <br />
|-<br />
|6 <br />
|Allgemein <br />
|25 kHz / Breitband <br />
|< 10% <br />
|-<br />
|7 <br />
|Alarm <br />
|25 kHz <br />
| < 10% - 100% <br />
|-<br />
|8 <br />
|Allgemein <br />
| Breitband <br />
| < 10% - 100% <br />
|}<br />
</center><br />
<br />
Im Klartext heißt das, dass nicht auf allen Frequenzen der Funkmodule Dauersendungen beliebiger Länge durchgeführt werden dürfen. Es wird also nicht nur die Leistung vorgeschrieben, sondern auch die Nutzungszeit. Dies ist auf den ersten Blick nachteilig, hat aber ohne Zweifel den Vorteil, dass Kanäle nicht ständig besetzt oder gestört werden. Dadurch ist eine sichere kurze Funkübertragung gewöhnlich fast immer gewährleistet. Aber ganz muss auf Dauersendungen in diesem Frequenzbereich auch nicht verzichtet werden, es gibt Bereiche, wo dies erlaubt ist. So verfügt beispielsweise das Modul RT868F4 auch über einen Kanal, wo man sich bezüglich der Zeit keine Gedanken machen muss. <br />
<br />
Bei dem Funkmodul RT868F4 ist die Kanalaufteilung laut Datenblatt daher so vorgenommen wurden: (Auszug aus Doku) <br />
<br />
{| {{Blaueschmaltabelle}}<br />
|Die Kanäle 0, 1, 2 dürfen nur 0,6 Minuten pro Stunde im Sendebetrieb genutzt werden<br />
(= 1% duty cycle), unabhängig von der einstellbaren Sendeleistung (= max. +10dBm) SRD class 1f<br />
<br />
Die Kanäle 4, 5, 6 dürfen nur 0,06 Minuten pro Stunde im Sendebetrieb genutzt werden<br />
(= 0,1% duty cycle), unabhängig von der einstellbaren Sendeleistung (= max. +10dBm) SRD class 1g<br />
<br />
Der Kanal 11 darf im Dauer-Sendebetrieb genutzt werden<br />
(= 100% duty cycle), allerdings nur mit einer Sendeleistung von max. +4dBm (Einstellung ATS3=2) SRD class 1k<br />
|}<br />
<br />
==2,4-GHz Band==<br />
Im 2,4-GHz-Band sind Spread-Spectrum-Kommunikationssysteme erlaubt, und es werden Funkmodule angeboten, die diese Technologie verwenden. 2,4-GHz-Funkwellen breiten sich sehr geradlinig aus, werden im Vergleich zu Funkwellen aus dem 400-MHz-Bereich weniger gebeugt und besitzen eine geringere Reichweite als diese. Doch aufgrund der hohen Bitrate, der exzellenten Sicherheit bei Datenübertragung mit Spread-Spectrum-Technologie und der guten Rauschunempfindlichkeit wächst die Zahl der Anbieter in diesem Bereich, und der Markt ist bereits gesättigt.<br />
Da die Reichweite in diesem Bereich recht gering ist, oft deutlich unter 100 Metern, aber der Datensatz sehr hoch ist, wird dieser Bereich beispielsweise gerne für Video-Übertragungen genutzt. <br />
<br />
<br />
<br />
==Wie schwierig ist die Verwendung von Funkmodulen== <br />
Durch einige sehr umfangreiche Beiträge im Roboternetz könnte man den Eindruck gewinnen, dass die Verwendung von Funkmodulen schwierig und nur den Experten vorbehalten sei. Das ist so einfach nicht richtig, etwas knifflig ist es nur bei Funkmodulen, die noch kein Funkprotokoll implementiert haben. Dies sind aber vornehmlich nur die sehr günstigen Module, bei diesen sind oft noch eine etwas umfangreichere Außenbeschaltung sowie komplexere Software-Algorithmen (Stichwort: Manchester Codierung) notwendig. Zudem gibt es bei diesen Modulen oft Probleme mit der Reichweite, weil sie nur eine Frequenz- und AM-Modulation nutzen. Wenn es um größere Reichweiten geht, ist von den ganz preiswerten Modulen (unter 20 Euro) abzuraten, weil die Preisunterschied im Endeffekt mit Außenbeschaltung am Ende auch nicht mehr sehr groß ist.<br />
Allenfalls für Lernzwecke und Aufgaben innerhalb eines Zimmers können auch diese Module sehr interessant sein. <br />
<br />
Aber bei den etwas teureren Modulen, zum Beispiel den oben genannten, ist bereits eine RS232-Schnittstelle vorhanden. Das bedeutet, die Anwendung solcher Module ist äußerst einfach. Gewöhnlich müssen diese Module nur mit 3 oder 5 Volt versorgt werden und können dann direkt mit 2 Leitungen an die Controllerpins (RX/TX) angeschlossen werden. Möchte man ein solches Funkmodul an den PC anschließen, so ist lediglich eine kleine Schaltung notwendig die den TTL-Pegel an die PC-Pegel (V24 +/-12V)) anpaßt. Eine Bauanleitung dazu wäre RN-FUNK. Bei dieser Bauanleitung werden 4 der oben genannten Module unterstützt. Das kleine Board sorgt dafür, dass alle Module mit einer Spannung zwischen 5 und 18 V versorgt werden können und dass die Module wahlweise direkt mit dem PC oder einem Controller verbunden werden können. <br />
<br />
<br />
<br />
<br />
<br />
--[[Benutzer:Frank|Frank]] 12:18, 1. Dez 2005 (CET)<br />
<br />
==Siehe auch==<br />
* [[RN-Funk]]<br />
<br />
==Weblinks==<br />
* [http://www.roboternetz.de/funkmodule.html Vergleichstabelle gängiger Funkmodule]<br />
<br />
[[Kategorie:Robotikeinstieg]]<br />
[[Kategorie:Grundlagen]]<br />
[[Kategorie:Elektronik]]<br />
[[Kategorie:Kommunikation]]</div>Rcsuhttps://rn-wissen.de/wiki/index.php?title=Pulsweitenmodulation&diff=9735Pulsweitenmodulation2006-11-26T16:54:01Z<p>Rcsu: Typo</p>
<hr />
<div>Die Pulsweitenmodulation (oft mit PWM abgekürzt) wird vornehmlich zum Ansteuern größerer Lasten wie z.B. Motoren verwendet. [[Microcontroller]] haben daher oft bereits spezielle PWM-Ausgänge integriert. Bei der Pulsweitenmodulation werden Impulse mit voller Spannung, aber variabler Breite an die Last gesendet. Ein Rechtecksignal mit konstanter Frequenz wird also mit einem bestimmten Tastverhältnis moduliert. Eine PWM ist also characterisiert durch ihre '''Frequenz''' und ihr '''Tastverhältnis''' (duty cycle).<br />
<br />
Vorteil dieser Ansteuerung ist, dass weniger Leistung verbraucht wird, da nicht permanent eine Eingangsspannung anliegt, die von einer Elektronik auf die gewünschte Motorspannung heruntergeregelt wird, sondern der Motor durch die Breite der Schaltimpulse gesteuert wird.<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/pwm.gif<br />
<br />
Diese drei Skizzen demonstrieren, wie ein Motor mit unterschiedlicher Pulsweite in drei verschiedenen Geschwindigkeit geregelt wird. In der Praxis ist die Pulsweite oft in 255 Schritten (8 Bit) und mehr regelbar. Gut zu erkennen ist in der Skizze, dass die eigentliche Grundfrequenz bei der Pulsweitenmodulation nicht verändert wird, sondern lediglich das Verhältnis der Ein- und Ausschaltzeit pro Welle (<math>T_\mathrm{on}</math> und <math>T_\mathrm{off}</math>). Die Modulationsfrequenz kann dabei variieren. Oft findet man Anwendungen im Frequenzbereich zwischen mehreren hundert Hertz (z.B. Bremslichter bei Autos) bis in den Bereich von 100 kHz (Schaltregler).<br />
<br />
Durch die Pulsweitenmodulation ist es möglich, dass auch Verbraucher mit niedrigeren Nennspannungen an weit höheren Spannungen betrieben werden können. Dadurch, dass man die Pulsweite reduziert, reduziert man die im Mittel am Verbraucher anliegende Spannung bzw. der durch den Verbraucher fliessende Strom bzw. die vom Verbraucher aufgenommene Leistung. Jedoch kann nicht bei allen Verbrauchern PWM angewandt werden. Dazu muss der Verbraucher eine gewisse Trägheit besitzen oder die PWM eine hinreichend hohe Frequenz haben. Eine [[Diode#Leuchtdiode|Leuchtdiode]] kann durchaus durch Spannungsspitzen oberhalb ihrer Nennspannung zerstört werden.<br />
:<math><br />
\overline{U_\mathrm{pwm}} <br />
= U_\mathrm{in} \cdot \frac{T_\mathrm{on}}{T_\mathrm{on}+T_\mathrm{off}} <br />
= U_\mathrm{in}\cdot T_\mathrm{on} \cdot f_\mathrm{pwm}<br />
</math><br />
<br />
;Beispiel: Wenn die Spannung <math>U_\mathrm{in}</math> = 12V und die Pulsweite genau 50% beträgt, so bedeutet das, dass der Motor nur für die halbe Zeit mit der Spannung versorgt wird. Dies wäre vergleichbar mit dem Fall, dass der Motor für die volle Zeit mit einer kontinuierlichen Gleichspannung von 6V betrieben würde. <br />
<br />
{{FarbigerRahmen|<br />
Bei induktiven Lasten wie einem Motor ist zusätzlich darauf zu achten, dass während der off-Zeit der Strom durch die Last weiterfliessen kann. Dazu wird der Last eine so genannte [[Diode#Freilaufdiode|Freilaufdiode]] parallel geschaltet. Ohne eine Freilaufdiode würde sich trotz der Effektivspannung von 6V kein nennenswerter Stromfluss einstellen, und die beim Abschalten der Spannung entstehenden Spannungsspitzen würden zusätzlich Probleme bereiten oder die Schaltung sogar schädigen.<br />
}}<br />
<br />
Der große Vorteil ist also, dass die herabgesetzten 6V nicht wie bei herkömmlichen Regelungen am Transistor oder einem Widerstand in Wärme umgesetzt werden. Aber auch in einer PWM-geregelten Schaltung entstehen Verlustleistungen durch die endlichen Widerstände der Schaltelemente wie ([[Feldeffekttransistor|Feldeffekt]]-)[[Transistor|Transistoren]]. Diese Verlustleistung ist in erster näherung proportional zur Schaltfrequenz und der Zeit <math>T_\mathrm{switch}</math>, die benötigt wird, um zwischen off-Zeit und on-Zeit hin- und herzuwechseln, und dem on-Widerstand des Schalters:<br />
:<math><br />
P_\mathrm{Verl} \sim T_\mathrm{switch} \cdot f_\mathrm{pwm} \cdot R_\mathrm{on}<br />
</math><br />
Darüber hinaus trägt eine evtl. benötigte Freilaufdiode abenfalls zu den Verlusten bei.<br />
<br />
Beispielschaltungen, die PWM nutzen, findet man unter [[Getriebemotoren Ansteuerung]].<br />
Auch bei [[Schrittmotoren ]] macht man sich diese Technik bei modernen Schaltkreisen und Steuerungen zunutze. Hier bezeichnet man sie oft auch als Chopper-Regelung, was letzlich aber sehr ähnlich ist. <br />
<br />
==Siehe auch==<br />
* [[Chopper Betrieb]]<br />
* [[Bascom und PWM]]<br />
* [[Getriebemotoren Ansteuerung]]<br />
<br />
[[Kategorie:Grundlagen]]<br />
[[Kategorie:Elektronik]]</div>Rcsuhttps://rn-wissen.de/wiki/index.php?title=AVR-Einstieg_leicht_gemacht&diff=9487AVR-Einstieg leicht gemacht2006-11-04T22:11:14Z<p>Rcsu: /* Grundschaltung mit Quarz */</p>
<hr />
<div>[[Bild:avr8.jpg|thumb|300px|Einen Controller zum Leben zu erwecken ist nicht schwer, manchmal reichen ein paar Teile! Beispiel mit Mega8]]<br />
==Wir starten mit einem ATMega32== <br />
Immer wieder gibt es in Foren, wie dem Roboternetz, Einsteiger, die das erstemal mit einem [[Microcontroller]] in Berührung kommen. Trotz zahlreicher Einstiegsbeiträge im Forum wiederholen sich doch bestimmte Anfängerfragen immer wieder, daher soll dieser Artikel noch einmal aufzeigen, wie man den ersten Schritt tut und einen Controller zum Leben erweckt. Es werden verschiedene Grundschaltungen aufgezeigt und erläutert, welche Bauteile welche Funktion besitzen.<br />
Als Controller verwenden wir einen [[AVR]] [[ATMega32]], der derzeit größte [[AVR]]-Controller, welcher noch im bastlerfreundlichen DIP-Gehäuse verfügbar ist. Für kleine bis mittlere Projekte ein sehr empfehlenswerter Controller, zumal er preislich mit ca. 6-7 Euro noch sehr günstig ist und zudem mit seinem 40-Pin-Gehäuse reichlich Anschlussmöglichkeiten besitzt.<br />
<br />
[[Bild:Mega1632.gif|center]]<br />
<br />
Wie auf dem Bild zu sehen, verfügt auch der etwas günstigere ATMega16 über die gleiche Pinbelegung, daher könnten wir in diesem Tutorial auch diesen Typ verwenden. Der ATMega32 hat aber doppelt soviel Speicherplatz für Programmdaten (Flash), daher hat man für eine geringe Preisdifferenz doch mehr Möglichkeiten.<br />
Wer noch 3 bis 4 Euro sparen will, dem sei der [[ATMega8]] oder [[ATMega168]] empfohlen, diese Typen sind sehr ähnlich, so dass das Tutorial weitgehend auch auf diese Typen bezogen werden kann. Allerdings haben diese Typen deutlich weniger Anschlussmöglichkeiten (28 Pin DIP Gehäuse). <br />
<br />
Die Frage, ob man mit einem fertigen Controllerboard, einer Experimentierplatine oder einem Steckbrett beginnen sollte, wurde ja in dem RN-Wissen Wiki Beitrag "[[Mit welchem Controllerboard fang ich an]]" angesprochen. In den meisten Fällen favorisiert der Autor dieses Artikels ein fertiges Controllerboard. Warum das so ist, dazu am Ende noch ein paar Anmerkungen. Dennoch soll diese Einführung schrittweise anhand eines Steckbrettes erläutert werden.<br />
<br />
==Start mit handelsüblichem Steckbrett==<br />
Ein Steckbrett hat den Vorteil, dass man theoretisch ohne Löten alle Bauteile relativ zügig zusammenstecken kann. Bestimmte Steckkontakte innerhalb einer Reihe sind im Steckbrett miteinander verbunden, so dass man nachher pro Bauteilbeinchen noch einige Steckkontakte zum Verdrahten mit Schaltdraht oder speziell konfektionierter Litze verwenden kann.<br />
<br />
'''Die Vorteile eines Steckbretts:'''<br />
<br />
*Bauteile können ohne Löten eingesetzt und verdrahtet werden<br />
*recht zügiger Schaltungsaufbau<br />
*eine Schaltung kann leicht geändert oder korrigiert werden, defekte Teile sind leicht tauschbar<br />
*ein Steckbrett kann auch für ganz andere Schaltungen verwendet werden<br />
'''Die Nachteile eines Steckbretts gegenüber gedruckten Schaltungen und Experimentierplatinen sind:'''<br />
<br />
*nicht alle Bauteile passen, so dass wir doch noch etwas löten müssen<br />
*nur geringer Schaltungsumfang möglich, da es schnell unübersichtlich wird<br />
*sehr störanfällig wegen grosser Kabellängen, dadurch oft Funktionsstörungen<br />
*Bauteile müssen zum Teil verbogen werden, damit sie passen<br />
<br />
Man beginnt, indem man den Controller AVR [[ATMega32]] auf das Board aufsetzt:<br />
<br />
[[Bild:avrtutorial_steckbrettmega32.jpg|center]]<br />
<br />
==Die Grundschaltung==<br />
Damit ein Controller erst mal zum Laufen kommt, benötigt man zumindest einen 10-k-Widerstand, einen 100-nF-Kondensator und eine 5V-Spannungsquelle. Das Ganze muss entsprechend dem unteren Schaltplan verschaltet werden, man spricht von einer sogenannten Grundschaltung. In dem Schaltplan wurde der Controller im Übrigen pinkompatibel als Schaltzeichen verwendet, die Pinreihenfolge ist also im Schaltplan identisch mit der echten Bauteilpin-Reihenfolge. Diese Darstellung erleichtert den Nachbau der Schaltung auf einem Steckbrett aber auch einer Experimentierplatine ungemein. Gewöhnlich verwendet man in Schaltplänen eine etwas andere Darstellung, bei der die Pins nach Funktionsgruppen geordnet sind. Bei solchen Schaltplänen muss man sich dann anhand der Pin-Nummern orientieren, man wird dies am Ende des Artikels noch bei dem IC MAX232 sehen.<br />
<br />
[[Bild:avrtutorial_grundschaltung_mega32.gif|center|500px]]<br />
<br />
<br />
Wenn man schon einige Grundschaltungen in anderen Tutorials gesehen hat, dann wird man bemerken, dass unsere doch noch etwas einfacher ist und weniger Bauteile benötigt. Hier wird beispielsweise kein Quarz verwendet, da der ATMega32 auch intern einen Takt generieren kann.<br />
<br />
Auf dem Steckbrett sieht die obere Schaltung wie folgt aus:<br />
<br />
[[Bild:avrtutorial_steckbrett1.jpg|center]]<br />
<br />
<br />
Um den Controller in Betrieb zu nehmen, benötigt man bei dieser Schaltung ein Netzteil, das eine stabilisierte Spannung von 4 bis 5V liefert. Wir gehen erst einmal davon aus, dass man über dieses verfügt. <br />
Erwähnenswert ist noch, dass der Kondensator als [[Abblockkondensator]] zur Unterdrückung von Störungen dient. Er muss so nah wie möglich an die Spannungszuführung am Controller selbst gesetzt werden. Ohne Kondensator enstehen erhebliche Störungen in der Versorgungsspannung, das Bild verdeutlicht es:<br />
<br />
[[Bild:Abblockkondensator OhneC amAVR.jpg|center]]<br />
<br />
<br />
Der Widerstand in der Grundschaltung dient dazu, die Reset-Leitung konstant auf definiertem High-Pegel zu halten. Verbindet man diesen RESET-Pin später kurz mit GND (Masse), dann wird das Programm im Controller neu gestartet.<br />
<br />
==Woran merkt man, dass der Controller funktioniert?==<br />
Gute Frage! Man merkt es garnicht. Genau genommen funktioniert ja auch trotz korrekter Schaltung noch immer nix, denn es muss zuerst ein Programm in den Controller geladen werden, damit er überhaupt weiss, was zu tun ist. Ohne Programm ist der Controller quasi tot.<br />
<br />
==Wie bekommt man das Programm in den Controller?==<br />
Der Controller verfügt über eine sogenannte [[ISP]]-Schnittstelle. Das bedeutet, über bestimmte Pins ([[SPI]]) kann der Controller mit einer geeigneten PC-Software (zum Beispiel Bascom) programmiert werden. Zum Anschluss an den PC benötigt man jedoch einen sogenannten ISP-Dongle, auch Programmieradapter genannt. Hier gibt es verschiedene Lösungen, serielle und parallele Adapter. Original von Atmel oder kompatible Lösungen. Der am meisten verwendete ISP-Dongle wird am Druckerport betrieben. Diese gibt es inzwischen recht preiswert, sodass sich das Selbstbauen eigentlich nicht lohnt. Da man auch gern auf ein paar Fehlerquellen verzichten sollte, würde ich eine Fertiglösung empfehlen. Wer ihn selbst bauen möchte, findet ([[AVR-ISP_Programmierkabel|hier]] eine ISP-Dongle-Bauanleitung und sogar eine fertige Platine dafür ([[AVR-ISP_Programmierkabel]]).<br />
<br />
Sowas sieht dann so aus:<br />
<br />
[[Bild:Avrtutorial_ispkabel.jpeg|center]]<br />
<br />
<br />
Der Schaltplan eines solchen Programmierkabels:<br />
<br />
<br />
[[Bild:ispschaltplan.gif|center|thumb|400px|Schaltplan des ISP-Dongels nach unserem Wiki-Bauplan, mit SUB-D Buchse. Bitte beachten das das IC1 hier im Plan als verschiedene Blöcke (IC1A/IC1B) dargestellt wird. Dies dient nur zur Übersicht, es handelt sich nur um ein IC, einfach auf die Pinnummern achten. Zum vergrößern anklicken.]]<br />
<br />
<br />
Das Problem ist nun, wie schließe ich einen handelsüblichen ISP-Programmieradapter an den Controller auf dem Steckbrett an. Der normale 10-polige Wannenstecker (nach [[RN-Definitionen]]) passt nicht in ein Steckbrett. Das ist wieder so ein typischer Nachteil bei Steckbrettern! In unserem Beispiel haben wir dazu auf einem kleinen Stück Experimentierplatine einen steckbaren Adapter für das Steckboard gelötet.<br />
Somit kann man die Schaltung um einen üblichen 10-poligen ISP-Programmieranschluss ergänzen:<br />
<br />
<br />
[[Bild:avrtutorial_grundschaltung_mitisp.gif|center|500px]]<br />
<br />
<br />
Auf dem Steckbrett sieht das gleiche so aus:<br />
<br />
<br />
[[Bild:avrtutorial_steckbrett_mitisp.jpg|center]]<br />
<br />
<br />
Jetzt endlich ist es soweit, jetzt kann man den Controller über einen ISP-Programmieradapter mit dem PC verbinden. Aber unbedingt darauf achten, dass auch alles korrekt nach Schaltplan gesteckt wurde und dass die Betriebsspannung 5V nicht übersteigt. Ansonsten könnte man sich Dongle oder sogar die PC-Schnittstelle beschädigen.<br />
Als Entwicklungsumgebung nutzen wir hier im Tutorial [[Bascom]]. [[Bascom]] ist ein sehr beliebter Basic-[[Compiler]], der zahlreiche [[AVR]] Controllertypen programmieren kann. Da auch ein [[Terminalprogramm]] und ein Programmer integriert ist, enthält diese PC-Software alles, was man braucht, das erleichtert den Einstieg zusätzlich. Die Software gibts kostenlos als Demo bis 4K Code, für unsere Beispiele und den Einstieg reicht das allemal, siehe dazu Artikel Bascom.<br />
Wie man ein Programm schreibt, kompiliert und überträgt, wurde schon in diesem Beitrag [[Bascom - Erstes Programm in den AVR Controller übertragen]] ausführlich behandelt, wir ersparen uns deshalb diese Details. <br />
<br />
Als erstes kompilieren und übertragen wir folgendes Programm:<br />
<br />
<pre><br />
'###################################################<br />
'step1.bas.BAS<br />
'für<br />
'RoboterNetz.de AVR Tutorial in RN-Wissen<br />
'<br />
'Autor: Frank Brall<br />
'Weitere Beispiele und Beschreibung der Hardware<br />
'unter<br />
' http://www.Roboternetz.de oder<br />
' http://www.Roboternetz.de/wissen<br />
'#######################################################<br />
<br />
$regfile = "m32def.dat"<br />
$framesize = 32<br />
$swstack = 32<br />
$hwstack = 32<br />
$crystal = 1000000<br />
<br />
Do<br />
Loop<br />
<br />
End<br />
</pre><br />
<br />
Das Programm macht eigentlich nichts, außer dass es eine Endlosschleife ausführt. Aber da wir noch überhaupt nix am Controller angeschlossen haben, können wir eh noch nicht sehen, ob ein Programm nun richtig ausgeführt wird oder nicht.<br />
Allerdings können wir schonmal üben, das Programm mit Bascom zu übertragen. Wenn wir alles richtig aufgebaut haben und Spannung anliegt, dann sollte automatisch der Controller in Bascom erkannt werden. Die Übertragung sollte dann ohne Fehlermeldung erfolgen können. Wenn wir das geschafft haben, geht’s weiter.<br />
<br />
==Läuft die Schaltung und das Programm?==<br />
Damit wir nun endlich sehen, ob sich bei unserer Schaltung auch was tut, schließen wir eine LED über einen 1K-Vorwiderstand an einen Port an. Da wir die Kathode an den Controllerpin und die Anode an Plus legen, leuchtet die LED immer dann, wenn dieser Pin auf Low geschaltet wird.<br />
<br />
[[Bild:avrtutorial_grundschaltung_mitled.gif|center|500px]]<br />
<br />
<br />
Auf dem Steckbrett sieht's nun so aus:<br />
<br />
<br />
[[Bild:avrtutorial_steckbrett_mitled.jpg|center]]<br />
<br />
<br />
Damit man nun auch wirklich sieht, ob das Programm läuft, schreiben wir ein kleines Basic-Programm, welches eine LED abwechselnd ein– und ausschaltet. Wir kompilieren und übertragen also folgendes Programm:<br />
<br />
<pre><br />
'###################################################<br />
'step2.bas.BAS<br />
'für<br />
'RoboterNetz.de AVR Tutorial in RN-Wissen<br />
'<br />
'Autor: Frank Brall<br />
'Weitere Beispiele und Beschreibung der Hardware<br />
'unter<br />
' http://www.Roboternetz.de oder<br />
' http://www.Roboternetz.de/wissen<br />
'#######################################################<br />
<br />
$regfile = "m32def.dat"<br />
$framesize = 32<br />
$swstack = 32<br />
$hwstack = 32<br />
$crystal = 1000000<br />
<br />
Config Portc.0 = Output 'Ein Pin wird aus Ausgang konfiguriert PC0 (also Pin0 von Port C)<br />
<br />
Do<br />
Portc.0 = 1 'Pin wird auf High, also 5V geschaltet<br />
Waitms 100<br />
Portc.0 = 0 'Pin wird auf Low, also 0V geschaltet<br />
Waitms 100<br />
Loop<br />
<br />
End<br />
</pre><br />
<br />
<br />
Wenn die LED nun schnell blinkt, dann funktioniert die aufgebaute Schaltung perfekt. Wir haben gleichzeitig gelernt, wie man einen Ausgangsport, also Controllerpin, ein- und ausschalten kann. Nahezu alle Pins beim ATMega32 können auf diese Weise als Ausgangsport betrieben werden. Somit lassen sich nicht nur viele Leds, sondern unter Zuhilfenahme eines Treibers (z.B. Transistors) auch Relais und andere Aktoren schalten.<br />
<br />
==Eingangsport fragt Taster ab==<br />
Nun erweitern wir die Schaltung noch um einen Taster. Nahezu jedes Port kann bei einem ATMega32 auch per Software als Eingangsport konfiguriert werden. Wir schließen z.B. einen Taster an Port-Pin PA7 an. <br />
<br />
<br />
[[Bild:avrtutorial_grundschaltung_mittaster.gif|center|500px]]<br />
<br />
<br />
Das Port wird in der Software so konfiguriert, dass es als Eingang arbeitet und intern über einen hohen Widerstand (Pullup-Widerstand) ständig auf High-Pegel gelegt wird. Wird nun eine Taste gedrückt, so wird der Pegel auf Low gezogen.<br />
Das Beispielprogramm ist nun so gestaltet, dass bei gedrückter Taste die LED leuchtet und beim Loslassen wieder ausgeht.<br />
<br />
<br />
<pre><br />
'###################################################<br />
'step3.bas.BAS<br />
'für<br />
'RoboterNetz.de AVR Tutorial in RN-Wissen<br />
'<br />
'Autor: Frank Brall<br />
'Weitere Beispiele und Beschreibung der Hardware<br />
'unter<br />
' http://www.Roboternetz.de oder<br />
' http://www.Roboternetz.de/wissen<br />
'#######################################################<br />
<br />
<br />
$regfile = "m32def.dat"<br />
$framesize = 32<br />
$swstack = 32<br />
$hwstack = 32<br />
$crystal = 1000000<br />
<br />
Config Portc.0 = Output 'Ein Pin wird aus Ausgang konfiguriert PC0 (also Pin0 von Port C)<br />
<br />
Config Pina.7 = Input 'Ein Pin (PA0) wird als Eingang definiert<br />
Porta.7 = 1 'Interner Pullup Widerstand ein<br />
<br />
<br />
Do<br />
If Pina.7 = 1 Then<br />
Portc.0 = 1 'Pin wird auf High, also 5V geschaltet<br />
Else<br />
Portc.0 = 0 'Pin wird auf Low, also 0V geschaltet<br />
End If<br />
Loop<br />
<br />
<br />
End<br />
</pre><br />
<br />
==Grundschaltung mit Quarz==<br />
Obwohl wir ab der letzten Schaltung schon einiges mit dem Controller anfangen können, so fehlt doch noch etwas Wichtiges. Oft ist es nämlich notwendig, dass ein Controller sehr genaue Frequenzen mißt oder ganz genaue Taktraten ausgeben kann. Leider ist der interne Taktgenerator nicht 100% exakt, was bei manchen Anwendungen störend ist. Zum Beispiel können über die RS232-Schnittstelle Daten nicht immer ganz fehlerfrei übertragen werden, wenn die Taktfrequenz nicht genau stimmt. Daher wird in den meisten Anwendungsfällen ein Quarz zur Takterzeugung genutzt, Sie kennen das sicher aus anderen Grundschaltungen. Also erweitern wir unsere Schaltung gleich noch um einen Quarz mit den zugehörigen 22pF-Kondensatoren.<br />
<br />
<br />
[[Bild:avrtutorial_grundschaltung_mitquarz.gif|center|500px]]<br />
<br />
<br />
Auf unserem Steckbrett wird's langsam voller, hier sieht's also inzwischen so aus:<br />
<br />
<br />
[[Bild:avrtutorial_steckbrett_mitquarz.jpg|center|500px]]<br />
<br />
<br />
Normalerweise sollte der Quarz genauso wie die beiden 22pF-Kondensatoren, die zum Anschwingen des Quarzes dienen, möglichst nahe am Controller platziert werden. Auf dem Steckbrett ist das manchmal gar nicht so einfach, insbesondere wenn man wie in diesem Fall den Quarz erst später hinzufügt. Wichtig ist nämlich, dass die Leitungen vom Quarz zum Controller möglichst kurz sind, bei gedruckten Schaltungen oft nur 1 bis 2 cm! Auch die einzelnen Bauteilbeinchen, z.B. der Kondensatoren, sollten normalerweise so kurz wie möglich sein.<br />
Ist dies nicht der Fall, wie auch in unserem Bild, dann fungieren diese Leitungen fast wie eine Funkantenne. Dies führt in der Regel zu starken Hochfrequenzsignalen, die nicht nur unsere Schaltung, sondern auch andere Schaltungen in der Nähe stören könnten. Man merkt dies auch oft daran, dass sich ein Board bei höherer Quarzfrequenz immer seltener fehlerfrei ohne Übertragungsfehler programmieren läßt.<br />
Grundsätzlich sind daher Schaltungen mit Quarz auf einem Steckbrett nicht sonderlich zu empfehlen, die Betriebssicherheit ist nicht immer gegeben. <br />
<br />
Auch wenn nun ein Quarz angeschlossen ist, so wird er noch immer nicht genutzt. Noch immer arbeitet der [[ATMega32]] mit seiner intern voreingestellten 1 Mhz Taktfrequenz. Um dies umzustellen, muss man ein sogenanntes [[Fusebits|Fusebit]] im Controller umprogrammieren. Auch dies wurde schon im Beitrag [[Bascom - Erstes Programm in den AVR_Controller übertragen]] näher beschrieben. Hier sei daher nur nochmals gesagt, dass dies auch sehr bequem in [[Bascom]] erfolgt:<br />
<br />
<br />
[[Bild:avrtutorial_bascomfusebitquarz.gif|center]]<br />
<br />
<br />
Sobald wir das umgestellt haben, müssen wir auch in dem Programm die Anweisung <br />
<br />
$crystal = 1000000 <br />
<br />
durch <br />
<br />
$crystal = 16000000 <br />
<br />
ersetzen, denn unser Quarz taktet nun mit 16 MHz.<br />
<br />
==Spannung stabilisieren==<br />
Auch wenn unsere Basis-Schaltung für Experimente inzwischen schon ganz nett ist, so ist es doch etwas ungünstig, dass wir stets 5V zur Verfügung haben müssen. Nicht immer steht ein geeignetes Netzteil zur Verfügung, zudem soll ein Controller auch oft mit Batterien versorgt werden. Aus diesem Grund verfügen fast alle Entwicklungsboards wie ([[RN-Control]], STK500 etc.) über einen [[Spannungsregler]].<br />
[[Bild:78s05.jpg|thumb|Spannungsregler 78S05]] Dieser wandelt eine höhere Eingangsspannung (ca. 7 bis 20 V) immer genau in 5V um. Sowas erhöht die Betriebssicherheit einer Schaltung nochmals immens. Als [[Spannungsregler]] (IC2) wird oft der 7805 genutzt, empfehlenswert ist der Typ 78S05, welcher 2A verträgt sowie über einen Kurzschluss- und Überlastungsschutz verfügt. <br />
Die beiden 100nF-Kondensatoren sind wichtig, sie sollen HF-Störungen und Schwingungen vermeiden. Der Elko vor dem Spannungsregler ist vor allem dann wichtig, wenn die Spannung von einem Netzgerät kommt und noch etwas geglättet werden muss. Je höher der Strombedarf der Schaltung, desto größer kann man die Kapazität wählen. Es schadet nicht, wenn man den Elko einige Nummern größer wählt, man ist dann quasi für alle Fälle gerüstet. So sind Werte zwischen 100 uF und 2200 uF durchaus denkbar. <br />
<br />
<br />
Wir erweitern unsere Schaltung somit wie folgt:<br />
<br />
<br />
[[Bild:avrtutorial_grundschaltung_spannung.gif|center|500px]]<br />
<br />
<br />
Auf dem Steckbrett sieht's wie folgt aus:<br />
<br />
<br />
[[Bild:avrtutorial_steckbrett_spannung.jpg|center]]<br />
<br />
==Daten und Texte zum PC übertragen==<br />
In vielen Programmen müssen Daten oder Texte vom Controller an den PC oder umgekehrt gesendet werden. Insbesondere bei komplexen Programmen kann man auf diese Weise Variableninhalte ausgeben und somit auch Fehler im Programmcode schneller finden und korrigieren. In der Regel ist das ganz einfach, denn der [[Microcontroller]] [[ATMega32]] verfügt über einen internen [[UART]], also ein Modul, das Daten über die [[RS232]]-Schnittstelle zum PC senden bzw. auch von ihm empfangen kann. Leider arbeitet jedoch die Controllerschnittstelle mit 5V und die PC-Schnittstelle der Norm entsprechend mit +-12V. Daher muss unbedingt ein Schaltkreis dazwischen, welcher die Pegel anpasst. Gewöhnlich nimmt man hier das IC MAX232(CPE), welches inzwischen sehr preiswert erhältlich ist.<br />
<br />
Wir müssen also die Schaltung nochmals erweitern.<br />
<br />
<br />
[[Bild:avrtutorial_grundschaltung_max232.gif|center|500px]]<br />
<br />
<br />
Das IC Max232 ist im Schaltplan in der üblichen funktionsorientierten Darstellung gezeichnet. Zur besseren Übersichtlichkeit wurden die immer benötigten Anschlüsse für VCC (Pin 16) und GND (Pin 15) getrennt oben rechts im Schaltplan dargestellt. Also nicht vergessen !!<br />
<br />
Auf dem Steckbrett sieht's so aus:<br />
<br />
<br />
[[Bild:avrtutorial_steckbrett_max232.jpg|center|500px]]<br />
<br />
<br />
Über eine dreipolige Stiftleiste ([[RN-Definitionen]]) wird nun das Steckboard mit der [[RS232]]-Schnittstelle des PC verbunden. Es ist nun ein Leichtes, mit einem Programm Daten zum PC zu senden. Das nachfolgende Programm gibt Hinweise mit der Anweisung '''PRINT''' aus:<br />
<br />
<br />
<pre><br />
'###################################################<br />
'step5.bas.BAS<br />
'für<br />
'RoboterNetz.de AVR Tutorial in RN-Wissen<br />
'<br />
'Autor: Frank Brall<br />
'Weitere Beispiele und Beschreibung der Hardware<br />
'unter<br />
' http://www.Roboternetz.de oder<br />
' http://www.Roboternetz.de/wissen<br />
'#######################################################<br />
<br />
<br />
$regfile = "m32def.dat"<br />
$framesize = 32<br />
$swstack = 32<br />
$hwstack = 32<br />
$crystal = 16000000<br />
$baud = 9600<br />
<br />
Config Portc.0 = Output 'Ein Pin wird aus Ausgang konfiguriert PC0 (also Pin0 von Port C)<br />
<br />
Config Pina.7 = Input 'Ein Pin (PA0) wird als Eingang definiert<br />
Porta.7 = 1 'Interner Pullup Widerstand ein<br />
<br />
<br />
Do<br />
If Pina.7 = 1 Then<br />
Portc.0 = 1 'Pin wird auf High, also 5V geschaltet<br />
Print "Schalter nicht gedrückt"<br />
Else<br />
Portc.0 = 0 'Pin wird auf Low, also 0V geschaltet<br />
Print "Schalter gedrückt"<br />
End If<br />
Wait 1<br />
Loop<br />
<br />
End<br />
</pre><br />
<br />
==Möglichkeiten des Steckbrettes erreicht==<br />
Inzwischen füllt der Schaltplan fast ein DIN-A4-Blatt und auf dem Steckbrett sieht's auch schon recht wirr aus, dabei haben wir nur die wichtigsten Grundelemente auf dem Steckbrett. Für eine Roboter-Steuerung oder andere Anwendung fehlt doch noch einiges. Zum Beispiel weitere Taster, weitere LEDs, Motortreiber, damit der Controller auch Motoren ansteuern kann und ein [[I2C]]-Bus-Anschluss.<br />
Dies alles noch auf einem Steckbrett zu realisieren macht wenig Sinn, zumal bereits jetzt schon durch die doch recht langen Leitungen/Verkabelungen erhebliche Störungen auftreten. In der letzten Phase ist es immer öfters zu Übertragungsfehlern beim Programmieren gekommen, oft musste dies 20mal wiederholt werden. Dies zeigt, dass ein Steckbrett bestenfalls für ganz kleine Controller-Experimente herhalten kann. Für größere Dinge sollte man dann doch zu einer Lösung auf einer gedruckten Platine greifen. Spezielle Experimentierboards bieten mehr Sicherheit und haben neben den Grundelementen, die hier beschrieben wurden, noch eine ganze Menge mehr drauf. Bei [[RN-Control]] zum Beispiel 5 Tasten, 8 Leds, Motortreiber, Lautsprecher, diverse Anschlüsse etc. <br />
Der Größenunterschied wird im Bild deutlich:<br />
<br />
<br />
[[Bild:avrtutorial_steckbrett_rncontrol.jpg|center|500px]]<br />
<br />
<br />
Auch wenn das Steckbrett also kein Controllerboard ersetzen kann, so hat das kleine Tutorial doch gezeigt, wie eine [[Avr]]-Schaltung aufzubauen ist. Dieses Wissen sollte man auch besitzen, wenn man ein Controllerboard nutzt. <br />
<br />
<br />
==Was braucht man, wenn man mit einem Controllerboard den Einstieg startet?==<br />
<br />
[[Bild:avrtutorial_ispkabel.jpg|thumb|ISP-Programmierkabel]]Neben dem eigentlichen Board braucht man, wie schon zuvor angesprochen, ein [[AVR-ISP Programmierkabel]]. Da das Selbstbauen kaum billiger ist, ist zu empfehlen, ein solches fertig mitzubestellen. Am preiswertesten und zugleich vielseitigsten sind die ISP-Adapter, die man an das Druckerport anschließt (siehe Bild). Es gibt aber auch USB-Lösungen, wobei diese jedoch oft teuer sind und auch oft weniger Controller programmieren können. Hat man jedoch einen PC oder Notebook ohne parellelen Druckeranschluss, so muss man wohl oder übel in den meisten Fällen zu einem seriellen oder USB-Programmieradapter greifen. Neben den erwähnten Nachteilen hat der USB Dongle aber oft auch den Vorteil, dass er etwas schneller ist. Dieser Unterschied macht sich aber nur bei sehr großen Programmen und Controllern wirklich bemerkbar.<br />
<br />
Als zweites braucht man natürlich eine Stromversorgung. Ideal sind Gleichspannungsnetzgeräte, die zwischen 9 und 12V liefern, vorausgesetzt, das Board hat einen Spannungsregler wie in der Regel die RN-Boards. Man kann hier ein normales Steckernetzteil oder ein komfortables Labornetzteil nehmen. Um etwas Reserve zu haben, wäre es gut, wenn das Netzteil mindestens 1 A liefern kann. Alternativ kann man auch Akkupacks oder Batterien nutzen, allerdings mindestens 7,2V sollten die schon liefern können, sicherer sind 8,4-, 9,6- oder 12V-Akkus.<br />
Das wäre eigentlich schon das Wichtigste, um ein Board in Betrieb zu nehmen und Experimente zu machen. <br />
<br />
Allerdings, ein RS232-Kabel ist ebenfalls noch sehr empfehlenswert. Dieses erlaubt die Ausgabe von Texten und Variablen auf den PC, wir haben es ja oben im Steckbrettbeispiel schon gesehen. Dazu wird auf dem PC ein [[Terminalprogramm]] gestartet und über die [[RS232]] Schnittstelle mit dem PC verbunden. Bei manchen Boards ist sowieso ein RS232 Kabel unerläßlich, wie z.B. RN-Motor, RN-Speak etc. Nützlich ist es aber überall. Man kann ein solches Kabel selbst bauen oder gleich beim Kauf eines Boardes mitbestellen.<br />
<br />
Also nochmal die Zusammenfassung für den Einstieg:<br />
<br />
* Controllerboard<br />
* [[AVR-ISP Programmierkabel]] mit 10-poligem Wannenstecker<br />
* RS-232-Kabel (mit 3-poligem Adapter, wenn Board [[RN-Definitionen]] erfüllt)<br />
* Netzgerät oder Akku (ideal 9 bis 12V, notfalls auch 7,2 bis 20V)<br />
* [[Bascom]]-Compiler-Vollversion ist nur nötig, wenn man gleich größere Sachen anstrebt, ansonsten reicht das Demo, genauso wie ein [[Avr-gcc]]-Compiler. Bei RN-Boards sind diese Programme beim Board- oder Platinenkauf sowieso dabei, ansonsten kann man diese im Internet downloaden.<br />
* Ein gutes Buch ist immer gut, siehe [[Buchvorstellungen]]<br />
<br />
==Autor==<br />
*[[Benutzer:Frank|Frank]]<br />
<br />
<br />
===Quellen===<br />
* [[Abblockkondensator]] Artikel von Uwegw<br />
* RN-Board Dokumentationen aus [[:Kategorie:Projekte]]<br />
* diverse Datenblätter<br />
<br />
==Siehe auch==<br />
*[[AVR-ISP Programmierkabel]]<br />
*[[Mit welchem Controllerboard fang ich an]]<br />
*[[Abblockkondensator]]<br />
*[[Bascom]]<br />
*[[Bascom - Erstes Programm in den AVR_Controller übertragen]]<br />
*[[Avr]]<br />
*[[Atmel Controller Mega16 und Mega32]]<br />
*[[Spannungsregler]]<br />
<br />
<br />
[[Kategorie:Robotikeinstieg]]<br />
[[Kategorie:Praxis]]<br />
[[Kategorie:Elektronik]]<br />
[[Kategorie:Microcontroller]]<br />
[[Kategorie:Projekte]]</div>Rcsuhttps://rn-wissen.de/wiki/index.php?title=Leuchtdiode&diff=9486Leuchtdiode2006-11-04T20:53:21Z<p>Rcsu: Typo, Antiparallele Diode</p>
<hr />
<div>[[Bild:SFH300.jpg|right|thumb|Standard Bauform]]Leuchtdioden (Lumineszenzdiode) oder auch LED abgekürzt (light emitting diodes) basieren auf Halbleiterverbindungen, die den Strom direkt in Licht umwandeln. Bezogen auf Größe, Effektivität, Haltbarkeit und Lebensdauer verhalten sich die Leuchtdioden zu konventionellen Glühlampen wie Halbleiterdioden zu Röhrendioden. Sie werden die Beleuchtungstechnik in ähnlicher Weise verändern, wie die Halbleitertechnologie schon die Elektronik verändert hat.<br />
[[Bild:led.gif|right]]<br />
[[Bild:Schaltsymbol_Lunineszenzdiode.png|left|Schaltsymbol Lunineszenzdiode (LED)]]Ein großer Vorteil ist die hohe Leuchtkraft bei geringer Stromstärke. Daher werden LEDs fast in allen elektronischen Geräten zur Anzeige von Signalen/Zuständen genutzt. Gerade ist auch die neue weisse LED dabei sogar der Glühlampe etwas Konkurrenz zu machen.<br />
Gewöhnlich werden LED mit 20 mA betrieben. Bei der „SuperFlux LED“ und der „Luxeon“ von Lumileds ist der Betriebsstrom höher, nämlich 70 mA und 350 mA. Dagegen gibt es auch Low-Typen die bereits ab 5mA arbeiten.<br />
Die Durchlassspannung hängt direkt von der Bandlücke ab und damit von der Lichtfarbe. Die Betriebsspannungen betragen 2V bis 4V. Der durch die Diode fließende Strom ist von der angelegten Spannung abhängig.<br />
Wegen des hohen Dotierungsunterschieds an der Sperrschicht vertragen Leuchtdioden nur geringe Sperrspannung von ca. 5 V. Wenn eine LED also an der Kathode psoitive Spannung abbekommt muss eine Diode antiparallel eingesetzt werden.<br />
<br />
Es ist eine große Vielfalt von Bauformen lieferbar. Neben diversen Metall-/Glas-Gehäusen werden hauptsächlich Plastikbauformen eingesetzt. Hier setzt der Kunststoffkörper zum einen den Grenzwinkel der Totalreflexion an der Chipoberfläche herab und erhöht damit die aus dem Kristall austretende Strahlungsleistung, zum anderen wirkt die gekrümmte Oberfläche als Linse und bündelt die Strahlung in Achsrichtung. Sie sind problemlos in großen Stückzahlen zu fertigen.<br />
<br />
Je nach Verlötungsverfahren wird bei elektronischen Bauteilen zwischen den auf der Rückseite der Platine verlöteten und den SMD (Surface Mounted Device) Bauformen unterschieden. Auch LED werden in beiden Bauformen angeboten.<br />
<br />
<br />
'''Praxistip:''' An einer Spannung von 5V (auch Digitalports) werden Leuchtdioden gewöhnlich mit einem Widerstand von min. 330 Ohm bis 1000 Ohm (je nach gewünschter Leuchtstärke) betrieben. <br />
<br />
<br />
[[Bild:LED.jpg|thumb|center|Weiße LED]] <br />
<br />
==Siehe auch==<br />
* [[Diode]]<br />
* [[Optokoppler]]<br />
* [[RN-Digi|7 Segment Anzeigen Bauanleitung]]<br />
<br />
<br />
==Weblinks==<br />
* [http://www.roboternetz.de/phpBB2/konstantstrom.php Konstanttromquellen eignen sich gut für LED Stromversorgung]<br />
<br />
[[Kategorie:Elektronik]]<br />
[[Kategorie:Grundlagen]]</div>Rcsuhttps://rn-wissen.de/wiki/index.php?title=Navigation&diff=9485Navigation2006-11-04T20:28:14Z<p>Rcsu: /* Weblinks */ Typo</p>
<hr />
<div>Unter Navigation bezeichnet man das Sichzurechtfinden in einem geografischen Raum, um einen bestimmten Ort zu erreichen. Die Tätigkeit des Navigierens besteht aus drei Teilbereichen:<br />
<br />
* Bestimmen der geografischen Position durch Ortung nach verschiedensten Methoden <br />
* Berechnen des Weges zum Ziel und <br />
* Führung des Fahrzeugs zu diesem Ziel, also vor allem das Halten des optimalen Kurses<br />
<br />
Es ist also eine zentrale Aufgabe beim Bau von Robotern. Es ist sogar das Thema, das einen besonders großen Reiz auf die Bastler ausübt.<br />
<br />
==Orientierung und Navigation==<br />
Ein mobiler Roboter, der durch Bewegung mit seiner Umgebung in Kontakt tritt, braucht Sensoren zur Orientierung und er wird auch eine einfache Navigation durchführen.<br />
<br />
==Orientierung in natürlicher Umgebung== <br />
Im einfachsten Fall werden es Berührungssensoren sein, mit denen der Roboter feststellt, ob ein Hindernis direkt vor ihm oder in seiner Reichweite ist. <br />
Auch beim Einsatz von komplexeren Sensoren zum berührungslosen Orten von natürlichen Hindernissen sind einfache Kontaktsensoren zur Unterstützung sinnvoll. <br />
Mit diesen Sensoren kann eine Orientierung aufgebaut werden, wenn Objekte der natürlichen Umgebung erkannt und in der Position registriert werden. Sie können beispielsweise in eine Karte eingetragen werden. <br />
Die sogenannte natürliche Umgebung ist dabei in vielen Fällen speziell im Indoor-Bereich kaum von der Natur geschaffen, es sind hier vor allem Wände, Türen, Möbel. Sie wird nur so genannt, weil sie andererseits nicht zur Orientierung geschaffen wurde. <br />
<br />
===Ortung durch Berührung===<br />
<br />
Üblicherweise sind das Mikro-Schalter, die über eine Stoßstange (BUMPER) den passiven oder aktiven Kontakt mit einem Hindernis erkennen.<br />
* Aktiver Kontakt - der Robby ist beim Fahren drangestoßen (Tischbein)<br />
* Passiver Kontakt - Irgendwas hat den Robby berührt, z.B. die Hauskatze<br />
<br />
Den Unterschied kann der Roboter nur feststellen, wenn er seine momentane Bewegungsrichtung weiss und berücksichtigt. <br />
<br />
Bei einfachen Systemen wird meist so vorgegangen: <br />
:Bumper rechts: etwas nach links drehen<br />
:Bumper links: etwas nach rechts drehen<br />
:Beide Bumper: umdrehen<br />
<br />
Dass man so ein primitives Verfahren nicht als Orientierung und kaum als Ortung bezeichnen kann, zeigt folgender einfache Vergleich: Stellen Sie sich vor, sie werden mit verbundenen Augen in einen Raum eingesperrt und sollen diesen durch einen Ausgang verlassen oder an einer vorgegebenen Stelle halten. Sie werden recht planlos an den Wänden entlanggehen und wahrscheinlich nicht merken, dass sie an der gleichen Stelle schon sechsmal vorbeikamen. Wenn der Raum um eine dicke Säule gebaut ist und Sie dort entlangehen, werden Sie die Türen an der Aussenwand kaum finden. Trotzdem arbeiten viele Roboter nach diesem Prinzip.<br />
<br />
===Berührungslose Ortung===<br />
<br />
Zur berührungslosen Orientierung an Objekten in der Umgebung kann der Roboter selbst ein akustisches oder optisches Testsignal aussenden und damit die Umgebung abtasten oder er kann sich am Bild der Umgebung orientieren. Es ist allerdings nicht ganz einfach, aus den empfangenen Signalen eine "innere" Landkarte zusammenzustellen und sich darin zurechtzufinden. Ohne so eine Landkarte ist die berührungslosen Orientierung nicht besser als ein verlängerter Arm der einfachen Kontaktschalter.<br />
<br />
====1. Akustische Abtastung====<br />
<br />
1.a. Akustischer Reflexkoppler<br />
<br />
Bei der akustischen Abtastung des Raumes stellt die "Einparkhilfe" die einfachste Lösung dar. Hier wird eine Sende- und eine Empfangskapsel über einen Verstärker gekoppelt und wenn im Bereich des Sensors ein Hindernis die Kopplung zwischen beiden erhöht, dann kommt es zum Anschwingen und damit zur Anzeige eines Hindernisses. Das Verfahren ist einfach, billig und lässt allenfalls senkrecht vor einer glatten Wand eine Bestimmung des Abstands zu. <br />
Beispiel: Einparkhilfe Bild<br />
<br />
1.b. Akustische Laufzeitmessung (Echolot)<br />
[[Bild:srf08.jpeg|right|200px|Beispiel SFR08]]<br />
Etwas aufwendiger und genauer arbeiten die Ultraschallsensoren mit Laufzeitmessung. Hier wird ein Ultraschall-Impuls von 8-16 Perioden Dauer ausgesendet und es wird die Zeit gemessen, bis das Echo eintrifft. Mit diesem Verfahren kann die Zeit bis zum ersten Echo gemessen und über die Schallgeschwindigkeit der Abstand bestimmt werden. Die Genauigkeit liegt dabei im cm-Bereich. Es gibt Systeme mit anderen Verfahren: Kurz nach dem ersten Echo wird der Empfänger wieder empfindlich gemacht und dann werden weitere (maximal sieben) Echos registriert. Auf diese Weise kann man erkennen, ob hinter einem kleinen Hindernis (Ball) noch ein anderes (Wand) vorhanden ist. Bei ungünstiger Montage der Sensoren kann es auch vorkommen, dass der Sendepuls am eigenen Roboter reflektiert wird. Ein "normales" Echolot liefert dann keine brauchbaren Ergebnisse mehr - denkbar wäre das man einfach alle Ergebnisse weg läßt, die kleiner als 10 cm sind.<br />
<br />
====2. Optische Abtastung==== <br />
<br />
2.a. Optischer Reflexkoppler<br />
<br />
Bei den optischen Verfahren gibt es auch den einfachen Fall des Reflexsensors. Ein integriertes Sensor-IC gibt Stromimpulse für eine IR-LED aus und detektiert die Echos, die diesem Impulsmuster entsprechen. Man erreicht damit eine gute Unterdrückung der Umgebungshelligkeit, aber - wie auch im akustischen Fall - ist das Verfahren sehr von den Reflexionseigenschaften des Objektes abhängig und lässt kaum eine Bestimmung des Abstandes zu. <br />
Beispiel IRF471 Bild <br />
<br />
2.b. Optische Triangulation<br />
<br />
Sehr viel genauer arbeiten die Sensoren, die den Abstand bis zu einem Hindernis trigonometrisch vermessen. Sie bestehen aus einer IR-Diode und einem Empfänger, die zusammen mit einer Steuerung in einem Modul integriert sind. Die Impulse werden wieder nach einem Schema zur Unterdrückung der Umgebungshelligkeit ausgesendet und detektiert. Hier aber handelt es sich um einen gebündelten Lichtstrahl, der auf das Hindernis trifft und der seitlich versetzte Empfänger - eine Position Sensitive Device (PSD) - misst, aus welchem Winkel das Licht reflektiert wird und setzt den Winkel in einen Spannungswert um. Leider ist der Zusammenhang Entfernung - Spannung recht nichtlinear. Über entsprechende Formeln oder Tabellen ist eine einfache Umrechnung möglich.<br />
<br />
Beispiel Sharp [[Sensorarten|GP2D12]] <br />
<br />
http://www.roboternetz.de/bilder/gp2d12-nb.jpg<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/gp2d12diagram_a.jpeg<br />
<br />
2.c. Optische Laufzeitmessung<br />
<br />
Auch bei den optischen Verfahren gibt es Sensoren, die nach dem Laufzeitprinzip arbeiten. Sie sind allerdings bis heute Messgeräte, die noch so groß sind, dass sie kaum als Sensoren in Robotern eingesetzt werden. Ein vielversprechender Ansatz, einen Sensor als Modul zu realisieren, wurde vor ein paar Monaten von einem Fraunhofer Institut vorgestellt.<br />
<br />
Eine sehr hohe Genauigkeit der Abtastung der Umgebung liefern Laserscanner. Diese Sensoren tasten auf einer Ebene in einem Öffnungswinkel von 180 Grad die Entfernung bis zu den Hindernissen ab. Die Genauigkeit geht bis zu 1mm. Laserscanner sind sehr teuer.<br />
<br />
====3. Bildverarbeitung====<br />
<br />
Das Beispiel der optischen Abtastung mit trigonometrischer Messung funktioniert nicht nur mit einem PSD, sondern auch mit einer Kamera, mit der man den Winkel misst, unter dem der Teststrahl auf dem Objekt erscheint. <br />
Darüber hinaus ist es natürlich auch möglich, das Bild der Umgebung mit zwei Kameras stereoskopisch aufzunehmen und durch Bildverarbeitung die Abstände zu den einzelnen Objekten zu bestimmen.<br />
<br />
==Orientierung an künstlichen Markierungen==<br />
<br />
===1. Passive Markierungen===<br />
Künstliche Markierungen sind solche, die speziell zur Markierung geschaffen oder zur Orientierung ausgewählt und beschrieben sind. Ein typisches Beispiel für künstliche Markierungen sind Reflexmarken am Ende eines Gangs, durch den ein Roboter fahren soll. Er kann sich zunächst leicht am Verlauf des Gangs orientieren, zur Bestätigung, dass genau an einer bestimmten Stelle abgebogen werden soll, wird man zusätzlich eine Reflexmarke anbringen. Vorteilhaft ist eine passive Marke, die nicht mit Energie versorgt werden muss, denn die geringe Energie, die Marke zu finden, kann der autonom fahrende Roboter leicht selbst aufbringen. <br />
<br />
Viel häufiger als einzelne Reflexmarken sind noch dunkle Linien anzutreffen, denen ein Roboter folgen soll. Viele Einsteiger-Modelle, wie die Modelle von Lego und natürlich auch ASURO, sind dafür ausgerüstet. Am vorderen Ende des Fahrzeugs ist dazu eine Beleuchtung angebracht, die auf den Boden vor dem Fahrzeug gerichtet ist. Es reichen dann zwei lichtempfindliche Sensoren rechts und links von der Linie aus, um die Spurverfolgung zu kontrollieren und Abweichungen zu melden. Bei breiten Linien genügt ein einziger Sensor, der an einen ADC angeschlossen ist:<br />
* Mittlere Helligkeit heisst : Geradeaus fahren.<br />
* Zu dunkel: nach rechts fahren.<br />
* Zu hell: nach links fahren. <br />
Der Roboter fährt dann an einer Kante entlang, die andere intessiert nicht. Der Abstand vom Drehpunkt des Fahrzeugs im Zusammenspiel mit der Fahrtregelung ermöglicht dann unterschiedlich schnelle und sichere Aktionen zum Halten der Spur bei rascher Verfolgung der Linie.<br />
<br />
===2. Aktive Markierungen===<br />
<br />
* Infrarotbake - 1<br />
Ein noch recht einfach umzusetzendes Prinzip für eine aktive Bake. Über IR-LEDs wird ein codiertes Signal ausgestrahlt. Der Roboter besitzt einen Infrarotempfänger mit relativ geringem Öffnungswinkel mit nachgeschaltetem Decoder für das Signal. Hiermit kann der Roboter feststellen, ob der Empfänger gerade in Richtung der Bake zeigt. Da durch die Codierung des Signals (und evtl mehrere Trägerfrequenzen) mehr als einen Bake gleichzeitig aktiv sein darf, kann man mit mehreren Baken, die man nacheinader anpeilt und dabei die Winkel misst, auch die absolute Position feststellen.<br />
<br />
* Infrarotbake - 2 <br />
Deutlich einfacher geht es mit LEDs an unterschiedlichen Ecken des Spielfeldes, die jeweils von einem NE555 getaktet werden. Jede Bake hat eine eigene, feste Frequenz. Es gibt Projekte wo man unterschiedliche Frequenzfilter einschalten und mit einem IR-Empfänger auf einem Servo suchen kann, aus welcher Richtung welche Bake blinkt. Durch dieses Frequenzfilter ist der Roboter immun gegen andere Lichtquellen. Drei Baken genügen theoretisch.<br />
<br />
* Transponder<br />
Als sehr sicher haben sich - wie im Flugverkehr - aktive Transponder erwiesen. Diese werden durch einen Impuls abgefragt und antworten individuell. Dazu erzeugt der Roboter einen kurzen Ultraschallimpuls. Entweder mit Zielrichtung zum vermuteten Transponder oder ungerichtet. Sobald ein Transponder den Abfrageimpuls registriert, antwortet er mit einem oder mehreren Lichtblitzen, die auch unterschiedliche Farbe besitzen können. Aus der zwischenzeitlich vergangenen Zeit und der Empfangsrichtung lässt sich bei mehreren Transpondern der Standort berechnen. Beim [http://www.roboprogy.de ROBOprogy] lässt sich das eingebaute Programm für das Echolot sehr gut für diesen Zweck verwenden.<br />
<br />
* induktive Begrenzungsschleifen<br />
Dieses Verfahren wird vor allem bei einigen Rasenmäher-Robotern benutzt. Ein Draht wird am Rand der für den Roboter zulässigen Fläche ausgelegt (oder eingegraben). Über den Draht wird ein Signal gesendet, das von einem Empänger im Roboter empfangen wird, falls sich der Roboter dem Draht nähert.<br />
<br />
==Koppelnavigation== <br />
Als Koppelnavigation wird die fortlaufende Ortsbestimmung aus momentanem Kurs und Geschwindigkeit bezeichnet. Die so bestimmte Position wird dann auch als Koppelort bezeichnet. <br />
<br />
Ausgehend von Position <br />
Richtung, Geschwindigkeit und Dauer festlegen. <br />
<br />
Gezielte Vorgaben <br />
Kontrolle<br />
<br />
===Odometrie===<br />
Erfassung der Richtung und Weg/Geschwindigkeit durch <br />
*die Einschaltdauer des Antriebs<br />
*zählen der getätigten Steps von Schrittmotoren<br />
*sensorisch durch [[Sensorarten#Drehgeber_Sharp_GP1A30_und_GP1A38|spezielle Encoder]], aber auch Kugel-, Rad- und optische Mäuse<br />
<br />
==Trägheitsnavigation== <br />
Beschleunigung <br />
Winkelbeschleunigung <br />
<br />
Die Trägheitsnavigation ist eine Art der Koppelnavigation.<br />
Die Position wird hierbei durch Messung von Beschleunigungen und Drehungen bestimmt. Um zu wissen, welcher Beschleunigungssensor für welche Richtung im Raum zuständig ist, muss aber erstmal bestimmt werden, in welcher Lage sich der Roboter (vornehmlich Flugroboter, bei anderen Arten macht Trägheitsnavigation wenig Sinn) befindet. Ist nämich z.B. die Nase, beispielsweise bei einem Luftschiff, angehoben, misst der Beschleunigungssensor, der in Längsrichtung montiert ist, auch einen Teil der vertikalen Beschleunigung.<br />
Die Bestimmung der Lage erfolgt meist über Gyrometer. Diese geben die Drehung des Objekts um eine bestimmte Achse aus. Dieser Wert wird aufsummiert (integriert), der integrierte Wert ist dann die Drehung des Objekts um eine bestimmte Achse.<br />
Der Wert, den die Beschleunigungsensoren ausgeben, wird je nach Lage aufgeteilt und auf verschiedene Achsen aufsummiert, als Ergebnis hat man dann die Geschwindigkeit. Ein weiteres Aufsummieren ergibt den Weg, den das Objekt zurückgelegt hat - fertig.<br />
<br />
===Globale Orientierung===<br />
Globale Felder Erdmagnetfeld Luftdruck <br />
GPS<br />
<br />
===Kompass Höhenmesser===<br />
natürliche Felder zur globalen Orientierung <br />
Erdmagnetfeld, barometrischer Luftdruck<br />
<br />
===GPS===<br />
Globales Positions System. (siehe [http://de.wikipedia.org/wiki/Global_Positioning_System Wikipedia]) Ultimatives Navigationssystem mit Genauigkeit im Meterbereich und weltweiter Verwendbarkeit. Es ist aber für kleine Roboter und auch in geschlossenen Räumen nur bedingt zu verwenden, da der Satellitenempfang in Gebäuden schlecht ist und die Module weder klein noch preiswert sind.<br />
<br />
==Siehe auch==<br />
* [[Sensorarten]]<br />
<br />
==Weblinks==<br />
* [http://www.robotmaker.de/fernbed.html Eine beliebte Schaltung für eine solche IR-Bake] <br />
<br />
<br />
<br />
[[Kategorie:Robotikeinstieg]]<br />
[[Kategorie:Microcontroller]]<br />
[[Kategorie:Elektronik]]<br />
[[Kategorie:Grundlagen]]<br />
[[Kategorie:Praxis]]<br />
[[Kategorie:Sensoren]]</div>Rcsuhttps://rn-wissen.de/wiki/index.php?title=Regelungstechnik&diff=9484Regelungstechnik2006-11-04T20:00:53Z<p>Rcsu: /* Strecke */</p>
<hr />
<div>==Einleitung==<br />
Regelungen sind ein Bestandteil unseres Lebens und das nicht nur seit Erfindung der Dampfmaschine. Allein schon der aufrechte Gang funktioniert nur mit Regelung. Dabei wirken die Sinne als Sensoren, das Gehirn als Regler und die Muskeln als Aktuatoren. Weitere Regelungen in unserem Körper sind z.B. die Konstanthaltung der Körpertemperatur, der Blutdruck, die Anpassung der Pupille auf Helligkeitsänderungen usw. Im technischen Zeitalter ist der erste geschichtlich bedeutende Regler der Fliehkraftregler von James Watt, der für die Drehzahlregelung seiner Dampfmaschine eingesetzt wurde. Seitdem ist die Regelungstechnik aus keinem Technikbereich mehr wegzudenken. Die Regelungstechnik begegnet uns im täglichen Leben auf Schritt und Tritt: Der Temperaturregler der Zentralheizung, der Temperaturregler des Kühlschranks, der Regler für die Belichtungsautomatik im Fotoapparat, das ABS-System im Auto und die Netzspannungs- und Frequenzregelung des europäischen Versorgungsnetzes sind nur einige wenige Beispiele aus diesem Bereich. <br />
<br />
<br />
Der Begriff Regelung ist zu unterscheiden von dem im allgemeinen Sprachgebrauch oft synonym gebrauchten Begriff der Steuerung. Das Steuern ist ein rein vorwärts gerichteter Prozess ohne Rückkopplung. Die Ausgangsgröße wird dabei nicht überwacht und kann sich durch Störungen von außen verändern. Ein Beispiel ist die Steuerung eines Motors mit einer einstellbaren Spannung. Durch Laständerungen wird sich die Drehzahl des Motors ändern. Soll nun die Drehzahl konstant gehalten werden, bedarf es einer Rückkopplung um über die Spannung die Drehzahl anzupassen. Diese Rückkopplung ist das Kennzeichen einer Regelung. Das Regeln ist ein Vorgang, bei dem die Ausgangsgröße, im Beispiel die Drehzahl, fortlaufend überwacht wird und bei Abweichung über die Stellgröße, im Beispiel die Spannung, korrigiert wird. Der sich dabei ergebende Wirkungsablauf findet in einem geschlossenen Kreis, dem Regelkreis, statt.<br />
''Autor Waste''<br />
<br />
==Der Regelkreis==<br />
Das Prinzip einer Regelung ist das fortlaufende: '''Messen - Vergleichen - Stellen'''<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/Regelkreis1.gif<br />
<br />
<br />
{| border=0<br />
|'''Messen:'''<br />
|Die Regelgröße wird direkt oder mittels Sensoren gemessen.<br />
<br />
|-<br />
|'''Vergleichen:'''<br />
|Der Wert der Regelgröße wird mit dem Sollwert verglichen. Die Differenz ist die Regelabweichung.<br />
|-<br />
|'''Stellen:'''<br />
|Aus der Regelabweichung wird unter Berücksichtigung der dynamischen Eigenschaften der Regelstrecke die Stellgröße bestimmt.<br />
|}<br />
<br />
<br />
Ein Regelkreis dient dazu, eine vorgegebene physikalische Größe (Regelgröße) auf einen gewünschten Wert (Sollwert) zu bringen und dort zu halten, unabhängig von eventuell auftretenden Störungen.<br />
Um die Regelungsaufgabe zu erfüllen, muss der Augenblickswert der Regelgröße - der Istwert - gemessen und mit dem Sollwert verglichen werden. Bei auftretenden Abweichungen muss in geeigneter Art und Weise nachgestellt werden.<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/Regelkreis2.gif<br />
<br />
Ein typisches Beispiel für einen Regelkreis - eine Geschwindigkeitsregelung - wird im nächsten Bild gezeigt. Die Sollgeschwindigkeit ist 80 km/h. Durch eine äußere Störung, in dem Fall eine Steigung, verlangsamt sich das Fahrzeug auf 70 km/h. Die Abweichung wird durch das Tachometer erfasst und als Korrekturmaßnahme wird mehr Gas gegeben, um wieder auf die Sollgeschwindigkeit von 80 km/h zu kommen.<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/Regelkreis3.gif<br />
<br />
Um nun diese Aufgabe technisch zu lösen, gibt es die Regelungstechnik. Sie baut im wesentlichen auf die mathematische Beschreibung und Modellbildung des Systems Regelkreis. Zur Modellierung, Beschreibung und Simulation werden Blockschaltbilder mit diskreten Signalgliedern verwendet.<br />
<br />
Ein vereinfachtes Blockschaltbild eines Regelkreises, wie es oft in der Regelungstechnik verwendet wird, ist in der nachfolgenden Abbildung dargestellt. Ein Regelkreis besteht entsprechend der Abb. aus den Hauptteilen Regler und Regelstrecke.<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/Regelkreis4.gif<br />
<br />
'''Regler:''' Ist der Teil des Regelkreises, der unter Berücksichtigung der dynamischen Eigenschaften der Regelstrecke aus der Regelabweichung die Korrekturmaßnahmen zum Ausregeln ergreift.<br />
<br />
'''Regelstrecke:''' Ist der Teil des Regelkreises, der vom Regler ausgeregelt werden soll.<br />
<br />
'''Führungsgröße (Sollwert) w:''' Vorgegebener Wert, auf dem die Regelgröße durch die Regelung gehalten werden soll. Sie ist eine von der Regelung nicht beeinflusste Größe und wird von außen zugeführt.<br />
<br />
'''Regelgröße (Istwert) x:''' Ist die Ausgangsgröße der Regelstrecke, die zum Zweck des Regelns erfasst und zum Vergleich rückgeführt wird. In vielen Fällen ist in der Rückführung noch eine Messeinrichtung (Sensor) gezeichnet, die den Istwert erfasst, hier der Einfachheit halber weggelassen.<br />
<br />
'''Regelabweichung e:''' Differenz zwischen Führungsgröße und Regelgröße '''e = w - x''', bildet die eigentliche Eingangsgröße des Reglers.<br />
<br />
'''Stellgröße y:''' Ausgangsgröße der Regeleinrichtung und zugleich Eingangsgröße der Strecke. Sie überträgt die steuernde Wirkung des Reglers auf die Strecke.<br />
<br />
'''Störgröße z:''' Eine von außen wirkende Größe, die eine Änderung des Istwertes der Regelgröße bewirkt und einen Regelvorgang auslöst.<br />
<br />
<br />
==Die Regelstrecke==<br />
Die Regelstrecke stellt den zu regelnden Teil bzw. den zu regelnden Prozess dar und umfasst normalerweise eine Reihe von einzelnen Gliedern. Die Glieder werden entsprechend ihrem Zeitverhalten charakterisiert. Um das Zeitverhalten herauszufinden, legt man an den Eingang ein Testsignal an und zeichnet die Antwort auf. Im einfachsten Fall wird der Eingang mit einer sprunghaften Änderung beaufschlagt. Die Antwort auf die sprunghafte Änderung der Eingangsgröße wird Sprungantwort genannt und gibt Aufschluss über die Art der Regelstrecke und kann eventuell bereits genutzt werden, um die Parameter der Regelstrecke zu bestimmen.<br />
<br />
Für den Aufbau eines gut funktionierenden Regelkreises und die Auslegung von Reglern ist es eine Voraussetzung zu wissen, wie die Regelstrecke reagiert. Ohne ein genaues Wissen um das dynamische Verhalten der Regelstrecke ist es nicht möglich geeignete Regler auszuwählen und diese zu parametrieren.<br />
<br />
Die wichtigsten dynamischen Grundelemente zur Charakterisierung der Regelstrecke sind nachfolgend aufgelistet. Jedes Element wird mit einem Block dargestellt und darin durch ein Symbol oder der stilisierten Sprungantwort gekennzeichnet.<br />
<br />
----<br />
<br />
===Proportionalglied (P-Glied)===<br />
http://www.roboternetz.de/wiki/uploads/Main/pglied.gif<br />
<br />
Die einfachste Art einer Regelstrecke.<br />
Beispiel: Hebel, Getriebe, Verstärker, Spannungsteiler,<br />
Sensoren bei denen das Zeitverhalten vernachlässigt werden kann<br />
<br />
----<br />
<br />
===Integrator (I-Glied)===<br />
http://www.roboternetz.de/wiki/uploads/Main/iglied.gif<br />
<br />
Strecke ohne Ausgleich, ist häufig in Regelstrecken vorhanden.<br />
Beispiel: Beschleunigung -> Geschwindigkeit -> Weg,<br />
Strom -> Kondensatorspannung<br />
<br />
----<br />
<br />
===Verzögerungsglied 0.Ordnung (Totzeitglied)===<br />
http://www.roboternetz.de/wiki/uploads/Main/ttglied.gif<br />
<br />
Entsteht durch Laufzeiten von Material oder Signalen. Je größer die Totzeit einer Regelstrecke ist, um so schwieriger ist sie zu regeln.<br />
Beispiel: Förderband, Rechenzeit, A/D-Wandler<br />
<br />
----<br />
<br />
===Verzögerungsglied 1.Ordnung (PT1-Glied)===<br />
http://www.roboternetz.de/wiki/uploads/Main/pt1glied.gif<br />
<br />
Viele einfache Regelstrecken haben ein solches Verhalten bzw. können näherungsweise damit beschrieben werden. Ist ein P-Glied mit nicht vernachlässigbarem Zeitverhalten.<br />
Beispiel: Gleichstrommotor (Spannung -> Drehzahl), näherungsweise;<br />
Widerstand-Kondensator-Schaltung (RC-Glied)<br />
<br />
----<br />
<br />
===Verzögerungsglied 2.Ordnung (PT2-Glied)===<br />
Man unterscheidet schwingungsfähige und nicht schwingungsfähige PT2-Glieder. Zur Charakterisierung gibt es die Parameter Dämpfung D und Eckfrequenz w<sub>0</sub> oder die Zeitkonstanten T<sub>1</sub> und T<sub>2</sub>. Für Dämpfung D<1 ist es schwingungsfähig.<br />
<br />
'''Schwingfähiges PT2-Glied:'''<br/><br />
http://www.roboternetz.de/wiki/uploads/Main/pt2aglied.gif<br />
Beispiel: Mechanischer Schwinger (Feder-Masse-System),<br />
elektrischer Schwingkreis (RLC-Kreis)<br />
<br />
<br />
'''Nicht schwingfähiges PT2-Glied:'''<br/><br />
http://www.roboternetz.de/wiki/uploads/Main/pt2bglied.gif<br />
Beispiel: Zwei hintereinander geschaltete PT1-Glieder,<br />
Gleichstrommotor (Spannung -> Drehzahl), Induktivität berücksichtigt<br />
<br />
==Der Regler==<br />
Der Regler hat die Aufgabe, die Regelgröße zu messen, sie mit dem Sollwert zu vergleichen und bei Abweichungen die Stellgröße so zu verändern, dass Soll- und Istwert der Regelgröße wieder übereinstimmen bzw. die Differenz minimal wird.<br />
<br />
Die Wahl eines bestimmten Reglertyps richtet sich nach dem geforderten Zeitverhalten und der geforderten Regelgenauigkeit der Regelstrecke. Nachfolgend finden Sie eine Zusammenfassung der wichtigsten klassischen Reglertypen:<br />
<br />
===P-Regler===<br />
Der proportionalwirkende Regler multipliziert die Regelabweichung mit seinem Verstärkungsfaktor '''Kp''' und gibt das Ergebnis unverzögert weiter. Er unterscheidet sich prinzipiell nicht vom dynamischen Element P-Glied, ist nur eben künstlich hergestellt für den Einsatz als Regler. Der P-geregelte Kreis ist einfach und mittelschnell im Vergleich zu anderen Regelungen. Das Problem ist die bleibende Regelabweichung!<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/pregler.gif<br />
<br />
'''Software P-Regler:'''<br />
y = Kp * e<br />
<br />
----<br />
<br />
===I-Regler===<br />
Der integralwirkende Regler summiert die Regelabweichung über der Zeit auf und multipliziert die Summe (d.h. das Integral) mit dem Faktor '''Ki'''. Je länger eine Regelabweichung ansteht, desto größer wird die Stellgröße des I-Reglers. Er unterscheidet sich prinzipiell nicht vom dynamischen Element I-Glied, ist nur eben künstlich hergestellt für den Einsatz als Regler. Der I-geregelte Kreis ist langsam im Vergleich zu anderen Regelungen. Er hat aber den Vorteil, dass die Abweichung vollständig eliminiert wird.<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/iregler.gif<br />
<br />
'''Software I-Regler:'''<br />
esum = esum + e<br />
y = Ki * Ta * esum<br />
<br />
'''esum''' ist die Summe aller bisherigen Abweichungen '''e'''. Der Parameter des Software I-Reglers ist abhängig von der Rechenschrittweite '''Ta''' (Abtastzeit). Je öfter gerechnet wird, desto öfter wird auch hinzugezählt (aufintegriert). Eine kleine Abtastzeit erfordert also einen kleineren Faktor, dies wird durch die Multiplikation mit '''Ta''' verwirklicht.<br />
<br />
----<br />
<br />
===PI-Regler===<br />
Der PI-Regler ist die Kombination aus P- und I-Regler und kombiniert den Vorteil des P-Reglers, nämlich schnelle Reaktion, mit dem Vorteil des I-Reglers, der exakten Ausregelung. Der PI-geregelte Kreis ist also genau und mittelschnell.<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/piregler.gif<br />
<br />
'''Software PI-Regler:'''<br />
esum = esum + e<br />
y = Kp * e + Ki * Ta * esum<br />
<br />
----<br />
<br />
===PD-Regler===<br />
Der proportional-differential wirkende Regler kombiniert den P-Regler mit einem D-Anteil. <br />
Der D-Anteil bewertet die Änderung einer Regelabweichung (er differenziert) und berechnet so deren Änderungsgeschwindigkeit. Diese wird mit dem Faktor '''Kd''' multipliziert und zum P-Anteil hinzuaddiert. Der PD-Regler reagiert damit schon auf Ankündigungen von Veränderungen, das bewirkt sozusagen ein Vorhalten beim Regeln.<br />
<br />
Der PD-geregelte Kreis ist sehr schnell im Vergleich zu anderen Regelungen, und manche Regelkreise (solche mit zweifacher Integration) sind ohne D-Anteil überhaupt nicht stabilisierbar. Das Problem der proportionalen Regler, die bleibende Regelabweichung, ist beim PD-Regler allerdings weiterhin vorhanden!<br />
<br />
Ein Nachteil aller Regler mit D-Anteil kann die Unruhe im Kreis sein. Ist das Sensorsignal verrauscht, so wird dieses Rauschen durch die Differenziation weiter verstärkt und wieder in den Kreis hineingegeben. Dadurch wird der Aktuator stärker belastet. Macht der Regler insbesondere sehr hohe Ausschläge als Folge von schnellen Änderungen des Sollwertes, dann kann es sein, dass das Stellglied oder der Aktuator diese nicht umsetzen kann - die Wirkung des D-Anteils würde dann durch die Begrenzung verpuffen, und das Einschwingverhalten wäre nicht wie berechnet, sondern meist langsamer. Dies gilt aber nur für große Sprünge. Bei den normalen kleinen Regelvorgängen zum Ausgleich von Störeinflüssen wirkt der D-Anteil wie beabsichtigt.<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/pdregler.gif<br />
<br />
'''Software PD-Regler:'''<br />
y = Kp * e + Kd * (e – ealt)/Ta<br />
ealt = e<br />
<br />
Mit der neuesten Regelabweichung '''e''' und der vorhergehenden '''ealt''' wird der D-Anteil berechnet. Die Differenziation erfolgt damit angenähert durch Bildung des Differenzquotienten (e - ealt)/Ta.<br />
<br />
----<br />
<br />
===PID-Regler===<br />
Der PID Regler ist der universellste der klassischen Regler und vereinigt die guten Eigenschaften der anderen Regler. Zur Beschreibung der Eigenschaften des P-, I- und D-Anteils siehe die anderen Reglertypen. Der PID-geregelte Kreis ist genau und sehr schnell. In den meisten Anwendungen kommt deshalb der PID-Regler zum Einsatz.<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/pidregler.gif<br />
<br />
'''Software PID-Regler:'''<br />
esum = esum + e<br />
y = Kp * e + Ki * Ta * esum + Kd * (e – ealt)/Ta<br />
ealt = e<br />
<br />
<br />
'''Alternative PID-Reglerstruktur:'''<br />
<br />
Es gibt 2 Darstellungsmöglichkeiten, die inhaltlich identisch sind. In der analogen Regeltechnik ist noch die Darstellung mit der Nachstellzeit '''Tn''' und der Vorhaltezeit '''Tv''' üblich. Die Umrechnung zwischen den beiden Strukturen ist mit den angegebenen Formeln möglich.<br />
<br />
[[Bild:PIDstruktur.gif]]<br />
<br />
==Vergleich der Reglertypen==<br />
In der folgenden Abbildung ist der Vergleich von P-, I-, PI-, PD- und PID-Regler in einem Regelkreis mit PT2-Glied als Regelstrecke dargestellt. Es ist deutlich zu sehen, dass die Regler ohne I-Anteil (P und PD) eine bleibende Regelabweichung aufweisen. Erst die Regler mit I-Anteil können auf den Endwert von 1 ausregeln. Beim reinen I-Regler geht das so langsam, dass es gar nicht mehr auf dem Diagramm zu sehen ist. Der Hauptzweck eines I-Anteils ist also die Vermeidung bleibender Regelabweichungen. Daher ist ein<br />
I-Anteil normalerweise nicht nötig, wenn die Strecke schon einen I-Anteil besitzt.<br />
Ausnahme: Es wird ein doppelter I-Anteil zur Vermeidung von Schleppfehlern benötigt.<br />
<br />
Die schnellsten Regler sind die mit einem D-Anteil (PD und PID). Der D-Anteil kommt deshalb hauptsächlich zum Einsatz, wenn schnelle Dynamik gefragt ist oder die Strecke selbst schon instabil ist. Voraussetzung für die Schnelligkeit ist allerdings, dass keine Begrenzung im Stellglied oder Aktuator auftritt. In der Praxis ist eine Begrenzung meistens nicht zu vermeiden, deshalb gilt die Sprungantwort in der Praxis nur für kleine Sprünge.<br />
<br />
Die Regler ohne D-Anteil, aber mit P-Anteil (P und PI) sind mittelschnell. Für einfache Regelaufgaben reicht auch oft schon ein reiner P-Regler aus, wenn die bleibende Regelabweichung vernachlässigt werden kann oder weil die Strecke schon einen I-Anteil besitzt.<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/vergleich.gif<br />
<br />
Aus diesem Vergleich wird klar, warum der PID-Regler so beliebt ist, er vereinigt die Vorzüge aller anderen Regler.<br />
<br />
==Digitaler Regler==<br />
Durch die Einführung leistungsfähiger und preiswerter Mikroprozessoren hat sich der digitale Regler mehr und mehr durchgesetzt. Im Gegensatz zum analogen Regler werden die Signale nicht mehr analog mit Operationsverstärker verarbeitet, sondern mit einem Mikroprozessor errechnet. Bevor das Signal vom Mikroprozessor bearbeitet werden kann, muss zunächst das Eingangssignal (Istwert) mit einem Analog-Digital-Umsetzer (ADU) digitalisiert werden, d.h. in einen Zahlenwert umgewandelt werden. Das vom digitalen Regler errechnete Ausgangssignal (Stellgröße) wird wiederum zur Ansteuerung des Stellglieds mit einem Digital-Analog-Umsetzer (DAU) in ein analoges Signal gewandelt. Funktionell unterscheiden sich analoger und digitaler Regler jedoch nicht wesentlich, es müssen nur die Schnittstellen angepasst werden.<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/digreg.gif<br />
<br />
Da die Wandlungen und das Regelprogramm eine gewisse Zeit beanspruchen, vergeht pro Durchlauf die sogenannte Takt- oder Abtastzeit. Diese Zeit wirkt sich im Regelkreis wie ein Totzeitglied mit der halben Abtastzeit als Totzeit aus. Das verursacht eine zusätzliche Phasenverschiebung, was sich ungünstig auf die Stabilität des Regelkreises auswirken kann. Ist die Abtastzeit sehr viel kleiner als die dominierende Zeitkonstante der Strecke, dann spricht man von quasi-kontinuierlichem Verhalten, da sich der digitale Regler ähnlich wie ein analoger Regler verhält. Der digitale Regler kann dann wie ein analoger dimensioniert werden. Ist die Abtastzeit größer, kann sie nicht mehr vernachlässigt werden, dann muss sie auch beim Reglerentwurf berücksichtigt werden.<br />
<br />
'''Vorteile digitaler Regler:'''<br />
* Die Verarbeitung erfolgt driftfrei.<br />
* Es lassen sich nichtlineare Kennlinien, intelligentes Verhalten oder adaptive Regelung leichter realisieren.<br />
* Der Regler kann bei Bedarf per Software neu konfiguriert und parametriert werden<br />
<br />
<br />
'''Digitale Realisierung am Beispiel des PID-Algorithmus'''<br />
<br />
Ausgehend von der Differentialgleichung für kontinuierliche Systeme wird die Differenzengleichung für zeitdiskrete Systeme erstellt. Daraus folgt dann der Stellungsalgorithmus in allgemeiner Form.<br />
<br />
Ta = Abtastzeit; k = Nummer der Abtastung<br />
<br />
Kp = Proportionalbeiwert; Ki = Integrierbeiwert; Kd = Differenzierbeiwert<br />
<br />
<!-- http://www.roboternetz.de/wiki/uploads/Main/pidformel.gif --><br />
<br />
'''Differentialgleichung für den kontinuierlichen PID-Regler:'''<br />
:<math><br />
y(t) \;=\; Kp \!\cdot\! e(t) <br />
+ Ki \int_0^t e(\tau) \, d\tau <br />
+ Kd \, \frac{de(t)}{dt}<br />
</math><br />
<br />
'''Differenzengleichung für den zeitdiskreten PID-Regler:'''<br />
:<math><br />
y_k \;=\; Kp \!\cdot\! e_k<br />
+ Ki \!\cdot\! Ta \sum_{i=0}^k e_i<br />
+ \frac{Kd}{Ta}\, ( e_k - e_{k-1} )<br />
</math><br />
<br />
'''PID Stellungs-Algorithmus:<br />
:''' <math><br />
y_k \;=\; y_{k-1} <br />
+ q_0 \!\cdot\! e_k<br />
+ q_1 \!\cdot\! e_{k-1}<br />
+ q_2 \!\cdot\! e_{k-2}<br />
</math><br />
<br />
Mit den Parametern:<br />
:<math><br />
q_0 \,=\, Kp + Ki \!\cdot\! Ta + \frac{Kd}{Ta}<br />
\, , \quad<br />
q_1 \,=\, -Kp - 2 \, \frac{Kd}{Ta}<br />
\, , \quad<br />
q_2 \,=\, \frac{Kd}{Ta}<br />
</math><br />
<br />
<br />
'''Umsetzung in Code nach der Differenzengleichung:'''<br />
<br />
Im Code wurden einige Variablen umbenannt, da die Indexschreibweise nicht möglich ist.<br />
<br />
y entspricht y<sub>k</sub>, e entspricht e<sub>k</sub>, ealt entspricht e<sub>k-1</sub>, esum ist die Summenbildung<br />
<br />
In der Praxis wird man die Ausdrücke Ki*Ta und Kd/Ta vorab berechnen und mit Ersatzvariablen in die Reglergleichung einsetzen. Der Verständlichkeit halber wurde es hier im Code belassen. Des weiteren kann eine Begrenzung von esum notwendig werden, um einen Variablenüberlauf oder Windup-Effekt zu vermeiden.<br />
<br />
Der nachfolgende Code wird im Rhythmus der Abtastzeit Ta immer wieder aufgerufen.<br />
e = w - x; //Vergleich<br />
esum = esum + e; //Integration I-Anteil<br />
y = Kp*e + Ki*Ta*esum + Kd/Ta*(e – ealt); //Reglergleichung<br />
ealt = e;<br />
----<br />
<br />
'''Alternative Umsetzung in Code nach dem Stellungsalgorithmus:'''<br/><br />
y entspricht y<sub>k</sub>, yalt entspricht y<sub>k-1</sub>, e entspricht e<sub>k</sub>, ealt entspricht e<sub>k-1</sub>, ealt2 entspricht e<sub>k-2</sub><br />
e = w - x; //Vergleich<br />
y = yalt + q0*e + q1*ealt + q2*ealt2; //Reglergleichung<br />
ealt2 = ealt;<br />
ealt = e;<br />
yalt = y;<br />
<br />
==Dimensionierung des Reglers==<br />
Die Auswahl des Reglertyps ist heutzutage bei den digitalen Reglern nicht mehr so kritisch, da der Mehraufwand in Software für einen PID-Regler gegenüber einfacheren Typen kaum zu Buche schlägt. Im Prinzip ist man deshalb mit einem PID-Regler fast immer auf der richtigen Seite, mit einer Ausnahme, bei einer Strecke mit reiner Totzeit. Die folgende Tabelle gibt eine Hilfestellung zur Auswahl des Reglers. <br />
<br />
{| border=1 cellpadding=4<br />
|+ '''Geeignete Reglertypen für die unterschiedlichen Regelstrecken'''<br />
|rowspan=2 |'''Strecke'''<br />
|colspan=4 |<div align="center">'''Regler'''</div><br />
|-<br />
|<div align="center">'''P'''</div><br />
|<div align="center">'''PD'''</div><br />
|<div align="center">'''PI'''</div><br />
|<div align="center">'''PID'''</div><br />
|-<br />
|reine Totzeit<br />
|&#160; <br />
|&#160; <br />
|<div align="center">geeignet</div><br />
|&#160; <br />
|-<br />
|1.Ordnung mit kleiner Totzeit<br />
|&#160; <br />
|&#160; <br />
|gut geeignet<br />
|gut geeignet<br />
|-<br />
|2.Ordnung mit kleiner Totzeit<br />
|&#160; <br />
|&#160; <br />
|&#160; <br />
|gut geeignet<br />
|-<br />
|höhere Ordnung<br />
|&#160; <br />
|&#160; <br />
|&#160; <br />
|gut geeignet<br />
|-<br />
|I-Glied und Verzögerung<br />
|geeignet<br />
|gut geeignet<br />
|<div align="center">geeignet</div><br />
|gut geeignet<br />
|}<br />
<br />
Nachdem man einen geeigneten Reglertyp ausgewählt hat, stellt sich noch die Frage, wie man die Reglerparameter Kp, Ki, und Kd optimiert. Im Laufe der Zeit wurden viele Methoden zur Dimensionierung der Reglerparameter entwickelt, aber es können hier nicht alle aufgelistet werden. Diese Aufzählung beschränkt sich auf die einfacheren und gängigen Methoden der Parametrierung.<br />
<br />
===Dimensionierung durch Probieren (Empirisches Einstellen)===<br />
Diese Methode ist geeignet um einfache Systeme zu dimensionieren, insbesondere wenn man bereits Erfahrung mit ähnlichen Regelkreisen hat. Man fängt mit einer unkritischen Einstellung (Kp klein, Ki = 0, Kd = 0) an und erhöht langsam die Verstärkung Kp, bis die Dämpfung schlecht wird. Falls eine Schwingneigung auftritt, muss die Verstärkung wieder etwas zurück genommen werden. Dann nimmt man allmählich den Integralanteil hinzu, erhöht ihn in Schritten und probiert solange herum, bis das Ergebnis einigermaßen passt. Bei Bedarf kann noch ein D-Anteil (PID-Struktur) probiert werden. Wenn dabei die Regelung stabiler wird, kann noch mal Kp und Ki erhöht werden, bis man endgültig zufrieden ist. <br />
<br />
Es dürfte klar sein, dass so eine Optimierung im Blindflug nicht immer das Optimum ergibt, aber es ist eine gängige praktische Methode zur Ermittlung der Reglerparameter. Besser sieht es aus, wenn in einer Simulation empirisch optimiert wird. Zusätzliche Informationen über die Stabilität erlauben hierbei eine gezieltere Optimierung. Zudem ist das Probieren im Simulator gefahrlos möglich, was in der Realität nicht immer der Fall ist. Geeignete Programme zur Simulation sind [[Regelungstechnik#Hilfsprogramme_zur_Analyse_und_Optimierung| hier]] vorgestellt. Allerdings muss für eine Simulation die Regelstrecke bekannt sein. Ist das nicht der Fall, so bleibt nur das einfache Probieren oder das Einstellen nach der Schwingungsmethode wie im folgenden beschrieben.<br />
<br />
===Dimensionierung nach Einstellregeln===<br />
Die Dimensionierung nach Rezept ist eine praktische Methode ohne viel Rechnerei und Hilfsmittel, eine Methode also für den Praktiker. Die bekanntesten Einstellregeln sind von Ziegler/Nichols und von Chien/Hrones/Reswick. Darüber hinaus gibt es noch eine Vielzahl anderer Einstelltabellen, auf die hier aber verzichtet wird, das würde den Rahmen dieses Artikels sprengen. An der Vielzahl kann man schon ersehen, dass es kein universell gültiges Rezept gibt und mit diesen Tabellen nicht unbedingt das Optimum erreicht wird, eine Nachoptimierung kann nötig sein.<br />
<br />
Bei Ziegler/Nichols unterscheidet man noch zwischen der Schwingungsmethode und der Einstellung nach der Sprungantwort.<br />
<br />
'''Einstellung nach der Schwingungsmethode:'''<br/><br />
Bei der Schwingungsmethode nach Ziegler/Nichols werden die Reglerparameter so verstellt, dass die Stabilitätsgrenze erreicht wird und der Regelkreis zu schwingen beginnt, d.h. die Regelgröße periodische Schwingungen ausführt. Aus der so gefundenen Einstellung können die Reglerparameter ermittelt werden. Dieses Verfahren ist nur auf Regelstrecken anwendbar, bei denen ein Schwingen keinen Schaden anrichtet und die überhaupt instabil gemacht werden können. Die Vorgehensweise ist folgende:<br />
# Einstellung des Reglers als reinen P-Regler: Ki = 0 und Kd = 0<br />
# Die Reglerverstärkung Kp wird solange vergrößert, bis sich der geschlossene Regelkreis an der Stabilitätsgrenze befindet und Dauerschwingungen ausführt.<br />
# Der dabei eingestellte Wert Kp wird als Kp<sub>krit</sub> bezeichnet. <br />
# Die Periodendauer der sich einstellenden Dauerschwingung T<sub>krit</sub> wird gemessen.<br />
# Anhand der folgenden Tabelle werden dann die Reglerparameter bestimmt.<br />
<br />
{| cellpadding=10<br />
|<br />
{| border=1 cellpadding=4<br />
|'''Regler'''<br />
|<div align="center">'''Kp'''</div><br />
|<div align="center">'''Tn'''</div><br />
|<div align="center">'''Tv'''</div><br />
|-<br />
|<div align="center">'''P'''</div><br />
|0.5*Kp<sub>krit</sub><br />
|&#160;<br />
|&#160;<br />
|-<br />
|<div align="center">'''PI'''</div><br />
|0.45*Kp<sub>krit</sub><br />
|<div align="center">0.85*T<sub>krit</sub></div><br />
|&#160;<br />
|-<br />
|<div align="center">'''PID'''</div><br />
|0.6*Kp<sub>krit</sub><br />
|0.5*T<sub>krit</sub><br />
|0.12*T<sub>krit</sub><br />
|}<br />
|<br />
{| border=0 cellpadding=4<br />
|'''Ki = Kp/Tn'''<br />
|-<br />
|'''Kd = Kp*Tv'''<br />
|}<br />
|}<br />
<br />
Der Vorteil dieses Verfahrens liegt darin, dass die Untersuchung während des Betriebes und ohne Öffnen des Regelkreises durchgeführt werden kann. Der Nachteil an dem Verfahren ist, dass es nur auf Strecken angewendet werden kann, die auch zum Schwingen gebracht werden können. <br />
<br />
'''Einstellung nach der Sprungantwort:'''<br/><br />
Diese Methode der Parameterbestimmung beruht auf der Aufnahme der Sprungantwort der Regelstrecke. Es eignet sich auch für Strecken, die nicht zum Schwingen gebracht werden können. Der Regelkreis muss allerdings geöffnet werden.<br />
Vorgehensweise: Es wird die Sprungantwort aufgenommen und durch Einzeichnen der Wendetangente die Verzugszeit Tu und die Ausgleichszeit Tg ermittelt.<br />
<br />
[[Bild:Tu_Tg.gif]]<br />
<br />
Mit den so festgestellten Werten werden die Parameter für den einzusetzenden Regler gemäß nachstehenden Tabellen ermittelt.<br />
<br />
{| cellpadding=10<br />
|<br />
{| border=1 cellpadding=4<br />
|+ Einstellregeln nach Ziegler/Nichols:<br />
|'''Regler'''<br />
|<div align="center">'''Kp'''</div><br />
|<div align="center">'''Tn'''</div><br />
|<div align="center">'''Tv'''</div><br />
|-<br />
|<div align="center">'''P'''</div><br />
|1/Ks*Tg/Tu<br />
|&#160;<br />
|&#160;<br />
|-<br />
|<div align="center">'''PI'''</div><br />
|0.9/Ks*Tg/Tu<br />
|3.3*Tu<br />
|&#160;<br />
|-<br />
|<div align="center">'''PID'''</div><br />
|1.2/Ks*Tg/Tu<br />
|2*Tu<br />
|0.5*Tu<br />
|}<br />
|<br />
|<br />
{| border=1 cellpadding=4<br />
|+ Einstellregeln nach Chien/Hrones/Reswick<br />
|'''Regler'''<br />
|<div align="center">'''Kp'''</div><br />
|<div align="center">'''Tn'''</div><br />
|<div align="center">'''Tv'''</div><br />
|-<br />
|<div align="center">'''P'''</div><br />
|0.3/Ks*Tg/Tu<br />
|&#160;<br />
|&#160;<br />
|-<br />
|<div align="center">'''PI'''</div><br />
|0.35/Ks*Tg/Tu<br />
|1.2*Tu<br />
|&#160;<br />
|-<br />
|<div align="center">'''PID'''</div><br />
|0.6/Ks*Tg/Tu<br />
|<div align="center">Tg</div><br />
|0.5*Tu<br />
|}<br />
|}<br />
<br />
{| cellpadding=10<br />
|<br />
{| border=1 cellpadding=4<br />
|'''Ki = Kp/Tn'''<br />
|-<br />
|'''Kd = Kp*Tv'''<br />
|}<br />
|<br />
{| cellpadding=4 width=420<br />
|Die Parameter Tn und Tv sind aus der analogen Regelungstechnik und sind dort sehr geläufig. Die Umrechnung in die Parameter Ki und Kd erfolgt mit nebenstehenden Formeln. Siehe auch [[Regelungstechnik#PID-Regler| PID-Regler]]<br />
|}<br />
|}<br />
<br />
===Dimensionierung mit dem Bodediagramm===<br />
Ein Bode-Diagramm ist die grafische Darstellung des Frequenzganges. Es werden der Betrag der Übertragungsfunktion (Amplitudengang) und der Verlauf des Phasenwinkels (Phasengang) als Funktion der Frequenz aufgetragen. Die Frequenzachse und die Amplitudenachse werden logarithmisch dargestellt. Die logarithmische Darstellung hat den Vorteil, dass eine Multiplikation auf eine einfache Addition zurückgeführt wird. Somit wird eine Hintereinanderschaltung von Systemen im Blockschaltbild zu einer einfachen Addition im Bodediagramm.<br />
<br />
Das Zeitverhalten des rückgekoppelten Regelkreises hängt entscheidend vom Verlauf<br />
des Frequenzganges der offenen Regelschleife in der Umgebung des Durchtretens durch<br />
die 0dB-Achse ab. In der Regelungstechnik wird daher der offene Regelkreis im Bode-Diagramm aufgetragen. Das erlaubt einen schnellen Überblick über Stabilität und möglichen Reserven zur Optimierung. Ein Kriterium für die Stabilität der Schleife ist der Phasenrand und der Amplitudenrand. Der Phasenrand ist der Abstand (Phasenreserve) zur -180°-Linie bei der Durchtrittsfrequenz. Die Durchtrittsfrequenz ist diejenige Frequenz, bei der der Amplitudengang durch die 0dB-Linie geht. Siehe auch folgendes Bode-Diagramm.<br />
<br />
[[Bild:Phasenrand.gif]]<br />
<br />
{| {{Blauetabelle}}<br />
|'''Regel:''' Eine geschlossene Regelschleife arbeitet genau dann stabil, wenn der Phasenrand positiv ist.<br />
|}<br />
Wird diese Bedingung verletzt, so wird in diesem Frequenzbereich die im Rückführzweig der Regelung eingebrachte Gegenkopplung zu einer Mitkopplung und das System kann schwingen.<br />
<br />
'''Beim Reglerentwurf sind folgende Punkte zu beachten:'''<br />
* Der Phasenrand muss positiv sein. Der geschlossene Regelkreis kann sonst instabil sein. <br />
* Je größer der Phasenrand ist, desto größer ist die Stabilitätsreserve des Regelkreises und desto höher ist die Dämpfung des Regelkreises. Üblich sind Werte von 40°...70° für gutes Führungsverhalten und 20°...50° für gutes Störverhalten.<br />
* Die Durchtrittsfrequenz ist ein Maß für die Schnelligkeit des Regelkreises, je höher, desto schneller ist die Reaktion auf Änderungen der Führungsgröße oder Störungen.<br />
<br />
<br />
Hier ein Beispiel zur Dimensionierung mit dem Bode-Diagramm.<br />
<br />
[[Bild:Bode1.gif]]<br />
<br />
Die Strecke ist rot dargestellt und besteht in dem Beispiel aus einem nicht schwingfähigem PT2-Glied. Man sucht sich den Punkt, wo die Strecke für sich alleine noch ausreichend Phasenreserve hat, z.B. 70°. In dem Beispiel also die Frequenz, bei der die Strecke -110° Phasendrehung aufweist. Das ist etwa bei 15Hz. Da hat die Strecke ungefähr eine Dämpfung von 25dB. Wenn man nun diese Dämpfung durch eine Verstärkung von 25dB kompensiert, dann wird dieser Punkt zur Durchtrittsfrequenz. D.h. man wählt den P-Anteil des Reglers Kp=18, denn 25dB entspricht ungefähr dem Faktor 18. Um die Regelabweichung zu minimieren, wird noch ein I-Anteil hinzugefügt. Üblicherweise wählt man für die Grenzfrequenz des PI-Reglers die Grenzfrequenz des dominierenden Streckenteils, in dem Beispiel ca. 1.4Hz. Damit ergibt sich ein I-Anteil von 170. Im Bode-Diagramm ist der PI-Regler als schwarze Kurve eingezeichnet. Die Addition der Strecke und des Reglers im Bode-Diagramm führt dann zum Frequenzgang des offenen Regelkreises (blaue Kurve). Die resultierende Durchtrittsfrequenz ist wie gewählt bei etwa 15Hz. Der Phasenrand hat sich durch den I-Anteil im Regler auf ca. 60° reduziert, ist aber noch ausreichend. Das Einschwingen des geschlossenen Regelkreises für diese Dimensionierung sieht dann folgendermaßen aus:<br />
<br />
[[Bild:Sprungantwort3.gif]]<br />
<br />
Bei Bedarf könnte noch ein D-Anteil (PID-Regler) hinzugenommen werden, das würde die Phase anheben und man könnte dadurch die Durchtrittsfrequenz weiter nach oben schieben. In der Praxis wird dies allerdings wegen der wahrscheinlichen Begrenzung des Stellglieds kein schnelleres Einschwingen mehr bringen. <br />
<br />
Begrenzungen oder Nichtlinearitäten werden bei der Dimensionierung mit dem Bode-Diagramm nicht berücksichtigt. Das ist ein Nachteil dieser Methode. Eventuell muss deshalb noch einmal im Zeitbereich nachoptimiert werden.<br />
<br />
==Hilfsprogramme zur Analyse und Optimierung==<br />
Die Analyse und Optimierung von Regelkreisen wird wesentlich erleichtert durch die Zuhilfenahme von Programmen. Es erspart einem eine komplizierte Rechnerei von Hand oder umfangreiche Testläufe. Stellvertretend für all die verfügbaren Programme werden hier zwei Freeware-Programme vorgestellt, die dafür gut geeignet sind. Die Beschreibung hier ersetzt aber keine Tutorials, es wird nur die Anwendung für die Regelungstechnik beschrieben. <br />
<br />
===Scilab/Scicos===<br />
Scilab ist ein wissenschaftlich-technisches Softwarepaket für numerische Berechnungen. Scicos ist eine Erweiterung dazu, die eine blockorientierte und modellbasierte Simulation und Analyse von dynamischen Systemen bietet. Dieses Softwarepaket kann von der [http://www.scilab.org/ Scilab Homepage] herunter geladen werden.<br />
<br />
====Scilab====<br />
Mit Scilab ist es sehr einfach ein Bode-Diagramm zu zeichnen, es bedarf nur 3 Zeilen Code.<br />
s=poly(0,'s');<br />
G=syslin('c',0.72/(0.11*s+1));<br />
bode(G)<br />
Die 1.Zeile '''s=poly(0,'s');''' legt die Variable s als Polynomvariable fest. Dies braucht in einer Sitzung nur einmal gemacht zu werden. Die 2.Zeile '''G=syslin('c',0.72/(0.11*s+1));''' definiert ein lineares System mit der Übertragungsfunktion 0.72/(0.11s+1). Die 3.Zeile '''bode(G)''' zeichnet das Bode-Diagramm des zuvor mit syslin definierten Systems G. Zu beachten ist, dass Scilab auf der x-Achse im Bode-Diagramm die Frequenz in Hertz und nicht wie üblich die Kreisfrequenz darstellt. Anstelle des Bode-Diagramms kann auch die Sprungantwort gezeichnet werden. Dies geschieht mit folgenden Befehlen:<br />
xbasc();<br />
t=[0:0.001:2];<br />
y=csim('step',t,G);<br />
plot2d(t,y)<br />
'''xbasc()''' löscht den letzten Plot mit dem Bode-Diagramm und mit '''t=[0:0.001:2]''' wird ein Vektor t mit den angegebenen Zeiten im Intervall von 1ms definiert. Die Zeile '''y=csim('step',t,G)''' berechnet die Sprungantwort des zuvor mit syslin definierten Systems G und speichert sie in y ab. Das Ergebnis wird dann mit '''plot2d(t,y)''' dargestellt. Bei Bedarf können noch Gitternetzlinien mit dem Befehl '''xgrid()''' hinzugefügt werden.<br />
<br />
Ergänzend hier noch ein Scilab-Skript, welches recht hilfreich bei der Dimensionierung mit dem Bode-Diagramm ist. Den nachfolgenden Code einfach in das SciPad-Fenster (Editor von Scilab) kopieren und starten. Es werden 2 Grafikfenster angezeigt, eines mit dem Bode-Diagramm und ein zweites mit der Sprungantwort. Man kann im Skript die Streckencharakteristik anpassen und verschiedene Reglerparameter ausprobieren.<br />
<br />
<pre><br />
Ks=0.72; // Verstärkung der Strecke<br />
T1=0.11; // Zeitkonstante 1<br />
T2=0.005; // Zeitkonstante 2<br />
Kp=18; // Proportionalbeiwert<br />
Ki=170; // Integralbeiwert<br />
Kd=0; // Differenzialbeiwert<br />
<br />
s=poly(0,'s'); // definiert s als Polynomvariable<br />
P=(T1*s+1)*(T2*s+1); // Streckencharakteristik<br />
Gs=syslin('c',Ks,P) // Übertragungsfunktion der Strecke<br />
<br />
RZ=poly([Ki Kp Kd],'s','coeff') // Zählerpolynom des Reglers<br />
RN=poly([0 1],'s','coeff') // Nennerpolynom des Reglers<br />
Gr=syslin('c',RZ,RN) // Übertragungsfunktion des Reglers<br />
<br />
G=Gr*Gs // Übertragungsfunktion gesamt<br />
xset("window",0);<br />
xbasc(0);<br />
bode([Gr;G;Gs],0.1,100,['Regler';'gesamt';'Strecke'])<br />
<br />
Gcl=G/(G+1) // geschlossene Regelschleife<br />
t=0:0.001:0.2;<br />
y=csim('step',t,Gcl); // berechnet Sprungantwort<br />
xset("window",1);<br />
xbasc(1);<br />
plot2d(t,y,2);<br />
xgrid();<br />
xtitle("Sprungantwort","sec");<br />
</pre><br />
<br />
<br />
====Scicos====<br />
Eine weitere Möglichkeit zur Simulation im Zeitbereich bietet Scicos. Die Modellierung geschieht mit einem grafischen Editor, in dem Blöcke mit vordefinierten oder selbstgemachten Funktionen miteinander verbunden werden. Ein einfaches Modell eines Regelkreises mit PID-Regler sieht folgendermaßen aus:<br />
<br />
[[Bild:Scicos_anaReg.gif]]<br />
<br />
Der PID-Regler ist mit seinen 3 Zweigen (P, I und D) dargestellt. In den Verstärkerblöcken kann durch Ändern der Reglerparameter (KP, KI und KD) der Regler optimiert werden. Die Strecke ist in diesem Beispiel nur ein einzelner Block, in dem die Übertragungsfunktion eingegeben wird. Man kann die Strecke auch detaillierter mit einzelnen Funktionsblöcken darstellen. Ein Beispiel eines komplexen Blockschaltbilds für einen balancierenden Bot ist unter diesem [http://www.roboternetz.de/phpBB2/download.php?id=5082 Link] zu finden.<br />
<br />
Der Vorteil der Simulation mit Scicos ist die Möglichkeit Nichtlinearitäten zu berücksichtigen und die Kombination von kontinuierlichen und diskreten Funktionen. Das heißt, man kann einen digitalen Regler mit seinen diskreten Schritten und eine analoge Strecke, als kontinuierliche Funktion eingegeben, zusammen simulieren. Scicos bietet sogar einen 'Scifunc'-Block, mit dem Rechenschritte des digitalen Reglers nachgebildet werden können. Damit wird sowohl das dynamische Verhalten, verursacht durch die Abtastzeit Ta, als auch die etwas unterschiedliche Dynamik durch die digitale Ausführung eines I- und D-Anteils richtig simuliert. Ein Beispiel für den Einsatz des Scifunc-Blocks ist in folgendem Blockschaltbild zu sehen.<br />
<br />
[[Bild:Scicos_digReg.png]]<br />
<br />
Beispiel: [[Regelungstechnik#Beispiel:_Drehzahlregelung| Drehzahlregelung]] mit digitalem Regler<br />
<br />
Die globalen Variablen für die Reglerparameter und die Abtastzeit werden unter dem Menüpunkt „Edit - Context“ abgelegt.<br />
Kp=18;<br />
Ki=60;<br />
Ta=0.01;<br />
In den Taktgeber für den digitalen Regler wird als Clock-Periode die Abtastzeit Ta eingetragen. In das Dialogfenster zum Scifunc-Block wird folgender Code zur Simulation des digitalen PI-Reglers eingetragen:<br />
<pre><br />
z=z+Ki*Ta*u1<br />
if z>5 then<br />
z=5;<br />
end<br />
y1=Kp*u1+z<br />
if y1>5 then<br />
y1=5;<br />
end<br />
</pre><br />
z entspricht der Variable esum vom Beispiel des [[Regelungstechnik#Realisierung_mit_digitalem_Regler| digitalen Drehzahlreglers]]; u1 ist die Eingangsvariable und y1 die Ausgangsvariable des Scifunc-Blocks.<br />
In den Block für die Strecke wird die Übertragungsfunktion eingetragen. Als Zähler die Verstärkung Ks, also 0.72. Im Nenner das Polynom (1+0.11*s) für die Charakteristik der Strecke. Mit ‚Simulate – Run’ wird die Simulation gestartet. Als Ergebnis sollte das Einschwingen der Stellgröße (schwarz) und der Regelgröße (grün), wie in folgender Abbildung erscheinen.<br />
<br />
[[Bild:Sprungantwort_DZR.png]]<br />
<br />
Man kann nun mit den Reglerparametern und verschiedenen Abtastzeiten spielen, um zu sehen wie sich die Änderungen auswirken. Zum Beispiel wird bei einer Verdopplung der Abtastzeit der Regelkreis bereits instabil.<br />
<br />
Diese Beispiele sind nur ein kurzer Auszug von den Möglichkeiten mit Scilab/Scicos für den Einsatz in der Regelungstechnik. Darüber hinaus ist es auch sehr gut geeignet bei anderen Optimierungsverfahren wie z.B. beim WOK-Verfahren (Wurzelortskurven) oder zur Analyse und Optimierung von modernen Reglern wie z.B. Zustandsregler und Kalmanfilter.<br />
<br />
===LTspice/SwitcherCad III===<br />
Dieses Programm ist ein SPICE-Derivat von der Firma Linear Technology und ist unter den 2 Namen LTspice und SwitcherCad III bekannt. Der Einfachheit halber wird für die weitere Beschreibung hier nur der Name LTspice verwendet. Das Programm ist Freeware und kann unter diesem Link herunter geladen werden. http://ltspice.linear.com/software/swcadiii.exe<br />
<br />
LTspice ist ein Simulationsprogramm zur Analyse von elektronischen Schaltungen. Mit LTspice kann sowohl im Zeitbereich als auch im Frequenzbereich analysiert werden und bietet sich dadurch mit den entsprechenden Modellen auch für den Einsatz in der Regelungstechnik an. Wer sich bereits mit SPICE-Programmen auskennt, für den sollte es auch in der Regelungstechnik die 1.Wahl sein. <br />
<br />
Der Vorteil von LTspice ist die Möglichkeit einer sehr detaillierten Analyse, vorausgesetzt die Modelle sind auch so detailliert nachgebildet. Insbesondere für analoge Regler, wo die elektrische Schaltung direkt umgesetzt werden kann, empfiehlt sich der Einsatz von LTspice. Der Nachteil ist, LTspice ist nicht auf regeltechnische Belange ausgelegt worden und spezifische Symbole für die Regelungstechnik müssen selbst erstellt werden. Einige selbst erstellte Symbole für dynamische Grundelemente in LTspice sind hier abgebildet.<br />
<br />
[[Bild:LTSpiceSymb.png]]<br />
<br />
Die 3 Symbole können [http://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=285 hier] heruntergeladen werden. Weitere Symbole können anhand dieser Beispiele sehr leicht selbst erstellt werden. Ein P-Glied kann durch eine spannungsgesteuerte Spannungsquelle (E-Source) oder Operationsverstärker mit einstellbarer Verstärkung dargestellt werden.<br />
<br />
'''Analyse im Zeitbereich'''<br />
<br />
Das Beispiel des [[Regelungstechnik#Beispiel:_Drehzahlregelung| Drehzahlreglers]] mit analogem Regler wird hier mit LTspice simuliert. Das Schaltbild des Regelkreises zeigt nachfolgende Abbildung.<br />
<br />
[[Bild:LTspice_TRAN.png]]<br />
<br />
Der Vergleicher (U1) und der analoge PI-Regler (U2) sind so dargestellt, wie es auch in Wirklichkeit ausgeführt werden kann. Da der PI-Regler in der Schaltung bereits invertiert, wurden die Eingänge am Vergleicher vertauscht, damit die Polarität wieder stimmt. Der Rest des Regelkreises wurde stark vereinfacht, kann aber nach Bedarf auch ausführlicher dargestellt werden. Das PT1-Glied U3 simuliert die Strecke des Regelkreises und der Verstärker U4 dient nur zur Umrechnung auf die Drehzahl. Zur Simulation im Zeitbereich wird auf den Führungswert w mit der Spannungsquelle V1 ein Sprung gegeben. In der Reglerschaltung wurde bewusst ein Operationsverstärker mit Versorgungsspannung gewählt, damit auch der Einfluss einer Begrenzung mit simuliert wird. Die Zeitbereichsanalyse wird durch den LTspicebefehl .TRAN erreicht. Die Sprungantwort (Tachospannung) bei diesem Regelkreis sieht dann folgendermaßen aus.<br />
<br />
[[Bild:Tacho2.png]]<br />
<br />
Durch Ändern der Bauelemente R5, R6 und C1 kann man den Regler optimieren. Eine Umrechnung auf die Reglerparameter Kp und Ki ist mit folgenden Formeln möglich, siehe auch [[Regelungstechnik#PI-Regler| PI-Regler]]:<br />
<br />
Kp = R6/R5<br />
<br />
Ki = 1/(R5*C1)<br />
<br />
Mit einem Mausklick auf den entsprechenden Knoten in der Schaltung können noch weitere Signale, wie z.B. die Stellgröße y angezeigt werden. Durch Verändern der Versorgungsspannung V3, V4 kann man sich auch die Auswirkung der Begrenzung ansehen. <br />
<br />
'''Analyse im Frequenzbereich'''<br />
<br />
Für die Darstellung des Bode-Diagramms der offenen Regelschleife in LTspice muss ein Trick angewendet werden, denn durch das Auftrennen der Regelschleife würde der Arbeitspunkt verloren gehen und dadurch die offene Schleife ohne Gegenkopplung an den Anschlag fahren.<br />
<br />
Mit einer zusätzlichen Spannungsquelle in der Schleife kann man dieses Problem umgehen. Die Schleife bleibt für den Erhalt des Arbeitspunktes weiterhin geschlossen und man kann trotzdem die Verstärkung der offenen Schleife durch das Verhältnis der Spannung vor und hinter der Spannungsquelle bestimmen. Das erweiterte Blockschaltbild sieht folgendermaßen aus.<br />
<br />
[[Bild:LTspice_AC.png]]<br />
<br />
V2 ist die zusätzliche Spannungsquelle für die AC-Analyse. Die Spannungsquelle V1 wird von Pulsform auf Gleichspannung umgestellt. Sie wird so gewählt, dass sich der gewünschte Arbeitspunkt einstellt. Durch den LTspicebefehl .AC wird die Analyse im Frequenzbereich veranlasst. Um das Bode-Diagramm des offenen Regelkreises darzustellen, wird als Kurve nicht ein einzelner Knoten ausgewählt, sondern das Verhältnis der Spannung vom Ende zum Anfang des Regelkreises, in unserem Beispiel also V(tacho)/V(x). Zur Anzeige kommt dann das Bode-Diagramm (grüne Kurve) der offenen Schleife, wie in der folgenden Abbildung zu sehen. Für den Amplitudengang (durchgezogene Linien) gilt die linke Skala in dB, für den Phasengang (gestrichelte Linien) die rechte Skala in Grad.<br />
<br />
[[Bild:LTspice_Bode.png]]<br />
<br />
Zusätzlich ist noch das Bode-Diagramm der Strecke (rote Kurve) zu sehen. Dies ist durch einfaches Hinzufügen einer weiteren Kurve mit dem Ausdruck V(tacho)/V(y) durchgeführt worden. <br />
<br />
Im Gegensatz zur üblichen Darstellung des Bode-Diagramms eines offenen Regelkreises, beinhaltet das mit LTspice erstellte Bode-Diagramm auch die -180 Grad Phasendrehung der Gegenkopplung. Der Phasenrand ist deshalb nicht auf -180 Grad sondern auf 0 Grad zu beziehen. In unserem Beispiel ist der Phasenrand etwa 90 Grad, also ein sehr stabiler Regelkreis. Zu beachten ist, dass die Frequenzachse des Bode-Diagramms wie auch schon bei Scilab in der Einheit Hertz anstatt wie üblich in der Kreisfrequenzeinheit rad/s dargestellt ist.<br />
<br />
==Modellierung eines Motors/Antriebs==<br />
Der Motor ist ein oft verwendeter Aktuator in der Robotik. Deshalb wird hier am Beispiel des Gleichstrommotors mit Permanentmagnet (Nebenschlussmotor) die Modellbildung gezeigt. Zur Modellierung gibt es mehrere Möglichkeiten. Je nachdem wie detailliert die Simulation sein soll, kann man sich ein Modell, von sehr einfach bis sehr detailliert, auswählen. Zwei Zeitkonstanten bestimmen die Dynamik eines Gleichstrommotors. Eine davon ist die mechanische Zeitkonstante, die ist meistens die dominierende Zeitkonstante und wird durch das Trägheitsmoment verursacht. Die zweite Zeitkonstante ist die elektrische Zeitkonstante, sie wird durch die Induktivität bestimmt. Bei einfachen Regelungen kann in den meisten Fällen die elektrische Zeitkonstante vernachlässigt werden, damit reduziert sich das Modell auf ein einzelnes PT1-Glied.<br />
<br />
'''Definition: Motor und Antrieb'''<br />
<br />
Als '''Motor''' wird hier der Motor alleine verstanden. Die Ausgangsgröße ist die Winkelgeschwindigkeit w (Drehzahl).<br />
<br />
Als '''Antrieb''' wird hier der komplette Antrieb eines Fahrzeugs verstanden, also Motor inklusive Getriebe und Masse des Fahrzeugs. Für die Dynamik ist nicht nur das Trägheitsmoment des Motors sondern auch die Masse des Fahrzeugs verantwortlich. Die Ausgangsgröße der Einheit „Antrieb“ ist die Geschwindigkeit v.<br />
<br />
Die hier vorgestellten Modelle gelten sowohl für einen Motor als auch für einen kompletten Antrieb, wenn man die Elastizität und das Spiel des Getriebes vernachlässigt.<br />
<br />
===Einfaches Modell mit PT1-Glied===<br />
Die einfachste Art einen Motor oder Antrieb zu simulieren, ist mit einem PT1-Glied als Modell. Das Simulationsprogramm [[Regelungstechnik#Scicos|Scicos]] bietet dazu einen Block zur Eingabe der Übertragungsfunktion.<br />
{| border=0 cellpadding=10<br />
|Übertragungsfunktion:<br />
<br />
<br />
<math>G(s)=\frac{K}{1+Ts}</math><br />
<br />
|Beispiel:<br />
num(s) = K = 0.72<br />
den(s) = 1 + Ts = 1 + 0.11s<br />
|[[Bild:Scicos_TF.png]]<br />
|}<br />
<br />
Wird nicht nur das Ausgangssignal, also die Geschwindigkeit oder Drehzahl in der Simulation benötigt, sondern auch die Beschleunigung, dann kann nachfolgendes Modell verwendet werden. Dieses Modell ist der Differentialgleichung eines PT1-Glieds nachempfunden und liefert das gleiche Ergebnis wie vorheriges Modell, bietet aber noch den Zugriff auf das Beschleunigungssignal.<br />
{| border=0 cellpadding=10<br />
|Differentialgleichung:<br />
<br />
<br />
<math>v'=\frac{K}{T}U-\frac{1}{T}v</math><br />
<br />
|<br />
v = Geschwindigkeit<br />
v’= Beschleunigung (Ableitung von v)<br />
K = Übertragungsmaß<br />
T = Zeitkonstante<br />
U = Eingangsgröße (z.B. Spannung)<br />
|[[Bild:Antrieb_PT1.png|thumb|Einfaches Modell eines Antriebs]]<br />
|}<br />
<br />
Die beiden Parameter K und T müssen ausgemessen werden, wenn sie nicht bekannt sind. Die Zeitkonstante T kann in einem Anlaufversuch ermittelt werden. Dazu wird auf den Motor ein Spannungssprung gegeben und die Sprungantwort am Ausgang nachgemessen. Bei einem Antrieb erspart diese Methode die aufwändige Ermittlung der elektrischen und mechanischen Daten der einzelnen Elemente (Motor, Getriebe, Fahrzeug). Bei der Ermittlung des Übertragungsmaß K ist zu beachten, dass sich möglicherweise der Motor durch starke Reibung erst ab einer bestimmten Spannung dreht. Hier ist die Steigung der Kennlinie mit delta&nbsp;v&nbsp;/&nbsp;delta&nbsp;U auszuwerten, denn die Steigung ist für die Simulation wichtig.<br />
<br />
===Detailliertes Modell===<br />
<br />
[[Bild:Motor_Model.png|thumb|350px|Detailliertes Motormodell]]<br />
Ein detailliertes Motormodell ist rechts in dem Bild zu sehen. Es hat auf der linken Seite den elektrischen Teil mit den Parametern R (Widerstand) und L (Induktivität) und auf der rechten Seite den mechanischen Teil mit den Blöcken Trägheitsmoment und Reibung. Der elektrische Teil liefert das Stromsignal i, welches mit der Motorkonstante Km in das Drehmoment M umgerechnet wird. Mit dem folgenden Summierglied kann über einen zusätzlichen Eingang auch ein extern angreifendes Lastmoment mit simuliert werden. Am Ausgang des mechanischen Teils steht die Winkelgeschwindigkeit w in der Einheit [rad/s] bzw. über den Umrechnungsfaktor 9.55 die Drehzahl in [Upm] zur Verfügung. Die Reibung wird in einem nichtlinearen Block mittels Lookup-Table simuliert. In der einschlägigen Literatur wird die Reibung meistens mit einem Dämpfungsfaktor (linear) simuliert, was einer viskosen Reibung entspricht. Das passt aber nicht so gut für Kleinmotoren, da überwiegt vor allem die trockene Reibung. Die trockene Reibung hat ein konstantes Bremsmoment wenn sich der Motor dreht (unabhängig von Drehzahl, Vorzeichen abhängig von Drehrichtung). So eine Funktion kann sehr einfach mit einer Lookup-Table realisiert werden. Die Lookup-Table kann auch dazu verwendet werden, Mischformen von trockener, viskoser und turbulenter Reibung und sogar noch Haftreibung in einem Block zu simulieren, wenn man will.<br />
<br />
Bei einigen Herstellern, wie z.B. Faulhaber und Maxon, kann man die für das Modell nötigen Parameter im Datenblatt finden. Das Bremsmoment der Reibung berechnet sich aus dem Leerlaufstrom wie folgt: Bremsmoment&nbsp;=&nbsp;Motorkonstante&nbsp;*&nbsp;Leerlaufstrom <br />
<br />
Falls die Daten nicht verfügbar sind, muss man sie selbst ausmessen. Eine Hilfestellung zur Bestimmung der Motorkonstante und des Trägheitsmoments gibt es hier:<br />
*http://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=96750&highlight=#96750<br />
*http://www.roboternetz.de/phpBB2/viewtopic.php?t=12793<br />
<br />
==Beispiel: Drehzahlregelung==<br />
Es wird ein Gleichstrommotor in der Drehzahl geregelt. Als Sensor ist ein Tachogenerator vorhanden, der direkt auf der Motorwelle sitzt. Das System ist in einem kleinen Modellfahrzeug eingebaut und wird zur Geschwindigkeitsregelung eingesetzt, da die Drehzahl proportional zur Geschwindigkeit ist.<br />
<br />
Das Funktionsschaltbild sieht folgendermaßen aus:<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/drehzahl1.gif<br />
<br />
Als Störgröße können unterschiedliche Reibwerte oder Steigung und Gefälle rückwirkend über das Getriebe die Drehzahl beeinflussen. Das Getriebe und die Last sind zwar außerhalb der Regelschleife, beeinflussen aber durch die feste Kopplung des Getriebes die Dynamik des Regelkreises. Durch die starre Kopplung kann das Trägheitsmoment des Motors und die Masse des Fahrzeugs zusammengefasst werden. Das Gleiche gilt auch für die Reibwerte. Damit vereinfacht sich die Modellierung und das Blockschaltbild reduziert sich auf folgende Schaltung:<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/drehzahl2.gif<br />
<br />
Zur Ermittlung des dynamischen Verhaltens der Regelstrecke wird die Sprungantwort gemessen. Dazu wird auf den Eingang der Regelstrecke (Stellglied) ein Spannungssprung gegeben und die Antwort am Ausgang des Tachogenerators nachgemessen. Diese Methode erspart die aufwändige Ermittlung der elektrischen und mechanischen Daten der einzelnen Elemente der Regelstrecke (Motor, Getriebe, Fahrzeug). Die Messung ergab folgende Sprungantwort der Regelstrecke:<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/tacho.gif<br />
<br />
Wie zu erwarten, ist die Sprungantwort annähernd ein Verzögerungsglied 1.Ordnung. Die abgelesene Zeitkonstante ist 0.11s. Die Verstärkung der Regelstrecke ist Ks = 0.72. Das Übertragungsmaß des Tachogenerators ist 1V pro 2480Upm. Damit kann auf die Drehzahl rückgerechnet werden.<br />
<br />
Da die Regelstrecke nur aus einem PT1-Glied besteht, könnte eine analoge Regelung fast beliebig schnell gemacht werden. Wegen der Begrenzung bringt aber das Ausreizen der Optimierung für das Führungsverhalten nicht viel, nur für das Störverhalten wäre eine schnellere Regelung sinnvoll. Um aber einen Vergleich zwischen analogem und digitalem Regler anstellen zu können wird eine Parametrierung gewählt, die auch für den digitalen Regler mit seiner Totzeit noch stabil ist. Es wird deshalb auch auf einen D-Anteil im Regler verzichtet und nur ein PI-Regler realisiert. Das vereinfachte Blockschaltbild mit den dynamischen Elementen sieht damit folgendermaßen aus:<br />
<br />
http://www.roboternetz.de/wiki/uploads/Main/drehzahl3.gif<br />
<br />
Zur Veranschaulichung wurde ein analoger als auch ein digitaler Regler realisiert. Die Parametrierung des analogen Reglers wurde mit dem Programm [[Regelungstechnik#LTspice.2FSwitcherCad_III| LTspice]] durchgeführt. Es bot sich an, da die analoge Reglerschaltung exakt simuliert werden konnte. Für die Optimierung des digitalen Reglers wurde dann [[Regelungstechnik#Scicos| Scicos]] verwendet. <br />
<br />
===Realisierung mit analogem Regler===<br />
Die elektrische Schaltung für einen analogen PI-Regler ist in der nächsten Abbildung zu sehen. Der erste Operationsverstärker vergleicht den Sollwert w mit dem Istwert x. Der zweite Operationsverstärker bildet den PI-Regler. Die Werte R5, R6 und C1 sind für die Charakteristik des PI-Reglers zuständig. Mit R6 kann der P-Anteil und mit C1 der I-Anteil eingestellt werden. Die Optimierung der Werte wurde empirisch in einer Simulation mit LTspice durchgeführt. Da die Schaltung des PI-Reglers invertiert, wurden zum Ausgleich am Vergleicher die Eingänge an U1 vertauscht, so dass sich über die gesamte Schaltung wieder die richtige Polarität ergibt.<br />
<br />
[[Bild:Analogregler.png]]<br />
<br />
Zum Umrechnen auf Kp und Ki können diese Formeln verwendet werden, siehe auch [[Regelungstechnik#PI-Regler| PI-Regler]]:<br />
<br />
Kp = R6/R5 = 18<br />
<br />
Ki = 1/(R5*C1) = 147<br />
<br />
===Realisierung mit digitalem Regler===<br />
Im digitalen Regelkreis wird der Istwert '''x''' vom Tachogenerator mit einem A/D-Wandler digitalisiert. Der Sollwert '''w''' wird dem µC als digitaler Wert übergeben. Die Stellgröße '''y''' entspricht dem PWM-Wert für den Motortreiber. Um zum analogen Regler vergleichbar zu sein, wurde sowohl für den A/D-Wandler als auch für den PWM-Steller eine 8-Bit-Breite vorgesehen. Damit ist die Verstärkung in beiden Fällen gleich und analoger und digitaler Regler besser vergleichbar.<br />
<br />
Eigentlich könnte man bei kleiner Abtastzeit direkt die Parametrierung des analogen Reglers für die digitale Realisierung übernehmen. Aber es gibt doch kleine Unterschiede in der Dynamik zwischen analoger und digitaler Ausführung und um sicher zu gehen, dass die gewählte Abtastzeit einen nicht zu großen Einfluss hat, wird noch einmal mit [[Regelungstechnik#Scicos| Scicos]] nachoptimiert. Mit einer Abtastzeit Ta = 10ms und den Parametern des analogen Reglers ergibt sich ein Überschwingen, das nur sehr langsam auf den Endwert abklingt. Durch Verringern des I-Anteils auf 60 wird ein optimales Einschwingen für den digitalen Regler erreicht. Die Parameter sind:<br />
<br />
Kp = 18<br />
<br />
Ki = 60<br />
<br />
Ta = 0.01<br />
<br />
Zur Umsetzung in einen Code wurde die Programmiersprache C gewählt. Da der Code sehr einfach ist, sollte es auch kein Problem sein, den Code als Beispiel für andere Sprachen zu verwenden. Der Algorithmus wird im Takt der Abtastzeit, also alle 10ms aufgerufen. In der Reglergleichung kann zur Vereinfachung das Produkt Ki*Ta durch eine Ersatzvariable, die gleich das Ergebnis aus dem Produkt 60*0.01 = 0.6 hat, ersetzt werden. Zum besseren Verständnis wurde es hier beim Ki*Ta belassen. Um einen Windup-Effekt zu verhindern, wird die Summenbildung esum auf +-400 begrenzt. Der Wert wurde so gewählt, dass noch eine volle Aussteuerung durch den I-Anteil möglich ist. Zum Schluss wird die Stellgröße y auf die mögliche Aussteuerung des Stellglieds (0...255) begrenzt.<br />
<br />
'''Programmbeispiel digitaler PI-Regler:'''<br />
<br />
<pre><br />
e = w - x; //Vergleich<br />
esum = esum + e; //Integration I-Anteil<br />
if (esum < -400) {esum = -400;} //Begrenzung I-Anteil<br />
if (esum > 400) {esum = 400;}<br />
y = Kp*e + Ki*Ta*esum; //Reglergleichung<br />
if (y < 0) {y = 0;} //Begrenzung Stellgröße<br />
if (y > 255) {y = 255;}<br />
PWM = y; //Übergabe Stellgröße<br />
</pre><br />
<br />
== Beispiel Lageregelung ==<br />
Zunächst sollte die so genannte Strecke (in diesem Fall unser Motor) untersucht und beschrieben werden. Danach werden die einzelnen Regler dimensioniert und wenn möglich vereinfacht. Anschöliessend sollte das ganze Simuliert werden und am Objekt angewendet.<br />
<br />
=== Strecke ===<br />
Die Gleichstrommaschine ist ein elektromechanisches System und lässt sich in ein elektrisches (Ankerstromkreis) und ein mechanisches Teilsystem aufspalten. Die Lage ergibt sich als das Intergral über der Geschwindigkeit, wobei unbedingt das Getriebe zu berücksichtigen ist.<br />
[[Bild:Gleichstrommoter_schema.png|thumb|350px|Schema einer Gleichstrommaschine]]<br />
[[Bild:Gleichstrommoter schema2.png|thumb|350px|Blockschaldbild einer Gleichstrommaschine V ist K und V2 und V3 sind vertauscht]]<br />
;Ankerstrom <br />
:<math>\quad I_a=\frac{K_1}{1+T_aS}(U_a - U_i)</math><br />
;Drehzahl<br />
:<math> \quad N=\frac{1}{T_{mk}S}(M_a - M_w)</math><br />
;induzierte Spannung<br />
:<math>U_i=K_2\cdot N</math><br />
;Antriebsmoment<br />
:<math>M_a=K_3\cdot I_a</math><br />
;Lage<br />
:<math>X=\frac{1}{T_xS}N</math><br />
<br />
;mit den Konstanten<br />
:Ankerzeitkonstante<br />
:<math>T_a=\frac{L_a}{R_a}</math><br />
:mechanische Zeitkonstante <br />
:<math>T_{mk}=\frac{J\omega_0}{m_0}</math><br />
:Normierungskonstanten<br />
:<math>K_1= \frac{u_0}{R_ai_0}\qquad K_2=\frac{c\Phi_e\omega_0}{u_0}\qquad K_3=\frac{c\Phi_ei_0}{m_0}</math><br />
<br />
;Normierungsgrößen<br />
: <math>u_0 = 1V \frac{}{}</math><br />
: <math>i_0 = 1A \frac{}{}</math><br />
: <math>n_0 = 100 min^{-1}\Rightarrow \omega_0=2\pi\frac{n_0}{60}</math><br />
: <math>m_0 = 1Nm \frac{}{}</math><br />
<br />
<br />
Nun haben wir für die Drehzahl <math>N</math> eine Übertragungsfunktion gebildet, sowie bei sich ändernder Last <math>M_w</math> eine Störfunktion.<br />
<br />
<math>F_s(s)= \frac{N(s)}{U_a(s)}=\frac{K_1K_2}{T_ms(T_as+1)+K_1K_2K_3}</math> <br />
<br />
Diese Funktion entspricht der Funktion aus dem Beispiel der Drehzahlregelung und hat auch die gleiche Sprungantwort.<br />
<br />
=== Regelung ===<br />
Für die Lageregelung mit elektrischen Maschinen hat sich die Kaskadenregelung als Standardverfahren durchgesetzt.<br />
[[Bild:Kaskadenregelung.png|framed|none|Lage-Kaskadenregelung]]<br />
Dimensioniert und in Betrieb genommen werden die Teilregler "von innen nach außen"<br />
<br />
=== Stromregler ===<br />
Als erstes ist der Stromregler zu dimensionieren. Da die Strecke durch die Rückkopplung über <math>U_I</math> ein differenzierendes Verhalten aufweist, wird als Stromregler häufig ein PI-Regler eingesetzt.<br />
<br />
<math>F_{Ri}=V_{Ri}\frac{T_{Ni}S+1}{T_{Ni}S}</math><br />
<br />
Nach Dimensionierung und Inbetriebnahme des Reglers kann für den Stromregelkreis eine Ersatzfunktion bestimmt werden.<br />
<br />
<math>F_{ei}=\frac{V_{ei}}{T_{ei}S+1}</math><br />
<br />
==Autoren==<br />
* [[Benutzer:Waste|Waste]]<br />
* [[Benutzer:Olaf-petersen|Olaf-petersen]], Beispiel Lageregler ergänzt<br />
<br />
==Siehe auch==<br />
* [[SwitcherCAD-Tutorial]]<br />
<br />
<br />
== Weblinks ==<br />
* [http://www.roboternetz.de/phpBB2/viewtopic.php?t=11818 Forumsbeitrag: Linienfolger mit PID-Regler]<br />
*[http://www.scilab.org/ Scilab Homepage]<br />
*[http://ltspice.linear.com/software/swcadiii.exe LTspice/SwitcherCad III Download]<br />
*[http://www.kahlert.com/web/set_download.php Demo-Version von WinFACT 7]<br />
*[http://www.physi.uni-heidelberg.de/~fp/anleitg/E01.pdf Anleitung für Elektronikpraktikum, letzter Teil ist PID Regler bezogen ]<br />
<br />
[[Kategorie:Microcontroller]]<br />
[[Kategorie:Software]]<br />
[[Kategorie:Grundlagen]]<br />
[[Kategorie:Elektronik]]</div>Rcsuhttps://rn-wissen.de/wiki/index.php?title=Benutzer:Rcsu&diff=9483Benutzer:Rcsu2006-11-04T19:59:40Z<p>Rcsu: </p>
<hr />
<div>== Hi * ==<br />
<br />
<br />
bitte Diskussionen und Bemerkungen direkt per E-Mail an mich. Ich lese hier nicht häufig :-)</div>Rcsu