D.M.Auslander,加州大學(xué)伯克利分校機(jī)械工程系的教授,當(dāng)前研究興趣包括自動(dòng)控制系統(tǒng)設(shè)計(jì)、微機(jī)系統(tǒng)生物工程、動(dòng)態(tài)系統(tǒng)的建模與模擬以及過(guò)程控制。Auslander教授是Mechatronics:Mechanical System Interfacing和Real-Time Software for Implementation of Feedback Control兩書(shū)的合著書(shū)。
圖書(shū)目錄
1 MECHATRONICS 1.1 A History of Increasing Complesity 1.2 Mechatronic System Organization 1.3 Amplifiers and Isolation 1.4 Scope:The Unit Machine 1.5 Control 1.6 Real-Time Software 1.7 Nasty Software Properties 1.8 Engineering Design and Computational Performance 1.9 Control System Organization 1.10 Software Portability 1.11 Operator Interface 1.12 Multicomputer Systems:Communication 1.13 The Design and Implementation Process 1.13.1 Performance Specification 1.13.2 Design Documentation 1.13.3 Simulation 1.13.4 Laboratory Prototype 1.13.5 Production Prototype 1.13.6 Production System 1.13.7 Maintenance 2 TASKS 2.1 Example:Task Selection in a Process System 2.2 Tasks and the Control Hierarchy 2.2.1 Intertask Communication 2.3 Task Structure Examples 2.3.1 Velocity Control of a DC Motor 2.3.2 Heater Control 2.3.3 Toaster Oven 2.3.4 Flexible Position Control of a DC Motor 2.4 Simulation 2.5 More Task Structure Examples 2.5.1 Coordinated,Two-Axis Motion 2.5.2 A Washing Machine 3STATE TRANSITION LOGIC 3.1 States and Transitions 3.2 Transition Logic Diagrams 3.3 Tabular Form for Transition Logic 3.4 Example:Pulse-Width Modulation (PWM) 3.5 Transition Logic for the Process Control Example 3.6 Nonblocking State Code 3.7 State-Related Code 3.8 State Scanning:The Execution Cycle 3.9 Task Concurrency:Universal Real-Time Solution 4 DIRECT REALIZATION OF SYSTEM CONTROL SOFTWARE 4.1 Language 4.2 Time 4.3 Program Format 4.4 Simulation 4.5 Simulation in Matlab 4.5.1 Templates for Simulation Using Matlab 4.5.2 Simulation of PWM Generator 4.5.3 Simulation of Three-Tank Process System 4.6 Intertask Communication 4.7 Real-Time Realization 4.8 Real-Time Realization with Matlab 4.8.1 Heater Control Implementation in Matlab 5 SOFTWARE REALIZATION IN C++ 5.1 Simulation in C++ 5.2 Templates for Simulation in C++(group-priority) 5.3 PWM Simulation Using C++(group-priority) 5.4 Simulation in C++(with TranRun4) 5.4.1 Components 5.4.2 The Master Scheduler 5.4.3 Process Objects and Task Lists 5.4.4 Task Objects 5.4.5 Tasks with No State Object 5.4.6 Creating Task Classes 5.4.7 State Objects 5.4.8 Creating State Classes 5.4.9 The Main File and UserMain()Function 5.5 Real-Time Realization with C++ 6 INTERTASK COMMUNICATION 6.1 Communication Within a Process 6.1.1 Data Integrity 6.1.2 Design Rules 6.2 Communication Across Processes 6.2.1 Message Passing 6.2.2 Message Passing in the Group Priority Scheduler 6.2.3 Message Passing in the TranRun4 Scheduler 6.2.4 Distributed Database 6.2.5 Distributed Database in the Group priority Scheduler 6.2.6 Distributed Database in the TranRun4 Scheduler 7 TIMING TECHNIQUES ON PC COMPATIBLES 7.1 Calibrated Time 7.2 Free-Running Timer 7.2.1 Hardware Timers on the PC 7.2.2 Performance Timers in Unix and Windows 7.3 Interrupt-Based Timing 8 MULTITASKING:PERFORMANCE IN THE REAL WORLD 8.1 Priority-Based Scheduling--Resource Shifting 8.1.1 Continuous vs. Intermittent Tasks 8.1.2 Cooperative Multitasking Modes 8.2 Matlab Template for Minimum-Latency Dispatcher 8.2.1 Example:Simulation of PWM-Actuated Heater 8.3 Cooperative Multitasking Using C++ 8.3.1 Inheriting Task Behavior-Two PWMs 8.4 Preemptive Multitasking Modes 8.5 Realization of Interrupt-Based Dispatching 8.5.1 How Many Priority Levels Are Necessary? 8.5.2 Which Interrupt Sources Will Be Used? 8.5.3 Interrupt-Based Dispatching Functions 8.5.4 Attaching Dispatching Functions to Interrupts 9 A CHARACTER-BASED OPER-ATOR INTERFACE 9.1 Operator Interface Requirements 9.2 Context Sensitive Interfaces 9.3 User Interface Programming Paradigms 9.4 Mechatronics System Operator Interface 9.5 Operator Interface Programming 9.5.1 The Operator Screen 9.5.2 Programming Conventions in C++ 9.5.3 Heater Control Operator Interface 10 GRAPHICAL OPERATOR INTERFACES 10.1 Graphical Environments 10.1.1 Windowing Software:Events and Messages 10.1.2 Operator Interface vs. Standard Windowing Application 10.1.3 Simplified Programming for Windowing Systems 10.1.4 The Ease-of-Use Challenge 10.1.5 Methods of Simplifying Window-Style Programming 10.2 The Times-2 Problem 10.2.1 Times-2:Character-Based Interface 10.2.2 Times-2:Visual Basic 10.2.3 Times-2:Bridgeview 10.3 Screen Change 10.3.1 Screen Change in Visual Basic 10.3.2 Screen Change:Bridgeview 10.4 Heat Exchanger Control in Bridgeview 10.5 Interprocess Communication:DDE 10.5.1 DDE:The C++ Side 10.5.2 Communicating with Excel 10.5.3 A DDE Server in C++ 10.5.4 DDE Communication Between C++ and Visual Basic 10.5.5 DDE Communication Between C++ and Bridgeview 10.6 Putting It All Together 11 DISTRIBUTED CONTROL I:NET BASICS 11.1 Multiprocessor Architectures 11.1.1 Symmetric Multiprocessing (SMP) 11.1.2 Buses 11.1.3 Networks 11.1.4 Point-to-Point Connections 11.2 TCP/IP Networking 11.2.1 The Physical Context 11.2.2 Interconnection Protocols 11.2.3 TCP and UDP 11.2.4 Client/Server Architecture 11.3 Implementation of UDP 11.3.1 Sockets 11.3.2 Setting Up for Network Data Exchange 11.3.3 Nonblocking Network Calls 11.3.4 Receiving Information 11.3.5 Client-Side Setup 11.4 The Application Layer 11.4.1 Data Coding 11.4.2 Building the Packet 11.4.3 Parsing a Packet 12 DISTRIBUTED CONTROL II:A MECHATRONICS CONTROL APPLICATION LAYER 12.1 Control System Application Protocol 12.2 Startup of Distributed Control Systems 12.3 Testing the Application Protocol 12.4 Using the Control Application Protocol 12.5 Compiling 13 JAVA FOR CONTROL SYSTEM SOFTWARE 13.1 The Java Language and API 13.1.1 Networking 13.1.2 AWT/Swing 13.1.3 Multithreading 13.2 Preconditions for Real-Time Programming in Java 13.2.1 Deterministic Garbage Collection 13.2.2 Memory and Hardware Access 13.2.3 Timing 13.3 Advantages of Java for Control Software Design 13.3.1 Modularity 13.3.2 Distributed Control 13.3.3 Platform Independence and Prototyping 13.3.4 Operator Interface Design 13.4 Java and the Task/State Design Method 13.4.1 Inner Classes 13.4.2 Networking 13.4.3 Documentation 13.5 The Current State of Real-Time Java 14 PROGRAMMABLE LOGIC CONTROLLERS(PLCs) 14.1 Introduction 14.2 Goals 14.3 PLC Programming 14.3.1 When to Use a PLC 14.3.2 Ladder Logic 14.3.3 Grafcet/Sequential Flow Charts 14.4 The Task/State Model 14.5 State Transition Logic for a PLC 14.5.1 State Variables 14.5.2 Ladder Organization 14.5.3 Transitions 14.5.4 Outputs 14.5.5 Entry Activity 14.5.6 Action Outputs 14.5.7 Exit(Transition-Based) Outputs 14.5.8 Common Exit Activities 14.6 PLC Multitasking 14.7 Modular Design 14.8 Example:Model Railroad Control 14.9 Simulation-Portability 15 ILLUSTRATIVE EXAMPLE:ASSEMBLY SYSTEM 15.1 The Assembly System 15.2 System Simulation 15.3 Development Sequence 15.4 Belt Motion Simulation(Glue00) 15.4.1 Modeling Belt Dynamics 15.4.2 Definition of Task Classes 15.4.3 Instantiating Tasks:the Main File 15.4.4 The Simulation Task 15.4.5 The Data Logging Task 15.4.6 Timing Mode 15.4.7 Compiling 15.4.8 Results 15.5 Oven Temperature Simulation(Glue01) 15.6 PID Control of Belt Position and Oven Temperature(Glue02) 15.6.1 Keeping Classes Gencric 15.6.2 The PID Control Class 15.6.3 Results 15.7 Better Control of Motion(Glue03) 15.7.1 Trapezoidal Motion Profile 15.7.2 Motion Profile Class 15.7.3 Profiler State Structure 15.7.4 Round-Off Error 15.7.5 Discretization Errors in Simulation 15.8 A Command Structure for Profiled Motion (Glue04) 15.8.1 Message-Based Command Structure 15.8.2 State Transition Audit Trail 15.8.3 Motion Results 15.9 Clamps(Glue05) 15.10 Robots(Glue06) 15.11 Cure/Unload(Glue07) 15.12 Making Widgets(Glue08) 16 THE GLUING CELL EXERCISE IN TRANRUN4 16.1 The Gluing System 16.2 Simulation and Prototyping 16.3 The Project Components 16.4 Glue00:Conveyor Simulation 16.4.1 The Dynamic Model 16.4.2 Creating the Conveyor Task 16.4.3 The Data Logging Task 16.4.4 Data Communication Between Tasks 16.4.5 The Main File 16.4.6 Glue00 Results 16.5 Glue01:An Oven Simulation 16.5.1 Configuration and Status Printouts 16.6 Glue02:PID Control 16.7 Glue03:The Operator Interface 16.7.1 Results 16.8 Glue04:Motion Profiling 16.9 Glue05:Belt Sequencing 16.10 Glue06:The Glue Application Machine 16.11 Glue07:Transport Task Supervision 16.12 Glue08:The Completed Assembly System 17 THE GLUING CELL EXERCESE IN TRANRUNJ 17.1 Getting Started 17.1.1 Program Entry Point 17.1.2 The userMain Method 17.2 Writing Custom Tasks and States 17.2.1 Creating a Task Class 17.2.2 Creating a State Class 17.3 Implementing State Transition Logic 17.4 Global Data and Intertask Messaging 17.4.1 Global Data Items 17.4.2 Task Messages 17.5 Continuous vs. Intermittent Tasks 17.6 Scheduler Internals 17.6.1 Operating System Processes vs. CProcess 17.6.2 Foreground vs. Background Execution Lists 17.6.3 Scheduling Modes 17.7 Execution Profiling 17.8 Intertask Messaging Across Different Processes 17.9 Tips And Tricks 17.9.1 Judicious Use of Execution-Time Profiling 17.9.2 Integer Lablels for Global Data and Task Message Inboxes 17.9.3 The TaskMessageListener Interface 17.9.4 Scheduler Sleeping 17.9.5 Anonymous State Classes 17.10 Additional Information BIBLIOGRAPHY INDEX