411 REFERENCE · Wikibooks
Embedded Control Systems Design
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Professional
Preface
This book is a wiki, and is therefore open to be edited by anybody. Feel free to help out and contribute to this book in any way, but please try to maintain the scope of this book, i.e., its emphasis on design.
This is a textbook at the level of university Master's or graduate students in Engineering (Mechatronics,
Mechanics, Electrical/Electronics, Computer Science, Systems Engineering), that
explains how to design motion control systems, that is,
computer-controlled machines with important moving parts, such as
robots, machine tools, cars, buses, airplanes, ships, satellites, telescopes, etc.
The emphasis of the book lies on the design of embedded systems, and
much less on the technical details in the systems. (Such details are often
covered already in the many Wikipedia articles about the systems'
components.) In other words, the book focuses on the systems level
thinking that the engineer should do when designing a new embedded
application (or redesigning/improving already existing systems). In many places, the book provides a motivated list of things to think of, do's and don'ts and best practices in the design of a system from individual components. The book also tries to bring some
structure and classification into the tremendously large variety of
embedded systems and their design process: designing a new vending machine brings very different challenges than the design of an automated luggage handling system in a large airport, or than the development of a new generation of football playing robots.
Readers should learn from this book what design criteria (technical, economical, social, etc.) are relevant for specific embedded systems, and what trade-offs are appropriate in different categories of embedded systems. In addition, the book should help readers to estimate the complexity of the system they want to develop, and to identify where this complexity comes from in their specific application. Coping with system-level complexity is a major non-functional requirement behind all embedded systems design and development, since it is the key factor that defines how many resources (time, people, hardware, software,…) will be needed to bring the project to a successful end.
At the moment, this book focuses mainly on motion machines only, where the control is needed to make the machine move in a specified and safe way. So, its scope currently does not include other embedded control systems, such
as process or temperature control, video and audio signal processing,
telephony, etc. Future enhancements in these directions are certainly welcome, although motion control systems typically offer extra design challenges with respect to the mentioned consumer electronics kind of embedded systems—in that they have to cope with the real physical world and not just with the digital, man-made world—so their design aspects are typically a superset of what is found in consumer electronics.
Motion control systems involve software control components, but also computer-readable models to represent the physical world, sensors (partly hardware, partly software) to measure that physical world, actuators (partly hardware, partly software) to induce changes in the world, and planners (pure software) to precalculate which actions the control system should take in order to reach a desired state.
Embedded can mean many different things (see a later chapter for a list of meanings), but a common characteristic is that the system's complexity—including all its configuration and control components and activities—are not made visible to the user of the systems, but remain
hidden behind a user friendly interface that gives only access to the (virtual) model of the
embedded system.
This example of an embedded system is used to introduce the most generic concepts of an embedded system, and to motivate the relevance of the later chapters in this book.
Table of Contents
Some complementary WikiBooks are:
Embedded Systems, which has a more generic and advanced hobbyist scope.
Control Systems, which is a university-level textbook on control algorithms and their design.
Systems Theory, which is an undergraduate level textbook on the theoretical aspects of systems.
Communication Systems, which is a university-level textbook explaining the principles of communication between computer systems.
Robotics, which discusses how to build a hobbyist robot, with less emphasis on the software, and without the more complex systems that this book wants to address too.
Design:
Design criteria
The design process
Categories of system complexity
A design example NEW
A design example OLD
Model-driven engineering
Process control vs system control
What if things go wrong?
Hostile Environment
Failure modes and prevention
Learning from failure
Digital hardware:
Processors
Hardware peripherals
Field busses
Software:
Operating systems
Real Time Operating systems
Software toolchain
Design Patterns
Coordination Modelling
Finite State Machines and Petri Nets
Asynchronous activities
The four fundamental "concerns" of system design
Applications:
Automotive
Aviation
Robotics
Team of RoboCup robots
DARPA Challenge
Home and Building Automation
Glossary
Licensing
Authors
The initial version of this Wikibook was created by
Herman Bruyninckx, together with
the students of the course Embedded Control Systems. René van de Molengraft, from the TU Eindhoven, provided valuable contributions during the second year of this course.
Acknowledgements
This Wikibook's layout was inspired by the excellent example of the
Control Systems book.
computer engineering electrical engineering
E
50%