Index
A
- aerodynamic drag equation / The aerodynamic drag equation
- Alfa Romeo 147 GTA
- about / Our second model – the Alfa Romeo 147 GTA
- speed, obtaining / Getting the speed – Newton's laws
- aerodynamic drag equation / The aerodynamic drag equation
- rolling resistance / The rolling resistance approximation
- engine force / The engine force – engine, wheels, and transmission
- finishing touches / The finishing touches
- algorithm
- implementing / Step 6 – implement the algorithm
B
- block object / The MATLAB code
- blocks
- adding, to model from Library Browser / Step 4 – add blocks to the model from Library Browser
- renaming / Step 5 – rename the blocks
- Bus Creator block
C
- callbacks
- mandatory callbacks / The mandatory callbacks
- optional callbacks / The most useful optional callbacks
- C language
- advantages / Going further – C MEX S-functions
- cleanup phase / The simulation phases
- C MEX S-functions
- mex tool, setting up / Setting up the mex tool
- working / How C MEX S-functions work
- required callbacks / The required callbacks
- optional callbacks / The most useful optional callbacks
- filesource S-function / The filesource S-function
- code
- commenting / Step 2 – do comment the code!
- Command Window panel / Command Window – how MATLAB talks to us
- compilers
- complete closed-loop system
- building / Build the complete closed-loop system
- Constant Value field / Step 8 – declare workspace variables
- Constant value parameter / Getting the speed – Newton's laws, The aerodynamic drag equation
- continuous solver
- versus, discrete solver / Continuous versus discrete
- about / Continuous versus discrete
- cruise controller
- about / Our first model – a cruise controller
- model, creating / Step 1 – create and save the model
- model, saving / Step 1 – create and save the model
- code, commenting / Step 2 – do comment the code!
- Simulink Library Browser, opening / Step 3 – open Simulink Library Browser
- blocks, adding to model from Library Browser / Step 4 – add blocks to the model from Library Browser
- blocks, renaming / Step 5 – rename the blocks
- algorithm, implementing / Step 6 – implement the algorithm
- logic, nesting into subsystems / Step 7 – nest the logic into subsystems
- workspace variables, declaring / Step 8 – declare workspace variables
- simulation, performing / Step 9 – do a first simulation
- preparing / Preparing the cruise controller model
D
- Demux block
- DirectFeedthrough property / The MATLAB code
- discrete solver
- versus, continuous solver / Continuous versus discrete
- about / Continuous versus discrete
- DState type vectors / The work vector – DWork
- Duplicate option / Step 4 – add blocks to the model from Library Browser
- DWork vector
- about / The work vector – DWork
- Generic DWork type vectors / The work vector – DWork
- DState type vectors / The work vector – DWork
- Scratch type vectors / The work vector – DWork
- Mode type vectors / The work vector – DWork
E
- Edit button / The filesink_msfun block
- elementary vectors / The elementary work vectors
- Engine, subsystems
F
- fgetl function / The MATLAB code
- filesink S-function
- filesink_msfun block
- about / The filesink_msfun block
- MATLAB code / The MATLAB code
- filesink_msfun parameter / A quick test
- filesource S-function
- headers / The beginning – headers and includes
- includes / The beginning – headers and includes
- mdlInitializeSizes function / Block properties and memory usage – mdlInitializeSizes
- mdlInitializeSampleTimes function / Timings – mdlInitializeSampleTimes
- mdlStart function / Initial tasks – mdlStart
- mdlOutputs function / Core logic – mdlOutputs
- mdlUpdate function / Update memories – mdlUpdate
- mdlTerminate function / Cleanup – mdlTerminate
- compiling / Compiling the S-function
- filesource_msfun block
- about / The filesource_msfun block
- MATLAB code / The MATLAB code
- filesource_msfun parameter / A quick test
- fixed-step solvers
- about / Variable-step versus fixed-step solvers
- versus variable-step solver / Variable-step versus fixed-step solvers
- fprintf / The MATLAB code
- free() / The DWork vector
G
- Gain parameter / The aerodynamic drag equation
- Gearbox and differential, subsystems
- Generic DWork type vectors / The work vector – DWork
- GNU/Linux / UNIX-like systems (GNU/Linux in particular)
H
- hardware-in-the-loop (HIL) testing / Software testing
- headers, filesource S-function / The beginning – headers and includes
- Help button / Step 3 – open Simulink Library Browser
I
- includes, filesource S-function / The beginning – headers and includes
- initialization phase / The simulation phases
- IWork vector / The elementary work vectors
K
- Ki
- calibrating / Calibrating Ki
- Kp
- calibrating / Calibrating Kp
L
- Library Browser
- blocks, adding to model from / Step 4 – add blocks to the model from Library Browser
- logic
- nesting, into subsystems / Step 7 – nest the logic into subsystems
M
- .mdl extension / Step 1 – create and save the model
- mandatory callbacks
- about / The mandatory callbacks
- setup function / The mandatory callbacks
- Outputs function / The mandatory callbacks
- MATLAB
- Command Window panel / Command Window – how MATLAB talks to us
- workspace / The workspace – our treasury chest
- working folder / The working folder – where MATLAB saves our work
- path variable / The path – where MATLAB finds the tools
- MATLAB Central
- URL / Forcing Simulink to sync
- MATLAB code, filesink_msfun block / The MATLAB code
- MATLAB code, filesource_msfun block / The MATLAB code
- matlabroot / The path – where MATLAB finds the tools
- mdlInitializeConditions function / mdlInitializeConditions
- mdlInitializeSampleTimes function / mdlInitializeSampleTimes, Timings – mdlInitializeSampleTimes
- mdlInitializeSizes function / mdlInitializeSizes, Block properties and memory usage – mdlInitializeSizes
- mdlOutputs function / mdlOutputs, Core logic – mdlOutputs
- mdlStart function / mdlStart, Initial tasks – mdlStart
- mdlTerminate function / mdlTerminate, Cleanup – mdlTerminate
- mdlUpdate function / mdlUpdate, Update memories – mdlUpdate
- mex tool
- setting up / Setting up the mex tool
- UNIX-like systems / UNIX-like systems (GNU/Linux in particular)
- GNU/Linux / UNIX-like systems (GNU/Linux in particular)
- Microsoft Windows systems / Microsoft Windows systems
- Microsoft Windows systems / Microsoft Windows systems
- model
- creating / Step 1 – create and save the model
- saving / Step 1 – create and save the model
- blocks, adding from Library Browser / Step 4 – add blocks to the model from Library Browser
- model-in-the-loop (MIL) testing / Software testing
- Mode type vectors / The work vector – DWork
- Mode vector / The elementary work vectors
- Mux block
N
- Name property / The MATLAB code
- non-stiff solver
- about / Stiff versus nonstiff
O
- ODE (Ordinary Differential Equation solvers) / Continuous versus discrete
- ode1 solver
- ode45 solver
- optional callbacks
- PostPropagationSetup / The most useful optional callbacks
- Start / The most useful optional callbacks
- Update / The most useful optional callbacks
- Terminate / The most useful optional callbacks
- mdlStart function / mdlStart
- mdlInitializeConditions function / mdlInitializeConditions
- mdlUpdate function / mdlUpdate
- DWork vector / The DWork vector
- elementary vectors / The elementary work vectors
- Outputs function / The mandatory callbacks
- output variable / The MATLAB code
P
- $PATH variable / The path – where MATLAB finds the tools
- Paste option / Step 4 – add blocks to the model from Library Browser
- path variable / The path – where MATLAB finds the tools
- PI controller
- calibrating / Calibrate the PI controller
- PI controller constants
- Kp, calibrating / Calibrating Kp
- Ki, calibrating / Calibrating Ki
- PostPropagationSetup / The most useful optional callbacks
- processor-in-the-loop(PIL) testing / Software testing
- PWork vector / The elementary work vectors
Q
- Qt5 application
R
- Ramp block
- RegBlockMethod function / The MATLAB code
- required callbacks
- mdlInitializeSizes function / mdlInitializeSizes
- mdlInitializeSampleTimes function / mdlInitializeSampleTimes
- mdlOutputs function / mdlOutputs
- mdlTerminate function / mdlTerminate
- restoredefaultpath command / The path – where MATLAB finds the tools
- rolling resistance
- ruleset
- Run button / Step 9 – do a first simulation, The external software – a Qt5 application, Running the simulation on the target application, Go for another ride
- RWork vector / The elementary work vectors
S
- .slx extension / Step 1 – create and save the model
- S-function name parameter / The filesink_msfun block
- S-functions
- about / The Swiss army knife – S-functions
- simulation phases / The simulation phases
- callbacks / Level 2 MATLAB S-function callbacks
- DWork vector / The work vector – DWork
- filesink_msfun block / The filesink_msfun block
- filesource_msfun block / The filesource_msfun block
- testing / A quick test
- scope block parameters
- editing / The mandatory theory
- Scratch type vectors / The work vector – DWork
- setup function / The mandatory callbacks
- sGetSFcnParam function / Initial tasks – mdlStart
- Signal Builder block
- using / Signal Builder
- about / Signal Builder
- simulation
- performing / Step 9 – do a first simulation
- configuring / Configuring the simulation
- executing / Run our first serious simulation
- running, on target application / Running the simulation on the target application
- simulation configuration
- about / Configuring the simulation
- simulation times / Simulation times
- solvers / Solvers
- simulation loop / The simulation phases
- simulation phases
- initialization phase / The simulation phases
- simulation loop / The simulation phases
- cleanup phase / The simulation phases
- simulation times
- about / The simulation times – when the math is done
- examining / The simulation times – when the math is done
- start time / The simulation times – when the math is done
- stop time / The simulation times – when the math is done
- step size / The simulation times – when the math is done
- Simulink
- about / What is Simulink?
- programming / Programming
- graphical / Graphical
- issues, resolved / Problems solved by Simulink
- software, specification / Software specification
- software, development / Software development
- software, testing / Software testing
- drawbacks / Simulink drawbacks
- use cases / Where Simulink excels
- forcing, to sync / Forcing Simulink to sync
- cruise controller, preparing / Preparing the cruise controller model
- simulation, running on target application / Running the simulation on the target application
- Simulink.MSFcnRunTimeBlock object / The MATLAB code
- Simulink interface
- about / The Simulink interface
- Simulink Library Browser
- opening / Step 3 – open Simulink Library Browser
- Simulink model
- about / The mandatory theory
- simulation results, computing / The mandatory theory
- Sine Wave block
- software
- specification / Software specification
- development / Software development
- software-in-the-loop (SIL) testing / Software testing
- solvers
- about / The solvers – these great unknown
- characteristics / The solvers – these great unknown
- variable-step solver / Variable-step versus fixed-step solvers
- fixed-step solver / Variable-step versus fixed-step solvers
- continuous solver / Continuous versus discrete
- discrete solver / Continuous versus discrete
- stiff solver / Stiff versus nonstiff
- non-stiff solver / Stiff versus nonstiff
- ssGetDWork function / Initial tasks – mdlStart
- ssGetOutputPortRealSignal function / Core logic – mdlOutputs
- Start / The most useful optional callbacks
- stiff solver
- about / Stiff versus nonstiff
- versus, non-stiff solver / Stiff versus nonstiff
- Stop button / Running the simulation on the target application
- str2double function / The MATLAB code
- subsystems
- logic, nesting into / Step 7 – nest the logic into subsystems
- Gearbox and differential / The engine force – engine, wheels, and transmission
- Wheel to RPM / The engine force – engine, wheels, and transmission
- Engine / The engine force – engine, wheels, and transmission
- Torque to force / The engine force – engine, wheels, and transmission
- sync
- Simulink, forcing to / Forcing Simulink to sync
T
- target application
- simulation, running on / Running the simulation on the target application
- Terminate / The most useful optional callbacks
- Torque to force, subsystems / The engine force – engine, wheels, and transmission, Torque to force
U
- UNIX-like systems / UNIX-like systems (GNU/Linux in particular)
- Update / The most useful optional callbacks
V
- variable-step solver
- about / Variable-step versus fixed-step solvers
- versus fixed-step solvers / Variable-step versus fixed-step solvers
W
- Wheel to RPM, subsystems
- working folder / The working folder – where MATLAB saves our work
- workspace / The workspace – our treasury chest
- variables, declaring / Step 8 – declare workspace variables