机械系统控制软件:实时系统面向对象设计

机械系统控制软件:实时系统面向对象设计
作 者: Auslander
出版社: 清华大学出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 面向对象
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  D.M.Auslander,加州大学伯克利分校机械工程系的教授,当前研究兴趣包括自动控制系统设计、微机系统生物工程、动态系统的建模与模拟以及过程控制。Auslander教授是Mechatronics:Mechanical System Interfacing和Real-Time Software for Implementation of Feedback Control两书的合著书。

内容简介

为复杂机械设备构建实时软件的完全指南! 机械系统的性能日益成为其控制软件的功能,因此,在系统设计和实现的每一个阶段,都必须考虑控制软件的计算能力及其所受到的限制。本书全面阐述了如何为今天日益复杂的机械设备构建实时控制软件。 本书介绍了实时软件开发的每一个步骤:性能说明书、设计文档、模拟、实验室和生产原型设计、生产系统的开发与维护等;讨论了在任何一种机电环境下,如何最大限度地保持实时软件的可靠性和一致性。本书涵盖以下主题: ·为机电系统构建实时软件所面临的挑战 ·如何有效实现实现任务内及任务间通信 ·状态转换逻辑计时、任务调度、多任务以及基于中断的调度 ·基于图形和字符的操作界面 ·直接实现系统控制软件,包括MATLAB模拟 ·分布式控制:多处理器体系结构、TCP/IP与UDP、应用层编程 ·详细的案例分析同时采用Java和C++语言 本书中的详细实例和案例分析同时采用Java和C++语言,所涉及的应用领域非常广泛,如皮带传动、炉温控制以及成型加工等。

图书目录

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