Embedded Control Systems Design/Design criteria

This chapter explains the approach of a design on a system level. Therefore it is necessary to introduce several system criteria; these differ from the technical design criteria because they aren’t reflected in the final design. The four system criteria discussed in this chapter are optimization, design space, robustness and human resources. A list of specific technical design criteria for ECSs is discussed at the end of the chapter.

The inputs of a design team are the requirements. These aren’t predetermined but subject to change during the design process. The majority of the requirements state a minimum or maximum value and not a fixed one (i.e. weight must be below 1 kg, cost must be below €5, …). Therefore the requirements can be thought of as the boundaries of the design space.

Within this design space all feasible solutions exist. Of all these feasible solutions, the designer is interested in the most optimal one. Hence there is need for optimization. Some commonly used ways to achieve this are:
 * Full optimization.
 * Using pareto principle: 20% of the effort of the first method leads to 80% of its goals.
 * Best effort method.
 * Linear programming
 * Multiobjective optimization
 * Model Driven Engineering

Optimization of a design is complicated because:
 * The coupled nature of the technical design criteria: A change in one criterion has an impact on (almost) every other criterion. Hence optimization must be done by simultaneously solving for every criterion, instead of optimizing every criterion apart, one by one.
 * Design criteria aren’t always easy to represent as a numerical value (i.e. How do you define how easy to use an ECS is?)
 * Uncertainties on the requirements and thus insecurities on the design space.

In an ideal case, all requirements are convertible into quantitatively expressed formal representations that the designer can then optimize. However in most real-life scenarios some of the requirements aren’t simply convertible to a numerical value and so the optimization of these requirements is not as straightforward as minimizing or maximizing a value. The computational cost of the optimization is thus not the only factor to be considered. The quantification of design criteria can be more critical and a relatively big uncertainty of this quantification is sometimes inevitable.

Robustness is an important aspect of a system or design. It differs from most design criteria because of the difficulty to quantify or measure it. A system or design is said to be robust when it’s able to deal with uncertainties and variations of its operational environment with minimal damage and loss of functionality. Optimization and robustness can be seen as each others complement. Optimization makes sure that in the operational environment the system works optimal (i.e. minimum cost), robustness must ensure that if, for an unknown reason, the environment changes the system will minimize damage and loss of functionality.

Human resources is also a system-level criterion for a design. The number of personnel that is put into a project determines the time frame of the design. Since this is highly linked with the design costs, a good designer includes it in the optimization process.

In conclusion we can state that: The designer always tries to find an optimal solution within the set of feasible solutions, called the design space. Before optimization techniques can be used, the design criteria must be quantified. This quantification can sometimes be difficult and good insight of the designer is a necessity. A good design means it has a thoughtful balance between optimization, robustness and human resources.

Below follows a list of some specific technical design criteria for ECS along with links to examples throughout the wikibook.
 * Reliability
 * Examples are:
 * Aviation - Flight control
 * Medical equipment
 * Typical measures include:
 * Redundancy
 * Safe failure modes: Failure modes and prevention
 * Embedded Systems/Watchdog Timers
 * Watchdogs
 * Communication: remote servicing, ...
 * Examples are:
 * Aviation - Air traffic control
 * Robotics - Robocup
 * Automotive - AutoSAR
 * A trend in embedded control systems is increasing communication. Between ECS but also with users. A good example of this trend is the AutoSAR project for standardization of the interface between the ECS in a car.
 * Remote servicing is also gaining in interest. The constant monitoring of the state of ECSs leads to extra knowledge of the machines. This knowledge can be used to improve the global process (i.e. in a oil refinery) and thus reduce cost.