- Labornetzteil AliExpress         
Ergebnis 1 bis 9 von 9

Thema: Brushlessmotor Controller Softwareablauf

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied Avatar von derNeue
    Registriert seit
    01.01.2011
    Ort
    Bierstadt Radeberg
    Alter
    39
    Beiträge
    101
    Hast du einen Link zu der Diplomarbeit?

    Weil was hier angesprochen wird, sollte man schon auch detektieren, dass der Controller abschaltet, wenn sich der Motor offensichtlich nicht mehr dreht. Mich würde eben interessieren, was so alles an Fehler detektiert werden kann, da hab ich nicht so wirklich eine Vorstellung davon.


    Dennis
    Ich studiere die Wirkung der Sonnenstrahlen auf das Liebesleben der Pflastersteine

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    24.06.2008
    Beiträge
    158
    http://www8.informatik.uni-wuerzburg..._Dilger_DA.pdf

    Sehr gute Arbeit von ihm.
    Mein Controller schaltet sich nicht ab, lediglich die BEMF Spannung schwingt im Stillstand.

    Zu der Verzögerung:
    Den CTC Mode habe ich in Bascom leider nicht aktiviert bekommen. Hab das ganze anders gelöst.
    -Timer0 misst die Zeit zwischen einer Kommutierung und einem AC-Interrupt
    -diese Zeit wird in den Timer1 geladen, dieser löst dann die nächste Kommutierung nach der Zeit aus

    Meine Frage wäre jetzt nurnoch, woher weiß ich welche Zeit 30Grad entspricht? Muss ich dazu nicht die Polpaarzahl wissen?

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied Avatar von derNeue
    Registriert seit
    01.01.2011
    Ort
    Bierstadt Radeberg
    Alter
    39
    Beiträge
    101
    Nein, musst du nicht. Für deinen Regler gibts nur die elektrische Umdrehung. Ich habe Motoren mit 7 Polpaaren. Soll heißen, ich benötige 7 elektrische Umdrehungen für eine mechanische. Alle 60 Grad schaltest du auf eine neue Phase(eben die 6 Zustände, die es gibt, hab kein passendes Wort gerade dafür). Und du möchtest genau 30 Grad nachdem der Komparator sich gemeldet hat kommutieren. Somit kannst du die Zeit, die er von der Kommutierung bis zum Komparator-Interrupt braucht, messen. Das ist dann genau die Zeit, die der Motor für 30Grad braucht. Deswegen reicht es zu, diese Zeit einfach nochmal abzuwarten, und dann erst umzuschalten. Die Grad-Angaben beziehen sich alle auf die elektrische Umdrehung. Manche fangen dann an, bei höheren Drehzahlen die Kommutierungszeitpunkt auf 25 oder sogar 20 Grad zu schieben. Ist nicht unbedingt nötig, wäre eben ein zusätzliches Feature, was nicht unbedingt gebraucht wird.

    Den CTC Mode habe ich in Bascom leider nicht aktiviert bekommen.
    Das hat doch mit Bascom nichts zu tun. Das liegt am Atmega8, weil der Timer0 keinen CTC Modus hat. Deswegen ja auch den Atmega88. Oder eben wie du es gelöst hast. Ist umständlich, aber geht. Du kannst aber auch gleich mit dem Timer1 die Zeit messen, da hast du mehr Spielraum, weil der Timer 16bit breit ist.


    Dennis
    Geändert von derNeue (03.05.2014 um 14:01 Uhr)
    Ich studiere die Wirkung der Sonnenstrahlen auf das Liebesleben der Pflastersteine

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    24.06.2008
    Beiträge
    158
    Okay danke, soweit hab ich alles verstanden. Den Ablauf und alle zusammenhänge

    Nun bin ich an einem Punkt angekommen einen Atxmega mit AweX zu nutzen. In meinem Versuchsaufbau werden meine drei IR2101 von 6 AweX Pwm-Pins angesteuert.
    Damit das funktioniert wurden 3 invertierte AweX Pins erneut invertiert um auf allen 6 Pins die gleichen PWM-Flanken zu erzeugen.
    Ausgegeben bekomme ich ein 12Bit 31,6Khz PWM-Signal.

    Nun würde ich gerne, soweit es möglich ist, die Ansteuerung des Brushlessmotors komplett über das DMA- und Eventsystem laufen lassen. Da meine Erfahrung diesbezüglich
    gleich null ist bräuchte ich eure Hilfe wie der Ablauf sein muss. So richtig weiß ich nicht welches Event was auslösen soll bzw wie ich das DMA benutze .

    Mein Gedanke ist:

    1. Analog Comparator auf Event_Ch0
    2. Timer1 wird bei jedem Event_Ch0 interrupt ausgelesen und in den Timer2 kopiert (mithilfe vom DMA?), anschließend wird Timer1 gestoppt.
    3. Timer2 startet bei einem Event_Ch0 interrupt mit 0 und zählt bis zu dem zuvor reinkopierten "Timer2-Wert"
    4. Timer2 interrupt löst das DMA aus, dieses kopiert eine Variable(mit den nötigen Bits für die richtigen Phasen) in das Awexc_outoven Register. Anschließend muss Timer2 wieder von 0 gestartet werden.

    Wofür ich keine Lösung habe ist bei dem setzen der Variable damit später die richtigen HS- und LS-Mosfets geschalten werden. Und ein weiterer DMA-Kanal muss das umstellen des AC_Mux Register vornehmen.

    Oh Gott, ich Blick das bald nicht mehr . Ist es überhaupt möglich einen Brushless-Motor gänzlich mit dem Event- und DMA-System anzusteuern?
    Tja also, welcher DMA-Kanal und welcher Event-Kanal muss WAS machen?
    Leider gibt es keinen Code: http://www.jtronics.de/avr-projekte/...ontroller.html

    Vielen Dank im vorraus!

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied Avatar von derNeue
    Registriert seit
    01.01.2011
    Ort
    Bierstadt Radeberg
    Alter
    39
    Beiträge
    101
    Also bei ATXmega bin ich raus. Ich möchte zwar auch demnächst einen verwenden, aber bis jetzt habe ich noch keinen in der Hand gehalten, geschweige denn programmiert. Ich denke aber, dass du hier niemanden finden wirst, der dir diesbezüglich helfen kann/will. Ich denke, das musst du allein hinbekommen. Mach halt eins nach dem anderen, also zuerst muss es funktionieren, dann eine kleine Änderung. Funktioniert es immer noch, war die Änderung erfolgreich, funktionierts nicht, musst du nochmal nachbessern. Es hilft vielleicht auch, die Abläufe sich aufzumalen. Allerdings denke ich auch, dass ein ATXmega für einen Brushless Regler bisschen overkill ist.


    Dennis
    Ich studiere die Wirkung der Sonnenstrahlen auf das Liebesleben der Pflastersteine

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    24.06.2008
    Beiträge
    158
    Mist, ich hab es geahnt lol. Sehr viel habe ich bisher mit einem Atxmega auch noch nicht gemacht, jedoch bin ich von der Leistung bisher sehr überzeugt!
    Eben noch entdeckt: Atxmega16d4 für 1,13Euro das Stück bei Voelkner. Ein Atmega88 kostet bei Reichelt 1,80Euro.
    Also kann ich auch gleich einen Brushlesscontroller mit dem Atxmega aufbauen und erhalte ein schönes 12Bit 32Khz PWM-Signal.

    Falls doch jemand noch eine Idee hat, bitte melden!
    Wie gesagt, ich blick das nur nicht mehr mit dem Ablaufplan, welches Event und welcher DMA Kanal wo verknüpft werden müsste.

Ähnliche Themen

  1. Brushlessmotor ansteuern
    Von datatom im Forum Motoren
    Antworten: 26
    Letzter Beitrag: 23.11.2016, 11:43
  2. Brushlessmotor entkoppeln
    Von Manta22 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 15
    Letzter Beitrag: 02.05.2014, 22:01
  3. Brushlessmotor Getriebe?
    Von Cool3000 im Forum Motoren
    Antworten: 6
    Letzter Beitrag: 19.01.2012, 20:35
  4. Brushlessmotor steuern
    Von datatom im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 14
    Letzter Beitrag: 20.06.2011, 19:07
  5. [ERLEDIGT] Brushlessmotor mit mc73110
    Von martinheidelberg im Forum Motoren
    Antworten: 6
    Letzter Beitrag: 04.05.2011, 18:44

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test