did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780137863020

Control Software for Mechanical Systems Object-Oriented Design in a Real-Time World

by ; ;
  • ISBN13:

    9780137863020

  • ISBN10:

    0137863020

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2002-06-17
  • Publisher: Pearson
  • Purchase Benefits
List Price: $104.00 Save up to $3.12
  • Buy New
    $100.88
    Add to Cart Free Shipping Icon Free Shipping

    PRINT ON DEMAND: 2-4 WEEKS. THIS ITEM CANNOT BE CANCELLED OR RETURNED.

Supplemental Materials

What is included with this book?

Summary

This book is about the design and implementation of real times software for the control of mechanical systems. The most appealing aspect of this book is the inclusion of useable C & C++ code, Matlab applications, and BridgeVIEW.

Author Biography

D.M. AUSLANDER is Professor of Mechanical Engineering at the University of California, Berkeley. His research interests include automatic control system design, mini-microcomputer system bioengineering, modeling and simulation of dynamic systems, and process control. He is co-author of Mechatronics: Mechanical System Interfacing (Prentice Hall) and Real-Time Software for Implementation of Feedback Control.

 

J.R. RIDGELY is Assistant Professor of Mechanical Engineering, California Polytechnic State University, San Luis Obispo, where he teaches mechanical design and mechatronics. He is co-author of Real-Time Software for Implementation of Feedback Control.

 

J.D. RINGGENBERG holds a Master's Degree in Mechanical Engineering from the University of California, Berkeley.

Table of Contents

