Before explicitly defining the term
"simulation graphics", it is helpful to look at an example that illustrates the
need for simulation graphics.

An automobile company’s marketing
department determines that a "smart" cruise control system will differentiate it
from the competition. This system has radar to detect the position of other cars and is
meant to maintain safe following distances while maximizing speed. Unlike its predecessor,
this new cruise control can automatically slow down the car and even apply the brakes.

These new capabilities seem straightforward
enough, but they affect a notable number of sub-systems in complex, untested ways. Besides
requiring a significant rewrite in the cruise control software, this feature affects the
engine control system, the braking system, the suspension, and countless other components
and electronics. The people involved in the design and implementation of this new feature
include industrial designers, embedded programmers, electronics engineers, mechanical
engineers, control systems engineers and even technical writers.

Because of its complex nature, the
engineering team decides to create a complete system-level model of the new feature and
the affected sub-systems. The engineers start the modeling process using the written
specifications from the marketing department. They simulate the design, find defects and
rapidly fix them. After six months of effort, each of the participating engineering teams
feels comfortable with the results.

Before finalizing detail specifications to
be used in the implementation process, the engineering team decides to check the model
with the marketing department, company executives and a few prospective customers. They
start by showing the marketing department their block diagrams, graphical plots and
statistical analysis of simulation results. Because of the abstract, dry nature of this
representation, the marketing manager becomes confused quickly. He provides no useful
feedback. The marketing manager tells engineering to proceed by building a physical
prototype.

Unsatisfied with the prospect of building
an expensive physical prototype without adequate initial feedback from marketing,
engineering builds an interactive, photo-realistic graphical model of a dashboard that
looks and behaves like a car’s real dash. Figure 1 shows this view and the attached
control system model. They add a few other cars to simulate road conditions and connect
this graphical model to their simulation. The entire "virtual prototype" is sent
back to marketing. It is immediately put through its paces and within five short minutes,
a problem is found. Someone hits the brakes and expects the cruise to turn off completely.
Instead, the cruise control begins to accelerate the car after the brake is released. The
driver of this virtual vehicle crashes into another car.

The team analyzes the cause of the problem.
The marketing department never explicitly accounted for this case in the written
specifications, so the software engineer made some assumptions based on his own
experience. "Of course you would want the car to accelerate under these conditions.
Why else would you want a smart cruise control?" At this point, the programmer
asserts that the marketing manager was wrong to expect the cruise control to turn off
under these conditions. The marketing manager argues that it does not matter whether he
was right or wrong. The fact remains that he crashed the car, and it is likely that other
drivers would do the same. The programmer agrees.

 


Figure 1: Simulation graphics for a cruise control model.

More testing is done and twelve equally
critical problems are found. The specifications are rewritten and the model is fixed. A
total of one month is spent on the fixes. The team estimates that the fix would have taken
nine months if the problems were not found at the early modeling stage using simulation
graphics. In addition, it would have cost over $250,000 to build the hardware prototype
needed to find the same bugs. More importantly, the amount of revenue lost during this
extra eight-month period would have been several million dollars.

This example illustrates an essential
benefit of simulation graphics. You can find mistakes early in the design process. This
saves money and reduces cycle time.

Modeling and Simulation Tools

Simulation graphics software is used to
enhance the value of modeling and simulation tools. Simulation graphics do not stand
alone. For this reason, a short discussion of the available modeling and simulation tools
is necessary.

Figure 2 is a chart of the simulation and
modeling tools for embedded systems development. From left to right the tool chart covers
the engineering disciplines involved including mechanical, electrical, system and software
design. From top to bottom the chart spans the range of high-level design tools to
low-level tools used at the implementation stage.


Figure 2: Embedded system modeling and simulation tool chart.

Manufacturers have used low-level tools as
a standard part of the development process for many years. CAD/CAM software, board layout
tools and software compilers are now mainstream products. These tools are necessary to
build embedded products. The high-level tools are not yet necessary, but those who use
them gain a significant competitive advantage. As systems become more complex and
competition strengthens, these tools will change from being optional to necessary.

System simulation tools help manufacturers
understand and design very complex systems that integrate hardware and software. Their
most important contribution is to create an executable version of the specifications,
without the cost of building a physical prototype. This executable specification is often
referred to as a "virtual prototype". The virtual prototype is valuable because,
unlike a physical prototype, it is relatively inexpensive, quick to change and easy to
re-test when an error is found.

