𝔖 Scriptorium
✦   LIBER   ✦

📁

Embedded Digital Control with Microcontrollers: Implementation with C and Python (IEEE Press)

✍ Scribed by Cem Unsalan, Duygun E. Barkana, H. Deniz Gurhan


Publisher
Wiley-IEEE Press
Year
2021
Tongue
English
Leaves
371
Edition
1
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


EMBEDDED DIGITAL CONTROL WITH MICROCONTROLLERS

Explore a concise and practical introduction to implementation methods and the theory of digital control systems on microcontrollers

Embedded 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 conversion

Perfect 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.

✦ Table of Contents


Cover
Title Page
Copyright
Contents
Preface
About the Companion Website
Chapter 1 Introduction
1.1 What is a System?
1.2 What is a Control System?
1.3 About the Book
Chapter 2 Hardware to be Used in the Book
2.1 The STM32 Board
2.1.1 General Information
2.1.2 Pin Layout
2.1.3 Powering and Programming the Board
2.2 The STM32 Microcontroller
2.2.1 Central Processing Unit
2.2.2 Memory
2.2.3 Input and Output Ports
2.2.4 Timer Modules
2.2.5 ADC and DAC Modules
2.2.6 Digital Communication Modules
2.3 System and Sensors to be Used Throughout the Book
2.3.1 The DC Motor
2.3.1.1 Properties of the DC Motor
2.3.1.2 Pin Layout
2.3.1.3 Power Settings
2.3.2 The DC Motor Drive Expansion Board
2.3.3 Encoder
2.3.4 The FT232 Module
2.4 Systems and Sensors to be Used in Advanced Applications
2.4.1 Systems
2.4.2 Sensors
2.5 Summary
Problems
Chapter 3 Software to be Used in the Book
3.1 Python on PC
3.1.1 Basic Operations
3.1.2 Array and Matrix Operations
3.1.3 Loop Operations
3.1.4 Conditional Statements
3.1.5 Function Definition and Usage
3.1.6 File Operations
3.1.7 Python Control Systems Library
3.2 MicroPython on the STM32 Microcontroller
3.2.1 Setting up MicroPython
3.2.2 Running MicroPython
3.2.3 Reaching Microcontroller Hardware
3.2.3.1 Input and Output Ports
3.2.3.2 Timers
3.2.3.3 ADC
3.2.3.4 DAC
3.2.3.5 UART
3.2.4 MicroPython Control Systems Library
3.3 C on the STM32 Microcontroller
3.3.1 Creating a New Project in Mbed Studio
3.3.2 Building and Executing the Code
3.3.3 Reaching Microcontroller Hardware
3.3.3.1 Input and Output Ports
3.3.3.2 Timers
3.3.3.3 ADC
3.3.3.4 DAC
3.3.3.5 UART
3.3.4 C Control Systems Library
3.4 Application: Running the DC Motor
3.4.1 Hardware Setup
3.4.2 Procedure
3.4.3 C Code for the System
3.4.4 Python Code for the System
3.4.5 Observing Outputs
3.5 Summary
Problems
Chapter 4 Fundamentals of Digital Control
4.1 Digital Signals
4.1.1 Mathematical Definition
4.1.2 Representing Digital Signals in Code
4.1.2.1 Representation in Python
4.1.2.2 Representation in C
4.1.3 Standard Digital Signals
4.1.3.1 Unit Pulse Signal
4.1.3.2 Step Signal
4.1.3.3 Ramp Signal
4.1.3.4 Parabolic Signal
4.1.3.5 Exponential Signal
4.1.3.6 Sinusoidal Signal
4.1.3.7 Damped Sinusoidal Signal
4.1.3.8 Rectangular Signal
4.1.3.9 Sum of Sinusoids Signal
4.1.3.10 Sweep Signal
4.1.3.11 Random Signal
4.2 Digital Systems
4.2.1 Mathematical Definition
4.2.2 Representing Digital Systems in Code
4.2.2.1 Representation in Python
4.2.2.2 Representation in C
4.2.3 Digital System Properties
4.2.3.1 Stability
4.2.3.2 Linearity
4.2.3.3 Time‐Invariance
4.3 Linear and Time‐Invariant Systems
4.3.1 Mathematical Definition
4.3.2 LTI Systems and Constant‐Coefficient Difference Equations
4.3.3 Representing LTI Systems in Code
4.3.3.1 MicroPython Control Systems Library Usage
4.3.3.2 C Control Systems Library Usage
4.3.3.3 Python Control Systems Library Usage
4.3.4 Connecting LTI Systems
4.3.4.1 Series Connection
4.3.4.2 Parallel Connection
4.3.4.3 Feedback Connection
4.4 The z‐Transform and Its Inverse
4.4.1 Definition of the z‐Transform
4.4.2 Calculating the z‐Transform in Python
4.4.3 Definition of the Inverse z‐Transform
4.4.4 Calculating the Inverse z‐Transform in Python
4.5 The z‐Transform and LTI Systems
4.5.1 Associating Difference Equation and Impulse Response of an LTI System
4.5.2 Stability Analysis of an LTI System using z‐Transform
4.5.3 Stability Analysis of an LTI System in Code
4.6 Application I: Acquiring Digital Signals from the Microcontroller, Processing Offline Data
4.6.1 Hardware Setup
4.6.2 Procedure
4.6.3 C Code for the System
4.6.4 Python Code for the System
4.6.5 Observing Outputs
4.7 Application II: Acquiring Digital Signals from the Microcontroller, Processing Real‐Time Data
4.7.1 Hardware Setup
4.7.2 Procedure
4.7.3 C Code for the System
4.7.4 Python Code for the System
4.7.5 Observing Outputs
4.8 Summary
Problems
Chapter 5 Conversion Between Analog and Digital Forms
5.1 Converting an Analog Signal to Digital Form
5.1.1 Mathematical Derivation of ADC
5.1.2 ADC in Code
5.2 Converting a Digital Signal to Analog Form
5.2.1 Mathematical Derivation of DAC
5.2.2 DAC in Code
5.3 Representing an Analog System in Digital Form
5.3.1 Pole‐Zero Matching Method
5.3.2 Zero‐Order Hold Equivalent
5.3.3 Bilinear Transformation
5.4 Application: Exciting and Simulating the RC Filter
5.4.1 Hardware Setup
5.4.2 Procedure
5.4.3 C Code for the System
5.4.4 Python Code for the System
5.4.5 Observing Outputs
5.5 Summary
Problems
Chapter 6 Constructing Transfer Function of a System
6.1 Transfer Function from Mathematical Modeling
6.1.1 Fundamental Electrical and Mechanical Components
6.1.2 Constructing the Differential Equation Representing the System
6.1.3 From Differential Equation to Transfer Function
6.2 Transfer Function from System Identification in Time Domain
6.2.1 Theoretical Background
6.2.2 The Procedure
6.2.3 Data Acquisition by the STM32 Microcontroller
6.2.4 System Identification in Time Domain by MATLAB
6.3 Transfer Function from System Identification in Frequency Domain
6.3.1 Theoretical Background
6.3.2 The Procedure
6.3.3 System Identification in Frequency Domain by MATLAB
6.4 Application: Obtaining Transfer Function of the DC Motor
6.4.1 Mathematical Modeling
6.4.2 System Identification in Time Domain
6.4.3 System Identification in Frequency Domain
6.5 Summary
Problems
Chapter 7 Transfer Function Based Control System Analysis
7.1 Analyzing System Performance
7.1.1 Time Domain Analysis
7.1.1.1 Transient Response
7.1.1.2 Steady‐State Error
7.1.2 Frequency Domain Analysis
7.1.3 Complex Plane Analysis
7.1.3.1 Root‐Locus Plot
7.1.3.2 Nyquist Plot
7.2 The Effect of Open‐Loop Control on System Performance
7.2.1 What is Open‐Loop Control?
7.2.2 Improving the System Performance by Open‐Loop Control
7.3 The Effect of Closed‐Loop Control on System Performance
7.3.1 What is Closed‐Loop Control?
7.3.2 Improving the System Performance by Closed‐Loop Control
7.4 Application: Adding Open‐Loop Digital Controller to the DC Motor
7.4.1 Hardware Setup
7.4.2 Procedure
7.4.3 C Code for the System
7.4.4 Python Code for the System
7.4.5 Observing Outputs
7.5 Summary
Problems
Chapter 8 Transfer Function Based Controller Design
8.1 PID Controller Structure
8.1.1 The P Controller
8.1.2 The PI Controller
8.1.3 The PID Controller
8.1.4 Parameter Tuning Methods
8.1.4.1 The Ziegler–Nichols Method
8.1.4.2 The Cohen–Coon Method
8.1.4.3 The Chien–Hrones–Reswick Method
8.2 PID Controller Design in Python
8.2.1 Parameter Tuning
8.2.2 Controller Design
8.2.2.1 P Controller
8.2.2.2 PI Controller
8.2.2.3 PID Controller
8.2.3 Comparison of the Designed P, PI, and PID Controllers
8.3 Lag–Lead Controller Structure
8.3.1 Lag Controller
8.3.2 Lead Controller
8.3.3 Lag–Lead Controller
8.4 Lag–Lead Controller Design in MATLAB
8.4.1 Control System Designer Tool
8.4.2 Controller Design in Complex Plane
8.4.2.1 Lag Controller
8.4.2.2 Lead Controller
8.4.2.3 Lag–Lead Controller
8.4.2.4 Comparison of the Designed Lag, Lead, and Lag–Lead Controllers
8.4.3 Controller Design in Frequency Domain
8.4.3.1 Lag Controller
8.4.3.2 Lead Controller
8.4.3.3 Lag–Lead Controller
8.4.3.4 Comparison of the Designed Lag, Lead, and Lag–Lead Controllers
8.5 Application: Adding Closed‐Loop Digital Controller to the DC Motor
8.5.1 Hardware Setup
8.5.2 Procedure
8.5.3 C Code for the System
8.5.4 Python Code for the System
8.5.5 Observing Outputs
8.6 Summary
Problems
Chapter 9 State‐space Based Control System Analysis
9.1 State‐space Approach
9.1.1 Definition of the State
9.1.2 Why State‐space Representation?
9.2 State‐space Equations Representing an LTI System
9.2.1 Continuous‐time State‐space Equations
9.2.2 Discrete‐time State‐space Equations
9.2.3 Representing Discrete‐time State‐space Equations in Code Form
9.3 Conversion Between State‐space and Transfer Function Representations
9.3.1 From Transfer Function to State‐space Equations
9.3.2 From State‐space Equations to Transfer Function
9.4 Properties of the System from its State‐space Representation
9.4.1 Time Domain Analysis
9.4.2 Stability
9.4.3 Controllability
9.4.4 Observability
9.5 Application: Observing States of the DC Motor in Time
9.5.1 Hardware Setup
9.5.2 Procedure
9.5.3 C Code for the System
9.5.4 Python Code for the System
9.5.5 Observing Outputs
9.6 Summary
Problems
Chapter 10 State‐space Based Controller Design
10.1 General Layout
10.1.1 Control Based on State Values
10.1.2 Regulator Structure
10.1.3 Controller Structure
10.1.4 What if States Cannot be Measured Directly?
10.2 Regulator and Controller Design via Pole Placement
10.2.1 Pole Placement
10.2.2 Regulator Design
10.2.3 Ackermann's Formula for the Regulator Gain
10.2.4 Controller Design
10.2.5 Ackermann's Formula for the Controller Gain
10.3 Regulator and Controller Design in Python
10.3.1 Regulator Design
10.3.2 Controller Design
10.4 State Observer Design
10.4.1 Mathematical Derivation
10.4.2 Ackermann's Formula for the Observer Gain
10.5 Regulator and Controller Design in Python using Observers
10.5.1 Observer Design
10.5.2 Observer‐Based Regulator Design
10.5.3 Observer‐Based Controller Design
10.6 Application: State‐space based Control of the DC Motor
10.6.1 Hardware Setup
10.6.2 Procedure
10.6.3 C Code for the System
10.6.4 Python Code for the System
10.6.5 Observing Outputs
10.7 Summary
Problems
Chapter 11 Adaptive Control
11.1 What is Adaptive Control?
11.2 Parameter Estimation
11.3 Indirect Self‐Tuning Regulator
11.3.1 Feedback ISTR Design
11.3.2 Feedback and Feedforward ISTR Design
11.4 Model‐Reference Adaptive Control
11.5 Application: Real‐Time Parameter Estimation of the DC Motor
11.5.1 Hardware Setup
11.5.2 Procedure
11.5.3 C Code for the System
11.5.4 Observing Outputs
11.6 Summary
Problems
Chapter 12 Advanced Applications
12.1 Nonlinear Control
12.1.1 Nonlinear System Identification by MATLAB
12.1.2 Nonlinear System Input–Output Example
12.1.3 Gain Scheduling Example
12.1.4 Flat Systems Example
12.1.5 Phase Portraits Example
12.2 Optimal Control
12.2.1 The Linear Quadratic Regulator
12.2.2 Continuous‐Time LQR Example
12.2.3 LQR for the DC Motor
12.3 Robust Control
12.4 Distributed Control
12.4.1 Hardware and Software Setup
12.4.2 Procedure
12.5 Auto Dimmer
12.5.1 Hardware Setup
12.5.2 Procedure
12.6 Constructing a Servo Motor from DC Motor
12.6.1 Hardware Setup
12.6.2 Procedure
12.7 Visual Servoing
12.7.1 Hardware Setup
12.7.2 Procedure
12.8 Smart Balance Hoverboard
12.8.1 Hardware Setup
12.8.2 Procedure
12.9 Line Following Robot
12.9.1 Hardware Setup
12.9.2 Procedure
12.10 Active Noise Cancellation
12.10.1 Hardware Setup
12.10.2 Procedure
12.11 Sun Tracking Solar Panel
12.11.1 Hardware Setup
12.11.2 Procedure
12.12 System Identification of a Speaker
12.12.1 Hardware Setup
12.12.2 Procedure
12.13 Peltier Based Water Cooler
12.13.1 Hardware Setup
12.13.2 Procedure
12.14 Controlling a Permanent Magnet Synchronous Motor
12.14.1 Hardware Setup
12.14.2 Procedure
Appendix A STM32 Board Pin Usage Tables
Bibliography
Index
EULA


