Hallo, bin recht neu in der Microprozessorprogrammierung. Ich möchte versuchen an einem Esp32 die Frequenz eines Audiosignals zu ermitteln. Es geht grob darum an einem Motor die Audiofrequenzen zu ermitteln. Steht ein Lagerschaden bevor, erwarte ich andere Frequenzen, auch bei Drehzahländerungen. Dazu steht mir ein max9814 zur Verfügung und ein ESP32. Habt ihr Ideen oder vielleicht sogar kopierbare Vorlagen? Ich programmiere mit Arduino IDE. Vielen Dank für eure Hinweise. Stefan
:
Bearbeitet durch User
Sicher wird dein Mikrofon nicht eine Frequenz aufzeichnen, sonder ein Gemisch von vielen. Von diesem Signal machst eine Spektrum-Analyse. Visualisiere das Ergebnis erstmal und finde heraus, was sich an dem Bild beim Lagerschaden signifikant ändert. Die Spektrum-Analyse kann man später per Software in Echtzeit machen. Wenn man konkret weiß wonach man sucht, lässt sie sich signifikant vereinfachen.
Stefan H. schrieb: > bin recht neu in der Microprozessorprogrammierung. Nicht nur dort... > Ich möchte versuchen > an einem Esp32 die Frequenz eines Audiosignals zu ermitteln. Schon gelosed! Das Problem ist: nahezu kein Audiosignal besteht nur aus einer Frequenz. In aller Regel gibt es also nicht DIE Frequenz eines Audiosignals... > Ich > programmiere mit Arduino IDE. Ich hatte kaum etwas anderes erwartet, angesichts der Fragestellung...
Dafür gibt's besimmt eine Smartphone App mit der man erstmal experimentieren kann.
c-hater schrieb: > Stefan H. schrieb: > >> bin recht neu in der Microprozessorprogrammierung. > > Nicht nur dort... Die Antwort hilft mir nicht wirklich weiter, was möchtest du mir damit sagen? >> Ich möchte versuchen >> an einem Esp32 die Frequenz eines Audiosignals zu ermitteln. > > Schon gelosed! Das Problem ist: nahezu kein Audiosignal besteht nur aus > einer Frequenz. In aller Regel gibt es also nicht DIE Frequenz eines > Audiosignals... Ok, das ist klar und mir auch bewusst. Wie kannst du mir helfen? >> Ich >> programmiere mit Arduino IDE. > > Ich hatte kaum etwas anderes erwartet, angesichts der Fragestellung... Beruflich programmiere ich SPS. Die Anforderung jetzt ist privater Natur, daher muss es eine Budgetlösung sein. Mit welcher Software programmiert man denn „richtiger Weise“? Die Software sollte erstmal hintergründig sein, wenn ich verstehen möchte, wie ich es technisch aufziehen muss. Wenn das hier ein Forum für absolut Profis ist, bin ich hier wahrscheinlich falsch, lass es mich wissen, dann kann ich mich abmelden…
Vielen Dank für deinen Beitrag! Super, dein bebilderter Post. Wie kann ich das erreichen? Kannst du eine Software empfehlen? Das ganze Spektrum zu sehen wäre super, um überhaupt visuell erkennen zu können, wo man sich aufhält.
Stefan Horn schrieb: > Ok, das ist klar und mir auch bewusst. Sicher? Weil: Wenn das so ist, hast du dich gerade als Troll geoutet. Weil: wenn einem klar ist, dass die Frage Schwachsinn ist, dann stellt man sie nicht! So einfach ist Troll-Erkennung...
c-hater schrieb: > Stefan Horn schrieb: > >> Ok, das ist klar und mir auch bewusst. > > Sicher? Weil: Wenn das so ist, hast du dich gerade als Troll geoutet. > Weil: wenn einem klar ist, dass die Frage Schwachsinn ist, dann stellt > man sie nicht! > So einfach ist Troll-Erkennung... Danke, ich versuche die Fragestellung zu bearbeiten.
FFT Sourcen liegen im Netz rum. Den ADC entsprechend programmieren geht mir der ArduinoIDE bestimmt ganz einfach, kenne mich da aber nicht aus. Die FFT liefert Dir dann das was im Bild zu sehen ist, brauchste nur noch graphisch darstellen und jud is. Dann wird sich ein Muster für Dein intaktes Lager ergeben welches dann immer mit den aktuellen Meßwerten/FFT-Output verglichen wird. Abweichungen definieren und bei Überschreitung Alarm aktivieren.
Stefan Horn schrieb: > Kannst du eine Software empfehlen? Audacity am PC oder suche dir halt eine App. Das richtige Stichwort "Spektrumanalyse" habe ich dir gegeben.
Ich hoffe, Du kannst Englisch: https://create.arduino.cc/projecthub/mircemk/diy-fft-audio-spectrum-analyzer-ca2926 Sind nur 91 lines of code. Das schaffst Du :-)
:
Bearbeitet durch User
Pete K. schrieb: > Ich hoffe, Du kannst Englisch: > https://create.arduino.cc/projecthub/mircemk/diy-fft-audio-spectrum-analyzer-ca2926 > > Sind nur 91 lines of code. Das schaffst Du :-) Vielen vielen Dank, ich schaue es mir an!
Stefan H. schrieb: > Pete K. schrieb: >> Ich hoffe, Du kannst Englisch: >> > https://create.arduino.cc/projecthub/mircemk/diy-fft-audio-spectrum-analyzer-ca2926 >> >> Sind nur 91 lines of code. Das schaffst Du :-) > > Vielen vielen Dank, ich schaue es mir an! Das hat schon mal funktioniert, damit kann ich erstmal spielen. Wie kann ich mir so eine tolle Grafik, wie im Beitrag von Stefan F. (Stefanus) https://www.mikrocontroller.net/attachment/533349/51aBntekoUL.png Aus den Daten erzeugen? im seriellen Plotter sieht es ähnlich dem unteren Teil aus.
Stefan H. schrieb: > Wie kann ich mir so eine tolle Grafik, wie im Beitrag von Stefan F. > (Stefanus) > https://www.mikrocontroller.net/attachment/533349/51aBntekoUL.png > > Aus den Daten erzeugen? im seriellen Plotter sieht es ähnlich dem > unteren Teil aus. Mit einer Smartphone-App? So dürfte das Bild von Stefan F. entstanden sein. Er könnte noch ergänzen, wie die heißt. Die blauen Balken entstehen aus dem grünen Signal mit einer FFT.
HildeK schrieb: > Mit einer Smartphone-App? So dürfte das Bild von Stefan F. entstanden > sein. Er könnte noch ergänzen, wie die heißt. Keine Ahnung, das habe ich mit der Bildsersuche von Google gefunden und nicht weiter hinterfragt. Ich wollte nur zeigen, wie das Ergebnis einer solchen Analyse aussieht. Wie gesagt, Audacity kann das zum Beispiel.
Stefan H. schrieb: > Aus den Daten erzeugen? im seriellen Plotter sieht es ähnlich dem > unteren Teil aus. Als Startpunkt: https://matplotlib.org/stable/gallery/lines_bars_and_markers/spectrum_demo.html Dann die Parameter passend setzen.
Andreas M. schrieb: > Stefan H. schrieb: >> Aus den Daten erzeugen? im seriellen Plotter sieht es ähnlich dem >> unteren Teil aus. > > Als Startpunkt: > > https://matplotlib.org/stable/gallery/lines_bars_and_markers/spectrum_demo.html > > Dann die Parameter passend setzen. Super, vielen Dank, schaue ich mir an!
Stefan Horn schrieb: > dann kann ich mich abmelden… Du bist doch eh nur als Gast angemeldet...Dein Beispiel mit der Motordrehzahl und dem Lagerschaden kommt in der Tat aus dem großen Feld der Qualitätüberwachung und-sicherung. Und deine Fragestellung suggeriert, dass das Signal ein Audiosignal, aufgenommen mit einem Mikro, ist. Das kann so sein, muß aber nicht. Da du nicht konkret schreibst, wie dein "Audiosignal" gewonnen wird, kann man wohl nicht mehr sagen, als es hier schon getan wurde. Es läuft auf eine FFT-Analyse hinaus, die du auf deinem Controller realisieren mußt. Ich bezweifel allerdings stark, dass das mit Paste&Copy zu bewerkstelligen ist...aber ich wünsche viel Spass und Erfolg. Gruß Rainer
Rainer V. schrieb: > Stefan Horn schrieb: >> dann kann ich mich abmelden… > > Du bist doch eh nur als Gast angemeldet...Dein Beispiel mit der > Motordrehzahl und dem Lagerschaden kommt in der Tat aus dem großen Feld > der Qualitätüberwachung und-sicherung. Und deine Fragestellung > suggeriert, dass das Signal ein Audiosignal, aufgenommen mit einem > Mikro, ist. Das kann so sein, muß aber nicht. Da du nicht konkret > schreibst, wie dein "Audiosignal" gewonnen wird, kann man wohl nicht > mehr sagen, als es hier schon getan wurde. Es läuft auf eine FFT-Analyse > hinaus, die du auf deinem Controller realisieren mußt. Ich bezweifel > allerdings stark, dass das mit Paste&Copy zu bewerkstelligen ist...aber > ich wünsche viel Spass und Erfolg. > Gruß Rainer Hallo Rainer, Ich hatte geschrieben, dass ich das gerne privat nutzen möchte. Im Detail geht es um eine Poolpumpe. Diese ist nicht ganz günstig und hatte in den letzten 3 Jahren 2 mal einen Lagerschaden. Da sie über einen FU betrieben wird, möchte ich gerne, wenn ein Lagerschaden „erkannt“ wird, bzw. sich dieser anbahnt, die Drehzahl senken und limitieren. Das Mikrofon ist ein max9814. Copy-Paste ist nicht die Lösung, aber ein Anfang, um sich damit auseinander zu setzen. Ich hätte sonst keine Idee, wie und wo ich anfangen sollte.
Stefan H. schrieb: > Ich hätte sonst keine Idee, wie und wo ich > anfangen sollte. Ein paar Bücher über DSPs und Signalverarbeitung überfliegen. Es gibt einige, da wird eine FFT mathematisch und mit Code erklärt. Diesen könntest Du dann auf dein Zielsystem (ESP32) portieren.
Bei einem Lagerschaden steigt doch mit Sicherheit auch der mittlere Strom an. Hat der FU keine vernünftige Strommessung wo man dran kommt? Das wird mir Sicherheit deutlich einfacher als über Ton und man könnte sich je nach dem sogar den ESP sparen. Ansonsten wie gesagt ist eine FFT mit Sicherheit ein Schritt in die richtige Richtung wenn man es über Audio probieren will. Allerdings fängt es dann erst an. Was für Charakteristika ein Lagerschaden nämlich im Frequenzbereich ausmacht und wie man das sauber detektiert, wird mit Sicherheit auch nochmal ein "bisschen"Arbeit werden.
Hi, mal ein Vorschlag aus einer anderen Richtung. Wenn es streaming fähig sein soll versuche doch mal mit einem Mikrofon und GNU Radio eine Algorithmus zu erstellen der deinen Anforderungen zu Erkennung genügt. Wenn du die alten Pumpen noch hast mache damit Aufnahmen zum vergleichen. Ich würde mich erst einmal von der schnellen Lösung auf dem Mikrocontroller Lösen und das eigentliche Problem analysieren und dann die geeignete Technische Umsetzung erarbeiten. Mir hilft es solche Analysen mit Python und Jupyter Notebooks zu machen. Ersteinmal die grundlegenden Probleme in der Signalprozessierung lösen. Dazu müssen robuste Bewertungskriterien gefunden werden, schließlich möchte man eine geringe Falschalarmrate haben oder man schaltet ungewollt öfters die Pumpe ab. Sammle doch erst einmal Datensamples mit verschiedenen Mikrofonen und in verschiedenen Lastsituationen. Ermittle deren Frequenzspektrum, Filtere sie vergleiche sie. Welche spektrale Auflösung wird benötigt Eigenschaften des Signales erkennen zu können. Wenn du einige Audiosample aufgezeichnet hast mach eine Analyse und zeige die Ergebnisse dann frage nach weiteren Ideen.
N. M. schrieb: > Hat der FU keine vernünftige Strommessung wo man dran kommt? > Das wird mir Sicherheit deutlich einfacher als über Ton und man könnte > sich je nach dem sogar den ESP sparen. Wenn dem so wäre, dann würden es wohl alle Antriebshersteller so machen weil schon fertig. Machen sie aber nicht. Typischerweise wird das mit Vibrations-, aka. Beschleunigungssensoren gemacht. Von daher wäre Audio gar kein schlechter Ansatz, wenn die Frequenz höher wäre. Normalerweise erkennt man Lagerschäden daran, das man am Vibrationssensor ein schönes Tachosignal bekommt, Frequenz entspricht der Motordrehzahl. Man könnte also durchaus mit einer FFT und Aduio ran gehen, bräuchte aber ein Mikro was sehr tiefe Frequenzen kann. Google Stichwort "Condition Monitoring"
Hallo? schrieb: > Hi, > > mal ein Vorschlag aus einer anderen Richtung. Wenn es streaming fähig > sein soll versuche doch mal mit einem Mikrofon und GNU Radio eine > Algorithmus zu erstellen der deinen Anforderungen zu Erkennung genügt. > Wenn du die alten Pumpen noch hast mache damit Aufnahmen zum > vergleichen. > > Ich würde mich erst einmal von der schnellen Lösung auf dem > Mikrocontroller Lösen und das eigentliche Problem analysieren und dann > die geeignete Technische Umsetzung erarbeiten. > > Mir hilft es solche Analysen mit Python und Jupyter Notebooks zu machen. > Ersteinmal die grundlegenden Probleme in der Signalprozessierung lösen. > Dazu müssen robuste Bewertungskriterien gefunden werden, schließlich > möchte man eine geringe Falschalarmrate haben oder man schaltet > ungewollt öfters die Pumpe ab. Sammle doch erst einmal Datensamples mit > verschiedenen Mikrofonen und in verschiedenen Lastsituationen. Ermittle > deren Frequenzspektrum, Filtere sie vergleiche sie. Welche spektrale > Auflösung wird benötigt Eigenschaften des Signales erkennen zu können. > > Wenn du einige Audiosample aufgezeichnet hast mach eine Analyse und > zeige die Ergebnisse dann frage nach weiteren Ideen. Das hört sich nach einem Plan an. Erstmal kann ich jetzt ein bisschen spielen, hab ja den ein oder anderen Hinweis bekommen und ein FFT and laufen bekommen. Die Poolsaison ist im Moment vorüber, aber im kommenden Jahr kann dann die intakte Pumpe belauschen. Bis dahin spiele ich ein bisschen herum, vielleicht kann mit Aufnahmen von der Arbeit über ein Smartphone schon mal was erreichen. Vielen Dank für all die hilfreichen Kommentare. Ihr seid spitze!
Stefan H. schrieb: > > bin recht neu in der Microprozessorprogrammierung. Ich möchte versuchen > an einem Esp32 die Frequenz eines Audiosignals zu ermitteln. Es geht > grob darum an einem Motor die Audiofrequenzen zu ermitteln. Steht ein > Lagerschaden bevor, erwarte ich andere Frequenzen, auch bei > Drehzahländerungen. Dazu steht mir ein max9814 zur Verfügung und ein > ESP32. Ich hol' mal ein wenig aus... Wo und wie willst Du das Ergebnis deiner Messung darstellen? Auf einem graphischen Display? Die Ergebniswerte auf den PC übertragen und dann auf den Bildschirm? Da (zumindest für die Entwicklung) eh ein PC ins Spiel kommt, und auch um die Parameter/Eckpunkte deiner Anwendung bestimmen zu können, würde ich diese erst mal auf dem PC realisieren, z.B. mit 'Octave'. https://wiki.ubuntuusers.de beschreibt Octave wie folgt: GNU Octave ist eine interaktive Skriptsprache zur Lösung von Problemstellungen aus dem Bereich der Numerische_Mathematik. Die Syntax von Octave ist weitgehend mit der des bekannten proprietären Mathematikprogramms Matlab identisch. Octave kann auch komplexe Grafiken in 2D und 3D ausgeben. https://www.gnu.org/software/octave/index https://wiki.octave.org/Using_Octave Octave gibt es für Linux (und andere 'Unixoide' OS), macOS und MS Windows.
Andreas M. schrieb: > Wenn dem so wäre, dann würden es wohl alle Antriebshersteller so machen > weil schon fertig. Ich denke, es geht bei der Verschleißerkennung nicht um ein paar popelige Motörchen...da geht das Lager halt kaputt. Stell dir z.B. ein Walzwerk vor mit zig Motoren und Walzen. Da macht es Sinn, quasi ein Frühwarnsystem für Ausfälle zu haben. Und gemessen an den Kosten eines Stillstands der Anlage, wird dort in der Messtechnik auch richtig "geklotzt". Aber natürlich kannst du mit deiner Pumpe trefflich herumspielen...Anregungen gab es ja schon genug. Viel Spass und Erfolg! Rainer
Andreas M. schrieb: > N. M. schrieb: > >> Hat der FU keine vernünftige Strommessung wo man dran kommt? >> Das wird mir Sicherheit deutlich einfacher als über Ton und man könnte >> sich je nach dem sogar den ESP sparen. > > Wenn dem so wäre, dann würden es wohl alle Antriebshersteller so machen > weil schon fertig. Machen sie aber nicht. In der Industrie hat man meist hoch dynamische Systeme mit unterschiedlichsten Belastungsmomenten und diversen externen Störgrößen. Eine Strommessung ist hier sehr schwierig, aber in Grenzen möglich. Beim TO handelt es sich um eine Poolpumpe! Keinerlei Dynamik. Störgrößen ist wahrscheinlich nur wenn ein Blatt angesaugt wird. Wenn er den Strom messen würde könnte er den über einen sehr großen Zeitraum mitteln, denn der Lagerschaden verschwindet im Normalfall nicht einfach wieder. Wenn er das ganze sauber auf die Energie bezieht akkumuliert es sich sogar schön auf. Das Kriterium wird also leichter zu detektieren je länger er betrachtet. Andreas M. schrieb: > Vibrations-, aka. Beschleunigungssensoren gemacht Ja weiß ich. Teilweise nehmen sie sogar KI um den Lagerschaden dann in den Daten zu detektieren. Denn es gibt nicht DEN EINEN Lagerschaden. Gerade wenn noch eine Applikation mit wechselnden Lastmoment dran ist (ist hier glücklicherweise nicht so) kann man nämlich nicht mehr unterscheiden ob das "Tachosignal" von Lager oder der Applikation kommt. Deshalb oben schon den Kommentar: FFT einfach, Detektion in der FFT schwierig wenn man es allgemeingültig haben möchte.
Stefan H. schrieb: > Diese ist nicht ganz günstig und hatte > in den letzten 3 Jahren 2 mal einen Lagerschaden. Da sie über einen FU > betrieben wird, möchte ich gerne, wenn ein Lagerschaden „erkannt“ wird, > bzw. sich dieser anbahnt, die Drehzahl senken und limitieren. Mir leuchtet der Sinn der Aktion nicht ein, denn auch damit wird das Lager kaputt gehen. Und wenn die Pumpe mit reduzierter Leistung länger hält und dennoch ihren zweck erfüllt, dann lasse sie doch einfach immer mit reduzierter Leistung laufen. Denn dann hält sich noch länger.
Rainer V. schrieb: > Andreas M. schrieb: >> Wenn dem so wäre, dann würden es wohl alle Antriebshersteller so machen >> weil schon fertig. > > Ich denke, es geht bei der Verschleißerkennung nicht um ein paar > popelige Motörchen...da geht das Lager halt kaputt. Stell dir z.B. ein > Walzwerk vor mit zig Motoren und Walzen. Da macht es Sinn, quasi ein > Frühwarnsystem für Ausfälle zu haben. Und gemessen an den Kosten eines > Stillstands der Anlage, wird dort in der Messtechnik auch richtig Und was genau hat das mit meiner Aussage zu tun? Ich habe lediglich beschrieben wie es in der Industrie gemacht wird wenn es gemacht wird und das dort eben nicht der Motorstrom herangezogen wird. Und natürlich wird das auch bei kleinen Motoren gemacht und zwar immer dann, wenn ein Anlagenstillstand teuerer ist als die entsprechenden Messkomponenten. Bei einem Zementbrennofen spielt es keine Rolle, ob der viele KW starke Brenntrommelmotor ausfällt oder ein kleiner Ventilaktor zur Steuerung irgendeines Betriebsstoffes. Es wird in jedem Fall sauteuer wenn der Ofen vorher nicht heruntergefahren werden kann. > "geklotzt". Aber natürlich kannst du mit deiner Pumpe trefflich > herumspielen...Anregungen gab es ja schon genug. Viel Spass und Erfolg! Lies noch mal genau - Ich habe keine Pumpe....
Schon was länger her das in einem Kraftwerk bei wichtigen Motoren die Lagerschilde angebohrt wurden um Geräuschmeßsonden zu verbauen. Es schaute dann an der Oberfläche das runde Ende eines Meßstabes heraus der mit seiner inneren Spitze auf die Lagerschale drückte. Der Stab war gegen das Gehäuse "isoliert" und zur Messung wurde dann irgendwas angeklemmt. Die besonders wichtigen Teile waren dauerhaft in der Messung, in der Kontrollstation standen in einem Wandregal mehrere 4-Spur Bandmaschinen (Teac A-3440 o.ä.) die die Lagergeräusche von Turbine, Generator, Kühlmittel- und Speisewasserpumpen aufzeichneten.
NichtWichtig schrieb: > der mit seiner inneren Spitze auf die Lagerschale drückte. Körperschall Mikrofon!? (relativ)Preiswerte Varianten finden sich in vielen Autos, Klopfsensoren.
Andreas M. schrieb: > Lies noch mal genau - Ich habe keine Pumpe.... Sorry, war etwas schlampig formuliert von mir. Mein Text war als Ergänzung zu deinem gedacht! Und deshalb warst du auch nicht mit der Pumpe angesprochen ... Gruß Rainer
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.