My Account Log in

1 option

Embedded digital control with microcontrollers : implementation with C and Python / Unsalan, Duygun E. Barkana, and H. Deniz Gurhan.

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Barkana, Duygun E., author.
Gurhan, H. Deniz, author.
Series:
Wiley - IEEE
Language:
English
Subjects (All):
Microcontrollers.
Digital control systems.
C (Computer program language).
Python (Computer program language).
Physical Description:
1 online resource (371 pages) : illustrations
Place of Publication:
Hoboken, New Jersey : John Wiley & Sons, Incorporated, [2021]
Summary:
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.
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
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
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
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
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
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
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
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.
Notes:
"IEEE Press"
"Copyright (c) 2021 by The Institute of Electrical and Electronics Engineers, Inc."--T.p. verso
Includes bibliographical references and index
Includes bibliographical references and index.
Description based on print version record.
ISBN:
1-119-57655-5
1-119-57660-1
1-119-57658-X
OCLC:
1243534075

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account