NGMV Control Toolbox Previous page   Next Page

NGMV Controller Synthesis

Save the sldemo_enginewc model as enginewc_ngmv. The task will be to replace the contents of the Controller block (which at the moment contains the PI controller) with the NGMV controller components.

Open the Simulink library browser and locate the NGMV Toolbox blockset. Open the “NGMV controllers (polynomial)” sublibrary. Drag and drop the NGMVpol controller block into the enginewc_ngmv/Controller subsystem. Delete the PI and anti-windup blocks, and instead paste in the contents of the NGMV controller block (you will need to look under mask to access it). Tidy up the connections.


In the NGMV controller structure, u_bias and y_bias correspond to the input and output bias levels, and in this example they can be set to 9 [deg] and 2000 [rpm], respectively. The LTI models c_cascade , c_loop and the control weight inverse iFck will be defined later.

The nplant_model block represents the delay-free system model. Here we assume that we know the “exact” engine model, however in principle any black box model identified for example as a neural or NARMAX structure could be used instead.

Select the NLSS block together with its input and output signals, right-click and create a subsystem. Label it as “Engine model”, open, delete the NLSS block and copy the whole plant model instead (from TA to N). You will need to replace the continuous-time integrators with discrete-time integrators (in Intake manifold and Vehicle dynamics subsystems), as well as replace the integrator with external reset with the following construction:

The final modifications are:

Previous page   An Introductory Example Application   Writing a Master Script   Next page