BLDC.Utilities.EncoderTimeAndCount

# .BLDC.Utilities.EncoderTimeAndCount

Measure time spaen between first and last edge of an incremental encoder with samplePrriod

## Information

Evaluates the input signals from an IncrementalEncoder:

- 0-track `y[1]` = 1 pulse per revolution with a length of `2*pi/(4*pRev)`
- A-track `y[2]` = `pRev` pulses per revolution
- B-track `y[3]` = `pRev` pulses per revolution, displaced by `2*pi/(4*pRev)`

and determines mechanical angular velocity `w` and mechanical angle `phi`:

- w = angular velocity
- phi = angle = integral of w

During the samplePeriod all rising and falling edges of A-track and B-track are counted. The direction of rotation has to be detected by a logic from the values of A-track and B-track. From the time span between first and last edge within the samplePeriod and the count of edges, the angular velocity can be calculated: `w=(count - 1)*2*pi(4*pRev)/(t_last - t_first)`. Note that the output is discrete w.r.t. to time, it is not differentiable. The algorithm depends on interrupts (which appear in Modelica as when-clauses).

Generated at 2026-05-12T20:19:03Z by OpenModelicaOpenModelica 1.26.7 using GenerateDoc.mos