Forum: Mikrocontroller und Digitale Elektronik Bytes berechnen


von AJ (Gast)


Lesenswert?

Hallo an alle,

kurze Frage. Wie berechne ich meinen Speicherbedarf?

Habe einen Sensor der pro Umdrehung 5000 Impulse liefert
Bei einer Drehzahl von 6000 U/min und die Dauer beträgt 5s

(5000  6000  5)/60 = 5 MB

Ist das so richtig oder muss ich noch irgendetwas beachten?

von Route_66 H. (route_66)


Lesenswert?

AJ schrieb:
> Wie berechne ich meinen Speicherbedarf?

WAS willst du speichern?
Wenn du Umdrehungen zählen willst, dann brauchst du nur eine genügend 
große Zahl und keinen Speicherbereich.

von Axel S. (a-za-z0-9)


Lesenswert?

AJ schrieb:
> Habe einen Sensor der pro Umdrehung 5000 Impulse liefert
> Bei einer Drehzahl von 6000 U/min und die Dauer beträgt 5s
>
> (5000 × 6000 × 5) ÷ 60 = 5 MB
>
> Ist das so richtig

Das ist noch nicht mal zahlenmäßig richtig gerechnet. Woher du die 
Einheit "Byte" nimmst, ist auch schleierhaft. Auf der linken Seite der 
Gleichung kommt jedenfalls nirgendwo ein Byte vor. Und warum teilst du 
durch 60?

> Wie berechne ich meinen Speicherbedarf?

Gegenfrage: wofür sollte ein Sensor, der Impulse liefert, überhaupt 
Speicherbedarf haben? Impulse werden üblicherweise nur gezählt

von Gurgl (Gast)


Lesenswert?

Das würde schon stimmen, kann aber auch 2x, 4x sein, je nachdem WAS der 
Sensor misst.
@axel: das sind die 60 Sekunden pro Minute

von Gurgl (Gast)


Lesenswert?

Wenn links die Einheit short int ist passt es ( je nach System, harhar )

von AJ (Gast)


Lesenswert?

Ups tut mir leid..

ich speichere bei jeder Flanke die Auftritt, einen Zeitstempel ab. 
Daraus berechne ich mir später dann die Geschwindigkeit.

Dafür benutze ich einen 32-Bit Timer.

von Stefan F. (Gast)


Lesenswert?

6000 U/min x 5000 Impulse x 4 Bytes = 120 MByte/min

120 MByte/min / 60s x 5s = 10 MByte

Du kannst die Daten aber eventuell auf weniger Bits komprimieren, indem 
du nicht die absoluten Zeitpunkte, sondern die Differenz zwischen 
aufeinander folgenden Zahlen speicherst.

> Daraus berechne ich mir später dann die Geschwindigkeit.

Die kannst du auch während der Messung berechnen und ausgeben. Ich nehme 
mal stark an, dass du die ermittelte Geschwindigkeit nicht 5000 mal pro 
Umdrehung aktualisieren musst. Wenn doch, würde mich mal brennend 
interessieren, was das für eine Raketenwissenschaft ist.

von Gurgl (Gast)


Lesenswert?

Stefanus F. schrieb:
> 6000 U/min x 5000 Impulse x 4 Bytes = 120 MByte/min

Das haut so noch nicht hin, was passiert mit den Impulsen?

von Stefan F. (Gast)


Lesenswert?

Gurgl schrieb:
> was passiert mit den Impulsen?

Die Lösen sich in Luft auf. Mal ehrlich, was soll diese blöde Frage? 
Willst du jetzt den Mathe-Lehrer raushängen lassen und uns erklären, wie 
man korrekt mit Einheiten umgeht? Bitte, mach nur!

von Joe F. (easylife)


Lesenswert?

AJ schrieb:
> ich speichere bei jeder Flanke die Auftritt, einen Zeitstempel ab.
> Daraus berechne ich mir später dann die Geschwindigkeit.

Ich vermute dir geht es darum, einen Graph über 5s zu zeichnen, der 
einen Geschwindigkeitsverlauf (z.B. Beschleunigung, Gleichlaufverhalten, 
Abbremsen) darstellt.

Abspeichern eines Timerwertes bei jedem Impuls hat die Schwierigkeit, 
dass der Timer überlaufen kann, wenn der Motor sehr langsam dreht oder 
steht.

Alternative wäre, in sinnvollen Zeitabständen die Impulsanzahl 
(=Momentangeschwindigkeit) abzuspeichern. Das lässt sich dann auch 
direkt in einen Graphen umwandeln.
Wenn die zeitliche Auflösung z.B. 1 ms ist, hättest du für die 5s nur 
noch 5000 Messwerte (Impulsanzahl) zu speichern.
Bei 6000 U/min treten in einer ms ca. 500 Impulse auf, du kämst also mit 
16-bit Werten aus, macht 10 KB Speicherbedarf.

von AJ (Gast)


Lesenswert?

Vielen Dank Stefanus, das passt so.

Joe das würde nach meiner Berechnung erst nach 72s Überlaufen.
Und der Timer zählt erst, wenn die erste Flanke auftritt.

Und ja es wird danach ein Graph dargestellt, ich hau im Matlab einfach 
meine ganzen Zeitstempel rein und das Programm erledigt den Rest.

von Joe F. (easylife)


Lesenswert?

