WOLFRAM SYSTEM MODELER

EngineThrottleControl

Closed-loop throttle control synchronized to the crankshaft angle of an internal combustion engine

Diagram

Wolfram Language

In[1]:=
SystemModel["Modelica.Clocked.Examples.Systems.EngineThrottleControl"]
Out[1]:=

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

This example shows how to model a non-periodic synchronous sampled data systems with the Modelica.Clocked 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 engine speed is regulated with a throttle actuator.
  • Controller execution is synchronized with the engine crankshaft angle.
  • The influence of disturbances, such as a change in load torque, is reduced.

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

EngineThrottleControl_Model.png

Block speedControl is the discrete control system. The boundaries of this controller are defined by sample1, sample2 and hold. The sampling is done in terms of sensors within the engine which observe its crankshaft angle; every 180° rotation of the crankshaft, the engine internally synchronizes is throttles. The respective synchronization points are provided as clocked outputs that in turn are used to trigger the external controller. The speed controller therefore is automatically executed every half-rotation of the engine's crankshaft in sync with the engine's internal throttle-cycle. The following diagram illustrates the engine's respective internal setup:

Engine_Model.png

The crankshaftPositionEvent-clock is the event-clock synchronizing the engine's internal throttle-cycle and external control. It produces a clock tick for every half-rotation and is implemented as RotationalClock.

The following diagram illustrates the logic of such a rotational clock:

RotationalClock_Model.png

It accounts the angular of the last time a rotation has been recognized (angular_offset). Given angular_offset, the event-condition for rotations is:

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

In our case, angle is the position of the crankshaft of the engine and trigger_interval is 180°. In the end, crankshaftPositionEvent samples it's own input angle to account 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 being non-satisfied to being satisfied, i.e., the state when the clock last ticked.

This example model is based on the following references:

Crossley, P.R. and Cook, J. (1991):
A nonlinear engine model for drivetrain system development. International Conference on Control, Edinburgh, UK, March.
 
Simulink® (R2010b) demo model sldemo_enginewc.mdl:
Engine Timing Model with Closed Loop Control. The EngineThrottleControl example uses the same parameter values as the sldemo_enginewc.mdl demo model which is shipped with the Simulink® software developed by The MathWorks, Inc. Hence, the simulation results of these models can be compared conveniently.
 

Components (12)

speedRef

Type: Step

Description: Generate step signal of type Real

speedControl

Type: SpeedControl

Description: Discrete control of crankshaft speed by throttle actuation

sample1

Type: Sample

Description: Sample the continuous-time, Real input signal and provide it as clocked output signal (clock is inferred)

hold1

Type: Hold

Description: Hold the clocked, Real input signal and provide it as continuous-time output signal (zero order hold)

engine

Type: Engine

Description: Internal combustion engine.

step1

Type: Step

Description: Generate step signal of type Real

step2

Type: Step

Description: Generate step signal of type Real

add

Type: Add

Description: Output the sum of the two inputs

torque

Type: Torque

Description: Input signal acting as external torque on a flange

angleSensor

Type: AngleSensor

Description: Ideal sensor to measure the absolute flange angle

derivative

Type: Der

Description: Derivative of input (= analytic differentiations)

sample2

Type: SampleClocked

Description: Sample the continuous-time, Real input signal and provide it as clocked output signal. The clock is provided as input signal