MotoHawk:Blocks:Multiple PSP

From MotoHawk
Jump to navigationJump to search

Multiple PSP

This MotoHawk™ block allows multiple crank angle synchronous pulses to be created on a single output resource.

Note: This block is used with the 70 and 112 pin modules. For the 48, 80, and 128 pin modules, use the Mux PSP block.

Block ID

Multiple PSP

Library

MotoHawk_lib/Advanced Digital I/O

Description

Multiple PSP.PNG

This MotoHawk™ block allows from 1 to 8 crank angle synchronous pulses to be created on a single capable output resource as defined by the "Number of Pulses" parameter. These pulses must be located about the cycle in ascending order. Pulses may be missed if this condition is not met.

That is to say pulse #1, when enabled, must start and complete before pulse #2 could be scheduled. Consider this example where pulse #1 happens to end 100 crank angle degrees after firing TDC (degAfTDC) and pulse #2 is scheduled to start at 90 degAfTDC. MotoHawk™ would only attempt to schedule pulse #2 when pulse #1 completes, which is at 100 degAfTDC in this example. Pulse #2 would have started had pulse #1 finished earlier, but it didn't and so pulse #2 won't occur for nearly a full revolution because MotoHawk™ is now only looking for the 90 degAfTDC start marker. If there happened to be a pulse #3 then that would be missed while MotoHawk™ was scheduling pulse #2.

Not all modules support the functionality detailed here fully. See [MultiplePSP_ModuleConsiderations.html MultiplePSP module specific considerations] for more information

Angle Domain Timings

Note that the angle domain timings are specified in after crank angle degrees. Some other Motohawk™ PSP blocks use before TDC timings. Before TDC timings can be converted into after TDC timings by simplying negating the value. So 710 degBfTDC is equivalent to -710 degAfTDC, which is eqivalent to 10 degAfTDC (assuming a 4-stroke).

Motohawk™ will also internally manage cycle wrap around because it works in cycle modulus numbers. So a timing of 730 degAfTDC is equivalent to 10 degAfTDC. This does mean that a pulse can't be delayed by one cycle by simply changing its timing from 10 degAfTDC to 730 degAfTDC.

Modes and Signal Timing

This block supplies two stop events, one specified in the angle domain, and one specified in the time domain. Both of these timings can terminate a pulse, but one of the timings is considered dominant. The dominant timing is defined by the chosen mode. In the Hard Start/Hard Stop mode the angle domain stop timing is considered dominant. In the Hard Start/Hard Duration mode the stop duration is considered dominant. The best control precision is always allocated to the dominant timing. Most implementations will treat each stop timing with equal weight. The mode just allows the application to communicate the more important timing to Motohawk™.

Preventing Overlap

As has been discussed, pulses may not overlap. The Multiple PSP Motohawk™ block offers a mechanism to prevent overlap. Have the block employ the Hard Start/Hard Duration mode and then use the angle domain stop timing to frame where the pulse must complete in order for it to not overlap with the start of the next pulse. Consider that pulse #2 is scheduled to start at 60 degAfTDC. If the angle domain stop timing of pulse #1 was set to 55 degAfTDC then pulse #1 will always complete before pulse #2 is scheduled to start, even if too much duration is asked for.

Block Parameters

Parameter Field Values Comments/Description
Name Alpha-numeric text, single-quote enclosed Name as displayed in block for reference. No special characters, such as spaces, dashes, commas (underscore allowed).
Pin Drop-down list Select Pin resource for this block.
Number of Pulses (1-8) (1-8) Enter value for number of pulses.
Mode Select method for Start/Stop
Hard Start/Hard Stop

The stop angle is considered the dominant timing. See [#modes Modes and Signal Timing]

Hard Start/Hard Duration

Stop Time Duration is considered the dominant timing. See [#modes Modes and Signal Timing]

TDC Reference (1-16) or 0 Angular timings shall reference the supplied TDC unless the value is zero.

Block Inputs

How are the block inputs such as Start Angle applied?

The start angle is applied at the rate that the block executes. This is true for all PSP like behaviors. The start may not be applied directly to the TPU then.

If there is a step change to the block inputs, are missing or double pulses possible?

Double pulses are not inherently protected for and so they can occur if you step change the pulse’s start time toward TDC. This is because the PSP is always trying to schedule the pulse and it doesn’t know that the last occurrence of the pulse was not that long ago. It does not know the context of the pulse. This is only a problem for single pulse systems. A system with more than one pulse won’t have this problem because the system goes from scheduling one pulse to scheduling the other and thus won’t experience the step change double pulse. This can actually be used to protect for it.

The figure illustrates.

Pulse scheduling.png