An Introduction to Real-Time Computing for Mechanical Engineers

A Lab-Based Approach

by Picone, Garbini, Devine

| ISBN: 9780262379311 | Copyright 2024

Click here to preview

Instructor Requests

Digital Exam/Desk Copy Print Desk Copy Ancillaries
Tabs

A comprehensive introduction to real-time computing for mechanical engineers and engineering students that integrates theory and application.

There are many textbooks that cover real-time computing, but none designed specifically for mechanical engineering curricula. Filling this gap, Rico Picone, Joseph Garbini, and Cameron Devine provide mechanical engineers and engineering students with a comprehensive introduction to real-time computing that integrates theory and application. The book presents the key ideas required to realize mechatronic systems that include real-time computers as functional components. Learning is organized around a sequence of nine hands-on laboratory exercises. Topics include scheduling, interrupts, timing, real-time operating systems, computer hardware, C programming, device drivers, algorithms, digital electronics, communication, amplifiers, encoders, finite state machines, discrete dynamic systems, and digital feedback control. Leading readers through the process of designing and implementing real-time systems while applying the architecture and resources of a modern real-time development environment, this text provides an essential foundation that can be implemented and extended throughout an engineering career.

·         The first real-time computing textbook designed for mechanical engineers
·         Offers hands-on instruction in the design and programming of real-time mechatronic systems
·         Introduces fundamental computing and programing topics
·         Includes detailed coverage of user interaction, real-time program organization, timing control, and interface hardware
·         Ideal for advanced undergraduate and first-year graduate students as well as for self-study

