# Spark Ignition Engine

Naturally aspirated spark ignition engine

• Library:
• Simscape / Driveline / Engines & Motors

## Description

The Spark Ignition Engine block represents a naturally aspirated, spark-ignited internal combustion engine. The engine can be an arbitrary configuration of one to four cylinders. This block is a composite block that uses a subcomponent implementation of these blocks:

• The SI Combustion Cylinder block represents an individual spark ignited combustion cylinder. The Spark Ignition Engine block controls how many SI Combustion Cylinder blocks it uses in the subcomponent implementation based on the value of the Number of cylinders parameter.

• The Ignition Trigger block controls the igniter timing for the SI Combustion Cylinder blocks.

• The Air Intake block provides the intake manifold pressure to the SI Combustion Cylinder block. To enable the air intake implementation, set Compute air intake dynamics to `On`.

• The Crank Shaft block connects to each SI Combustion Cylinder block to report the crank-angle-resolved instantaneous torque.

• The Exhaust Manifold Thermal block abstracts the thermodynamics of the exhaust manifold and reports the temperature of the exhaust manifold. To compute the exhaust manifold thermal effects, set Compute exhaust manifold temperature to `On`.

Many of the Spark Ignition Engine parameters are identical to the parameters in the subcomponent blocks, and when the block implements subcomponent blocks, it uses the equations from those blocks. You can learn more about how the Spark Ignition Engine block uses each parameter by visiting the reference pages for the subcomponent blocks. You can use this block to learn how to create your own implementations of the subcomponent blocks by viewing the source code.

### Equations

The block derives performance information about the engine components using their respective relationship with the crank position, θ, where 0 degrees ≤ θ < 720 degrees. The block defines the crank starting position as the intake stroke at top dead center. For a four-stroke engine, each cylinder is uniquely affiliated with a crank position, where the crank position for a given cylinder i is θi. The block derives the angular velocity from θ as

`$\omega =\frac{d}{dx}\theta .$`

The block sets the first cylinder θ1 = θ regardless of how many cylinders you simulate. When you set Number of cylinders to ```Two cylinders```, the block calculates θ2 as

`${\theta }_{2}={\theta }_{1}+\Delta ,$`

where Δ is the Spark angle difference parameter.

When you set Number of cylinders to ```Three cylinders```, the block assumes that the cylinders are evenly phased such that

`$\begin{array}{l}{\theta }_{2}={\theta }_{1}+\left(1\cdot \frac{720°}{3}\right)\\ {\theta }_{3}={\theta }_{1}+\left(2\cdot \frac{720°}{3}\right)\end{array}$`

When you set Number of cylinders to ```Four cylinders```, the block assumes that the spark angle difference is 180 degrees. You can select the firing order using the Firing order parameter.

### Assumptions and Limitations

• The block ignores knocking and other combustion instabilities.

• The block ignores internal and external exhaust gas recirculation.

## Ports

### Inputs

expand all

Physical signal output associated with the ignitor, where `0` turns off the ignitor and `1` turns on the ignitor.

#### Dependencies

To enable this port, set Spark input type to `Fixed` or ```Spark angle```.

Physical signal input associated with the intake manifold, in kPa. When you set Compute air intake dynamics to `Off`, you supply the intake manifold pressure using this port. You can use this port as an alternative to providing the throttle command to port Thr.

#### Dependencies

To enable this port, set Compute air intake dynamics to `Off`.

Physical signal input associated with the normalized throttle command, where `0` represents a fully closed throttle, and `1` represents a fully open throttle. The block maps this input to a throttle-open angle between `0` and `90` degrees.

#### Dependencies

To enable this port, set Compute air intake dynamics to `On`.

Physical signal input associated with the angle to shift the intake valve open and close timings, in `degrees`. Positive values advance the timing and negative values delay the timing.

#### Dependencies

To enable this port, set Intake Variable Valve Timing to `On`.

Physical signal input associated with angle to shift the exhaust valve open and close timings, in degrees. Negative values advance the timing and positive values delay the timing.

#### Dependencies

To enable this port, set Exhaust Variable Valve Timing to `On`.

