Real-Time Workshop    

Rapid Prototyping Model Functions

The rapid prototyping code defines the following functions that interface with the run-time interface:

The contents of the above functions are directly related to the blocks in your model. A Simulink block can be generalized to the following set of equations.

Output, y, is a function of continuous state, xc, discrete state, xd, and input, u. Each block writes its specific equation in the appropriate section of MdlOutput.

The discrete states, xd, are a function of the current state and input. Each block that has a discrete state updates its state in MdlUpdate.

The derivatives, x, are a function of the current input. Each block that has continuous states provides its derivatives to the solver (e.g., ode5) in MdlDerivatives. The derivatives are used by the solver to integrate the continuous state to produce the next value.

The output, y, is generally written to the block I/O structure. Root-level Outport blocks write to the external outputs structure. The continuous and discrete states are stored in the states structure. The input, u, can originate from another block's output, which is located in the block I/O structure, an external input (located in the external inputs structure), or a state. These structures are defined in the model.h file that Real-Time Workshop generates.

Figure 7-3 shows the general content of the rapid prototyping style of C code.

Figure 7-3: Content of model.c for the Rapid Prototyping Code Style

Figure 7-4 shows a flow chart describing the execution of the rapid prototyping generated code.

Figure 7-4: Rapid Prototyping Execution Flow Chart

Each block places code into specific Mdl routines according to the algorithm that it is implementing. Blocks have input, output, parameters, and states, as well as other general items. For example, in general, block inputs and outputs are written to a block I/O structure (rtB). Block inputs can also come from the external input structure (rtU) or the state structure when connected to a state port of an integrator (rtX), or ground (rtGround) if unconnected or grounded. Block outputs can also go to the external output structure (rtY). The following figure shows the general mapping between these items.

Figure 7-5: Data View of the Generated Code

Structure definitions:


  Rapid Prototyping and Embedded Model Execution Differences Embedded Model Functions