Hallo, ich bin neu hier im Forum und auch das programmieren von Mikrocontrollern ist Neuland für mich. Im Rahmen meiner Diplomarbeit habe ich nun die Aufgabe ein Differenzdrehzahl Messsystem aufzubauen. Das heißt die Sensorwerte von zwei Drehzahlsensoren aufnehmen und auswerten. Zum einen das Signal eines Hallgebers und zum anderen das Signal eines Induktivgebers, welches Mittels Schmitt-Trigger hochohmig abgegriffen werden soll um das Sensorsignal für eine parallel laufende Motorsteuerung nicht zu verfälschen. Mein erstes Ziel ist es, einen geeigneten Mikrocontroller bzw. ein Entwicklungsboard zu finden welches für diese Aufgabe geeignet ist, um dann mittels Funktionsgenerator die Drehzahlen zu simulieren und das System zu Testen. Erwartet werden Drehzahlen bis 12.000 1/min und die Signalerkennung läuft bei beiden Sensoren über ein Inkrementenrad mit jeweils 60 Zähnen. Wenn ich richtig rechne sollten demnach Signale mit einer Frequenz von 12kHz entstehen. Könnt ihr mir bei der Auswahl eines geeigneten Entwicklungsboards helfen? Vielen dank schonmal!
Hi Nun, der Atmega8 kann mit 16 MHz betrieben werden. Die Signale kannst per Interrupt einsammeln. Wenn du nur die Differenz erfassen sollst, einen Kanal hoch, den anderen runterzählen. Sollte mit dem genannten Controller machbar sein. Gruß oldmax
karim g. schrieb: > Inkrementenrad mit jeweils 60 Zähnen. Wirklich? die Räder die ich kenne haben 60-2 Zähne. (mit 2 Zähnen Zahnlücke). Bei 12000 U/min wird man eher ein 36-2 Zähne-Rad verwenden. Profis nehmen hierfür heutzutage entweder einen TC1797 oder einen Nachfolgeprozessor mit digitaler PLL für die Drehzahlerfassung. Von Motorola gibt es dann noch die Power-PC-Reihe. Gruß Anja
Anja schrieb: > Profis nehmen hierfür heutzutage Er ist Anfänger und wäre mit den genannten Prozessoren sicher überfordert. karim g. schrieb: > Im Rahmen meiner Diplomarbeit > habe ich nun die Aufgabe ein Differenzdrehzahl Messsystem aufzubauen. Spezifiziere Deine Anforderungen bezüglich Gebersignal (mit Zahnlücke?), Auflösung/Genauigkeit und Meßgeschwindigkeit.
Vielen dank für die Empfehlungen. Ich denke es wird ein Atmega88. Die Handhabung scheint gleich zu sein, aber er ist Leistungsfähiger und bietet mehr Externe Interrupts als der Atmega8. Könnt ihr mir ein fertiges Board empfehlen mit dem ich ein paar Tutorials machen kann bevor ich mit der Drehzahlmessung starte?
karim g. schrieb: > Ich denke es wird ein Atmega88. Die Handhabung scheint gleich zu sein, > aber er ist Leistungsfähiger und bietet mehr Externe Interrupts als der > Atmega8. Frei nach Ikea: Bastelst du noch oder machst du schon Diplomarbeit? m.n. schrieb: > Spezifiziere Deine Anforderungen bezüglich Gebersignal (mit Zahnlücke?), > Auflösung/Genauigkeit und Meßgeschwindigkeit.
> Spezifiziere Deine Anforderungen bezüglich Gebersignal (mit Zahnlücke?), > Auflösung/Genauigkeit und Meßgeschwindigkeit. Das Gebersignal wird über einen Induktivgeber von einem 60-2 Schwungrad eines Motors aufgenommen. Das Zweite Drehzahlsignal kommt von einem Hallgeber der ebenfalls 60 Zähne pro Umdrehung sieht. Allerdings ohne Zahnlücke. Zwischen den Beiden Inkrementenrädern befindet sich eine Gelenkwelle die den Motor mit einer Wirbelstrombremse verbindet. Ziel ist es, durch den vergleich der Drehzahlen einen Bruch der Gelenkwelle schnellstmöglich zu erkennen und eine Reaktion einzuleiten. Dafür wäre natürlich eine möglichst hohe Auflösung von Vorteil. Optimal wäre es vielleicht jeden Zahn zu erkennen und die Drehzahl 60 mal pro Umdrehung zu Ermitteln. Ob das möglich ist werde ich wohl im laufe des Projekts feststellen.
Mir ist noch nicht klar, wozu du da die Drehzahl kennen musst.
Wenn vom einen Geber ein Puls kommt, wird eine Variable erhöht.
Kommt vom anderen Geber ein Puls, dann wird die Variable erniedrigt.
Im Mittel muss die Variable einen Wert von 0 aufweisen. (+-1 wegen
eventuellem Zeitversatz). Laufen auf einem Geber mehr Pulse auf als am
anderen, dann stimmt was nicht. Bei einem Variablenwert abs(counter)
größer als 5 wird Alarm ausgelöst.
Die absolute Drehzahl muss dazu kein Mensch kennen.
Das ist ein mitzählen: Für jeden der in einen Raum reingeht addierst du
1, für jeden der rauskommt subtrahierst du 1. Beim Absperren muss die
Anzahl 0 sein, sonst ist wer vergessen worden.
Wenn in der Bergstation einer Seilbahn mehr Gondeln talwärts fahren als
raufkommen, dann ist das Tragseil gerissen.
Wenn beim Paternoster mehr Kabinen nach unten vorbeirauschen als noch
oben fahren, dann ist was gebrochen.
Die Drehzahl kann man ja immer noch ermitteln. Aber das muss nicht 60
mal in der Sekunde passieren. So schnell kann sowieso kein Mensch
Messinstrumente ablesen.
> Ob das möglich ist werde ich wohl im laufe des Projekts feststellen.
Und wie verhinderst du, dass deinem µC langweilig wird?
Karl Heinz Buchegger schrieb: > Die absolute Drehzahl muss dazu kein Mensch kennen. Völlig richtig. Wenn man schon Richtung Brucherkennung einer Welle geht, könnte man zusätzlich noch Versuchen die dynamischen Versatzzeiten zu ermitteln um so auf die Torsionsmomente zu schliessen und Schwingungen zu erkennen.
@ Karl Heinz Buchegger :)Sehr anschaulich erklärt! Dann kann mir die absolute Drehzahl offensichtlich erstmal egal sein. > So schnell kann sowieso kein Mensch Messinstrumente ablesen. Deshalb soll die Ersatzreaktion auch automatisch eingeleitet werden. > Und wie verhinderst du, dass deinem µC langweilig wird? Ok, dann hab ich das Teil wohl unterschätzt! > Völlig richtig. > > Wenn man schon Richtung Brucherkennung einer Welle geht, könnte man > zusätzlich noch Versuchen die dynamischen Versatzzeiten zu ermitteln um > so auf die Torsionsmomente zu schliessen und Schwingungen zu erkennen. Das ist auch Teil der Aufgabenstellung. Aber als erstes muss ich einen Einstieg finden, mich auf das verwendete Board einschießen und dann Versuchen eine vernünftige Signalerkennung auf die Beine zu stellen.
Hi Nun, viel geschrieben, aber im Grunde Beitrag 2.... Du wirst bei deiner Aufgabe sicherlich nicht um die Messung der Torsionsmomente herumkommen, denn wenn du bei dieser Auflösung 2 Impulse auseinander liegst, beschleunigt eine Seite noch, während die andere langsam zum Stillstand kommt. Ich meine dabei jetzt nicht den Anlauf, da wird sich je nach Material möglicherweise schon eine Differenz aufbauen, aber entweder bleibt sie dann konstant oder geht wieder auf 0. Kommt ganz auf die Leistung und Belastung an. Daher wirst du erfassen müssen: Wann ist Geschwindigkeit konstant, wann sind Lastwechsel. Dabei bedenke, für einen Controller ist eine konstante Geschwindigkeit bereits gegeben, wenn sich in einer Zehntelsekunde die Drehzahl nicht verändert hat.... Im Übrigen finde ich es völlig korrekt, das du dir ein wenig Gefühl für die Controller erarbeiten möchtest. Da drück ich dir doch glatt die Daumen, das du auch die nötige Zeit hast. Gruß oldmax
Bleibt noch die Frage: ist es nur die Diplomarbeit oder soll dabei auch was praktisch nutzbares/direkt einsetzbares herauskommen? Falls Punkt2: such auch mal nach Drehmomentmesswellen. Ok, nicht ganz billig:-)
karim g. schrieb: >> Wenn man schon Richtung Brucherkennung einer Welle geht, könnte man >> zusätzlich noch Versuchen die dynamischen Versatzzeiten zu ermitteln um >> so auf die Torsionsmomente zu schliessen und Schwingungen zu erkennen. > > Das ist auch Teil der Aufgabenstellung. Aber als erstes muss ich einen > Einstieg finden, mich auf das verwendete Board einschießen und dann > Versuchen eine vernünftige Signalerkennung auf die Beine zu stellen. Um diesen Versatz zu bestimmen wirst du eine sehr feine Auflösung der Timer benötigen. Ich denke mal das das der bestimmende Punkt sein wird. Also berechne mal wie fein die Timerauflösung zum erfassen der Pulse sein muss, damit für die Torsionsmomente etwas relevantes berechnet werden kann. Vom Gefühl her würde ich bei der Eingangsfrequenz den ATmega als zu schwach betrachten. Ich denke du wirst da eher Richtung Cortex Mx mit > 60 MHz gehen müssen.
@oldmax Das anliegende Torsionsmoment wird durch eine Kraftmessdose an der Wirbelstrombremse aufgenommen. Deshalb ist auch keine Drehmomentmesswelle erforderlich. Bevor ich die dynamischen Effekte durch Lastwechsel beobachte, muss ich erstmal in der Lage sein die Ungleichförmigkeiten bei Stationärbetrieb aufzunehmen. H.joachim Seifert schrieb: > Bleibt noch die Frage: ist es nur die Diplomarbeit oder soll dabei auch > was praktisch nutzbares/direkt einsetzbares herauskommen? > Falls Punkt2: such auch mal nach Drehmomentmesswellen. Ok, nicht ganz > billig:-) Ich finde eine Wellenbruch-Überwachung schon sinnvoll. Zumal man damit das Risiko von Schäden am Prüfstand sowie am zu prüfenden Motor minimieren kann. Schön das ihr euch hier im Forum auch für den mechanischen Teil meiner Arbeit interessiert. Die erste Aufgabe für mich ist der reine Aufbau einer Wellenbruch-Überwachung. Das hat erstmal noch nichts mit Torsionsschwingungen zu tun. Gut, man muss in Erfahrung bringen in wie weit eine Elastische Verformung der Welle toleriert werden darf, aber das sind Probleme mit denen ich mich parallel zum Aufbau dieses Systems beschäftigen werde. Wenn ich einen Mikrocontroller habe der meine Signale aufnehmen und Verarbeiten kann bin ich schonmal sehr zufrieden.
Hi Ok,, dannn brauchst du "nur" die Überwachung auf Bruch, das ist einfach... wie gesagt, Differenzgeschwindigkeiten >3-4 Imp und dann ist das Ding schon ab, schätze ich. Vom Atmega88 hab ich grad nicht die Unterlagen aber du wirst da schon richtig verglichen haben. Mit den 2 Interrupt-Eingängen hätt ich jetzt mal behauptet, würdest du auskommen, da du ja nur die schnellen Impulse erfassen mußt und da ist weniger die Frequenz entscheidend, sondern das Puls-Pause Verhältnis. Mit einem kuzen Puls kannst du beim Polling was verpassen, obwohl die Frequenz was anderes sagt.... Taster und Bedienung gehören nicht in den Interruptbereich. Da reicht Polling völlig aus. Übrigends, ich war es nicht, der von Drehmomentmesswelle geschrieben hat, sondern davon, das bei einem Lastwechsel durchaus unterschiedliche Impulse auftreten können. Dies jedoch nur in kurzen Zeitbereichen. Aber du machst das schon. Viel Spaß bei deiner Diplomarbeit. Gruß oldmax
oldmax schrieb: > Mit den 2 > Interrupt-Eingängen hätt ich jetzt mal behauptet, würdest du auskommen, > da du ja nur die schnellen Impulse erfassen mußt und da ist weniger die > Frequenz entscheidend, sondern das Puls-Pause Verhältnis. Nix mit Interrupt! Der mega88 hat da zwei Eingänge, die heißen T0 und T1. Damit kann man zwei der drei Timer "von außen her" takten. Die Pulse werden aber erst in den Prozessortakt einsynchronisiert, da kann die eingehende Frequenz maximal f_cpu/2 sein(Nyquist und Shannon, wenn ich die erwische sind sie dran!!). Nun kann man in der Mainloop bequem die beiden Zählerstände vergleichen. Was anderes ist ja nicht zu tun oder? mfg mf
Jetzt hab ich auf jeden Fall schonmal ein kleines Basiswissen, und weis mit welchem Controller ich an die Sache ran gehen kann. Vielen dank euch allen und ich werde berichten wenns weitergeht!
karim g. schrieb: > Das Gebersignal wird über einen Induktivgeber von einem 60-2 Schwungrad > eines Motors aufgenommen. Das Zweite Drehzahlsignal kommt von einem > Hallgeber der ebenfalls 60 Zähne pro Umdrehung sieht. Hallo ihr Helden, ihr habt einen wesentlichen Teil der Aufgabenstellung wohl übersehen: der eine Geber hat weniger Zähne als der andere. Also mit einem einfachen Zahnvergleich wird es nichts. Die fehlenden Zähne müssen ausgeblendet / interpoliert werden. Das mindeste was man braucht ist ein Prozessor mit 2 CCP-Units mit noise canceler (digitales Filter) damit man auf den Flanken auswerten kann. Das dürfte mindestens ein ATMega1284 werden. Die Frage ist ob das reicht. Die Geberräder sind meist nicht ganz rund so daß ggf. noch mathematisch aufwendige Adaptionsfunktionen notwendig sein können. (Es sei denn Du willst wirklich erst den Zustand nach dem Bruch der Welle erkennen und nicht schon kurz vorher). Gruß Anja
Anja schrieb: > ihr habt einen wesentlichen Teil der Aufgabenstellung wohl übersehen: > der eine Geber hat weniger Zähne als der andere. wenn man nach 30 Zähnen eine impuls überspringt hat man die gleiche anzahl. Die Frage ist immer noch wie schnell muss ein fehler erkannt werden, wenn es nur innerhalbt 1 umdrehung sein muss reicht diese einfache lösung.
karim g. schrieb: > Jetzt hab ich auf jeden Fall schonmal ein kleines Basiswissen, lies dir mal ein paar Patente auf dem Gebiet durch: http://www.google.com/patents/US5789658 http://www.google.com/patents/US5428991 Gruß Anja
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.