- #1

Ignyte

- 1

- 0

This may be a weird one, so please hang in there with me on this.

I have a large steel drum, its ~450kg. Measured to be 11.83kg/m^2 for its rotational inertia. (MOI).

On the end of it we have a VERY accurate laser cut disk. Has 4 teeth, 4 gaps. Equally spaced and all the same "delay".

When we rotate the drum we have an optical sensor which can measure the "delay" of its state, either on or off. Measurement is down to microsec's. So that's accurate enough for us. As the drum speeds up in rotation, the delay becomes shorter.

What we are struggling with is Angular Acceleration. Basically we need a way to tie all this together.

As for the actual practical application of this, think of a motorcycle dyno. As that what it actually is. I can provide pictures if so required.

We have some sample data recorded and so far we have had limited success.

We got the bike to 4000rpm, and held it and "calibrated" the drum rpm. Then as the bike increased or decreased rpm in that set gear, it perfectly showed what the engine was doing. So reving the bike to 12000rpm the dyno drum said "engine should be at 12000rpm" and it matched perfectly. We tried in several spots and also one "run".

We are struggling to get the power output to match correctly because math is not really our strong suit.

I have sample (open source) firmware for our hardware (teensy++, basically arduino) and some recorded data of one of the runs for analysis.

If someone can help me with what we may be doing wrong it would be GREATLY appreciated.

We are using gnuplot to make a graph of the saved data.

-----

EDIT

-----

Ill add how we are going about it, if it helps any..

We are measuring 2 samples. On and off, and measuring them in microsec. These numbers are written to the .dat file. They are currently written in hex (ascii) but that's non trivial to do it any way we choose.

xxxx,yyyy

xxxx,yyyy

etc.

One of our firmware outputs human readable info with a bunch of stuff.. here's a snip:

As an example:

sample1 = 20750microseconds, sample2 = 20194 microseconds

We can then figure out:

rpm1 = (60000 / ((sample1 / 1000) * 4))

rpm2 = (60000 / ((sample2 / 1000) * 4))

rpm1 = 722.89

rpm2 = 742.7

rpm_gain = (742.7 - 722.89) == 19.81 rpm

gain_rads = (19.81/60) * (2*pi) == 2.074 rad/s

angular_velocity = (20750/60) * (2*pi) == 79.79 rad/s

angular_acceleration = (79.79 / 2.074) == 41.424 rad/s2

torque = (11.83 * 41.424) == 429.667 Newton metres

power = (429.667 * 722.89) / 9549) == 32.527 kilowatts

Is all this right, or are we way off the mark ?

I have a large steel drum, its ~450kg. Measured to be 11.83kg/m^2 for its rotational inertia. (MOI).

On the end of it we have a VERY accurate laser cut disk. Has 4 teeth, 4 gaps. Equally spaced and all the same "delay".

When we rotate the drum we have an optical sensor which can measure the "delay" of its state, either on or off. Measurement is down to microsec's. So that's accurate enough for us. As the drum speeds up in rotation, the delay becomes shorter.

What we are struggling with is Angular Acceleration. Basically we need a way to tie all this together.

As for the actual practical application of this, think of a motorcycle dyno. As that what it actually is. I can provide pictures if so required.

We have some sample data recorded and so far we have had limited success.

We got the bike to 4000rpm, and held it and "calibrated" the drum rpm. Then as the bike increased or decreased rpm in that set gear, it perfectly showed what the engine was doing. So reving the bike to 12000rpm the dyno drum said "engine should be at 12000rpm" and it matched perfectly. We tried in several spots and also one "run".

We are struggling to get the power output to match correctly because math is not really our strong suit.

I have sample (open source) firmware for our hardware (teensy++, basically arduino) and some recorded data of one of the runs for analysis.

If someone can help me with what we may be doing wrong it would be GREATLY appreciated.

We are using gnuplot to make a graph of the saved data.

-----

EDIT

-----

Ill add how we are going about it, if it helps any..

We are measuring 2 samples. On and off, and measuring them in microsec. These numbers are written to the .dat file. They are currently written in hex (ascii) but that's non trivial to do it any way we choose.

xxxx,yyyy

xxxx,yyyy

etc.

One of our firmware outputs human readable info with a bunch of stuff.. here's a snip:

Code:

```
Received nothing (Tooth #1) from Drum, timed out (seconds): 10
RPM: 153.72 KM/H: 13.15 Tooth 1: 97.58ms Tooth 2: 82.71ms
Difference: +14.87ms (Drum Speeding UP)
RPM: 196.24 KM/H: 16.79 Tooth 1: 76.44ms Tooth 2: 68.96ms
Difference: +7.48ms (Drum Speeding UP)
RPM: 240.22 KM/H: 20.56 Tooth 1: 62.44ms Tooth 2: 58.13ms
Difference: +4.32ms (Drum Speeding UP)
RPM: 272.56 KM/H: 23.32 Tooth 1: 55.03ms Tooth 2: 51.57ms
Difference: +3.47ms (Drum Speeding UP)
RPM: 307.57 KM/H: 26.32 Tooth 1: 48.77ms Tooth 2: 47.44ms
Difference: +1.33ms (Drum Speeding UP)
RPM: 321.64 KM/H: 27.52 Tooth 1: 46.64ms Tooth 2: 44.87ms
Difference: +1.77ms (Drum Speeding UP)
```

sample1 = 20750microseconds, sample2 = 20194 microseconds

We can then figure out:

rpm1 = (60000 / ((sample1 / 1000) * 4))

rpm2 = (60000 / ((sample2 / 1000) * 4))

rpm1 = 722.89

rpm2 = 742.7

rpm_gain = (742.7 - 722.89) == 19.81 rpm

gain_rads = (19.81/60) * (2*pi) == 2.074 rad/s

angular_velocity = (20750/60) * (2*pi) == 79.79 rad/s

angular_acceleration = (79.79 / 2.074) == 41.424 rad/s2

torque = (11.83 * 41.424) == 429.667 Newton metres

power = (429.667 * 722.89) / 9549) == 32.527 kilowatts

Is all this right, or are we way off the mark ?

Last edited: