Bytes berechnen

#5838339
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
Gast #5838369
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.
#5838381
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.
Gast #5838389
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.
#5838395
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?
Gast #5838412
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.
Gast #5838452
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.
#5838470
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.
Gast #5838554
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren