Hallo Ich Spiel mit den Gedanken eine elektronischen Zündung mit Kennlienensteuerung zu realisieren. Am liebsten mit einem AVR. Doch ich lese häufig dass es Probleme mit der Störfestigkeit bei AVRs gibt. Es sind zwar erste nur Gedanken aber würde ihr mir von einem AVR in diesem Fall abraten? Gruss Sweety das Kücken
Auf so einen Nick antworte ich nicht. Es reicht doch schon, wenn die Werbung nervt. Kill S....y !!!
Begrüss Sie :-) hast du schon eine geeignete schaltung für deine Zündung? für welches gefährt wird denn diese zündung? denn ich selbst plane auch schon daran und will mir nebenbei ein diagnostiksystem vl noch einbauen und ganz sicher eine schnittstelle und manuele einstellung des zündzeitpunktes. und als extra schmankerl plane ich den zündzeitpunkt anhand der zylinder temp. einzustellen. und was ich noch ganz vergessen habe, will ich eine kontaktlosen steuerimpuls(anstatt des unterrechers) einbinden. mfg schoasch
Hallo Schoaschi Ich habe mir schon ziemlich viele Gedanken gemacht. Sie soll vor allem für 2-Takt-Roller sein. Am Anfang noch Kontaktgesteuert. _Der Zündwinkel soll über ein Kennfeld Drehzahl/Last gesteuert werden. _Die Kennwerte kann man in Echtzeit über die RS232 ändern. _Programmierbarer Drehzahlbegrenzer. _Maximaldrehzahl 18000 1/min. _Auspufftemperatur erfassen. Hättest du Lust zusammen so was zu machen ? Gruss Sweety
Guckst du hier: http://www.12move.de/home/hanskrause/elektro.htm und hier: http://www.ignitech.cz/deutsch/nindex.htm
Hallo stromi Das Beispiel von Hans Krause finde ich sehr gut nur verstehe ich den Assemblercode in dem Beispiel viel zu schlecht. Gruss Sweety
ja können wir gerne machen. nur weis ich im moment nicht wieviel zeit ich immer aufbringen kann zum basteln, denn zur zeit ist viel für die schule zu tun ( Matura und Diplomarbeit) Ich habe schon 3 Schaltungen in die engere auswahl genommen und muss diese nun nur mal testen welche besser geeignet ist. hast du schon vl schaltungen, jetzt rein zur erzeugung des zündimpulses? wenn ja, würdest du diese mir bitte einmal zeigen? Die Steuerimpulse und das ganze drumherum sind ja eh kein problem. @ Rufus T. Firefly 15kV sind es nicht ;-) .. vl sekundärseitig aber primärseitig sind sie das sicher nicht.
Hallo, > Doch ich lese häufig dass es Probleme mit der Störfestigkeit bei > AVRs gibt. andere sind auch nicht besser oder schlechter. Du mußt halt in Deiner schaltung aufpassen, daß a) nichts von der Endstufe in Richtung Controller zurückschlägt und b) die Spannungsversorgung gut genug Filtert. Hans Krauses Lösung mit dem galvanisch komplett abgekopelten µC ist da sicher nicht die schlechteste Variante. Sich mal 1-2 Wochen mit seiner Software auseinander zu setzen kann auch nicht schaden. Seine Idee die Zündung über einen 0.2 Grad Wert zu realisieren ist imo klasse. Leider hat er dann anscheinend etwas die Lust verloren. Der 0.2 Grad Wert lässt sich sehr viel schneller und genauer mit shift/add Opperationen berechnen als mit eine Division durch 7 und die Tabelle(n) kann man auch sehrviel kleiner anlegen wenn man auf die direkte Adressierung verzichtet. Bei direkter Adressierung hat man halt das Problem, das die Tabelle(n) nicht proportional zur Drehzahl sind sondern zur Drehzeit. Das 1/x treibt dabei die Anzahl der Tabelleinträge massiv in die Höhe. > Es sind zwar erste nur Gedanken aber würde ihr mir von einem AVR > in diesem Fall abraten? Nein! Ciao, Werner
@peter dannegger man nehme einen avr implantiere ihn in sweety legt an die linke hand 15KV an und die rechte hand jeweil smit einem finnger an die zündkerzen sollte klappen ja ich hasse diese werbung auch es gibt nichts einfacheres kindern das geld aus der tasche zu saugen man koennte es fast diebstall nennen gruss jens
Hallo Werner Meinst du so ein Projekt könnte mir über den Kopf wachsen? Es steckt sicher viel mehr dahinter als man auf den ersten Blick meint. Kommt man vielleicht mit der Leistungsfähig keit mit einem ATMEGA16 an die Grenze? 1/x hat mir schön länger kopfzerbrechen gemacht. Ich bin nicht gerade der beste Assemblerprogrammierer. Eher der PC-Programmieren Nur habe ich noch nie in C ein Microcontroller programmiert. Soll ich denoch bei diesem Projekt C einsetzten? Gruss Sweety PS Ich finde die Werbung als solches gut gemacht nur die Zielgruppe ist falsch. Es stimmt dass man hiermit Jugendliche abzockt. Denock finde ich das Federvieh gut gemacht.
Abzocke ist was anderes -> http://www.de.tomshardware.com/business/20050324/index.html Noch besser finde ich aber die Nasenfrei-LEDs
Hallo Sweety, > Meinst du so ein Projekt könnte mir über den Kopf wachsen? wie soll ich das wissen? Ich kenn weder Dich, noch Deine Fähigkeiten. > Es steckt sicher viel mehr dahinter als man auf den ersten Blick > meint. Kommt man vielleicht mit der Leistungsfähig keit mit einem > ATMEGA16 an die Grenze? Unterscheiden tun sich die Megas doch fast nur im Speicherplatz. Hans Krause hat seine in einen 2313 gegossen. Da dürfte ein Mega8 oder größer nicht überfordert sein. Hängt natürlich auch mit Deinen Fähigkeiten im Programmieren zusammen. Wenn Du 'ne Division durch 2 mit den Divisions-Routinen ausführst, dann könnte es schnell eng werden. Ich setze 'nen Mega32 ein. Voll wird der nicht werden. > 1/x hat mir schön länger kopfzerbrechen gemacht. Ich bin nicht > gerade der beste Assemblerprogrammierer. Für 1/x hab ich auch noch keine optimierte Lösung. In Moment berechne ich das durch stures teilen. > Nur habe ich noch nie in C ein Microcontroller programmiert. > Soll ich denoch bei diesem Projekt C einsetzten? In was Du das programmierst ist sch**** egal. Anfangs wollte ich es rein in Assembler machen. Dann hab ich gemerkt das ich dabei viel zu schnell den Überblick verliere und bin auf ein Gemisch aus Assembler und Basic umgestiegen. Alles was unkritisch oder supporting ist läuft in BASCOM, Routinen die schnell seien müssen in Assembler. Ich komm damit gut hin. Erzähl mal ein bisschen was zum Motor und der Zündanlage. TCI, CDI? wieviele Zylinder? Kurbelwellenwinkel? Verstellbereich? Welche Mindestdrehzahl braucht der Motor zum starten? Welche Geber? Wieviel Grad vor OT? Wieviel Impulse/Umdrehung gibt der Geber? Wenn mehr als einen, wie ist die OT Erkennung realisiert. Fehlender Impuls oder flankengespreitzter Impuls? Ciao, Werner
Zuviele Bio-Photonen können auch die Fettspeicherung anregen, wie man am Foto von Frau Marion Friedl gut sehen kann. Ob man mit 15kV die Maximaldrehzahl 18000 1/min packen kann ist wohl auch fraglich, oder ? Im Ernst - mal: a) den zulässigen Betriebstemperaturbereich des AVR prüfen b) den AVR mit gut gefilterter Spannung (LC-Glied) versorgen. c) Zündimpulse per Optokoppler, ebenso bei den Eingangsdaten verfahren. Problem natürlich, daß man Kennlinien auch unter Last benötigt (=Rollenprüfstand). Da sind also einige Probleme vorhanden. Auch schützt ein AVR nicht vor unangenehmen Fragen von TÜV und Polizei wg. den 18000/ min inside ...
Hallo zusammen Also im Moment soll die Zündung nur für 2-Takter mit Unterbrecher sein. Einsatzgebiet:Motorroller, alte Motorräder, Kartmotoren. Ist gibt Kartmotoren die drehen so 18000 1/min extremfälle sogar 200001/min. Ein frisierter Roller kann es auch auf 15000 1/min und bringen. Vorläufig noch für 1-Zylinder Motoren. Normaldrehzahl kann man nicht einfach so sagen ist stark abhäning vom Typ. Für Motoren mit Unterbrechen 1 Impuls/ Umdr. Die andere Daten wie Verstellbereich, Winkel usw werden sehr variabel sein das dies sehr vom Motor abhängt. Wenn die Sache dann mal läuft soll man auf dem Projekt aufbauen können. Später vielleicht für alte 4-Takt Mehrzylinder Motorräder. Bin also noch weit davon entfernt. Gruss Sweety
Hallo, ich bin ja auch an so einem Projekt dran, habe erst mal den Analogteil getestet. Jetzt bin ich daran Daten aus einem externen EEPROM zu lesen, finde diese Möglichkeit am geschicktkesten weil man dann später mit nem ROM Emulator in den Kennfelder rumspielen kann wärend das Auto läuft. Da ich aber keinen IC² EPPROM benutze muss ich mit dem hohen Leitungsverbrauch zurechtkommen. Also bei mir soll für nen 4 Zylinder 4 Takter werden den ich mit einem Turbo aufgerüstet habe, dazu soll eine Doppelspulenzündung betrieben werden. Mein größtes Problem ist die nicht so guten ASM Fähigkeiten, gerade wenns um die Rechenoperationen geht. Wäre schon klasse wenn man da igendwie assemblierte BASCOM-teile verwenden könnte. Vielleicht hat da ja jemand nen Tip für mich. Da ich aber große Anforderungen an die Einspritzung stelle werden da höchstwarscheinich mehrere AVR's zum Einsatz kommen, da ich z.b. nicht nur die Einspritzimpulslänge varieren will sondern auch den Einspritzbeginn um eine bessere Gemischbildung in den Unterschidlichen Drezahlbereichen zu erhalten und nciht unnötig Sprit in der Überschneidungsphase der Ventile in den Auspuff zu blasen.
Hallo Thomas Dein Projekt scheint noch viel anspruchsvoller zu sein. Auf einen EPROM-Emualtor möchte ich eigentlich verzichten da ein Echtzeit-Emualtor meist recht teuer ist. Ich hoffe dass ich dass ich während des Betriebs über die RS232 die Kenndaten im EEPROM ändern kann ohne dass das der Motor abstellt. Gruss Sweety
Hallo, vielleicht sollte man das dann irgendwie so machen das die Daten für den Leerlauf in einer kleinen Flashtabelle liegen, so das kein Zugriff aufs interne EEPROM nötig ist. Und wenn man jetzt Datem im EEPROM verändern will geht man halt in den Leerlauf, was um einiges weniger störend ist als jedesmal den Motor abzustellen. Ich habe halt noch keinen DIP-AVR mit ausreichend EEPROM gefunden. Wäre mir auch am liebsten weil ich dann einen haufen Leitungen sparen könnte die ich für andere Zwecke benutzten könnte.
Hallo Ich hatte vor längerer Zeit die gleiche Idee wie du mit deinem Projekt. Nur hatte ich mal mit einem geredet der hat ebenfalls was ähnliches gemacht. Ihm sei es nicht gelungen dass es wirklich richtig lief. Mich hat es dann ganz abgeschreckt. Warum nimmst du nicht ein externes EEPROM und hängst es an 3 Ports. Mit 3 Ports kann man doch sicher 32KB Verwalten. 8Bit für Datenbus 15Bit für Adressbus und 1 Bit für Lesen/Schreiben. Das reicht sicher für alle Kennfelder. Wie wird eigentlich beim Auto die Drehzahl genau erfasst? Auf dem Induktionsgeberrad sitzen mehrere "Zähne" wird dazwischen die Zeitgemessen oder die Zähne in einer bestimmten Zeit gezählt? Gruss Sweety
Hallo, da gibt es sehr viele Möglichkeiten. Ich werde warscheinlich nur eien Impuls am Verteiler für Zünd-Ot Zyl. 1 nehmen und alles andere über die Timer bestimmen. Bosch Motronic setzt meist noch ein Kurbelwellenrad mit 60 Zähnen ein und 2 Zähne werden entfernt, nennt sich 60 -2. Man hat damit eine Aüflösung von 3° udn die Lücke ist 5 x 3° lang also 15°.
Also das mit dem 60-2 habe ich nicht ganz begriffen. Werden jetzt die Zähne in einer bestimmten Zeit gezählt oder wird die Zeit zwischen jedem Zahl gezählt und somit die Drehzahl ermittelt?
Hallo, im Prinzip werden immer die Zeiten von Impuls zu Impuls gezählt, ich weiß auch nicht genau wo die breite Lücke genau ist, denke nicht das sie auf OT steht sondern eher 45° oder 90° vor OT Bei einer Drehzahl von 8000 U/Min ist ein °Kurbelwelle 20,833...µSek. Und bei diesem 3°System kapp 63µSek. daraud kann man dann die Drehzahl berechnen. Wenn aber nicht ganz so genau sein muss, kann man die Drehzahl auf mit einem LM2907 in eine analoge Spannung umwandeln und diese dann per ADC einlesen.
Die Lücke ist bei Bosch-Systemen glaub ich 120° vor OT vom 1. Zylinder, bei 4-Zylindermotoren. Schwierig wird es, die Zündung einzustellen, und das ohne Klopferkennung! Naja auf dem Prüfstand kann man ja ein Stethoskop nehmen... Wer keinen allzu großen Controller nehmen möchte, dem sei ein externes EEPROM angeraten. Aufpassen sollte man, dass alle Zündzeitpunkte penibel eingehalten werden, vorallem, wenn der Controller nebenbei noch Kennfelder interpoliert und die Einspritzung übernimmt, sonst kann es schnell vorkommen, dass es klopft und der Motor ist hinüber! Das ganze mit einem AVR zu realisieren geht, siehe www.vems-group.org, die haben sogar noch einen DSP dran zur Klopferkennung! MfG Barti
Mal noch was anderes: @Sweety: Du machst dir viele Sorgen um den AVR, steht schon eine kleine Schaltung, um den Funke zu generieren? Also Zündspule vom Auto oder CDI? DIe Treiberendstufe ist bei den hohen Primärspannungen nicht ganz leicht zu bauen, für Autos gibt es sogenannte Coil-Driver-IGBT's(benutze ich). Für ne CDI hab ich leider keine Ahnung. Hab einige Verscuhe gebraucht, bis die Endstufe stand. Zudem muß der AVR Störfest sein und eine glatte Eingangsspannung besitzen(hier wurde schon LC-Glied genannt)!
Hallo Barti Also ich habe vor langer Zeit mal eine Schaltung gemacht damit ich mit einer Mofazündspule und einem FET mit Freilaufdiode die Zündspule schalten konnte. Nur habe ich das nie an eine Microcontroller gesteuert und zum zweiten weiss nich nicht ob der FET so hoche Drehzahlen verkraften würde. Ich möchte die Steuerung auf 2 Platinen unterbringen. Platine 1 für Logik, Microcontroler und Kommunikation. Platine für den Leistungsteil mit FET oder IGBT mit Opocopler und so. Ich glaube ich fange einfach mit dem Logikteil an und mache mal dass die Software läuft. An das LC-Glied habe ich gedacht, denn ohne das wirds vermutlich nicht klappen Gruss Sweety
Sers, also wie das bei neueren Motorrädern ist, aber bei meinem Oldi wird die Zündspule per Unterbrecher gesteuert. Selbst bei 20000 1/min sind das nichtmal 400Hz und wenn ich da an Schaltnetzteile denke, wird das wohl fast jeder FET ohne Probleme Schaffen. Die Freilaufdiode sollte man aber nicht vergessen. Seb
Hallo, Klopferkennung zum abstimmen wird mit Kopfhöhrerverstärker am Klopfsensor gemacht. Die Klopfregelung ist ja nur zur Sicherheit, wenn man nämlich die Zündung sehr spät stellt dann hilft die Klopfregelung auch nichts, also ein Fahrzeug bei dem die Zündkennfelder auf 95 Oktan abestimmt ist hat durch 98Oktan keine Vorteile weil die Zündung nicht weiter vorgezogen wird, trotz Klopfregelung, Übrigens im Farnel-Katalog gibt es einen Speziellen Bosch-IC für die Klopfregelung. Im KFz wäre es besser jeweils in die Plus und Minusleitung ein Spule einzufügen dazu halt noch 2 Kondensatoren ein flinker Folientyp vor die Spulen und danach ein Elko. Mit dieser Beschaltung hatte ich noch keine Probleme mit unerwarteten Resets. Ich habe schon ein paar Zündversuche gemacht, leider hauts mir früher oder später immer die Transistoren durch obwohl ich schaue die Zündspule nur möglichst kurz anzusteuern. Weiterhin gefallen mir die langen Schaltzeiten eines Optokoplers nicht da das eine zusätliche Verzögerun gum einige Grad im Auto bedeuten kann wenn man mal etwas höher Dreht, da müsste man dann extra noch ne Kennlinie machen um das zu kompensiern. http://www.mikrocontroller.net/forum/read-1-150778.html#151102 http://people.freenet.de/Thomasoly/Z%FCndversuch1.JPG http://people.freenet.de/Thomasoly/Z%FCndversuch2.JPG http://people.freenet.de/Thomasoly/Z%FCndversuch3.JPG http://people.freenet.de/Thomasoly/Z%FCndversuch4.JPG http://people.freenet.de/Thomasoly/Z%FCndversuch5.JPG http://people.freenet.de/Thomasoly/Z%FCndversuch6.MOV Habe das jetzt erstmal zurückgestellt.
Morgen, "Also im Moment soll die Zündung nur für 2-Takter mit Unterbrecher sein. Einsatzgebiet:Motorroller, alte Motorräder, Kartmotoren." Meiner hat keinen Klopfsensor. Im Normalfall stellt man da mit ner einfachen Lehre nen Zündzeitpunkt ein. Der ist immer gleich ob nun 1000 oder 5000 Upm. Wenn man mal von 20000 Upm ausgeht sind das knapp 340 Ups. Macht also 2,9ms pro Umdrehung bzw. 80ns pro 0.1 Grad. Ein 6n137 hat so ca. 50ns Schaltzeit. Noch ein wenig Zeit für das Schalten vom Mosi. Gehen wir mal von insgesamt 200ns aus, das wird nichtmal der AVR packen, außer dein Programm besteht nur aus Pin toggeln. Andere Frage, wie wollt ihr den aktuellen Lastfall bestimmen? Seb
20000 1/min sind wohl zu hochgegriffen. Für so einen Rennkart wohl eher nicht geegnet. Ist soviel ich weiss auch verboten ist aber egal. Ich bekomme bei 20000 1/min für ein 0.1 Grad 833.3333333 nS. Die Auflösung reicht auf ein 1/2 Grad. Also ich bekomme für in 1/2 Grad 4166.66 nS also 1 Grad =8333nS Das Ziel ist nicht gleich dass es für 20000 1/min gehen muss. Aber so 10000-15000 1/min wäre schön Gruss Sweety
Hallo! Also meine Schaltung kann ich nicht mehr finden. War aber realitv eifach aufgebaut. Der IGBT hatte den Vorteil, dass er halt für Zündspulen ausgelegt war. Man konnte ca. 20A durchschicken, war abgesichert auf 400V und hatte ne Logic-Level-Ansteuerug(TTL-Pegel). Weiterhin war er am Gate bis 6kV ESD-geschützt. Weiß jetzt nicht wie die heißen, aber gibt's beim großen (teuren) C für ca. 3 Euro das Stück im TO220-Gehäuse. Hab sie noch woanders gesehen, aber auch net billiger. @Sweety: Das mit dem FET hat geklappt? Hatte das zuerst auch versucht, mit nem IRF730, auf den hatte ich mich eingeschossen, der konnte glaub ich bis zu 600V aushalten, hatte ihn halt auch noch gut abgesichert, primär eine 400V Transil-Diode um ne hohe induzierte Primärspannung zu erreichen und das Gate hatte ich extra nochmal mit 18V Z-Dioden abgesichert, um Spitzen und vom Drain überschlagende Funken abzufangen. Hat auch funktioniert...einmal. Um die Schaltgeschwindigkeit von Power-FET's brauchst Du dir keine Sorgen machen, die schalten schnell genug. Können locker bis 10kHz ab. Schalten meist auch schneller und mit höheren Frequenzen als bipolare Leistungstransistoren. Aufpassen muß man bei Leistungs-MOSFET's, dass bei ständigen Umladen des Gates nicht zuviel Strom fließt(ist ne dynamische Komponente), da hier die Gate-Kapazitäten sehr hoch sind. Aber auch beim Moped kein Thema. Ein Zweitakter zündet jede Umdrehung, macht bei 18000 1/min gerade mal 300Hz Schaltfrequenz. @Thomas: Von Bosch gibt's auch IC's für Klopferkennung? Ich kenne halt nur einen von Texas Instruments (TICP8101 oder so). Du hast schon recht, man kann ohne fahren, aber gerade bei Turbomotoren ist es sinnvoll, vorallem wenn man mit verschiedenen Ladedrücken spielt. Wie realisierst Du die Regelung? Rein mechanisch oder ähnlich eines Boost-Controllers? Zweiteres beitet halt den Vorteil, Ladedrücke Kennfeldgeführt zu fahren, um z.B. nicht immer mit hohen Drücken fahren zu müssen, gerade bei Deinem nachgerüsteten Sauger zu empfehlen. Dann ist aber die Regelung entscheidend, um wenig Überschwinger zu bekommen(PID-Regler eignet sich eigentlich gut). Außerdem kann man näher an der Klopfgrenze fahren, da Du ja geschrieben hast Du stellst hohe Anforderungen an dein Projekt, was wiederum einen effizienteren Benzin-Einsatz bringen würde. Variablen Einspritzbeginn würde ich vielleicht erstmal nicht implementieren. Ist relativ schwer zu handhaben. Man kann den Motor auch hier schnell töten. Spritzt man zu spät ein, so ist der kühlende Effekt für die Ventile weg. Zu früh, kann Tropfen bilden. Weiterhin kann es passieren, dass Du während das Ventil öffnet nicht genug Sprit reinbekommst, weil Du zu spät einspritzt. Dadurch magert es ab und es kommt zum klopfen, weil die Verbrennungstemperatur zu hoch ist. Bedenke lieber erstmal wichtige Dinge, wie z.B. Beschleunigungsanreicherung, Kompensation der Einspritzventilöffnungszeiten bei Spannungsschwankungen etc. Ist sowieso ein riesen Projekt, welches Du da in Angriff nimmst. Nur mal so meine Meinung...
Hallo, @ Thomas > Ich habe schon ein paar Zündversuche gemacht, leider hauts mir > früher oder später immer die Transistoren durch obwohl ich schaue > die Zündspule nur möglichst kurz anzusteuern. Löschkondensator? Kostst zwar ggf. etwas Zündleistung aber wenn der Transistor durchschlägt hast Du garkeine mehr. Andere Varianten: Varistor statt Kondensator oder Rückkopplung des Kollektors/Drain auf Basis/Gate per Überspannungsschutzdioden. Zum Klopfsensor: Imo wird der Abstimmungsaufwand dafür zu groß. Wenn man einen eingebaut hat, der ein Ausgangssignal ala Klopfen ja/nein liefert, dann kann man den natürlich benutzen. Einen Klopfsensor nachzurüsten oder ein analoges Sensorsignal auszuwerten ist aber kaum mit nichtprofessionellen Mitteln machbar. @Sweety FET, IGBT, NPN-Darlington STM hat einige Ignition-Driver Darlingtons im Programm. Leicht beschaffbar und preiswert. Was mich an den Darlingtons und den IGBTs stört ist die Uce_satt Spannung von 1-1.5V. Das kann ein MOSFET ggf. besser. Ich bin daher auf einen SPW47N60 ausgewichen. (MOSFET 47A, 120Apeak, 600V, 0.08 Ohm, TO247). Komplett ausgetestet hab ich die Endstufe aber noch nicht. Abgeraucht ist er bisher aber auch noch nicht ;). Ist sicherlich reichlich überdimensioniert, 320mV Verlußtspannung waren aber einfach zu verlockend. @ all Zum Speichern der Zündkurven Arbeitet man mit Zündtabellen, dann kann man das interne EEProm komplett vergessen. Bei keinem AVR passt so eine Tabelle auch nur annähernd ins EEProm. Daher entweder externes EEProm, oder die Tabelle in kleinere Untertabellen aufteilen und nur die gerade zu programmierenden Teiltabelle im EEProm ablegen. Per modifizierten Bootloader kann man die Teiltabelle dann vom EEProm in den Flashspeicher schieben. @ Thomas > Wäre schon klasse wenn man da igendwie assemblierte BASCOM-teile > verwenden könnte. Vielleicht hat da ja jemand nen Tip für mich. Bascom-Routinen in ein Assembler Programm einzubinden hab ich noch nicht probiert, andersrum Assembler -> Bascom geht aber ganz ausgezeichnet. Bei Bascom sollte man immer wie überpüfen wie schnell eine Routine ist. Zum Teil erlebt man da positive wie negative Überraschungen. Die Shift/Add Routine zur Berechnung des 0.2 Grad Wertes braucht in Basic rund 250 Takte. In Assembler gehts in rund 50! Hingegen braucht die 1/x Berechnung (32bit Const / 16 bit Variable) nur rund 1000 Takte und ist damit nicht so deutlich langsamer als per "div16u". Wobei ich mir gut vorstelen kann, das es noch die ein oder andere Möglichkeit gibt mit dem man eine Costant/Variable-Integer-Division schneller machen kann. Ich hab nur keinen blassen schimmer wie. Wenn da jemand 'nen Tip oder 'nen Code für hat... Ciao, Werner
Hallo Werner Ich muss dir wiedersprechen dass das EEPROM für eine Kennfeldtabelle in einem AVR nicht ausreicht. Bei den meisten älteren Autos werden häufig 8Bit 16x16 Kennfelder verwendet. Was dann genau 256 Werte wären. Bei Motoren mit hoher Drehzahl kann werden 32x16 verwendet. Das beim 2-Takter die Last nicht so wichtig ist werde ich mich für ein 36x6 Kennfeld für Teillasst und eine 36x1 Kennlinie für Volllast verwenden. Das wären dann 252 Werte das überhaupt kein Problem darstellt. 1/x Division schein ein echtes Problem zu sein. Vielleicht gibt es ein Mathematiker der einen Tipp für so eine Berechung geben kann?
Hallo Sweety, > Ich muss dir wiedersprechen dass das EEPROM für eine Kennfeldtabelle > in einem AVR nicht ausreicht. Sorry, ich hätte schreiben sollen direktadressierte Tabelle, wie sie Hans Krause und viel andere verwenden. > Bei den meisten älteren Autos werden häufig 8Bit 16x16 Kennfelder > verwendet. Was dann genau 256 Werte wären. was zu einem weiteren Rechenzeit kostenden Problem führt, zumindest wenn man den Zündzeitpunkt nicht sprunghaft ändern möchte. Man muß die aktuellen Verstellwerte aus den Kennfeldeinträgen interpolieren. Ciao, Werner
Zwischenwerte musst du nicht interpolieren. Eine Zündkurve ist ja nichts abruptes. Der der Unterschied von einem Wert zum nächsten Wert ist zu gering dass es eine auswirkung hat und wenn doch dann nimmt man einfach eine höhere Auflösung also somit mehr Werte
Hallo Sweety,
> Zwischenwerte musst du nicht interpolieren. Eine Zündkurve ist ja
nichts abruptes.
Die Drehzahl ändert sich kontinuierlich, der Verstellwinkel wird aber
ohne Interpolation von der Tabelle nur an den Stützstellen angepasst.
Bei meiner TDM ändert sich der Zündwinkel im Bereich von 2000 bis 4000
U/min um 30 Grad. D.h. bei 16 Werten und max. 8000 U/min ändert sich
der Zündwinkel zwischen zwei Tabellenwerten um ganze 7.5 Grad. Ist das
nicht ein bisschen heftig?
Bei hohen Drehzahlen hab ich keine Bedenken, da verläuft die Zündkurve
i.a. recht flach, aber im unteren Drehzahlbereich?
Ciao,
Werner
Hallo 30 Grad zunahme hast du dich da nicht vergukt? Du hast mehrer Möglichkeiten.Bei der Drehzahl einfach mehr Werte nehmen. Autos drehen meistens nicht so hoch deshalb reicht meistens 16x16 bei Drehzahlorgeln geht mann dann auf 32 x16 Oder die Drehzahl nicht proportional aufteilen sondern mit zunehmender Drehzahl abschwächen. 1000, 1600 , 1900 , 2200 2400 usw. Ich habe Steuergeräte gesehen die hatten angeblich eine total unregelmässige Drehzahl aufteilung. Kann aber nicht mehr sagen welches Mir ist nicht bekannt das bei äteren Autos Werte dazwischen interpolliert werden. Vielleicht in den neuen schon. Nur die haben 16Bit MCs.
Hallo, und wo gibts diese Transistoren leicht zu besorgen, also ich habe noch absolut keine Ignition Coil Treiber auftreiben können, nur über 5 Ecken einen Satz VB027 auftreiben könne die man direkt an den µC hängen kann.
Hallo Sweety, > 30 Grad zunahme hast du dich da nicht vergukt? das stimmt schon. Ist auch kein Fehler im WHB, ich habs nachgemessen, da mich die Ladezeiten der Zündspule interessierten. > Du hast mehrer Möglichkeiten.Bei der Drehzahl einfach mehr Werte > nehmen. Autos drehen meistens nicht so hoch deshalb reicht meistens > 16x16 bei Drehzahlorgeln geht mann dann auf 32 x16 was dann wieder mehr Speichplatz kostet. Bei der TDM (3VD) und dem Oldtimer für den ich das Ding baue ist das nicht so das Problem, da die eh nur mit Kennlinien fahren. Da das später aber auch mal an moderneren Motoren laufen soll, mach ich mir halt gedanken darüber. > Oder die Drehzahl nicht proportional aufteilen sondern mit > zunehmender Drehzahl abschwächen. d.h. aber daß ich entweder eine zweite Tabelle (z.B. im Flash) brauche, oder in der EEPROM Tabelle die Drehzahlwerte auch noch mit abspeichern muß. > Autos drehen meistens nicht so hoch... im Vergleich zu Deinen 18.000 sicher nicht, die TDM liegt mit ihren 8000 aber nicht deutlich über dem was auch ein Auto dreht. Ich bin mir selbst nicht sicher ob das wirklich gebraucht wird. Ich bin mir aber auch nicht sicher ab welcher Abstufung man darauf verzichten kann. Wenn ich mir die Kennfelder angucke die so im Netz zu finden sind, dann ist da keines drunter, das ein stufenförmiges Kennfeld besitzt. Hast Du Infos zu Ladezeit von Zündspulen. Die zwei Konzepte (konstante Ladezeit bzw. Ladezeit über Schließwinkel) unterscheiden sich schon deutlich. Und das was ich an der TDM gemessen habe passt wiederum weder in das eine, noch in das andere. Ciao, Werner
Hallo Werner Wie du siehst hat alles Vor-und Nachteile. Es wird einem nun mal nichts geschenkt. Da du das in erste Linie für einen Oldtimer baust würde ich weniger Lastzustände integrieren. Also z.B. ein Kennfeld Drehzahl/Last 40x6 dann hast du einen Abstufung von 250 1/min und dein Sprung bei der Zündung ist nur noch die Hälfte. Also die Kennfelder die ich gehen habe haben aber alle eine Abstufung. Man müsste sich in einem Chiptuning-Forum informieren. Vom Leistungsteil habe ich wenig Ahnung. Ich werden vermutlich einen fertigen reinen Leistungsteil irgenwo besorgen und den dann mit dem AVR ansteuern.
Nachtrag: Deshalb frage ich mich immer mehr ob so ein AVR wirklich dafür geeignet ist oder ob man doch auf einen anderen Microcontroller umsteigen soll
Hallo Thomas,
SPW47N60 gibts bei Conrad (veraltete Revision) oder z.B. bei RS
(aktueller C3 Typ)
Bipolar Darlingten Ignition Driver(BU920, BU931T, 2sd2141) gibts z.B.
bei Lobtron.
Ignition IGBTs - keine Ahnung
> die man direkt an den µC hängen kann.
Eine Treiberstufe ist nun wirklich kein Problem. Zudem schützt sie den
µC vor ggf. zurückkommenden Spannungsspitzen.
Ciao,
Werner
Hallo, ja ein Problem nicht aber jeder Treiber verzögert das ganze wieder und wenn man hier wirklich mit einer Auflösung von 0,1° Zündung will sind das bei einer Drehzahl von 8000 U/Min 2µSek abweichung, ansonsten muss man noch extra eine Drehzahlabhängige Korrekturlinie haben, also die Frühzündung zur Frühzündung. Werde mir erstmal ne Autobatterie hier herstellen, da das ganze Zündungszeug voll auf den PC/Boxen durchschlägt und mein Netztteil bestimmtnicht davon angetan ist. Meint ihr ne USV schützt wirklich? Diese Filtersteckerleiste was ich hier habe tuts nämlich nicht.
Hallo Thomas, die Laufzeit durch den Treiber ist konstant. Wenn überhaupt eine Korrektur nötig ist, dann kann man sie einfach durch einen festen Korrekturwert realisieren. Also die Laufzeit von der ermittelten Zündzeit abziehen. Schwieriger Dürfte es sein die 0.1 Grad Genauigkeit in der Positionsbestimmung (also Pickup, Kontakte, Hallgeber) zu gewährleisten. Um wieviel mußt Du den Zündzeitpunkt verstellen? Bei 0.1 Grad kommst du mit 1Byte Werten auf 25.5 Grad Verstellbereich. Reicht das? Ciao, Werner
Hallo, 0,2° würden auch nioch reichen dann hätte man ja 50° was auf jedenfall ausreicht so kann man evtl. noch einige Grad nach OT Zünden um dem Turbo mal richtig hochdrehen zu lassen. Viel Frühzündung brauchen eh nur Motoren mit ner ganz miesen Gemsichbildung (langsamen Brennverlauf)
zum thema leistungsteil: ich benutze den irfp450 (zündspule an +12V, wird über irfp gegen masse gezogen) seit über 5 jahren bei einer elektronischen zündung für mein motorrad, dass was ich als wichtig erachte ist, dass die zündspule im abschaltmoment eine ausreichend hohe primär-rückwärts-spannung aufbauen kann, damit die sekundärspannung ebenfalls ordentlich hoch ist, für ein guten funken. wenn man nun eine freilaufdiode parallel zur zündspule einbaut, ist funke schlechter, als mit einer unterbrecher-zündung. deswegen nehme ich auch parallel zur zündspule ein 385V varistor, damit kann die im abschaltmoment ein ordentlichen funken erzeugen, mit hilfe der internen diode des irfp und die spannung ist trotzdem unterhalb der maximalspannung des fet... (das prinzip ist bewährt, hab ich mir auch nur abgeguckt) LameM
Hallo, danke für den Tip. Weißt du welchen Ohm-Wert diese Spule hat die du einsetzt. Hat ein Motorrad höheren Anforderung an die Zündspule wegen Drehzhal oder eher weniger wegen den geringen Zylindervolumas.
es fließen ca. 2,5A bei 13,5V (im stillstand) -> dürften also rund 5,4Ohm sein (nur drahtwiderstand) beim betrieb geht der strom noch deutlich zurück/R wird größer (einmal wegen X=jwL und das andere mal wegen nur 50% einschaltdauer wärend einer kompletten umdrehung) LameM
achso: an den genauen wert im betriebszustand kann ich mich nicht mehr erinnern :-) müsste ich nochmal nachmessen und ich würde sagen, das die anforderungen bei 2-takt-moppeds in etwa gleich mit denen von 4-takt autos sind, bei 4-takt moppeds werden die anforderungen sicherlich höher sein, weil ja dann die energie in wesentlich kürzerer zeit in die spule gebracht werden muss... (außer bei hochspannungs-kondensator-zündanlagen, wo die z.spule 'nur' als trafo dient, dafür muss dann der kondensator schnell genug auf die ~500V geladen werden) LameM
Hallo Wernern Ich glaube nicht dass einen Auslösung von 0.1 Grad Sinn macht und du dadurch ein besseres Ergebnis erzielen kannst. Da Spielen andere Toleranzen eine grössere Rolle. Ich bin der Meinung dass auf ein 1/2 Grad absolut ausreicht.
So kleine Gradzahlen machen wirklich keinen Sinn, zudem man ohne Klopfregelung ein Stück vom ermittelten Wert zurück nehmen sollte, denn wenn man bei sagen wir 20°C auf dem Prüfstand abstimmt und den Motor bei 30°C im Sommer fährt hat man ganz andere Bedingungen. Oder laß nur mal den Ladedruck etwas schwanken oder die Ladeluft wärmer werden, z.B. bei langsamer Volllastfahrt bergauf, so dass sie nicht richtig gekühlt wird. Die von mir verwendeten IGBT's sind IRGB14C04L von International Rectifier. Die gibt's halt bei den Conrad-Trotteln. Sind kompakt und man benötigt wirklich keine Treiberendstufe, sind intern sogar abgesichert. Also normale Auto-Zündspulen haben einen Innenwiderstand von ca. 0,6-0,8 Ohm. Sagen wir bei 0,6 Ohm und 12V Spannungsabfall über der Spule(ca. 1,8V gehen über Transistor flöten, gesamt 13,8V) würde im Sättigungsfall der Spule 20A fliessen(worst-case). Nu das ist schon ordentlich. Daraus kann man mit R(typ) des Transistors errechnen, wieviel Verlustleistung/wärme flöten geht. Dabei sollte man aber bedenken, dass die Spule nicht die ganze Zeit an ist und der Strom einer e-Funktion folgt, je nach Induktivität. Am besten das ganze Ausreichend dimensionieren und testen, dann spart man sich die Rechenerei und ist auf der sicheren Seite. Der IGBT ist übrigens für ca. 430V Sperrspannung ausgelegt, die Schutzdiode bricht aber bei 400V durch, womit die hohe Primärspannung gewährleistet ist. Hab ich aber oben schonmal erwähnt.
Vor allem wird es keinen Rollenprüfstand geben der so kleine Unterschiede messen kann das eine 0.1 Grad auflösung bringen würde
Hallo Thomas, hallo Sweety, > Ich glaube nicht dass einen Auslösung von 0.1 Grad Sinn macht und du > dadurch ein besseres Ergebnis erzielen kannst. Da Spielen andere > Toleranzen eine grössere Rolle. si, das versuchte ich klarzumachen. >Ich bin der Meinung dass auf ein 1/2 Grad absolut ausreicht. um 0.5 Grad zu erreichen muß Dein Controller besser als 0.5 arbeiten. Die Tolleranzen addieren sich. Da es kaum einen Motor gibt, der mehr als 50 Grad früh braucht, macht es Sinn den Controller auf 0.2 auszulegen. Der Aufwand ist der gleiche, solange man nicht auf 16bit Werte in der Tabelle zurückgreifen muß. Real dürfte man damit irgendwo zwischen 0.2 und 0.5 rauskommen wenn der Geber gut funktioniert. @ Thomas mit was für einem Geber arbeitest Du? Falls mit PickUp, worauf wertest Du ihn aus? Spannungsanstieg, Flusswechel oder Frequenzänderung Ciao, Werner
Hallo @Barti > Also normale Auto-Zündspulen haben einen Innenwiderstand von ca. > 0,6-0,8 Ohm. sicher das das bei einem Auto so wenig ist? TCI-Zündspulen liegen bei Motorrädern irgendwo zwischen 3 und 6 Ohm. CDI-Zündspulen zwischen 0.8 und 1.5 Ohm. CDI Zündspulen werden aber nicht mit 12 V gespeist sondern mit Spannungen zwischen 60 und 240V. Der Zündfunke wird dabei nicht über die im Feld gespeicherte Energie sondern über ein großes dI/dt aus einer Kondesatorentladung erzeugt. Ciao, Werner
Hallo Werner Es ist schon klar dass wenn ich 0.5 Grad genau sein will mehr Auflösung brauche. Aber selbst 0.5Grad ist schon sehr genau. Also reicht es völlig wenn ich mit 0.25 nehme. Ich habe mal eine Exceltabelle für die Toleranzen und Werte gemacht.
Hallo, also die 0,2° sollen nur für die Interpolation sein. Wird schon nen Grund haben warum Bosch diese 16x16(256) Punkte auf 4096 interpoliert. Ich werde bestimmt keinen Zündzeitpunkt von z.b. 20,2 programmieren. Was soll ich zur Tabelle sagen. Bei 8000 U/Min sind 1° 20,8µSek, wenn ich hier nen Optokopler nehme der fast in den mSek Bereich reingeht, bin ich ja schon ein paar Grad neben dem gewünschten Zündzeitpunkt und müsste das wieder per Software korrigieren. Ne Kondensatorzündung wäre schon was feines, das ist was für später erstmal so mit einfachen Spulen und später dann mal nen Sperrwandler dafür machen. Mit den Timern habe ich mich nocht nicht so stark beschäftigt außer etwas PWM fürs Taktventil (Ladedruck) gemacht. Habe noch nichts wegen der Drehzahl erfassung gemacht, habe eine 60-2 Scheibe gezeichnet, aber noch niemand gefunden der mit das günstig lasern könnte, dann würde ich das erstmal mit IR machen das geht bei der geringen Entfernung wunderbar, also bis 30cm habe ich ein sehr starkes Signal hinbekommen mit schönen Flanken. Fürs Auto wirds aber eher ein Impuls an der Nockenwelle geben und dann noch 4 an der Kurbelwelle, das finde ich am einfachsten. Und wegen der abnehmenden Zündspannung bei hohen Drehzahlen wird ne Doppelspulenzündung genommen so das jede Spule mehr Zeit das Energiefeld aufzubauen und über den Schleißwinkel kann man das ja schön begrenzen.
Hallo Thomas Du sagst also die Zwischenwerte werde interpoliert? Ist das bei allen Steuergeräten so oder nur bei den neueren 16Bit?
Hallo, laut meinem Boschbuch ist das mit der Interpolation schon bei der erstem Motronic so. Und da kamen auch nur 8bit Systeme zum Einsatz waren so C8535-Teile genau Bezeichnung fällt mir nicht mehr ein. Also so diese Standart-µC in den späten 80ern. Teilweise würden sogar jeweisl 2 verwendet einer der die ganze analoge Auswertugn übernommen hat und der 2te der fürs EEPROM und für die Timings zuständig war.
Ich kenne noch den Motorola 68HC11 in Steuergeräten. Ich glaube der war in verschiedenen Golfs. Wie es aussiehtkann ich die ganze Sache vermtlich komplett vergessen. Ich schätze dass schon das interpolieren und dann 1/x ihn in die Knie zwingt.
Ach...ist hochspannung nicht etwas schönes? Ich habe gerade etwas getestet und habe dabei gloreich einen Hochleistungs-FET in die ewigen jagdgründe geschickt ;-) ach was würde ich nur geben für einen gscheiden arbeitsplatz und gutes material ;-) alles nicht so einfach mit der zündung :-)
Hallo Sweety, > Wie es aussiehtkann ich die ganze Sache vermtlich komplett > vergessen. Ich schätze dass schon das interpolieren und dann 1/x > ihn in die Knie zwingt. quatsch nicht! ;-), was ein programmierbares Stück Silizium in den 80igern schaffte, das sollte in 2005 nicht unmöglich sein. Wenn man sich auf einen festen Interpolationsabstand festlegt, dann kann man das in recht wenigen Takten erledigen. Grundgerüst: 1. Drehzahl bestimmen 2. Tabellwert kleiner der aktuellen Drehzahl lesen 3. Tabellwert größer der aktuellen Drehzahl lesen 4. Differenz bestimmen 5. solange Tabellen_drehzahl + Interpolationsschritt < Drehzahl Korrekturwert = Korrekturwert + Differenz Tabellen_drehzahl = Tabellen_drehzahl + Interpolationsschritt 6. Korrekturwert = Korrekturwert / Interpolationsfaktor 7. Interpolierter Tabellenwert = Tabellenwert_klein + Korrekturwert Wenn man als Interpolationsfaktor eine 2er Potenz wählt, sprich das Teilen durch eine Shift-Opperation ersetzen kann, sollte der Rechenaufwand recht niedrig bleiben. Ciao, Werner
Was ein bisschen Schlaf nicht alles bringt. Etwa die erste hälfte ist mir im Traum erschienen. Den Rest muss ich nochmals lesen und studieren. Allerdings waren die Chips aus den 80er keine RISC MC die hatten brauchbare Divisionsfunktionen die nicht 1000 Takte brauchten. Ich finde die 68HC11 sind zwar eigentlich langsame Dinger aber beim rechnen haben die die besseren funktionen.
Hallo! @Werner: Ja bin mir sicher, hab mal ne Bosch aus nem Opel durchgemessen, die hatte 0,8 Ohm und ne Einzelspule aus nem Audi, die hatte 0,6. Es fliessen schon beträchtliche Ströme, wenn die Spulen gesättigt sind. Hätt ich nen Meßshunt, könnte ich ich den Sättigungsstrom mal genau messen und daraus den genauen ohmschen Widerstand berechnen. @Thomas: Wieso baust Du dir eine 60-2 Scheibe? Reicht es nicht vom Schrott ne alte Scheibe aus nem VW oder Opel zu holen(keine Ahnung wer noch Bosch-Systeme verbaut)? IR ist etwas kritisch an der Kurbelwelle, zum testen im Stand reichts, aber fahr mal damit auf die Straße, wenn's regnet :o). Bei SDS-Steuergeräten haben die nen einfachen Trick entwickelt. Sie nehmen 2(180° versetzt) oder 4(90° versetzt) kleine Rundmagnete, bohren Löcher in die KW-Scheibe und lesen das ganze per Hall-Sensor aus. Ist einfach, billig und funktioniert...und die Teile sind auch für Rennsporteinsätze gebaut(Guckst Du hier: http://www.sdsefi.com/techhall3.htm). Die Drehzahländerung ist während der 90° nicht so krass. Man hat auch genügend Zeit zwischendrin berechnungen durchzuführen und ne größere Drehzahlmeßspanne als bei 60-2 Systemen. Man muß halt nur ziemlich genau mit Timern arbeiten. Das ganze funktioniert ohne Fehlzündungen. Alternative Scheibe wäre von Ford, die haben ein 36-1 System, also nict so hochauflösend. PWM im Controller ist nicht schwierig, um Ladedruck zu regeln. Schwierig ist ihn stabil zu halten und keine Überschwinger zu produzieren. Man könnte ihn langsam ansteigen lassen, ist aber nicht Sinn der Sache(wer will das schon?). Kennfeldführung funktioniert, denk ich, Regler wie PID funktionieren besser, aber da ein Motor starke Nichtlinearitäten aufweist, auch nicht optimal. Interessant währen hier Self-Tuning-Regler, mit verschiedenen Parametern, den verschiedenen Lastbereichen angepaßt. Leider ist da der Controller zu langsam, wenn man nen guten Algorithmus programmiert.
Hallo, @Barti: Das mit dem IR hatte ich nur hier zum versuchen gemacht im Auto wird das nicht gemacht. Das mit der Ladedruckregelung denke ich ist kein Problem wird mind. als PI-Regler ausgeführt werden, aber das läßt sich dann eh erst im Auto ausprobieren. Werde warscheinlich auch auf ein 4x90System aufbauen und 1 Impuls an den Nockenwelle abnehmen. Aber die Scheibe kann ich gut benutzen um sie mit einer Lampe anzublitzen um den ZZP zu kontrolieren. Für meine Versuche scheidet ne Scheibe vom Schrott aus da ich ein Mittelloch von 2mm brauche um das auf nen Elektromotor zu spannen.
Vielleicht würde Fuzzy-Logic die Ladedruckreglung verbessern. Habe leider keine Erfahrung damit.
Hallo Barti, > Ja bin mir sicher, hab mal ne Bosch aus nem Opel durchgemessen, > die hatte 0,8 Ohm und ne Einzelspule aus nem Audi, die hatte 0,6. Hab ich ein Glück daß ich für Moppeds baue und nicht fürs Auto :-))) Die Spannungsüberhöhung beim Abschalten eines 20A Spulenstroms möchte ich nicht händeln müssen. Ciao, Werner
Naja, wie Du schon sagtest, Kondensatorzündungen speichern Energie im Kondensator, der dann die gesamte gespeicherte Energie mit einem Mal abgibt. Das muß halt da nicht die Spule übernehmen. @Sweety: Fuzzy Logic ist etwas zuviel für so eine Bastelei. Weißt Du überhaupt was das ist? Man beschreibt verschiedene Arbeitspunkte "unscharf" (=fuzzy), d.h. man hat um den Arbeitspunkt noch Spielraum. Klassifikation spielt hier eine große Rolle. Der Aufwand wäre einfach zu groß. Thomas z.B. möchte ein einfaches frei programmierbares Steuergerät haben, mit welchem er ein Auto möglichst leicht und schnell abstimmen kann. Fuzzy Logic lohnt sich nur bei Automobilherstellern, welche ein Steuergerät für ne Autoserie entwickeln, welches dann bei verschiedenen Betriebsbedingungen funktionieren muß. Ich denke ein normales Steuergerät zu bauen ist schon eine immense Aufgabe. Igendwann soll das Auto auch mal fahren!
Ich weiss schon in etwa was Fuzzy Logic ist. Die Technik kann sehr einfach bis sehr kompiziert sein. Die meinsten Leute(ich auch) halten für relativ schwierig weil sie es zu wenig kennen. Ich habe mal auf einer Website eine Schaltung mit einem ganz einfachen Fuzzylogic Reglung gesehen die von ein paar Lehrlingen gemacht wurde. Leider finde ich die Seite nicht mehr. Es war für ein 68HC11. Ich war allerdings erstaunt sehr erstaunt mit wie wenig Code eine effiziente Reglung umgesetzt wurde. Ich würde sogar sagen mit PID wäre es viel grösser geworden und vor allem die viel schwieriger Abstimmung.
PID ist doch einfach...ist ne kleine Formel. Mußt halt nur 3 wichtige Parameter bestimmen, Verstärkung, Nachstellzeit und Vorhaltezeit, evtl. noch ne Totzeit einbeziehen. Fuzzy knn einfach sein, aber da es im Motor viele Betriebszustände gibt, muß man auch viele berücksichtigen.
Hallo Barti, > Naja, wie Du schon sagtest, Kondensatorzündungen speichern > Energie im Kondensator, der dann die gesamte gespeicherte > Energie mit einem Mal abgibt. Das muß halt da nicht die Spule > übernehmen. also sind die Auto-Zündspulen CDI-Spulen? CDI ist von Controler her sehrviel einfacher als TCI. Schlicht weil man keine Ladezeit brücksichtigen muß. Auch von der Endstufe unterscheiden sie sich deutlich. Eine Spannungsüberhöhung wie bei TCI Zündanlagen gibt es hier nicht. Allerdings stimmen dann Deine 20A nicht. Der Speicherkondensator in der CDI wird auf Spannungen biszu 250V aufgeladen. Der Erregerstrom in der Zündspule dürfte damit in der Größenordnung bis zu 100A liegen. Erst begrenzt die Induktivität, dann der Spannungsabfall des Kondensators. Für den IGBT ist die Dauerstrombelastbarkeit dabei völlig irrelevant. Er muß die 100A Peak verkraften können. Ciao, Werner CDI: Condensator Discharge Ignition; Zündenergie wird im Kondensator gespeichert. Spulenstrom hoch aber sehr kurz. Zündfunke entsteht beim einschalten der Spule. TCI: Transistor Controled Ignition; Zündenergie wird im Magnetfeld der Spule gespeichert. Spulenstrom klein aber lang. Zündfunke entsteht beim ausschalten der Spule.
@Werner: Das habe ich nicht behauptet, dass Autozündspulen CDI-Spulen sind!
TCI-Zündsysteme sind halt einfacher zu realisieren und günstiger. Und zum Zünden von Ottomotoren im Auto ausreichend. Heutzutage werden bei großen Hubraumstarken, oder auch Turbomotoren Einzelfunkenspulen benutzt, Vorteil: sie geben eine höhere Zündenergie an nur eine Kerze ab(vgl. zwei Kerzen-> wasted-spark). Sind aber auch nur TCI, also werden über nen Transistor einfach mit Strom versorgen, er schaltet ab, Spule induziert hohe Sekundärspannung, Funke springt an Kerze über. Neue Entwicklungen gehen dahin, dass man den Zündtransistor gleich auf die Spule macht, so dass man sie nur mit Strom versorgt+einer "Datenleitung"(TTL-Pegel) zum zünden, nennt sich plug-on-coil. Bei diesen Spulen ist meist auch der Primäranschluß, welcher an Zündungsplus gelegt wird herausgeführt, dazwischen wird ein Meßshunt geschaltet und das Steuergerät kann somit ermitteln, ob die Spule zündete oder nicht(im Falle eines Defekts z.B.).
Hallo Barti, lassen wir 's gut sein. Wichtig ist nur, das nicht jede Blackbox eine CDI Zündung ist, auch wenn die Bezeichnung CDI inzwischen selbst von den Herstellern verwendet wird. Yamaha bezeichnet die Zündbox der 3VD z.B. als CDI, es ist aber eine TCI Zündung. Ciao, Werner
Hallo Ich habe mir eine Überlegung in Sache Division gemacht. Wäre es nicht einfacher den Timerwert (24Bit) durch 2048 zu teilen? Somit müsste ich den Wert einfach 11x nach rechts schieben. Wäre so die Division nicht viel schneller ? Statt: Timerwert / 720= Somit 0.5 Grad Abstufung Sondern Timerwert /2048 = Somit 0.175 Grad Abstufung Es wäre doch nicht so schlimm dass man jetzt statt 0.5 Grad in 0.176 Grad schritten die Zündung verstellen muss? Wäre dies denkbar oder habe ich einen Überlegungsfehler gemacht. Gruss Sweety
Hallo Sweety,
> Wäre dies denkbar oder habe ich einen Überlegungsfehler gemacht.
denkbar ist das.
Was mich stört ist der krumme Wert 0.17578..., aber im Prinzip mache
ich das genauso.
Ich arbeite mit 0,2 Grad Schritten, also Teilung durch 1800.
Realisiert ist das als Reihe von Shift-Add Schritten, wie schon
erwähnt. Bei einem 32bit Zählerwert braucht die Berechnung rund 50
Takte.
1/1800 = 1/256 * 1/7.03125 ; 1/256 == LowByte wegschmeißen
1/7,03125 = ZE
ZE1 = 1/8 Timer/256
ZE2 = 1/8 ZE1
ZE3 = 1/8 ZE2
ZE4 = 1/4 ZE3
...
ZE = ZE1 + ZE2 + ZE3 + ... -
Die genauen Shiftlängen müßte ich nachgucken.
Ciao,
Werner
Hallo, also vielleicht liegich ja falsch, aber ich dachte es soll für nen 2 Takter werden. Der hat keinen Klofpsensor, Luftmassen und -mengen Sensor, kein Temperaturgeber,... Woher weist du wie du die Zündung verstellen musst? Wenn du das weißt, kannst du mal auf www.mz-guru.de gehen. Der hat sich ne einfache Zündung gebaut. Seb
Zu DDR-Zeiten in der "EBZA" (Elektronische Batterie Zünd Anlage) wurde der SU177 in Darlington-Konfiguration verwendet http://www-user.tu-chemnitz.de/~heha/bastelecke/Konsumg%FCter-Bastelei/DDR-Analogschaltkreise/su177.gif Sollte ja wohl heutzutage jeder Transistor schaffen. Gab allerdings auch für jeden Zylinder eine Zündspule (3 x im "Wartburg") Ich habe leider keine Unterlagen mehr zu dem Teil als ganzes, habe damals aber mit drann entwickelt. War sehr spannend... Vile Grüße AxelR.
Beim Zweitakter ist das so ein Problem...ist eigentlich denk ich ganz gut mit oben genannten Mitteln zu lösen, also Stethoskop oder kleines Mikro mit Verstärker, günstigerweise vielleicht noch nen Hochpaß ran, um das Motorengeräusch etwas zu minimieren und nur das Pingen zu hören.
Hey, bin ziemlich neu hier. Hab den thread mit grossen Interesse verfolgt. In baue mir gerade einen Golf 1 auf und wollte eigentlich die Steuerung von http://www.trijekt.de einbauen, aber da ist mir der gleiche Gedanke wie euch gekommen ... besonders wo ich den Preis gesehen habe :-) !! Aber schaut euch mal die .pdfs auf der Seite an. Sehr informativ !!! Gruß stricky
Hallo Stricky, trijekt spielt schon in einer anderen Liga als das was wir hier zusammenbauen. Interessant wird TriJekt imo aber erst, wenn zur eigentlichen Zündung auch noch die Einspritzung gesteuert werden muß. Ciao, Werner
Hallo Hat schon jemand was auf die Beine gestellt? Würde mich auf eine Antwort freuden.
Hallo Roppie,
> Hat schon jemand was auf die Beine gestellt?
Zündung für 2Zylinder mit 62Grad Zylinderwinkel:
TCI Zündung mit Drehzahltabelle (nicht über die Drehzeit!)
Verstellwinkel 0-51 Grad, Schrittweite: 0.2 Grad
Interpolation von 15 Zwischenwerten zwischen den Tabellenwerten
(Anpassung des Winkels alle 6.25 U/min)
Stand:
32bit Zeitbasis: fertig
Drehzeiterfassung: fertig (*)
Drehzahlbestimmung: fertig (1/t)(*), ggf. noch optimierbar
Tabellenhandling: fertig
Interpolationsroutine: Optimierungsbedarf, erfordert ggf. Änderungen an
(*)
Zündspulenhandling (laden/zünden): fertig
Modehandling: in arbeit (Stop-, Start-, Control-Mode)
Fehlerhandling: in arbeit
Laden/Speichern/Umschaltung zwischen mehrern Tabellen: konzept
Monitoring der Zündungsdaten via RS232: konzept (via USB: Infosuche)
Hardware: funktioniert am Schreibtisch, Test am Mopped steht an (Einbau
der PickUps an der Nockenwelle: in arbeit)
Ciao,
Werner
Hallo, nicht schlecht, bei mir war der letzte Stand das mit dem Beschreiben und Auslesen des EEPROMs, da ich später evtl. mit einem EPROM-Emulator arbeiten will um in Echtzeit einfluss zu nehmen. Aber ich hatte da ja so ein paar Probleme und mich seit dem noch nicht weiter damit beschäftigt, da ich zurzeit nen Motorschaden habe und mich da um andere Sachen kümmern muss. Das ganze Mathematische Zeug habe ich auch noch nicht in Angriff genommen. Habe schon die Rechnungen auf dem Papier z.b. für die Interpolation aber das in Assembler umzusetzten ist mein größtes Prob. Habe mir schon überlegt das ganze am PC interpolieren zu lassen und dann ein riesen Kennfeld aus EEPROM brennen, dadurch brauche ich nicht die Rechnungen z.b. für die Interpolation im µC ausführen.
Hallo, also ich habe jetzt meinen Motor wieder drin und konnte och ein paar Teile abstauben wie das 60-2 Kurbelwellenrad ink. Impulsgeber und eine Doppelzündspule. Komischerweise hat dieser Motor keinen Impulsgeber an der Nockenwelle um den ersten Zylinder erkennen zu können wie wird das hier gemacht? Es ist eine Einspritzanlage die nur über Drehzahl und Saugrohrdruck arbeitet und einen Doppelspulenanlage hat. Ich suche allerdings noch ein Buch das mir Idiotensicher beschreibt wie das mit dem Parallelen EEPROM funktioniert, da ich das ums verrecken nicht hinbekomme, habe schon ein paar Anläufe probiert aber es scheint eher ein Zufallserfolg zu sein also nciht reproduzierbar.
>Komischerweise hat dieser Motor keinen Impulsgeber an der Nockenwelle
um den ersten Zylinder erkennen zu können wie wird das hier gemacht?
Es ist eine Einspritzanlage die nur über Drehzahl und Saugrohrdruck
arbeitet und einen Doppelspulenanlage hat.<
Braucht er auch net. Es ist ein 4-Zylinder oder? D.h. es sind immer 2
Kolben gleichzeitig oben, das sind die, die gleichzeitig zünden(deshalb
Doppelspule oder in Englisch auch "wastet-spark" genannt), einer
zündet leer, der andere das verdichtete Gemisch.
Ist die Einspritzung eine Mono- oder ne Multipoint? Bei Monopoint
spritzt eine Düse ein paarmal pro Kurbelwellenumdrehung ins Ansaugrohr.
Bei Multipoint wird jeder Zylinder einzeln bedüst, aber soweit weißt Du
das sicher auch. Nun zu Deiner Frage: Solange die Einspritzung nicht
sequentiell arbeitet, benötigt man keine Information, wann der 1.
Zylinder im O.T. ist. Diese Einspritzvarianten nennen sich:
"Grouped", für eine gruppierte Einspritzung, d.h. es spritzen 2 Düsen
gleichzeitig, egal ob der Zylinder gerade saugt oder nicht,
oder "Batched", da spritzen alle gleichzeitig ein.
Ersteres wird z.B. bei alten Opelmotoren genommen, z.B. Corsa A GSI.
Meist spritzen diese Varianten auch mehrmals pro Kurbelwellenumdrehung
ein, sonst kann es passieren, dass bei einem Zylinder, dessen Ventile
nicht offen sind und er saugt, sich das Gemisch zu stark anreichert und
an der Wandung des Saugrohrs in den Zylinder fließt. Schlechter Lauf und
Auswaschung der Zylinderwände wäre die Folge->Kolbenfresser.
Was war es überhaupt nochmal für ein Fahrzeug, welches Du da umbauen
möchtest?
MfG Barti
Hallo, stimmt ist ja kein Vollsequentielles System. Es ist der Corsa A GSi Nachfolgemotor(Astra F) der keinen Verteiler mehr hat sonder wie gesaht die Doppelzündspule, da hatte ich mangels defekt der Ölpumpe einen Motorschaden. Aber das Auto für welches ich das entwickeln will ist eine 1,8E Ascona C dem ich einen Turbolader spendiert habe. Leider eins der ersten Modelle mit analoger Einspritzanlage und mech. Zündverstellung. @Werner: Hast du das in Asembler oder in C gemacht?
@Thomas
> Hast du das in Asembler oder in C gemacht?
In BASIC/BASCOM und Assembler.
Das Programmgerüst ist in BASIC, die Berechnungsroutinen sind in
Assembler, zumindest die meisten ;).
Ciao,
Werner
@Thomas: Oh cool ein C16SE...ist nicht nur ein Nachfolgemotor aus dem A GSI, der wurde da auch verbaut. Allerdings nur die letzten 2 Baujahre. Stimmt der spritzt nicht sequentiell ein, sondern gruppiert. Mußt Dir mal den Schaltplan angucken, da sieht man dass immer 2 Düsen zusammengeschaltet sind. Ich bin dabei nen C16Sei-Block+Kopf(Baugleich mit C16SE) mit meinem C14SE(kleiner Bruder vom C16SE) aus meinem Corsa zu paaren. Komme bloß nicht so richtig dazu. Wie wär's, wenn Du erstmal die Einspritzung realisierst, den Ladedruck mechanisch am Wastegate begrenzt und die Zündung etwas später stellst? Um erstmal zu sehen, ob Deine konstruktion hinhaut und die Einspritzung ist ja auch net unbedingt einfach zu realisieren. Man sollte da schon ein paar Dinge beachten. Bei der Programmierung schleichen sich auch immer wieder Fehler ein, die man manchmal schwer findet, vorallem wenn das System real läuft. Später fügst Du eine Ladedruckregelung hinzu und realisierst die vollelektronische, kennfeldgeführte Zündung, wobei Du hier vielleicht wieder Fehler entfernen mußt und dann noch ein Zündkennfeld erstellen, welches effektiv ist und kein Klopfen produziert. Dazu kannst Du dann auch die verteilerlose Zündung(DIS-Modul) installieren, die läßt sich leicht über 2 Drähte mit Logik-Pegeln steuern, man braucht net mal ne externe Endstufe! Allerdings könnte es sein dass sie nicht ohne Probleme paßt, da sie von nem Small-Block ist und Du nen Big-Block hast. Big-Block gibt's auch welche, weiß net ob das die gleichen sind -> mal ins EPC gucken oder Händler fragen. MfG Barti
Ich bin leider noch laie in bezug auf AVR-programmierung, aber ich habe da eine Idee: Wenn meine Zündverstellkurve einfach genug ist, dann brauche ich evtl. überhaupt kein kennfeld, sondern errechne mir mit hilfe einer geeigneten funktion den ZZP. Die funktion kann ja auch abschnittsweise definiert sein. Beispiel: bei mechanischen Fliehkraftverstellern (Oldtimer-Motorrad) entspricht die kurve ab leerlauf einer horizontalen geraden bis ca. 1500 1/min mit min frühverstellwert, dann kommt eine stetig steigende gerade zwischen 1500 und ca. 3500 1/min wo die max. verstellung auf früh erreicht wird und dann bleibt die "kurve" ab 3500 1/min wieder eine horiz. gerade mit max. frühverstellwert. Sowas geht doch auch ohne kennfeld und damit auch ohne notwendigkeit des interpolierens, oder? Grüsse Schnappi
Kannst Du machen, ist aber nicht sehr genau. Sinn des Kennfeldes ist, dass in allen Last- und Drehzahlbereichen den optimalen Zündzeitpunkt hast, relativ nahe der Klopfgrenze. Nur so hat er die meiste Leistung. Denn die alten Fliehkraftversteller haben das relativ statisch gemacht, nach Drehzahl. Du hast aber noch ein Lastsignal, wenn Du z.B. Gas gibst, Berg hoch, Berg runter oder auf der Geraden fährst. Und das benötigt Abstimmung... Kannst es erstmal einfach nach Drehzahl versuchen und später dann das Lastsignal mit einbeziehen. Aber arbeite Dich erstmal in den Atmel ein, die Hardware ist dann ein ganz anderes Problem...
Danke für die guten Tipps. Dieser Thread ist eine Fundgrube für mich. Ich habe schon einen AT90S2313 herumliegen, aber mir ist es mit meinem selbstgebastelten einfachst-Programmiergerät noch nicht gelungen was hineinzuschreiben. Ich werde mir also doch erstmal ein vernünftiges Prog bei ebay ersteigern und eine zugehörige Software beschaffen (kann mir hierfür jemand ein Gerät bzw. Software -low budget- empfehlen). Dann muss ich "nur" noch Assembler erlernen oder mir BASCOM kaufen. Du hast schon recht, bevor ich hier was zerreisse, hab ich noch ein Stück Arbeit vor mir. Aber es wird langsam Herbst und Winter und da brauche ich ein Projekt ... mit einer realistischen Zielsetzung sonst fehlt mir die Motivation. Aber ich dachte mir, daß ich mit sehr einfachen Routinen anfangen sollte, daher die Idee mit dem "errechnen" des ZZP. Ich habe nämlich so ein altes Maschinchen (1-Zylinder 2-Takt, 175 ccm), für das ich so ein Steuergerät bauen will. Eine Endstufe habe ich schon vor 10 Jahren für damalige meine BMW gebaut, aber eben noch mit mech. Frühverstellung, da eine Segmentscheibe auf dem U-Nocken über einen Hallgeber triggerte. Für die Schliesswinkelregelung habe ich den IC L497 benutzt. Leider bekommt man den jetzt nicht mehr. Mein jetziges Projekt hat gar keine Frühverstellung, was natürlich suboptimal ist. Zunächst möchte ich gar nicht bis an die Klopfgrenze gehen, sondern "nur" eine gängige (konservative) Fliehkraft-Kennlinie nachbilden, damit ich experimentieren und evtl. von aussen mehrere Kennlinien umschalten kann. Ich weiss, daß das noch nicht optimal ist, aber als ersten Schritt würde es mich schon mal glücklich machen. Danach wäre dann der Schritt zur Kennliniensteuerung oder/und Einbeziehung eines Lastsignals zu machen. Bin dankbar für jeden Tipp, den ich von Euch bekommen kann. Grüße Schnappi aus München
Also Programme findest Du kostenlos das AVR-Studio(für Assembler) oder AVR-GCC, allerdings C-Programmierung. Bascom ist soweit ich weiß nciht kostenlos. Proggis zum flashen: PonyProg(www.lancos.com), AVR-Dude und weitere... Einen Programmer findest Du auch hier im Shop. Bei dem ebay-Zeug wär ich vorsichtig, dass es nicht irgendwelche billige Bastelware ist. Also wenn Du das erstmal so rein statisch machst, dann hast Du erstmal genug zu tun ;). Erst in die AVR-Welt einarbeiten und dann noch ne funktionierende Hardware erstellen, heißt Du mußt die Bordspannung auf 5V bringen, stabilisieren, vor Überspannungen und Spannungsspitzen schützen. Desweiteren arbeitest Du mit sehr hohen Spannungen, das kann den AVR etwas aus dem Takt bringen, wenn sich da Störungen bemerkbar machen. Für Deine Zwecke reicht der Tiny erstmal, willst Du später das Ganze über Kennlinien machen, kann es passieren dass Du arge Speicherprobleme bekommst, je nachdem wie gut Du algorithmierst und was für Ansprüche du stellst bzw. welche Features Du einbaust.
Hallo Mich würde einfach mal interessieren wer was schon auf die Beine gestellt hat. Gruss Weihnachtsmann
habe mal ne Frage wie kann man die Zündung auf Ihre Leistungsstärke messen. Mir hat vor langer Zeit mal jemand(Mitarbeiter von ATU) gesagt das Sie in ihrer Ausbildung ein Plexiglasgehäuse hatten mit einem Gewinde für die Zündkerze und einen Druckanschluß und damit haben die das gemacht, weiß aber nciht mehr ob die da den Druck im geschloßenen Gehäuse erhöht haben und irgendwann die Zündenergie nciht mehr reichte oder ob da evtl. nur ein Luftstrom an der Kerze vorbei erzeugt wurde um den Funken aus/weg-zublasen. Oder kann man die Zündspannung als verlässlichen Wert nehmen, musste mir halt dann noch nen Hochspannungstastkopf holen wobei die sehr teuer sind. Ich bin inzwischen soweit das es mir die Transistoren für einige Sekunden nicht durchhaut, aber Sie werden doch recht warm, könnte sein das ich nicht voll durchschalte und es da zu verlusten kommt statt einem Wiedrstand zw. dem Gate und der Masse werde ich vielleicht einen 2ten Transistor setzen um das Gate schneller zu entladen wenn der Strom zum Gate unterbrochen wird, weil der Wiederstand wirkt sich ja auch in dem Moment negativ auf wenn ich das Gate befeuere
Wie man es möglichst einfach misst habe ich jetzt auch keine Ahnung. Ich würde an Deiner Stelle Operationsverstärker nehmen, um die Transistoren zu steuern. Weiter oben habe ich glaube ich auch mal den Typ der IGBT's genannt, den ich verwende. Die gehen sehr gut...braucht man auch nur mit 5V ansteuern(TTL-Pegel). MfG Barti
Hallo zusammen, bin gerade über den Thread gestoplpert - ist zwar nicht mehr ganz taufrisch aber für den Fall, dass da noch jemand halbfertige Projekte rumliegen hat, gibt es hier zur Themati noch brauchbare Informationen und Beispiele: http://www.transmic.net/ Besten Gruß Dolphi
ich habe mir mal einige Zündungen auf der Seite angesehen. Aber der Spannungsregler hängt hier ohne jeglichen Schutz direkt am Bordnetz. Ich würde da zumindestens eine Drosselspule in Reihe und danach noch eine Supressordiode zur Masse reinmachen. Die Drosselspule fungiert gleichzeitig als Widerstand so das die Supressordiode nicht überlastet wird und der Spannungsregler bleibt dadurch vor alzu hohen Impulsen verschont und hat weniger auszuregeln.
2 Takter brauchen auf grund ihrer mech konstruktion keine zündzeitpunktverstellung bei unterschiedlichem saugrohrdruck. Im gegensatz zum 4 takter. dieser verstellt zw 0 bar und 1 bar atmosphere um min 15 grad die Zündung gegen vor OT Die einzige verstellzeit, die der 2 takter braucht ist die zündverzugszeit von 1/1000 sekunde. bei 1000 1/min wäre das ca 6 grad vor OT Dies ist aber von der kraftstoff qualität abhängig
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.