mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Neigung von Beschleunigung unterscheiden


Autor: Radelektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gleich vorweg: Ich weiss, dass ein ähnlichr Beitrag bereits existiert, 
kann damit aber leider nicht viel anfangen.

Zu meinem Problem:
Ich möchte für mein Mountainbike eine elektronisch absenkbare 
Ferdergabel entwickeln. Ich habe aber keine Idee, wie ich kostengünstig 
(max. 80CHF für Sensor) mit einem Sensor und einem uP das Realisieren 
soll. Ich möchte die Neigung des Geländes feststellen, habe aber das 
Problem der Beschleunigung.
Für meine Anwendung muss die Neigung ja nicht gerade sehr genau sein 
(+-5°).
Die Schaltung muss aber schläge verkraften können. Ich habe einen 
einachsigen Sensor gefunden, der meinen Wünschen entspricht, weiss aber 
nicht ob ich nur mit Software die Beschleunigung rausrechnen kann.

Fals jemand einenen anderen Vorschlag hat wähe ich ihm dankbar

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du Beschleunigungen (und damit ist auch die Erdanziehung gemeint) 
in allen drei Achsen messen willst, brauchste einen 3-achsigen-Sensor, 
und nicht nur 1-achsig. Für Deinen Fall sollten 3 Achsen nötig sein, um 
auch Schräglagen herausrechnen zu können.

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja - Kräfteberechnungen (Technische Mechanik), wie sie im Raum sich 
auswirken, sollte man natürlich auch können.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na. Die Neigung ist ein konstanter Vektor im 3D  Raum. Die 
Beschleunigungen sind davon abweichend.
Ich fahre selbst Fahrrad. Was soll die Absenkung bringen ?

Autor: Frank Bär (f-baer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Radelektroniker schrieb:
> Die Schaltung muss aber schläge verkraften können.

Wie wärs mit einem Tiefpassfilter höherer Ordnung?

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ha-jetzt Aber schrieb:
> Was soll die Absenkung bringen ?

Bergabfahrgefühl auch beim Bergauffahren ;-)