Physical signal input associated with the unitless air-fuel ratio command. Note that this is different from the stoichiometric air-fuel ratio for gasoline, which the block fixes at `14.6`.

#### Dependencies

To enable this port, set Input air-fuel ratio to `On` and Input injector pulse width to `Off`.

Physical signal input associated with the duration during which the injector is open to inject fuel, in ms. The block multiplies this signal by the value of the Injector slope parameter to calculate the amount of fuel that the injector releases during one pulse.

#### Dependencies

To enable this port, set Input air-fuel ratio to `On` and Input injector pulse width to `On`.

Physical signal input associated with the spark angle before top dead center, in deg.

#### Dependencies

To enable this port, set Spark input type to `Spark angle`.

Physical signal input associated with the ignition trigger. The block treats a rise from `0` to `1` as a trigger. The input must return to `0` before the block accepts another trigger.

#### Dependencies

To enable this port, set Spark input type to `Spark trigger event`.

Physical signal input associated with the exhaust back pressure, in kPa.

#### Dependencies

To enable this port, set Input back pressure to `On`.

### Outputs

expand all

Physical signal output associated with the cycle-average net indicated torque in Nm.

#### Dependencies

To enable this port, set Cycle-average net indicated torque to `On`.

Physical signal output associated with the cycle-average speed output, in rad/s.

#### Dependencies

To enable this port, set Cycle-average speed to `On`.

Physical signal output associated with the intake manifold pressure, in kPa.

#### Dependencies

To enable this port, set Intake manifold pressure to `On`.

Physical signal output associated with the crank position, in degrees.

#### Dependencies

To enable this port, set Crank position to `On`.

Physical signal output associated with the air mass flow, in g/s.

#### Dependencies

To enable this port, set Cylinder air mass flow to `On`.

Physical signal output associated with the fuel mass flow, in g/s.

#### Dependencies

To enable this port, set Cylinder fuel mass flow to `On`.

Physical signal output associated with the unitless air-fuel ratio response that the block attains during operation. Note that this is different from the stoichiometric air-fuel ratio for gasoline, which the block fixes at `14.6`.

#### Dependencies

To enable this port, set Air-fuel ratio to `On`.

Physical signal output associated with the cylinder volume, in cm3.

#### Dependencies

To enable this port, set Cylinder volume to `On`.

Physical signal output associated with the cylinder pressure, in MPa.

#### Dependencies

To enable this port, set Cylinder pressure to `On`.

Physical signal output associated with the cylinder temperature, in K.

#### Dependencies

To enable this port, set Cylinder temperature to `On`.

### Conserving

expand all

Mechanical rotational conserving port associated with the crankshaft connection to the driveline. Include friction and inertia here to simulate engine load or directly connect other driveline elements.

## Parameters

expand all

### Mechanical

Number of spark ignition cylinders.

Spark angle difference for two-cylinder engines.

#### Dependencies

To enable this parameter, set Number of cylinders to ```Two Cylinders```.

Firing order for four-cylinder engines. Firing order is engine specific, but your selection for this parameter will not affect the block performance. Controller development requires this information.

#### Dependencies

To enable this parameter, set Number of cylinders to ```Four Cylinders```.

Diameter of the piston cylinder.

Distance the piston head travels within the cylinder.

Length of the piston connecting rod from hole center to hole center.

Ratio of the maximum to minimum cylinder volume.

### Ambient

Pressure of the air entering the intake.

Temperature of the air entering the intake.

Density of the air entering the intake.

Specific gas constant of dry air.

### Air Intake

Whether to compute the air intake dynamics. Setting this parameter to `On` enables these parameters:

• Throttle response time constant

• Throttle rest angle

• Throttle plate diameter

• Throttle leakage area

• Intake manifold volume

Time constant associated with the response rate of the engine to the throttle command.

#### Dependencies

To enable this parameter, set Compute air intake dynamics to `On`.

Radial distance from the resting throttle position to `0` degrees.

#### Dependencies

To enable this parameter, set Compute air intake dynamics to `On`.

Diameter of the butterfly valve disc in the throttle body.

#### Dependencies

To enable this parameter, set Compute air intake dynamics to `On`.

Cumulative area of the throttle leakage.

#### Dependencies