Preface xiii
Mechatronics
1(18)
A History of Increasing Complexity
2(1)
Mechatronic System Organization
3(1)
Amplifiers and Isolation
3(1)
Scope: The Unit Machine
4(1)
Control
5(1)
Real-Time Software
5(3)
Nasty Software Properties
8(1)
Engineering Design and Computational Performance
9(1)
Control System Organization
10(1)
Software Portability
10(1)
Operator Interface
11(1)
Multicomputer Systems: Communication
12(1)
The Design and Implementation Process
12(7)
Performance Specification
12(1)
Design Documentation
13(1)
Simulation
14(1)
Laboratory Prototype
15(1)
Production Prototype
16(1)
Production System
17(1)
Maintenance
17(2)
Tasks
19(16)
Example: Task Selection in a Process System
20(1)
Tasks and the Control Hierarchy
21(1)
Intertask Communication
22(1)
Task Structure Examples
22(7)
Velocity Control of a DC Motor
23(1)
Heater Control
24(2)
Toaster Oven
26(1)
Flexible Position Control of a DC Motor
27(2)
Simulation
29(2)
More Task Structure Examples
31(4)
Coordinated, Two-Axis Motion
31(1)
A Washing Machine
32(3)
State Transition Logic
35(10)
States and Transitions
36(1)
Transition Logic Diagrams
36(1)
Tabular Form for Transition Logic
37(1)
Example: Pulse-Width Modulation (PWM)
38(1)
Transition Logic for the Process Control Example
39(2)
Nonblocking State Code
41(1)
State-Related Code
41(1)
State Scanning: The Execution Cycle
42(1)
Task Concurrency: Universal Real-Time Solution
43(2)
Direct Realization of System Control Software
45(22)
Language
45(2)
Time
47(1)
Program Format
47(1)
Simulation
48(1)
Simulation in Matlab
48(13)
Templates for Simulation Using Matlab
48(5)
Simulation of PWM Generator
53(4)
Simulation of Three-Tank Process System
57(4)
Intertask Communication
61(1)
Real-Time Realization
62(1)
Real-Time Realization with Matlab
62(5)
Heater Control Implementation in Matlab
63(4)
Software Realization in C++
67(32)
Simulation in C++
67(1)
Templates for Simulation in C++ (group-priority)
68(12)
PWM Simulation Using C++ (group-priority)
80(2)
Simulation in C++ (with TranRun4)
82(15)
Components
82(2)
The Master Scheduler
84(1)
Process Objects and Task Lists
85(1)
Task Objects
86(3)
Tasks with No State Object
89(1)
Creating Task Classes
89(2)
State Objects
91(2)
Creating State Classes
93(1)
The Main File and UserMain() Function
94(3)
Real-Time Realization with C++
97(2)
Intertask Communication
99(22)
Communication within a Process
100(5)
Data Integrity
100(2)
Design Rules
102(3)
Communication across Processes
105(16)
Message Passing
105(1)
Message Passing in the Group Priority Scheduler
106(6)
Message Passing in the TranRun4 Scheduler
112(3)
Distributed Database
115(1)
Distributed Database in the Group Priority Scheduler
116(2)
Distributed Database in the TranRun4 Scheduler
118(3)
Timing Techniques on PC Compatibles
121(6)
Calibrated Time
121(1)
Free-Running Timer
122(3)
Hardware Timers on the PC
123(1)
Performance Timers in Unix and Windows
124(1)
Interrupt-Based, Timing
125(2)
Multitasking: Performance in the Real World
127(18)
Priority-Based Scheduling-Resource Shifting
127(4)
Continuous vs. Intermittent Tasks
128(1)
Cooperative Multitasking Modes
129(2)
Matlab Template for Minimum-Latency Dispatcher
131(2)
Example: Simulation of PWM-Actuated Heater
131(2)
Cooperative Multitasking Using C++
133(5)
Inheriting Task Behavior-Two PWMs
137(1)
Preemptive Multitasking Modes
138(2)
Realization of Interrupt-Based Dispatching
140(5)
How Many Priority Levels Are Necessary?
141(1)
Which Interrupt Sources Will Be Used?
141(1)
Interrupt-Based Dispatching Functions
142(1)
Attaching Dispatching Functions to Interrupts
143(2)
Character-Based Operator Interface
145(10)
Operator Interface Requirements
145(1)
Context Sensitive Interfaces
146(1)
User Interface Programming Paradigms
147(1)
Mechatronics System Operator Interface
147(1)
Operator Interface Programming
148(7)
The Operator Screen
148(1)
Programming Conventions in C++
149(2)
Heater Control Operator Interface
151(4)
Graphical Operator Interfaces
155(30)
Graphical Environments
156(2)
Windowing Software: Events and Messages
156(1)
Operator Interface vs. Standard Windowing Application
157(1)
Simplified Programming for Windowing Systems
157(1)
The Ease-of Use Challenge
158(1)
Methods of Simplifying Window-Style Programming
158(1)
The Times-2 Problem
158(8)
Times-2: Character-Based Interface
158(2)
Times-2: Visual Basic
160(2)
Times-2: Bridgeview
162(4)
Screen Change
166(5)
Screen Change in Visual Basic
166(2)
Screen Change: Bridgeview
168(3)
Heat Exchanger Control in Bridgeview
171(2)
Interprocess Communication: DDE
173(8)
DDE: The C++ Side
173(3)
Communicating with Excel
176(1)
A DDE Server in C++
177(1)
DDE Communication between C++ and Visual Basic
178(2)
DDE Communication between C++ and Bridgeview
180(1)
Putting It All Together
181(4)
Distributed Control I: Net Basics
185(18)
Multiprocessor Architectures
186(4)
Symmetric Multiprocessing (SMP)
186(1)
Buses
186(1)
Networks
187(2)
Point-to-Point Connections
189(1)
TCP/IP Networking
190(2)
The Physical Context
190(1)
Interconnection Protocols
191(1)
TCP and UDP
191(1)
Client/Server Architecture
192(1)
Implementation of UDP
192(5)
Sockets
192(1)
Setting Up for Network Data Exchange
193(2)
Nonblocking Network Calls
195(1)
Receiving Information
195(1)
Client-Side Setup
196(1)
The Application Layer
197(6)
Data Coding
197(1)
Building the Packet
198(2)
Parsing a Packet
200(3)
Distributed Control II: A Mechatronics Control Application Layer
203(10)
Control System Application Protocol
203(4)
Startup of Distributed Control Systems
207(1)
Testing the Application Protocol
208(1)
Using the Control Application Protocol
209(3)
Compiling
212(1)
Java for Control System Software
213(8)
The Java Language and API
214(1)
Networking
214(1)
AWT/Swing
214(1)
Multithreading
214(1)
Preconditions for Real-Time Programming in Java
215(1)
Deterministic Garbage Collection
215(1)
Memory and Hardware Access
215(1)
Timing
216(1)
Advantages of Java for Control Software Design
216(2)
Modularity
216(1)
Distributed Control
217(1)
Platform Independence and Prototyping
217(1)
Operator Interface Design
217(1)
Java and the Task/State Design Method
218(1)
Inner Classes
218(1)
Networking
218(1)
Documentation
219(1)
The Current State of Real-Time Java
219(2)
Programmable Logic Controllers (PLCs)
221(14)
Introduction
221(1)
Goals
222(1)
PLC Programming
223(3)
When to Use a PLC
223(1)
Ladder Logic
224(2)
Grafcet/Sequential Flow Charts
226(1)
The Task/State Model
226(1)
State Transition Logic for a PLC
227(3)
State Variables
227(1)
Ladder Organization
227(1)
Transitions
228(1)
Outputs
229(1)
Entry Activity
229(1)
Action Outputs
229(1)
Exit (Transition-Based) Outputs
229(1)
Common Exit Activities
230(1)
PLC Multitasking
230(1)
Modular Design
231(1)
Example: Model Railroad Control
231(1)
Simulation - Portability
232(3)
Illustrative Example: Assembly System
235(38)
The Assembly System
235(2)
System Simulation
237(1)
Development Sequence
237(1)
Belt Motion Simulation (Glue00)
238(9)
Modeling Belt Dynamics
238(1)
Definition of Task Classes
239(2)
Instantiating Tasks: the Main File
241(1)
The Simulation Task
242(2)
The Data Logging Task
244(1)
Timing Mode
245(1)
Compiling
246(1)
Results
246(1)
Oven Temperature Simulation (Glue01)
247(1)
PID Control of Belt Position and Oven Temperature (Glue02)
247(3)
Keeping Classes Generic
248(1)
The PIDControl Class
248(2)
Results
250(1)
Better Control of Motion (Glue03)
250(10)
Trapezoidal Motion Profile
251(1)
Motion Profile Class
252(1)
Profiler State Structure
253(4)
Round-Off Error
257(1)
Discretization Errors in Simulation
257(3)
A Command Structure for Profiled Motion (Glue04)
260(3)
Message-Based Command Structure
260(1)
State Transition Audit Trail
261(2)
Motion Results
263(1)
Clamps (Glue05)
263(2)
Robots (Glue06)
265(1)
Cure/Unload (Glue07)
266(5)
Making Widgets (Glue08)
271(2)
The Gluing Cell Exercise In Tranrun4
273(42)
The Gluing System
273(1)
Simulation and Prototyping
274(1)
The Project Components
274(1)
Glue00: Conveyor Simulation
275(13)
The Dynamic Model
275(2)
Creating the Conveyor Task
277(3)
The Data Logging Task
280(4)
Data Communication between Tasks
284(2)
The Main File
286(2)
Glue00 Results
288(1)
Glue01: An Oven Simulation
288(3)
Configuration and Status Printouts
289(2)
Glue02: PID Control
291(1)
Glue03: The Operator Interface
292(7)
Results
297(2)
Glue04: Motion Profiling
299(7)
Glue05: Belt Sequencing
306(1)
Glue06: The Glue Application Machine
307(2)
Glue07: Transport Task Supervision
309(2)
Glue08: The Completed Assembly System
311(4)
The Gluing Cell Exercise in Tranrunj
315(16)
Getting Started
315(2)
Program Entry Point
315(1)
The userMain Method
316(1)
Writing Custom Tasks and States
317(3)
Creating a Task Class
317(2)
Creating a State Class
319(1)
Implementing State Transition Logic
320(1)
Global Data and Intertask Messaging
321(2)
Global Data Items
321(1)
Task Messages
322(1)
Continuous vs. Intermittent Tasks
323(1)
Scheduler Internals
324(1)
Operating System Processes vs. CProcess
324(1)
Foreground vs. Background Execution Lists
325(1)
Scheduling Modes
325(1)
Execution Profiling
325(1)
Intertask Messaging across Different Processes
326(2)
Tips and Tricks
328(2)
Judicious Use of Execution-Time Profiling
328(1)
Integer Labels for Global Data and Task Message Inboxes
328(1)
The TaskMessageListener Interface
328(1)
Scheduler Sleeping
329(1)
Anonymous State Classes
329(1)
Additional Information
330(1)
Bibliography 331(2)
Index 333

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program