An Introduction to Real-Time Computing for Mechanical Engineers
A Lab-Based Approach
by Picone, Garbini, Devine
| ISBN: 9780262379311 | Copyright 2024
Instructor Requests
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
Joseph L. Garbini
Cameron N. Devine
eTextbook
Go paperless today! Available online anytime, nothing to download or install.
Features
|