📜 SIMILAR VOLUMES


Embedded Digital Control with Microcontr
✍ Cem Unsalan, Duygun E. Barkana, H. Deniz Gurhan 📂 Library 🏛 Wiley-IEEE Press 🌐 English

<p><span>EMBEDDED DIGITAL CONTROL WITH MICROCONTROLLERS</span></p><p><span>Explore a concise and practical introduction to implementation methods and the theory of digital control systems on microcontrollers</span></p><p><span>Embedded Digital Control with Microcontrollers</span><span> delivers expe

Programming with MicroPython: Embedded P
✍ Nicholas H. Tollervey 📂 Library 📅 2017 🏛 "O'Reilly Media, Inc." 🌐 English

It’s an exciting time to get involved with MicroPython, the re-implementation of Python 3 for microcontrollers and embedded systems. This practical guide delivers the knowledge you need to roll up your sleeves and create exceptional embedded projects with this lean and efficient programming language

Programming with MicroPython: Embedded P
✍ Nicholas H. Tollervey 📂 Library 📅 2017 🏛 O’Reilly Media 🌐 English

<div><p>It’s an exciting time to get involved with MicroPython, the re-implementation of Python 3 for microcontrollers and embedded systems. This practical guide delivers the knowledge you need to roll up your sleeves and create exceptional embedded projects with this lean and efficient programming

Programming with MicroPython: Embedded P
✍ Nicholas H. Tollervey 📂 Library 📅 2017 🏛 O’Reilly Media 🌐 English

<div><p>It’s an exciting time to get involved with MicroPython, the re-implementation of Python 3 for microcontrollers and embedded systems. This practical guide delivers the knowledge you need to roll up your sleeves and create exceptional embedded projects with this lean and efficient programming

Programming with MicroPython: embedded p
✍ Tollervey, Nicholas H 📂 Library 📅 2018;2017 🏛 O'Reilly Media 🌐 English

<p>It's an exciting time to get involved with MicroPython, the re-implementation of Python 3 for microcontrollers and embedded systems. This practical guide delivers the knowledge you need to roll up your sleeves and create exceptional embedded projects with this lean and efficient programming langu