.Modelica_Synchronous.Examples.Systems.EngineThrottleControl

Information

This example shows how to model a non-periodic synchronous sampled data systems with the Modelica_Synchronous library. This is demonstrated at hand of a closed-loop throttle control synchronized to the crankshaft angle of an internal combustion engine. This system has the following properties:

The complete system is shown in figure below (diagram-layer):

Block speedControl is the discrete control system. The boundaries of this controller are defined by sample1, sample2 and hold1. The sampling is done via rotationalClock, an event-based clock that ticks every 180° rotation of the crankshaft angle. The speed controller therefore is automatically executed every half-rotation of the engine's crankshaft. To produce respective clock ticks, rotationalClock bookeeps the angular of the last time a half-rotation of the crankshaft has been recognized (angular_offset). Given angular_offset, the event-condition for half-rotations is:

abs(angle - angular_offset) >= abs(trigger_interval)

with trigger_interval = 180°. The model of rotationalClock therefore is (diagram-layer):

In the end, rotationalClock samples it's own input angle to bookeep an offset used to decide when to tick; the clock's event condition depends on the state present when the condition changed last time from beeing non-satisfied to beeing satisfied, i.e., the state when the clock last ticked.


Generated at 2024-04-28T18:16:21Z by OpenModelicaOpenModelica 1.22.3 using GenerateDoc.mos