AJ schrieb:
> Und ja es wird danach ein Graph dargestellt, ich hau im Matlab einfach
> meine ganzen Zeitstempel rein und das Programm erledigt den Rest.

Tja, das ist die heutige Generation Ingenieurskunst.
Für die gleiche Aufgabe sind statt 10 KB Daten auch 10 MB Daten okay, 
Mathlab erledigt den Rest, und wenn das Reinzoomen in den 2500000 
Punkte-Graph zu langsam wird, kauft man einen schnelleren Rechner.
Ehrlich jetzt?

von Gurgl (Gast)


Lesenswert?

Stefanus F. schrieb:
> Willst du jetzt den Mathe-Lehrer raushängen lassen und uns erklären,
> wie man korrekt mit Einheiten umgeht?

Ne ich dachte eigentlich du kommst da vielleicht selbst drauf!

von Axel S. (a-za-z0-9)


Lesenswert?

Gurgl schrieb:
> @axel: das sind die 60 Sekunden pro Minute

Mift. Irgendwie war ich bei 5 Minuten Meßzeit hängen geblieben. Es sind 
aber nur 5 Sekunden. Die Rechnung stimmt trotzdem nicht. Weder von den 
Zahlenwerten noch von den Einheiten.

von Axel S. (a-za-z0-9)


Lesenswert?

Gurgl schrieb:
> Stefanus F. schrieb:
>> 6000 U/min x 5000 Impulse x 4 Bytes = 120 MByte/min
>
> Das haut so noch nicht hin, was passiert mit den Impulsen?

Guter Einwand. Aber einfach zu beheben. Denn es muß "4 Bytes / Impuls" 
heißen und dann kürzen sich die Impulse auch ordnungsgemäß raus.

von Joe F. (easylife)


Lesenswert?

Aus persönlichem Interesse: wo bekommt man einen so schönen Encoder, der 
5000 Imp/U liefert?

von Wolfgang (Gast)


Lesenswert?

Joe F. schrieb:
> Abspeichern eines Timerwertes bei jedem Impuls hat die Schwierigkeit,
> dass der Timer überlaufen kann, wenn der Motor sehr langsam dreht oder
> steht.

Bei 6000 1/min wird das bestimmt nicht passieren.

Je nach dem, was man als "langsam" klassifiziert, wird selbst bei eine 
Umdrehung pro Minute immer noch alle 12 Millisekunden ein Impuls kommen.

von Wolfgang (Gast)


Lesenswert?

Joe F. schrieb:
> Aus persönlichem Interesse: wo bekommt man einen so schönen Encoder, der
> 5000 Imp/U liefert?

Kann man kaufen, hier z.B. mit bis zu 20480 Imp/U
https://www.wachendorff-automation.de/drehgeber-hohlwellendrehgeber-hohlwelle-durchgehend-isolation-inkremental-optisch-wdg100i/

von Joe F. (easylife)


Lesenswert?

Wolfgang schrieb:
> Je nach dem, was man als "langsam" klassifiziert

Bei Motoren rechne ich da prinzipiell mit 0 U/min.

von Wolfgang (Gast)


Lesenswert?

Joe F. schrieb:
> Bei Motoren rechne ich da prinzipiell mit 0 U/min.

Geht aber hier laut Eröffnungspost an der Fragestellung vorbei, i.e. der 
Fall interessiert hier wohl überhaupt nicht.

Bei einem 32-Bit Zähler und 16MHz Takt, nur um mal irgendwelche Zahlen 
zu nennen, besteht erst unterhalb von 0,00005 1/min die Gefahr eines 
unbemerkten Überlaufs. Das wirst auch DU kaum noch als Drehung 
wahrnehmen.

von Joe F. (easylife)


Lesenswert?

Wolfgang schrieb:
> Bei einem 32-Bit Zähler und 16MHz Takt, nur um mal irgendwelche Zahlen
> zu nennen, besteht erst unterhalb von 0,00005 1/min die Gefahr eines
> unbemerkten Überlaufs. Das wirst auch DU kaum noch als Drehung
> wahrnehmen.

...dachte sich der Programmierer bei Boeing...

Nein, natürlich kann man auch einen Schwellwert festlegen, unterhalb 
dessen die Geschwindigkeit als 0 gilt etc.
Ich finde halt nur die Vorgehensweise Geschwindigkeitsmessungen in 
diskreten Zeitabschnitten vorzunehmen deutlich praktikabler, und sie 
deckt auch den Fall 0 U/min problemlos ab.

von Wolfgang (Gast)


Lesenswert?

Joe F. schrieb:
> ...dachte sich der Programmierer bei Boeing...

... Ariane V ...

von GEKU (Gast)


Lesenswert?

AJ schrieb:
> Habe einen Sensor der pro Umdrehung 5000 Impulse liefert
> Bei einer Drehzahl von 6000 U/min und die Dauer beträgt 5s

Wenn nur Umdrehungen gezählt werden müssen,
dann würde ich nur jeden 5000 Impuls zählen.

Das ergibt bei 6000U/min 100 Impulse / sec.

Bei 5 sec Messdauer würden das 500 Impulse sein.

Bei einem Integer (2 bzw. 4 Byte) würde sich der Sensor zerlegen bevor 
es einen Überlauf gäbe.

Bei 4 Byte alle 5 sec ergeben sich 720 Byte / Stunde,

17280 Byte / Tag
6,3072 MByte / Jahr

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
Noch kein Account? Hier anmelden.