While the value of these system simulation
tools is high, they have serious drawbacks. They can be very complex, and those unfamiliar
with them, such as managers and customers, do not typically understand their operation or
results. The purpose of simulation graphics is to make the benefits of these tools
accessible to the customers and managers who must make the critical decisions about the
product’s development and marketing direction.

Simulation graphics software links to the
high-level design tools because it is the first representation a customer sees. However,
the value of graphics can be further enhanced if it also links to low-level tools and
various tools across engineering disciplines. This provides a common view to the customer
and enables high-level testing at the low-level implementation stage of development.

Simulation Graphics

To understand the benefits and purpose of
simulation graphics, we must first define the term. Simulation graphics are the graphical
user interface components for viewing simulation data and interacting with the simulation
model. By simulation graphics, we do not mean the graphical block diagrams used to build
the basic model structure. Nor do we mean the GUI that’s used to build this model.
Simulation graphics are classified into four major categories.

  1. Simulation Data Display
  2. Simulation User Interface
  3. System Visualization
  4. Virtual Front Panel

1. Simulation Data Display

Simulations produce a large amount of data.
The more complex the model, the more data produced. The usefulness of these simulations
not only depends on the completeness and accuracy of the model, but also on the ability to
view the resultant data in an organized, convenient and comprehensive manner.

Figure 3: Simulation data
display components including plots and strip charts.

Data display graphics show this data in
several forms. They include plots, strip charts and numeric displays. These are
"output-only" graphics, that is, the user simply views them. The user does not
add input that affects the simulation. Data display graphics can be viewed in real-time or
post-processed when the simulation completes. Figure 3 is an example of such a display.

There are several benefits to a well
thought out graphical data display screen. First, when viewing data in real-time,
information is displayed quickly. A properly organized data screen allows the user to see
bugs and optimizations at a glance, even if the data is scrolling by rapidly. Second, data
is not only important by itself, but also in relationship to other data. For example, a
falling tachometer by itself is not abnormal. However, if at the same time, the speed is
increasing and the accelerator is being pressed, then you know there is a problem with the
model. A well-designed data display can help you catch these interactions. Third, the
number of interesting data streams can grow rapidly until, eventually, you have multiple
pages of data displays. The advantage of a good data display package is that it allows you
to collect your most important data and arrange it in one or several well designed screens
for easy viewing and navigation. With the additional use of audible and visual alarms,
colors, line styles, large and bold fonts, etc., we can catch error conditions or
optimization opportunities that otherwise would have gone unnoticed. The ultimate result
is a shortened development cycle because mistakes in the model and specifications are
found as early as possible.

Data display graphics are typically for
internal use only. They are a debugging, optimizing and design tool. Although in some
cases, a well designed data display screen can be used to communicate results to those who
are not using the modeling tool directly. This type of communication, however, is usually
reserved for the photo-realistic, virtual front panel stage of simulation graphics. We
will discuss this later.

Most modeling and simulation tools come
with a basic set of data display components. These have the advantage of being tightly
integrated and easy to use. They have the disadvantage of limited functionality and are
often difficult, if not impossible, to extend. In this situation, the modeler must create
his own display software from scratch or use a third-party graphics package. If he is
displaying real-time graphics, this package must be integrated with the simulation tool.
If the data is being post-processed, the graphics package must be able to read from files.

An advantage of going to a third party
graphics package is that the graphics displays can be re-used by other members of the
development team who are using different simulation tools. The basic built-in graphics
that are packaged with the simulation software, on the other hand, can only be used with
one tool. In addition, having a common screen shared by different parts of the design
process allow for a consistent view of the data. This consistency is helpful as subsystems
are integrated to create the complete embedded product.

2. Simulation User Interface

All modeling and simulation software comes
with some type of Graphical User Interface (GUI). These GUIs allow the modeler to create
the graphical diagram and set parameters of the models. These GUIs are typically general
purpose and relatively complicated to learn; therefore, only the modeling expert is
qualified to change the model or its parameters. Quite often, however, it is desirable to
have an application expert, who is not the modeler, make changes to the model and its
attributes so he can perform "what-if" scenarios to test and optimize the
system.

A high-level simulation user interface
allows the modeler to create a "model specific" GUI that others can use with
little or no training. It allows the application expert to set parameters and make limited
changes quickly and easily, without learning the modeling tool. This saves significant
time because the application expert does not have to wait for help from the modeler. It
also allows the application expert ample time to "play" with the model without
worrying that he is tying up the modeler’s time and resources. This
"pressure-free" environment results in better, more complete model testing.
Figure 4 is an example of a simulation user interface that can be used by a application
expert to optimize conditions.