Autor: Joel Schmidt (hansjoerg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Radelektroniker schrieb:
> Gleich vorweg: Ich weiss, dass ein ähnlichr Beitrag bereits existiert,
> kann damit aber leider nicht viel anfangen.
>
> Zu meinem Problem:
> Ich möchte für mein Mountainbike eine elektronisch absenkbare
> Ferdergabel entwickeln. Ich habe aber keine Idee, wie ich kostengünstig
> (max. 80CHF für Sensor) mit einem Sensor und einem uP das Realisieren
> soll. Ich möchte die Neigung des Geländes feststellen, habe aber das
> Problem der Beschleunigung.
> Für meine Anwendung muss die Neigung ja nicht gerade sehr genau sein
> (+-5°).
> Die Schaltung muss aber schläge verkraften können. Ich habe einen
> einachsigen Sensor gefunden, der meinen Wünschen entspricht, weiss aber
> nicht ob ich nur mit Software die Beschleunigung rausrechnen kann.
>
> Fals jemand einenen anderen Vorschlag hat wähe ich ihm dankbar

Welchen Sensor hast du dazu gefunden?

Die störende Beschleunigung must du herausrechnen -- ggf. ist das mit 
Gyrosysteme d.b. Kombination Neigung & Beschleunigungserfassung zu 
machen. Hat auch seine Tücken oder wie es Frank Bär erwähnt kannst du 
das auch mal einfach mit einem TP realisieren da die Erdbeschl. 
(Neigungsbest.) ja von  statischer Natur ist.

Ist ne interessante Geschichte...
gruss

Autor: Frank Bär (f-baer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich ist das ziemlich einfach, denn du willst ja wirklich nur die 
statische Größe Neigung messen. Wenn du einen analogen Sensor hast (was 
ich bezweifeln möchte), dann nimmst du dazu einen aktiven Tiefpass, wenn 
es sich um einen MEMS-Sensor handelt (was ich für wahrscheinlich halte), 
dann benutzt du einen digitalen Tiefpass.
Die Grenzfrequenz des TP stellst du sehr niedrig ein, denn du möchtest 
ja nicht die ganze Zeit auf dem Rad rumhoppeln, nur weil du durch eine 
kleine Senke fährst. Ich würde da schon einige Sekunden, bzw. wenige 
zehntel Hertz einstellen.
Damit kriegst du definitiv nur die statische Komponente.
Irgendetwas rausrechnen bringt in dem Fall wenig bis gar nichts, und da 
es nicht sonderlich genau sein soll, kannst du dir das sowieso sparen 
und das Unerwünschte Spektrum einfach wegbügeln.

Stellt sich mir trotzdem die Frage, wozu das ganze gut sein soll.
Abgesehen davon ist die Betriebssicherheit doch ein ziemlicher Haken an 
der Sache, abgesehen von den EMV-Ansprüchen würde ich mich an deiner 
Stelle weitestgehend am Automotive-Bereich orientieren. Lötstellen, 
insbesondere bleifreier Natur, brechen gern, Temperaturschwankungen und 
Feuchtigkeitseinwirkung tun ihr übriges. Da möchtest du schon mindestens 
lackieren, besser noch vergiessen, wenn das System mehr als eine Tour 
aushalten soll.

Autor: MarcusW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Es gibt auch Neigunssensor-ICs, z.B. von VTI 
(http://www.vti.fi/en/products/inclinometers/inclinometers/). Wie gut 
diese auf deine Anwendung passen kann ich leider nicht sagen, sind aber 
für den Automotivesektor entwickelt.
Bezugsquelle wäre Hy-line 
(http://www.hy-line.de/firmengruppe/hy-line-sensor-...).

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ob ein Tiefpass den gewünschten Effekt bringt, hängt davon ab, ob man
den Frequenzbereich der Beschleunigung von dem der Steigungen voneinan-
der trennen kann, d.h. keine Überlappung besteht. Soll die Höhenänderung
der Gabel nur bei lang anhaltenden Steigungen oder Gefällen erfolgen,
ist der Tiefpass sicher eine Lösung.

Überlappen sich die interesseierenden Frequenzbereiche von Steigung und
Beschleunigung, kommst du mit einem Einzelsensor nicht weiter. Die Kom-
bination aus Neigungssensor und Gyro, wie bereits von Joel vorgeschla-
gen, könnte hier ein Ansatz sein. Da der Neigungssensor die absolute
Neigung und die Beschleunigung misst, der Gyro im Gegensatz dazu nur die
Neigungsänderung, kann versucht werden, die beiden Messwerte mittels
eines Kamlman-Filters zu fusionieren.

Je nachdem, was mit dem System bezweckt werden soll, ist es aber u.U.
gar nicht sinnvoll, die Beschleunigung herauszurechnen. Soll es bspw.
dazu dienen, an starken Steigungen, den Schwerpunkt nach vorne bzw. bei
Gefällen nach hinten zu verlagern, ist dieser Effekt sicher auch beim
Beschleunigen bzw. Abbremsen willkommen. Einen Tiefpass mit kurzer Zeit-
konstante braucht man aber immer noch, damit das System nicht schon bei
unrundem Tritt oder Bodenunebenheiten anspricht. Zusätzlich braucht man
eine geeignete Umrechnung von den gefilterten Sensorwerten in die
Gabelabsenkung, das ist dann aber schon alles.

Autor: Radelektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@marcus W: Ich hatte vor den TSCA61T von VTI zu benutzen.

@Frankbär: Unsere Firma stellt Geräte für das Militär her, deshalb kenn 
ich die Beanspruchungen. Das System wird am Schluss vergossen.

@Yalu: Der Sensor kann einen analogen Wert oder einen digitalen 
ausgeben. Ich verstehe aber nicht, weshalb ich dass mit einem Tiefpass 
machen soll, und nicht mit dem uP. Beim Bremsen und Beschleunigen sollte 
sich die Gabellänge nicht ändern, da die änderung ca. 20sec dauert.

Die Gabel sollte sich erst nach ca 30 sec Steigung absenken(von 150mm 
auf 100mm) Momentan muss ich das von Hand machen, was während dem Fahren 
etwas mühsam ist.

Autor: Radelektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kann heute Abend mal das Pflichtenheft hochladen

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Analog Devices: z.B. ADIS16209 (Dual-Axis, Inclination + Acceleration),
http://www.analog.com/en/sensors/inertial-sensors/...

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Radelektroniker schrieb:
> @Yalu: Der Sensor kann einen analogen Wert oder einen digitalen
> ausgeben. Ich verstehe aber nicht, weshalb ich dass mit einem Tiefpass
> machen soll, und nicht mit dem uP.

Mit "Tiefpass" meinte ich nicht unbedingt einen analogen. Ein digitaler
bzw. softwaremäßiger geht natürlich genauso.

> Die Gabel sollte sich erst nach ca 30 sec Steigung absenken

Da eine Beschleunigungs- oder Abbremsphase, die den gleichen Effekt wie
±5° Steigung hat, deutlich weniger lang als 30s dauert, könnte ein
(softwaremäßiger) Tiefpass bzw. eine gleitende Mittelwertbildung über
30s schon ganz gut funktionieren.

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich erinnere mich da so dunkel an die Äquivalenz von träger und schwerer 
Masse - wenn Einstein recht hat, kann man Neigung und Beschleunigung 
grundsätzlich nicht unterscheiden, solange man keinen unabhängigen 
Anhaltspunkt hat wie die Erdoberfläche. Annähernd könnte man die 
Erdbeschleunigung als konstant ansehen und abziehen, aber dazu muss der 
Sensor erstmal genau genug sein.

Gruss Reinhard

Autor: Radelektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reinhard Kern schrieb:
> Annähernd könnte man die
> Erdbeschleunigung als konstant ansehen und abziehen, aber dazu muss der
> Sensor erstmal genau genug sein.

Der Sensor ist einer der genausten auf dem Markt. Für das müsste ich 
aber ein Gyro einbauen oder?

Autor: Radelektroniker (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So hier wie versprochen das Pfichtenheft im doc Format

Autor: Stevko R. (stevko)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Radelektroniker,

ich weis nicht ob Du die (primäre) Frage gelesen hast, welche mich als 
Radfahrer auch beschäftigt:

>Ha-jetzt Aber (Firma: Aha) (hacky)
> ... Ich fahre selbst Fahrrad. Was soll die Absenkung bringen ?

Ja was soll die Absenkung bringen?

Ich sitze(oder überlege) an einem ähnlichen Projekt für ein Kfz. Meine 
Intention ist das Bestimmen der momentanen Neigung der Längsachse OHNE 
hier einen Radsensor für das "Rausrechnen" der Beschleunigung 
anzuzapfen.
Mein Zeitfenster, Aktualisierung aller 1-2sec, würde zwar genügend 
Rechenoperationen erlauben, aber egal wie ich mein Mech.-Skript wälze, 
ich finde(noch nicht) keinen gescheiten Ansatz.

Gruß
  Stevko

Autor: Radelektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stevko R. schrieb:
> Hallo Radelektroniker,
>
> ich weis nicht ob Du die (primäre) Frage gelesen hast, welche mich als
> Radfahrer auch beschäftigt:
>
>>Ha-jetzt Aber (Firma: Aha) (hacky)
>> ... Ich fahre selbst Fahrrad. Was soll die Absenkung bringen ?
>
> Ja was soll die Absenkung bringen?

Die Absenkung verhindert, dass ich beim Bergauffahren(>20°) nicht mein 
Gewicht nach vorne Verlagern muss, und so mein Gewicht vom hinteren 
"Antriebsrad" nehmen muss. Auserdem hat man mehr Konfort :).

Das mit dem Radsensor hast du vermutlich falsch verstanden. Ich möchte 
einen normalen Einachsigen Neigungssensor verwenden.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>So hier wie versprochen das Pfichtenheft im doc Format

DOC-Format ist Mist. Nimm lieber pdf.

Autor: Radelektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry mache ich bon jetzt an!
Mann kann das Doc jedoch ohne Plugin oder Word anschauen. Bei mir 
(Firefox 3.6) kommt wenn ich auf anzeigen klicke Google-docs und dort 
kann ich es wie ein pdf betrachten

Autor: Radelektroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke dass die Idee von Yalu mit dem software Tiefpass gut 
funktionieren sollte. Ich werde aber beides (Tiefpass und 
Mittelwertbildung) benutzen. Was eignet sich für mich besser ein FIR 
oder ein IIR. Ich kenne mich mit digitalen Filtern nicht aus :( Wenn ich 
das richtig sehe ist ein FIR besser aber braucht teurere Hardware?  Kann 
ich das auch mit einem realem Bauteil filtern (MEMS-Sensor) Oder gar den 
analogen Ausgang nehmen, den filtern und dann auf den uP?

Bin für alles offen!!!

Autor: Schlauberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Radelektroniker schrieb:
> as eignet sich für mich besser ein FIR
> oder ein IIR. Ich kenne mich mit digitalen Filtern nicht aus :( Wenn ich
> das richtig sehe ist ein FIR besser aber braucht teurere Hardware?

Machs nicht gleich so kompliziert und nimm für den Anfang einfach einen 
gleitenden Mittelwert über 30s.
Wenn Dir das nicht gut genug hinhaut kannst Du immer noch aufrüsten der 
µC hat doch eh nichts zu tun wenn Dein Stellglied eine Zeitkonstante von 
über 10 Sekunden hat. Dann reicht dir doch eine Abstastfrequenz von max. 
1 Hz.

Autor: Matthias Leu (Firma: Leica-Geosystems) (radelektroniker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schlauberger schrieb:
> Machs nicht gleich so kompliziert und nimm für den Anfang einfach einen
> gleitenden Mittelwert über 30s.
> Wenn Dir das nicht gut genug hinhaut kannst Du immer noch aufrüsten der
> µC hat doch eh nichts zu tun wenn Dein Stellglied eine Zeitkonstante von
> über 10 Sekunden hat. Dann reicht dir doch eine Abstastfrequenz von max.
> 1 Hz.

wenn ich mit nur 1Hz abtaste kann alles möglich passieren. Z.B treff ich 
dann 5 mal eine Beschleunigungsphase und noch 3 unwichtige unebenheiten. 
Ich dachte an ca. 10Hz  also 300 Abfragen. Mann muss auch bedenken, dass 
ich nicht auf Strassen sondern verblockten Trails fahre.

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schlauberger schrieb:
> Machs nicht gleich so kompliziert und nimm für den Anfang einfach einen
> gleitenden Mittelwert über 30s.

Das hätte ich auch getan, und zwar so, wie er hier

  http://de.wikipedia.org/wiki/Gleitender_Mittelwert

unter "Einfacher gleitender Mittelwert" beschrieben ist. Ich glaube,
dass das den Erwartungen des Fahrers am nächsten kommt. Bei einer
Abtastrate von 10Hz und einem Zeitfenster von 30s müsstest du dazu
jeweils die letzten 300 Messwerte im RAM des Controllers speichern, um
daraus den Mittelwert berechnen zu können.

Da der Sensor laut Datenblatt eine 3dB-Grenzfrequenz von 18±10Hz hat,
ist die Abtastrate von 10Hz evtl. zu niedrig (Abtasttheorem). Dadurch
kann unter ungünstigen Bedingungen der Fall auftreten, dass bei starken
Vibrationen fast nur die Maxima (oder nur die Minima) der Messwerte
erfasst werden, so dass der Mittelwert zu groß bzw. zu klein wird.

Besser wäre Abtastrate von etwa 1kHz. Dazu müsstest du aber 30000
Messwerte speichern, wofür der Speicher eines Billig-µC nicht ausreicht.
Eine Lösung dieses Problems besteht darin, die Messwerte mit einem
gewöhnlichen Tiefpass vorzufiltern. Das geht entweder mit einem
RC-Glied, wenn du den Analogausgang des Sensors benutzt, oder mit einem
einfachen IIR-Filter per Software:

  http://de.wikipedia.org/wiki/Exponentielle_Gl%C3%A4ttung

Beide, das analoge und das digitale Filter haben praktisch die gleichen
Eigenschaften. Von diesen vorgefilterten Werten führst du jeden 100sten
der gleitenden Mittelwertbildung zu, so dass du dort mit der Speicherung
von 300 Werten auskommst.

Du kannst natürlich auch versuchen, die komplette Mittelung mit der
exponentiellen Glättung (mit entsprechend großer Zeitkonstante) zu
machen. Im Gegensatz zur gleitenden Mittelwertbildung werden dabei aber
die jüngsten Messwrte stärker gewichtet als die älteren, und selbst sehr
alte Messwerte (älter als 30s) haben immer noch einen, wenn auch
geringen, Einfluss auf das Ergebnis. Es hängt sicher etwas vom Geschmack
des Fahrers ab, welche der beiden Methoden er als angenehmer empfindet.
Vielleicht merkt er aber auch überhaupt keinen Unterschied ;-)

Autor: Matthias Leu (Firma: Leica-Geosystems) (radelektroniker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für deine Hilfe Yalu
Ich mach es jetzt vermutlich mit einem IIR Filter und dem gleitendem 
Mittelwert. Das sollte wirklich funktionieren.
Später werde ich vermutlich noch eine Funktion einbauen die erkennt ob 
ich auf einer Strasse oder im Gelände fahre und dann unterschiedlich 
reagiert.

Noch etwas ganz anderes: Was für ein Motortyp könnte ich für das 
Verstellen des Hebels benutzen? (brauche etwa 100-150N Kraft) Eventual 
ein Servo?
Hätte den Vorteil dass man immer die Position kennt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.