To enable this parameter, set Compute air intake dynamics to `On`.

Volumetric capacity of the intake manifold.

#### Dependencies

To enable this parameter, set Compute air intake dynamics to `On`.

### Valves

Ratio of actual discharge to ideal discharge for the intake valve.

Crank position before top dead center at which the intake valve opens. Measure from top dead center to the crank position in the opposite direction of the crank rotation.

Crank position after bottom dead center at which the intake valve closes. Measure from bottom dead center to the crank position in the same direction of the crank rotation.

Crank position before bottom dead center at which the exhaust valve opens. Measure from bottom dead center to the crank position in the opposite direction of the crank rotation.

Crank position after top dead center at which the exhaust valve closes. Measure from top dead center to the crank position in the same direction of the crank rotation.

Option to control the intake valve timing. Set this parameter to `On` to enable the InVT port.

Option to control the exhaust valve timing. Set this parameter to `On` to enable the ExVT port.

### Fuel

Lower heating value for gasoline. This value is also known as the fuel net calorific value.

Option to specify the air-fuel ratio by using the Air-fuel ratio parameter or the AfrCmd port.

Mixture ratio of air to fuel.

#### Dependencies

To enable this parameter, set Input air-fuel ratio to `Off`.

Option to specify the injector pulse width.

#### Dependencies

To enable this parameter, set Input air-fuel ratio to `On`.

Slope of the fuel injector mass flow rate.

#### Dependencies

To enable this parameter, set Input air-fuel ratio to `On` and Input injector pulse width to `On`.

### Combustion

Whether to parameterize the spark input using a fixed value, spark angle, or spark trigger events.

Duration of combustion as a portion of the crank shaft rotation.

Time constant for the cylinder pressure slow decay.

Time constant for the cylinder temperature slow decay.

### Exhaust

Time constant for the exhaust gas temperature decay.

Option to input the back-pressure pressure constant and speed constant.

Back-pressure pressure constant.

#### Dependencies

To enable this parameter, set Input back pressure to `Off`.

Back-pressure speed constant.

#### Dependencies

To enable this parameter, set Input back pressure to `Off`.

Whether the block computes the exhaust manifold temperature. Setting this parameter to `On` enables these parameters:

• Surface area of exhaust wall

• Mass of exhaust wall

• Heat capacity of exhaust wall

• Time constant of exhaust heat flow

• Convective heat transfer coefficient for the outer side of exhaust

• Stefan-Boltzmann constant

Surface area of the exhaust wall. This is only the surface area of the internal wall that makes contact with the exhaust.

#### Dependencies

To enable this parameter, set Compute exhaust manifold temperature to `On`.

Mass of the exhaust wall.

#### Dependencies

To enable this parameter, set Compute exhaust manifold temperature to `On`.

Heat capacity of the exhaust wall.

#### Dependencies

To enable this parameter, set Compute exhaust manifold temperature to `On`.

Time constant for the rate of exhaust heat flow.

#### Dependencies

To enable this parameter, set Compute exhaust manifold temperature to `On`.

Convective heat transfer coefficient for the outer side of the exhaust.

#### Dependencies

To enable this parameter, set Compute exhaust manifold temperature to `On`.

#### Dependencies

To enable this parameter, set Compute exhaust manifold temperature to `On`.

Stefan-Boltzmann constant for the total exhaust.

#### Dependencies

To enable this parameter, set Compute exhaust manifold temperature to `On`.

### Simulation

Intake manifold pressure at the start of the simulation.

Crank position at the start of the simulation.

Rotational speed of the engine at the start of the simulation.

Maximum engine speed allowed during the simulation. If the block exceeds this value, it will generate an error and stop the simulation.

### Output

Whether to output engine outlet gas energy flow from physical signal port Weo.

Whether to output the cylinder volume from physical signal port Vcyl.

Whether to output the cylinder pressure from physical signal port Pcyl.

Whether to output the cylinder temperature from physical signal port Tcyl.

Whether to output the air-to-fuel ratio from physical signal port AFR.

Whether to output the intake manifold pressure from physical signal port AirMassFlow.

Whether to output the fuel mass flow from physical signal port FuelMassFlow.

## Version History

Introduced in R2022a