Figure 4: Simulation user interface for an automobile engine control
system.

Modelers can also use the simulation user
interface to log events created by the application expert. This provides an elegant and
efficient method of generating regression tests. This simulation user interface often
takes the form of simple, off-the-shelf input or control components such as sliders, dials
and numeric input objects. They have the ability to work in run-time as well as the
development environment. The simulation user interface can even be run over the web while
the simulation is being run on a server in a central location.

3. System Visualization

Most embedded products work as part of a
larger system, so the design of these products requires a simulation of the entire system,
not just the stand-alone product.


Figure 5: System visualization of an airplane flight control system.

In these cases, it is useful to create an
animated graphical representation of the entire system. For example, a traffic pattern of
cars must accompany the car that is being simulated and tested. Traffic lights, streets
and pedestrians might also be represented. In addition to interacting with other products,
the product itself is nothing more than a collection of sub-systems, which interact and
must be simulated and visualized. For example, besides showing the cockpit of an airplane,
which provides the obvious view into the airplane’s engine parameters and status, you
might want to see an external view of the airplane to observe its pitch or yaw. You may
want to see the ailerons and rudder move while you view the artificial horizon in the
cockpit. You might also want to see a schematic view of the hydraulic system and light up
sections of the diagram as pressure is rising or falling. Figure 5 shows this airplane
system view just described.

Unlike basic data displays, system
visualizations provide a more custom, application-specific view. An airplane’s pitch
is represented by an airplane, which moves on the screen at the appropriate angle. It is
not simply a number or plot that represents that pitch. This provides several advantages.
First, an application-specific system visualization is much easier for the modeler to
understand at a glance. There is less time spent mentally converting abstract
representations and more time reconciling different conditions and parameters to determine
bugs and optimizations. This could be the difference between catching a bug or missing it.
The second advantage is that the application-expert can understand and use the model.

The disadvantage is that it takes
additional work to create application-specific graphics. With data display components, you
can simply pull them out of a library. Some system visualization components, however,
require custom graphics work. This will take some additional effort and the value added
must be weighed against the benefits.

4. Virtual Front Panel.

One of the most powerful and dramatic
benefits of simulation graphics is achieved by allowing your customers to participate in
the modeling and simulation effort. This helps in two ways. First, the customer will find
mistakes in the specifications and model that the systems engineers will most certainly
miss. Second, it will help solidify the customer’s idea of what he really wants, not
what he originally told you he wanted. This is critical, since the goal is to build
products that customers will ultimately buy.


Figure 6: Virtual front panel of an airplane cockpit.

Creating simulation graphics for customers
is much different than for internal use. The graphics must be much more realistic,
accurate and complete. This is for several reasons. First, a customer cannot easily
understand abstract representations. The modeler understands the model thoroughly. The
customer, however, is less sophisticated and knowledgeable, so nothing must be left to the
imagination. Second, the customer’s impression of your product is at stake. Even if
you tell them "it is only an early prototype", they will judge your product
based on that first impression.

So how do you create impressive graphics
without breaking the bank or schedule? After all, don’t these 3-D, virtual reality
style animations take years of work, hundreds of programmers and massive graphics
workstations to create? No – and the answer lies in re-use and selective graphics
design. The important thing is that the prototype looks good, is interactive, has
real-time response and is accurate. It does not have to be a Hollywood production.

The looks are actually the easiest part.
With today’s plethora of excellent graphics packages such as PhotoShop, Freehand and
CorelDraw you can cheaply and easily create high-quality, photo-realistic images. You can
also import bitmap images from sources such as scanners, digital cameras and 3-D rendering
software. Such renderings are often readily available as part of the early mechanical
design and prototyping process. These photo-realistic images provide more than enough
graphics fidelity. These images have the look of a 3-D prototype but the interactive speed
and ease of manipulation of 2-D graphics. At this point you can add the interaction,
behavior and animation to bring the graphics to life. You connect the animated graphics to
your simulation model and you have a customer ready virtual prototype. The key is that
these graphics can be created quickly and do not require expensive hardware to run in
real-time.

When creating virtual front panels for
customer use, it is recommended that a graphics or industrial designer help create the
graphics images and animations. These people are much more effective at creating realistic
looking models, and they are a lot cheaper to use than systems or software engineers. For
example, the cockpit display in figure 6 was created by a graphics designer at ¼ the cost
and ½ the time of a software engineer. More importantly, the result is much more
impressive.