Translate

21 August 2012

Noch ein paar Versuche mit dem IGBT

Das Sommerloch hat offenbar seinen Höhepunkt erreicht, und die Hitze macht auch unseren
Politikern zu schaffen.......und auch mir.....aber ein bisschen was geht bekanntlich immer!

Zwischen meinem PWM-Gererator und dem IGBT steckt jetzt eine "galvanische Trennung"
per Optokoppler, aber ich bin damit nicht zufrieden, weil der derzeitige Optokoppler (CNY17-3)
einfach zu langsam ist und es deshalb beim Sanftanlauf ein bisschen hapert weil die ersten kurzen
Signale gar nicht durchkommen, aber ansonsten geht das so.





Ein paar der Elkos sind nun über dicke Stomschienen mit dem IGBT verbunden
und das reicht für ein paar neue Versuche.Ich habe einfach mal mit ein paar "Snubber"
Kondensatoren  herumprobiert, aber das brachte mich nicht wirklich weiter,
weil die auf die vorhandene Last abgestimmt sein müssen, und in diesem Fall
mit der noch viel zu hohen Frequenz meiner PWM und meinem kleinen Motor
waren 10nF schon zu viel.Trotzdem war die Wirkung überdeutlich sichtbar.
Die Flanken wurden richtig schräg, was natürlich nicht der gewünschte Effekt ist,
da nur das Überschwingen an den "Ecken" der Rechteckspannung gedämpft
werden muss. Wenn da est mal die Spannung passt und der große Motor dranhängt
kann man den richtigen Wert ermitteln, und mal grob über den Daumen geschätzt ergibt sich
folgende Vermutung :jetzt bei rund 30Vam Ausgang und ca 3A hätten wohl 1nF oder kleiner gepasst
also werden bei halber Frequenz und 400A so ca 100nF nicht ganz verkehrt sein.
Die gekauften 2,7µF Kondensatoren sind hier auf alle Fälle viel zu groß, aber die passen
dafür perfekt auf die Elkos bzw auf den Eingang des IGBT.
Da gibts noch viel zu basteln.........

Für die Anpassung des Still-Motors an das modifizierte Entengetriebe habe ich gerade vorhin
einen Flansch gebaut, mit  dem ich von der VW-Verschraubung auf der Motorwelle
(Der Motor soll auch samt VW-Kupplung an ein Golf-Getriebe)
auf die Verzahnung der 2CV-Eingangswelle komme.
In diesem Fall der Einfachheit halber ohne Kupplung, weil bei einem Eingang-Getriebe
sowieso nicht geschaltet werden muss, und weil das erst mal nur für Versuchszwecke als
Prüfstand gedacht ist. (Bei der Ente sind die Bremsen am Getriebe dran, so kann ich belasten)
Die Verzahnung ist auf  den Bildern nur eingepresst, aber noch nicht verschweisst, das soll sich
erst noch ein wenig ausrichten, dann passt das nachher besser.



........und weil ich schon mal dabei war, habe ich auch noch ein kleines PWM-Programm
für einen Atmega168 in der "alten" Franzbox-Platine in Angriff genommen.
Das ist zunächst auch nicht viel anders als das ATTiny13-Programm, aber für die Zukunft
habe ich so viel mehr Möglichkeiten um noch zusätzliche Features einzubauen.
Da habe ich dann genügend Ein- und Ausgänge, ein Display und einen Drehencoder für
Eingaben zur Verfügung um dann die zukünftigen Erweiterungen mit dazuzuehmen.
(Strom, Spannungs und Temperaturüberwachung des Controllers,Drehzahlmesser, Parametrierung
per Menue, serielle Schnittstelle für ???????? etc........)
....ach ja, die Drehzahlüberwachung.....da brauche ich auf alle Fälle einen Interrupt-Eingang zum
Zählen der Impulse. Den muss ich vom Drehencoder abzweigen, für den reicht einer statt
wie bisher zwei.Die Timer für die Zeitmessung und für die Frequenzerzeugung (DZM)
brauche ich beim Controller nicht, also kann ich die nutzen um die Impulse zu zählen.
"Norm" sind zwei Impulse pro Umdrehung, dann wäre ich wieder kompatibel zu
einem Vierzylinder-Drehzahlmesser und könnte das umschaltbar machen
und wahlweise Drehzahl oder Ampere (am DZM per Franzbox)anzeigen.
3000 U/min wären dann 6000Impulse pro Minute bzw 100 pro Sekunde.
1/3 Sekunde zählen und dann mit 100 Multiplizieren gibt die Drehzahl in 100U/min Auflösung.
das sollte reichen, weil das ohnehin nur zum Begrenzen der Drehzahl vorgesehen ist.
Ansonsten bräuchte ich mehr Impulse, wenns schneller und genauer werden soll.
Eine andere Möglichkeit wäre, die Zeit zwischen den Impulsen zu messen, aber dann nur
bei jedem zweiten, damit es immer "der selbe" ist. Das wäre noch ein bisschen schneller!
aber das ist auch ein bisschen mehr Programmaufwand, aber kein Problem.
Vorerst ist aber die geänderte Taktfrequenz das Wichtigste, weil ein 4MHz Quarz
etwa 8 kHz PWM-Takt ergibt, und da will ich erst mal hin! Das geht nicht mit dem ATTINY13
(ATTINY25 könnte das zwar, aber das wäre wieder mal eine technische Sackgasse)
Von den Platinen liegen noch ein paar rum, und die kann ich direkt umprogrammieren und
testen ohne auch nur den Programmer abzustecken, das erleichtert auch die Arbeit!
Vorerst reicht das für meine Versuche, und der PWM-Takt muss erst mal korrekt beim IGBT ankommen
und auch "hinten" wieder raus und dafür brauche ich noch keine Regelschleifen und Begrenzungen
da will ich bestenfalls mal das Impuls-Pausen-Verhältnis wissen und einstellen können.
Der Rest ist ein völlig anderes Kapitel und darum kümmere ich mich, wenn die Ansteuerung
des IGBT passt.Vorher macht das wenig Sinn.