Expand/Collapse All
Cover (pg. Cover)
Title Page (pg. iii)
Copyright (pg. iv)
Dedication (pg. v)
Contents (pg. vii)
Preface (pg. xiii)
0. Getting Started (pg. 1)
0.1 Real-Time Computing for a Mechatronic System (pg. 1)
0.2 The Development System (pg. 8)
0.3 Programming Languages: Their Uses and Differences (pg. 11)
0.4 Getting Started with C (pg. 15)
0.5 The myRIO C Library (pg. 25)
0.6 The T1 C Library (pg. 27)
0.7 Summary (pg. 27)
Problems (pg. 29)
Lab Exercise 0: Programming the Target Computer (pg. 30)
1. Real-Time Computing Fundamentals and Programming the High-Level User Interface (pg. 39)
1.1 Computer Architectures (pg. 39)
1.2 Computer Realization and Packaging (pg. 42)
1.3 A Programming Model for the ARM Processor (pg. 47)
1.4 Numeral Systems (pg. 49)
1.5 Memory and Its Contents (pg. 60)
1.6 The Paper Computer (pg. 66)
1.7 Real-Time Computing (pg. 70)
1.8 Applications: Feedback Control and Real-Time Measurement (pg. 73)
1.9 The Design Problem, Objectives, Functions, and Requirements (pg. 75)
1.10 C Characters, Pointers, Strings, Floats, and Functions (pg. 78)
1.11 Introducing the UI Functions of the T1 Library lab background (pg. 87)
1.12 Summary (pg. 88)
Problems (pg. 90)
Lab Exercise 1: Programming the High-Level User Interface (pg. 93)
2. Efficient Design and Programming the Midlevel User Interface (pg. 103)
2.1 Efficiency for Real-Time Computing (pg. 103)
2.2 Algorithmic Efficiency (pg. 104)
2.3 Programmatic Efficiency and Efficient C Programs (pg. 109)
2.4 C Operator Precedence and Associativity (pg. 122)
2.5 The UI Functions of the T1 Library lab background (pg. 127)
2.6 Summary (pg. 128)
Problems (pg. 129)
Lab Exercise 2: Programming the Midlevel User Interface (pg. 130)
3. Digital Communication, Signals, and Programming the Low-Level User Interface (pg. 139)
3.1 Information Theory and Digital Communication Fundamentals (pg. 139)
3.2 Digital Signals (pg. 145)
3.3 Digital Inputs and Outputs and Pull Resistors (pg. 146)
3.4 Modes of Digital Communication (pg. 148)
3.5 Digital Communication Standards and Protocols (pg. 151)
3.6 Universal Asynchronous Receivers-Transmitters (pg. 157)
3.7 I/O Communication Channels for the myRIO lab background (pg. 159)
3.8 C Structures (pg. 161)
3.9 Programming the myRIO Universal Asynchronous Receiver/Transmitters (UARTs) lab background (pg. 163)
3.10 Programming the myRIO DIO Lines lab background (pg. 167)
3.11 C Multidimensional Arrays (pg. 170)
3.12 Summary (pg. 171)
Problems (pg. 172)
Lab Exercise 3: Programming the Low-Level User Interface (pg. 173)
4. Motor Control, Finite-State Machines, and Waiting for Real-Time Computing (pg. 181)
4.1 Modeling the Electromechanical Subsystem (pg. 182)
4.2 Open-Loop Control and the Step Response (pg. 188)
4.3 Driving PMDC Motors (pg. 190)
4.4 Measuring Motor Position and Velocity (pg. 209)
4.5 Finite State Machines (pg. 216)
4.6 Waiting for Real-Time Computing (pg. 222)
4.7 Summary (pg. 222)
Problems (pg. 224)
Lab Exercise 4: Finite State Machine and Open-Loop Control (pg. 228)
5. Real-Time Scheduling with Threads and Interrupts, Digital Circuits, and Mechanical Switches (pg. 239)
5.1 Real-Time and Conventional Operating Systems and Kernels (pg. 239)
5.2 Real-Time Scheduling (pg. 242)
5.3 Real-Time Linux and Its Application Programming Interface (pg. 245)
5.4 Interrupts and Their Handling in Real-Time Computing (pg. 247)
5.5 Digital Circuits and Logic Gates (pg. 253)
5.6 Transistors in Digital Circuits (pg. 262)
5.7 Mechanical Switches (pg. 266)
5.8 Debouncing Mechanical Switches (pg. 268)
5.9 Summary (pg. 270)
Problems (pg. 272)
Lab Exercise 5: Introduction to Interrupts (pg. 273)
6. Digital Realization of Dynamic Systems (pg. 279)
6.1 Analog Signals (pg. 280)
6.2 ADC and DAC Hardware (pg. 284)
6.3 Sampling (pg. 287)
6.4 Discrete-Time Systems (pg. 293)
6.5 Analog Input/Output of the myRIO lab background (pg. 299)
6.6 Timer Interrupts and Their Programming lab background (pg. 301)
6.7 Summary (pg. 306)
Problems (pg. 308)
Lab Exercise 6: Realizing a Discrete Dynamic System (pg. 310)
7. Closed-Loop Motor Velocity Control with a Digital Controller (pg. 319)
7.1 Continuous Feedback Control Systems and Their Performance (pg. 320)
7.2 The Root Locus and Proportional Control (pg. 326)
7.3 PI Controller Design via the Root Locus (pg. 334)
7.4 Digital Control Systems (pg. 341)
7.5 Digital Velocity Control of DC Motors (pg. 348)
7.6 The Target Controller Design lab background (pg. 354)
7.7 Summary (pg. 361)
Problems (pg. 363)
Lab Exercise 7: Motor Velocity Control (pg. 364)
8. PID Motor Position Control and Path Planning (pg. 373)
8.1 Derivative Compensation (pg. 373)
8.2 PID Controller Design (pg. 375)
8.3 Motor Position Control with PID (pg. 380)
8.4 Realizing a PID Controller: Causality and PIDF Controllers (pg. 383)
8.5 Automatic Design of Target Motor Control lab background (pg. 385)
8.6 Path Planning (pg. 391)
8.7 Summary (pg. 392)
Problems (pg. 394)
Lab Exercise 8: Motor Position Control (pg. 396)
A. Target and Development Systems (pg. 405)
A.1 General T1 Target System (pg. 406)
A.2 Specific T1 Target Systems (pg. 409)
A.3 General D1 Development System (pg. 409)
A.4 Specific D1 Development Systems (pg. 409)
B. Laboratory Components (pg. 411)
C. Git Version Control (pg. 413)
C.1 Setting up Your workspace as a Git Repository (pg. 413)
C.2 A Remote Git Repository (pg. 415)
D. Utility C Function Documentation (pg. 417)
D.1 Saving Data from C to a MATLAB Data File (pg. 417)
D.2 A Table Editor (pg. 419)
E. MATLAB Functions (pg. 423)
E.1 Function sos2header() for Converting Controllers to C (pg. 423)
F. Code Repository Index (pg. 425)
G. Additional Target Computer Feature Programming (pg. 427)
G.1 Programming the myRIO PWM Outputs (pg. 427)
G.2 Programming the Target Computer AIO (pg. 428)
H. Discrete Approximations of Some Continuous Controllers (pg. 431)
I. Lists of Figures and Tables (pg. 433)
I.1 List of Figures (pg. 433)
I.2 List of Tables (pg. 439)
J. Acronyms and Initialisms (pg. 441)
References (pg. 445)
Index (pg. 453)

Rico A. R. Picone

Rico A. R. Picone  is Associate Professor in the Department of Mechanical Engineering at Saint Martin's University, where he researches augmented cognition, artificial intelligence, and cybernetics.

Joseph L. Garbini

Joseph L. Garbini  is Professor of Mechanical Engineering at the University of Washington. His technical interests include controls, instrumentation, robotics and design.

Cameron N. Devine

Cameron N. Devine  is Visiting Assistant Professor of Mechanical Engineering at Saint Martin's University. His research interests include control systems, robotics, and manufacturing.

eTextbook
Go paperless today! Available online anytime, nothing to download or install.

Features

  • Bookmarking
  • Note taking
  • Highlighting