Embedded Digital Control with Microcontrollers

Implementation with C and Python
Besorgungstitel - wird vorgemerkt | Lieferzeit: Besorgungstitel - Lieferbar innerhalb von 10 Werktagen I

181,58 €*

Alle Preise inkl. MwSt.|Versandkostenfrei
ISBN-13:
9781119576525
Veröffentl:
2021
Erscheinungsdatum:
06.04.2021
Seiten:
368
Autor:
Cem Unsalan
Gewicht:
680 g
Format:
235x157x24 mm
Sprache:
Englisch
Beschreibung:

EMBEDDED DIGITAL CONTROL WITH MICROCONTROLLERSExplore a concise and practical introduction to implementation methods and the theory of digital control systems on microcontrollersEmbedded Digital Control with Microcontrollers delivers expert instruction in digital control system implementation techniques on the widely used ARM Cortex-M microcontroller. The accomplished authors present the included information in three phases. First, they describe how to implement prototype digital control systems via the Python programming language in order to help the reader better understand theoretical digital control concepts.Second, the book offers readers direction on using the C programming language to implement digital control systems on actual microcontrollers. This will allow readers to solve real-life problems involving digital control, robotics, and mechatronics.Finally, readers will learn how to merge the theoretical and practical issues discussed in the book by implementing digital control systems in real-life applications. Throughout the book, the application of digital control systems using the Python programming language ensures the reader can apply the theory contained within. Readers will also benefit from the inclusion of:* A thorough introduction to the hardware used in the book, including STM32 Nucleo Development Boards and motor drive expansion boards* An exploration of the software used in the book, including Python, MicroPython, and Mbed* Practical discussions of digital control basics, including discrete-time signals, discrete-time systems, linear and time-invariant systems, and constant coefficient difference equations* An examination of how to represent a continuous-time system in digital form, including analog-to-digital conversion and digital-to-analog conversionPerfect for undergraduate students in electrical engineering, Embedded Digital Control with Microcontrollers will also earn a place in the libraries of professional engineers and hobbyists working on digital control and robotics systems seeking a one-stop reference for digital control systems on microcontrollers.
Preface xviiAbout the Companion Website xix1 Introduction 11.1 What is a System? 11.2 What is a Control System? 11.3 About the Book 32 Hardware to be Used in the Book 52.1 The STM32 Board 52.1.1 General Information 62.1.2 Pin Layout 62.1.3 Powering and Programming the Board 82.2 The STM32 Microcontroller 82.2.1 Central Processing Unit 82.2.2 Memory 92.2.3 Input and Output Ports 102.2.4 Timer Modules 102.2.5 ADC and DAC Modules 112.2.6 Digital Communication Modules 112.3 System and Sensors to be Used Throughout the Book 122.3.1 The DC Motor 122.3.1.1 Properties of the DC Motor 122.3.1.2 Pin Layout 132.3.1.3 Power Settings 142.3.2 The DC Motor Drive Expansion Board 142.3.3 Encoder 152.3.4 The FT232 Module 172.4 Systems and Sensors to be Used in Advanced Applications 172.4.1 Systems 172.4.2 Sensors 192.5 Summary 19Problems 203 Software to be Used in the Book 233.1 Python on PC 243.1.1 Basic Operations 243.1.2 Array and Matrix Operations 253.1.3 Loop Operations 263.1.4 Conditional Statements 273.1.5 Function Definition and Usage 273.1.6 File Operations 283.1.7 Python Control Systems Library 283.2 MicroPython on the STM32 Microcontroller 293.2.1 Setting up MicroPython 293.2.2 Running MicroPython 313.2.3 Reaching Microcontroller Hardware 343.2.3.1 Input and Output Ports 343.2.3.2 Timers 353.2.3.3 ADC 373.2.3.4 DAC 393.2.3.5 UART 413.2.4 MicroPython Control Systems Library 423.3 C on the STM32 Microcontroller 433.3.1 Creating a New Project in Mbed Studio 443.3.2 Building and Executing the Code 453.3.3 Reaching Microcontroller Hardware 453.3.3.1 Input and Output Ports 463.3.3.2 Timers 473.3.3.3 ADC 483.3.3.4 DAC 503.3.3.5 UART 513.3.4 C Control Systems Library 533.4 Application: Running the DC Motor 533.4.1 Hardware Setup 543.4.2 Procedure 543.4.3 C Code for the System 543.4.4 Python Code for the System 573.4.5 Observing Outputs 593.5 Summary 59Problems 604 Fundamentals of Digital Control 634.1 Digital Signals 634.1.1 Mathematical Definition 644.1.2 Representing Digital Signals in Code 644.1.2.1 Representation in Python 654.1.2.2 Representation in C 654.1.3 Standard Digital Signals 654.1.3.1 Unit Pulse Signal 664.1.3.2 Step Signal 674.1.3.3 Ramp Signal 684.1.3.4 Parabolic Signal 684.1.3.5 Exponential Signal 694.1.3.6 Sinusoidal Signal 714.1.3.7 Damped Sinusoidal Signal 714.1.3.8 Rectangular Signal 724.1.3.9 Sum of Sinusoids Signal 734.1.3.10 Sweep Signal 754.1.3.11 Random Signal 764.2 Digital Systems 774.2.1 Mathematical Definition 774.2.2 Representing Digital Systems in Code 784.2.2.1 Representation in Python 784.2.2.2 Representation in C 794.2.3 Digital System Properties 794.2.3.1 Stability 794.2.3.2 Linearity 804.2.3.3 Time-Invariance 814.3 Linear and Time-Invariant Systems 814.3.1 Mathematical Definition 814.3.2 LTI Systems and Constant-Coefficient Difference Equations 824.3.3 Representing LTI Systems in Code 824.3.3.1 MicroPython Control Systems Library Usage 834.3.3.2 C Control Systems Library Usage 844.3.3.3 Python Control Systems Library Usage 854.3.4 Connecting LTI Systems 874.3.4.1 Series Connection 874.3.4.2 Parallel Connection 884.3.4.3 Feedback Connection 894.4 The z-Transform and Its Inverse 904.4.1 Definition of the z-Transform 904.4.2 Calculating the z-Transform in Python 924.4.3 Definition of the Inverse z-Transform 924.4.4 Calculating the Inverse z-Transform in Python 924.5 The z-Transform and LTI Systems 934.5.1 Associating Difference Equation and Impulse Response of an LTI System 934.5.2 Stability Analysis of an LTI System using z-Transform 954.5.3 Stability Analysis of an LTI System in Code 954.6 Application I: Acquiring Digital Signals from the Microcontroller, Processing Offline Data 964.6.1 Hardware Setup 974.6.2 Procedure 974.6.3 C Code for the System 974.6.4 Python Code for the System 994.6.5 Observing Outputs 1014.7 Application II: Acquiring Digital Signals from the Microcontroller, Processing Real-Time Data 1034.7.1 Hardware Setup 1034.7.2 Procedure 1034.7.3 C Code for the System 1044.7.4 Python Code for the System 1064.7.5 Observing Outputs 1094.8 Summary 109Problems 1095 Conversion Between Analog and Digital Forms 1115.1 Converting an Analog Signal to Digital Form 1125.1.1 Mathematical Derivation of ADC 1125.1.2 ADC in Code 1145.2 Converting a Digital Signal to Analog Form 1175.2.1 Mathematical Derivation of DAC 1175.2.2 DAC in Code 1185.3 Representing an Analog System in Digital Form 1205.3.1 Pole-Zero Matching Method 1215.3.2 Zero-Order Hold Equivalent 1225.3.3 Bilinear Transformation 1235.4 Application: Exciting and Simulating the RC Filter 1245.4.1 Hardware Setup 1255.4.2 Procedure 1255.4.3 C Code for the System 1255.4.4 Python Code for the System 1275.4.5 Observing Outputs 1295.5 Summary 129Problems 1296 Constructing Transfer Function of a System 1316.1 Transfer Function from Mathematical Modeling 1316.1.1 Fundamental Electrical and Mechanical Components 1326.1.2 Constructing the Differential Equation Representing the System 1336.1.3 From Differential Equation to Transfer Function 1336.2 Transfer Function from System Identification in Time Domain 1346.2.1 Theoretical Background 1356.2.2 The Procedure 1356.2.3 Data Acquisition by the STM32 Microcontroller 1366.2.4 System Identification in Time Domain by MATLAB 1376.3 Transfer Function from System Identification in Frequency Domain 1426.3.1 Theoretical Background 1426.3.2 The Procedure 1426.3.3 System Identification in Frequency Domain by MATLAB 1436.4 Application: Obtaining Transfer Function of the DC Motor 1436.4.1 Mathematical Modeling 1436.4.2 System Identification in Time Domain 1466.4.3 System Identification in Frequency Domain 1476.5 Summary 148Problems 1487 Transfer Function Based Control System Analysis 1517.1 Analyzing System Performance 1517.1.1 Time Domain Analysis 1517.1.1.1 Transient Response 1527.1.1.2 Steady-State Error 1567.1.2 Frequency Domain Analysis 1567.1.3 Complex Plane Analysis 1597.1.3.1 Root-Locus Plot 1607.1.3.2 Nyquist Plot 1607.2 The Effect of Open-Loop Control on System Performance 1637.2.1 What is Open-Loop Control? 1637.2.2 Improving the System Performance by Open-Loop Control 1647.3 The Effect of Closed-Loop Control on System Performance 1677.3.1 What is Closed-Loop Control? 1677.3.2 Improving the System Performance by Closed-Loop Control 1707.4 Application: Adding Open-Loop Digital Controller to the DC Motor 1747.4.1 Hardware Setup 1757.4.2 Procedure 1757.4.3 C Code for the System 1757.4.4 Python Code for the System 1777.4.5 Observing Outputs 1787.5 Summary 178Problems 1808 Transfer Function Based Controller Design 1838.1 PID Controller Structure 1838.1.1 The P Controller 1848.1.2 The PI Controller 1848.1.3 The PID Controller 1858.1.4 Parameter Tuning Methods 1858.1.4.1 The Ziegler-Nichols Method 1868.1.4.2 The Cohen-Coon Method 1868.1.4.3 The Chien-Hrones-Reswick Method 1868.2 PID Controller Design in Python 1878.2.1 Parameter Tuning 1888.2.2 Controller Design 1888.2.2.1 P Controller 1888.2.2.2 PI Controller 1918.2.2.3 PID Controller 1948.2.3 Comparison of the Designed P, PI, and PID Controllers 1978.3 Lag-Lead Controller Structure 1998.3.1 Lag Controller 1998.3.2 Lead Controller 2008.3.3 Lag-Lead Controller 2008.4 Lag-Lead Controller Design in MATLAB 2018.4.1 Control System Designer Tool 2018.4.2 Controller Design in Complex Plane 2038.4.2.1 Lag Controller 2048.4.2.2 Lead Controller 2068.4.2.3 Lag-Lead Controller 2078.4.2.4 Comparison of the Designed Lag, Lead, and Lag-Lead Controllers 2108.4.3 Controller Design in Frequency Domain 2118.4.3.1 Lag Controller 2118.4.3.2 Lead Controller 2138.4.3.3 Lag-Lead Controller 2138.4.3.4 Comparison of the Designed Lag, Lead, and Lag-Lead Controllers 2178.5 Application: Adding Closed-Loop Digital Controller to the DC Motor 2178.5.1 Hardware Setup 2178.5.2 Procedure 2178.5.3 C Code for the System 2188.5.4 Python Code for the System 2198.5.5 Observing Outputs 2208.6 Summary 223Problems 2249 State-space Based Control System Analysis 2279.1 State-space Approach 2279.1.1 Definition of the State 2279.1.2 Why State-space Representation? 2289.2 State-space Equations Representing an LTI System 2289.2.1 Continuous-time State-space Equations 2299.2.2 Discrete-time State-space Equations 2319.2.3 Representing Discrete-time State-space Equations in Code Form 2319.3 Conversion Between State-space and Transfer Function Representations 2339.3.1 From Transfer Function to State-space Equations 2339.3.2 From State-space Equations to Transfer Function 2359.4 Properties of the System from its State-space Representation 2369.4.1 Time Domain Analysis 2369.4.2 Stability 2379.4.3 Controllability 2389.4.4 Observability 2399.5 Application: Observing States of the DC Motor in Time 2409.5.1 Hardware Setup 2409.5.2 Procedure 2409.5.3 C Code for the System 2409.5.4 Python Code for the System 2429.5.5 Observing Outputs 2439.6 Summary 243Problems 24410 State-space Based Controller Design 24710.1 General Layout 24710.1.1 Control Based on State Values 24810.1.2 Regulator Structure 24910.1.3 Controller Structure 24910.1.4 What if States Cannot be Measured Directly? 25010.2 Regulator and Controller Design via Pole Placement 25010.2.1 Pole Placement 25110.2.2 Regulator Design 25110.2.3 Ackermann's Formula for the Regulator Gain 25110.2.4 Controller Design 25210.2.5 Ackermann's Formula for the Controller Gain 25310.3 Regulator and Controller Design in Python 25310.3.1 Regulator Design 25310.3.2 Controller Design 25610.4 State Observer Design 26010.4.1 Mathematical Derivation 26110.4.2 Ackermann's Formula for the Observer Gain 26210.5 Regulator and Controller Design in Python using Observers 26310.5.1 Observer Design 26310.5.2 Observer-Based Regulator Design 26410.5.3 Observer-Based Controller Design 26610.6 Application: State-space based Control of the DC Motor 27010.6.1 Hardware Setup 27010.6.2 Procedure 27110.6.3 C Code for the System 27110.6.4 Python Code for the System 27310.6.5 Observing Outputs 27410.7 Summary 275Problems 27511 Adaptive Control 27911.1 What is Adaptive Control? 27911.2 Parameter Estimation 28011.3 Indirect Self-Tuning Regulator 28311.3.1 Feedback ISTR Design 28311.3.2 Feedback and Feedforward ISTR Design 28711.4 Model-Reference Adaptive Control 28811.5 Application: Real-Time Parameter Estimation of the DC Motor 29011.5.1 Hardware Setup 29011.5.2 Procedure 29111.5.3 C Code for the System 29111.5.4 Observing Outputs 29311.6 Summary 297Problems 29712 Advanced Applications 29912.1 Nonlinear Control 29912.1.1 Nonlinear System Identification by MATLAB 29912.1.2 Nonlinear System Input-Output Example 30112.1.3 Gain Scheduling Example 30212.1.4 Flat Systems Example 30212.1.5 Phase Portraits Example 30212.2 Optimal Control 30212.2.1 The Linear Quadratic Regulator 30312.2.2 Continuous-Time LQR Example 30412.2.3 LQR for the DC Motor 30412.3 Robust Control 30512.4 Distributed Control 30612.4.1 Hardware and Software Setup 30612.4.2 Procedure 30712.5 Auto Dimmer 30812.5.1 Hardware Setup 30812.5.2 Procedure 30912.6 Constructing a Servo Motor from DC Motor 30912.6.1 Hardware Setup 30912.6.2 Procedure 31012.7 Visual Servoing 31112.7.1 Hardware Setup 31212.7.2 Procedure 31212.8 Smart Balance Hoverboard 31312.8.1 Hardware Setup 31312.8.2 Procedure 31412.9 Line Following Robot 31412.9.1 Hardware Setup 31412.9.2 Procedure 31412.10 Active Noise Cancellation 31512.10.1 Hardware Setup 31512.10.2 Procedure 31612.11 Sun Tracking Solar Panel 31712.11.1 Hardware Setup 31712.11.2 Procedure 31712.12 System Identification of a Speaker 31812.12.1 Hardware Setup 31912.12.2 Procedure 31912.13 Peltier Based Water Cooler 32112.13.1 Hardware Setup 32112.13.2 Procedure 32212.14 Controlling a Permanent Magnet Synchronous Motor 32212.14.1 Hardware Setup 32212.14.2 Procedure 323Appendix A STM32 Board Pin Usage Tables 329Bibliography 335Index 339

Kunden Rezensionen

Zu diesem Artikel ist noch keine Rezension vorhanden.
Helfen sie anderen Besuchern und verfassen Sie selbst eine Rezension.

Google Plus
Powered by Inooga