So läuft das schon mal...... Da sind noch ein paar "Altlasten" drin,
weil ich da natürlich ein anderes Programm als "Grundgerüst" genommen habe.
Die drei Eingänge brauche ich später für den Drehencoder, aber einen davon D.2 oder D.3
muss ich schon mal abzweigen für die Drehzahlmessung.

$regfile = "m168def.dat"
$crystal = 4000000
$baud = 1200 ' unnötig, kein RS232 verwendet ev.Option?

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc


'Config Portd.6 = Output 'OC0A

'Config Timer2 = Pwm , Pwm = On , Compare A = Clear , Prescale = 1
'Config Timer0 = Pwm , Pwm = On , Compare A = Clear , Prescale = 1
'Config Timer0 = Pwm , Pwm = On , Compare A Pwm = Clear Down , Prescale = 64
'Config Timer1 = Pwm , Compare A Pwm = Clear Up , Prescale = 1
'Merken!!!! so funktionieren die Timer zumindest schon mal

Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4
Config Lcdbus = 4

Config Lcd = 20 * 4a , Chipset = Ks077       'für EA DIP204-4
Cursor Off
Cls

Dim A As Word

Config Pind.2 = Input
Config Pind.3 = Input
Config Pind.4 = Input

Portd.2 = 1
Portd.3 = 1
Portd.4 = 1


Config Portd.6 = Output

Enable Interrupts

Config Timer0 = Pwm , Pwm = On , Compare A Pwm = Clear Down , Prescale = 1

Do
A = Getadc(0)
A = A / 4

Locate 1 , 1
Lcd A ; "  " ;

Ocr0a = A

Loop


Das ist einfach die bessere Basis,
und nach ein paar Widerstandsänderungen etc passt das jetzt ganz gut!
Da werden dann die ganzen Extras so der Reihe nach dazuprogrammiert.

Hier noch eine kleine Funktionsdemo, wo ich am Schluss auch noch die Wirkung des
"Snubber" zeige, was aber hier viel zu extrem ausfällt, aber dafür sieht man den Effekt besser


Mal sehen was die nächsten Tage so passiert...ich habe jetzt dann eigentlich jetzt ein
paar Tage "Urlaub", aber den werde ich daheim verbringen, da ist einfach viel zu viel
liegengeblieben, und ein bisschen schrauben zur Entspannung will ich natürlich auch......
den Controller mal echt belasten, den Still-Motor ans Entengetriebe flanschen,
und die Werkstatt aufräumen, das Haus neu streichen, mit der Ente zum Tüv,
beim Golf den Motor wechseln (Ölt überall, viele Km, ist einfach zu alt um den neu abzudichten)
und den Boden + Schweller schweissen, ....ja, jetzt wird der gute Golf so richtig alt....
mit der Familie will ich auch noch was unternehmen und und und........
Mal sehen zu was ich so komme, alles geht sowieso nicht!
bis demnächst!
Franz






Keine Kommentare:

Kommentar veröffentlichen