Home > Reference > Research and information: general > Information theory > Cybernetics and systems theory > Embedded Digital Control with Microcontrollers: Implementation with C and Python(IEEE Press)
14%
Embedded Digital Control with Microcontrollers: Implementation with C and Python(IEEE Press)

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

          
5
4
3
2
1

International Edition


Premium quality
Premium quality
Bookswagon upholds the quality by delivering untarnished books. Quality, services and satisfaction are everything for us!
Easy Return
Easy return
Not satisfied with this product! Keep it in original condition and packaging to avail easy return policy.
Certified product
Certified product
First impression is the last impression! Address the book’s certification page, ISBN, publisher’s name, copyright page and print quality.
Secure Checkout
Secure checkout
Security at its finest! Login, browse, purchase and pay, every step is safe and secured.
Money back guarantee
Money-back guarantee:
It’s all about customers! For any kind of bad experience with the product, get your actual amount back after returning the product.
On time delivery
On-time delivery
At your doorstep on time! Get this book delivered without any delay.
Quantity:
Add to Wishlist

About the Book

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:
Preface xvii About the Companion Website xix 1 Introduction 1 1.1 What is a System? 1 1.2 What is a Control System? 1 1.3 About the Book 3 2 Hardware to be Used in the Book 5 2.1 The STM32 Board 5 2.1.1 General Information 6 2.1.2 Pin Layout 6 2.1.3 Powering and Programming the Board 8 2.2 The STM32 Microcontroller 8 2.2.1 Central Processing Unit 8 2.2.2 Memory 9 2.2.3 Input and Output Ports 10 2.2.4 Timer Modules 10 2.2.5 ADC and DAC Modules 11 2.2.6 Digital Communication Modules 11 2.3 System and Sensors to be Used Throughout the Book 12 2.3.1 The DC Motor 12 2.3.1.1 Properties of the DC Motor 12 2.3.1.2 Pin Layout 13 2.3.1.3 Power Settings 14 2.3.2 The DC Motor Drive Expansion Board 14 2.3.3 Encoder 15 2.3.4 The FT232 Module 17 2.4 Systems and Sensors to be Used in Advanced Applications 17 2.4.1 Systems 17 2.4.2 Sensors 19 2.5 Summary 19 Problems 20 3 Software to be Used in the Book 23 3.1 Python on PC 24 3.1.1 Basic Operations 24 3.1.2 Array and Matrix Operations 25 3.1.3 Loop Operations 26 3.1.4 Conditional Statements 27 3.1.5 Function Definition and Usage 27 3.1.6 File Operations 28 3.1.7 Python Control Systems Library 28 3.2 MicroPython on the STM32 Microcontroller 29 3.2.1 Setting up MicroPython 29 3.2.2 Running MicroPython 31 3.2.3 Reaching Microcontroller Hardware 34 3.2.3.1 Input and Output Ports 34 3.2.3.2 Timers 35 3.2.3.3 ADC 37 3.2.3.4 DAC 39 3.2.3.5 UART 41 3.2.4 MicroPython Control Systems Library 42 3.3 C on the STM32 Microcontroller 43 3.3.1 Creating a New Project in Mbed Studio 44 3.3.2 Building and Executing the Code 45 3.3.3 Reaching Microcontroller Hardware 45 3.3.3.1 Input and Output Ports 46 3.3.3.2 Timers 47 3.3.3.3 ADC 48 3.3.3.4 DAC 50 3.3.3.5 UART 51 3.3.4 C Control Systems Library 53 3.4 Application: Running the DC Motor 53 3.4.1 Hardware Setup 54 3.4.2 Procedure 54 3.4.3 C Code for the System 54 3.4.4 Python Code for the System 57 3.4.5 Observing Outputs 59 3.5 Summary 59 Problems 60 4 Fundamentals of Digital Control 63 4.1 Digital Signals 63 4.1.1 Mathematical Definition 64 4.1.2 Representing Digital Signals in Code 64 4.1.2.1 Representation in Python 65 4.1.2.2 Representation in C 65 4.1.3 Standard Digital Signals 65 4.1.3.1 Unit Pulse Signal 66 4.1.3.2 Step Signal 67 4.1.3.3 Ramp Signal 68 4.1.3.4 Parabolic Signal 68 4.1.3.5 Exponential Signal 69 4.1.3.6 Sinusoidal Signal 71 4.1.3.7 Damped Sinusoidal Signal 71 4.1.3.8 Rectangular Signal 72 4.1.3.9 Sum of Sinusoids Signal 73 4.1.3.10 Sweep Signal 75 4.1.3.11 Random Signal 76 4.2 Digital Systems 77 4.2.1 Mathematical Definition 77 4.2.2 Representing Digital Systems in Code 78 4.2.2.1 Representation in Python 78 4.2.2.2 Representation in C 79 4.2.3 Digital System Properties 79 4.2.3.1 Stability 79 4.2.3.2 Linearity 80 4.2.3.3 Time-Invariance 81 4.3 Linear and Time-Invariant Systems 81 4.3.1 Mathematical Definition 81 4.3.2 LTI Systems and Constant-Coefficient Difference Equations 82 4.3.3 Representing LTI Systems in Code 82 4.3.3.1 MicroPython Control Systems Library Usage 83 4.3.3.2 C Control Systems Library Usage 84 4.3.3.3 Python Control Systems Library Usage 85 4.3.4 Connecting LTI Systems 87 4.3.4.1 Series Connection 87 4.3.4.2 Parallel Connection 88 4.3.4.3 Feedback Connection 89 4.4 The z-Transform and Its Inverse 90 4.4.1 Definition of the z-Transform 90 4.4.2 Calculating the z-Transform in Python 92 4.4.3 Definition of the Inverse z-Transform 92 4.4.4 Calculating the Inverse z-Transform in Python 92 4.5 The z-Transform and LTI Systems 93 4.5.1 Associating Difference Equation and Impulse Response of an LTI System 93 4.5.2 Stability Analysis of an LTI System using z-Transform 95 4.5.3 Stability Analysis of an LTI System in Code 95 4.6 Application I: Acquiring Digital Signals from the Microcontroller, Processing Offline Data 96 4.6.1 Hardware Setup 97 4.6.2 Procedure 97 4.6.3 C Code for the System 97 4.6.4 Python Code for the System 99 4.6.5 Observing Outputs 101 4.7 Application II: Acquiring Digital Signals from the Microcontroller, Processing Real-Time Data 103 4.7.1 Hardware Setup 103 4.7.2 Procedure 103 4.7.3 C Code for the System 104 4.7.4 Python Code for the System 106 4.7.5 Observing Outputs 109 4.8 Summary 109 Problems 109 5 Conversion Between Analog and Digital Forms 111 5.1 Converting an Analog Signal to Digital Form 112 5.1.1 Mathematical Derivation of ADC 112 5.1.2 ADC in Code 114 5.2 Converting a Digital Signal to Analog Form 117 5.2.1 Mathematical Derivation of DAC 117 5.2.2 DAC in Code 118 5.3 Representing an Analog System in Digital Form 120 5.3.1 Pole-Zero Matching Method 121 5.3.2 Zero-Order Hold Equivalent 122 5.3.3 Bilinear Transformation 123 5.4 Application: Exciting and Simulating the RC Filter 124 5.4.1 Hardware Setup 125 5.4.2 Procedure 125 5.4.3 C Code for the System 125 5.4.4 Python Code for the System 127 5.4.5 Observing Outputs 129 5.5 Summary 129 Problems 129 6 Constructing Transfer Function of a System 131 6.1 Transfer Function from Mathematical Modeling 131 6.1.1 Fundamental Electrical and Mechanical Components 132 6.1.2 Constructing the Differential Equation Representing the System 133 6.1.3 From Differential Equation to Transfer Function 133 6.2 Transfer Function from System Identification in Time Domain 134 6.2.1 Theoretical Background 135 6.2.2 The Procedure 135 6.2.3 Data Acquisition by the STM32 Microcontroller 136 6.2.4 System Identification in Time Domain by MATLAB 137 6.3 Transfer Function from System Identification in Frequency Domain 142 6.3.1 Theoretical Background 142 6.3.2 The Procedure 142 6.3.3 System Identification in Frequency Domain by MATLAB 143 6.4 Application: Obtaining Transfer Function of the DC Motor 143 6.4.1 Mathematical Modeling 143 6.4.2 System Identification in Time Domain 146 6.4.3 System Identification in Frequency Domain 147 6.5 Summary 148 Problems 148 7 Transfer Function Based Control System Analysis 151 7.1 Analyzing System Performance 151 7.1.1 Time Domain Analysis 151 7.1.1.1 Transient Response 152 7.1.1.2 Steady-State Error 156 7.1.2 Frequency Domain Analysis 156 7.1.3 Complex Plane Analysis 159 7.1.3.1 Root-Locus Plot 160 7.1.3.2 Nyquist Plot 160 7.2 The Effect of Open-Loop Control on System Performance 163 7.2.1 What is Open-Loop Control? 163 7.2.2 Improving the System Performance by Open-Loop Control 164 7.3 The Effect of Closed-Loop Control on System Performance 167 7.3.1 What is Closed-Loop Control? 167 7.3.2 Improving the System Performance by Closed-Loop Control 170 7.4 Application: Adding Open-Loop Digital Controller to the DC Motor 174 7.4.1 Hardware Setup 175 7.4.2 Procedure 175 7.4.3 C Code for the System 175 7.4.4 Python Code for the System 177 7.4.5 Observing Outputs 178 7.5 Summary 178 Problems 180 8 Transfer Function Based Controller Design 183 8.1 PID Controller Structure 183 8.1.1 The P Controller 184 8.1.2 The PI Controller 184 8.1.3 The PID Controller 185 8.1.4 Parameter Tuning Methods 185 8.1.4.1 The Ziegler–Nichols Method 186 8.1.4.2 The Cohen–Coon Method 186 8.1.4.3 The Chien–Hrones–Reswick Method 186 8.2 PID Controller Design in Python 187 8.2.1 Parameter Tuning 188 8.2.2 Controller Design 188 8.2.2.1 P Controller 188 8.2.2.2 PI Controller 191 8.2.2.3 PID Controller 194 8.2.3 Comparison of the Designed P, PI, and PID Controllers 197 8.3 Lag–Lead Controller Structure 199 8.3.1 Lag Controller 199 8.3.2 Lead Controller 200 8.3.3 Lag–Lead Controller 200 8.4 Lag–Lead Controller Design in MATLAB 201 8.4.1 Control System Designer Tool 201 8.4.2 Controller Design in Complex Plane 203 8.4.2.1 Lag Controller 204 8.4.2.2 Lead Controller 206 8.4.2.3 Lag–Lead Controller 207 8.4.2.4 Comparison of the Designed Lag, Lead, and Lag–Lead Controllers 210 8.4.3 Controller Design in Frequency Domain 211 8.4.3.1 Lag Controller 211 8.4.3.2 Lead Controller 213 8.4.3.3 Lag–Lead Controller 213 8.4.3.4 Comparison of the Designed Lag, Lead, and Lag–Lead Controllers 217 8.5 Application: Adding Closed-Loop Digital Controller to the DC Motor 217 8.5.1 Hardware Setup 217 8.5.2 Procedure 217 8.5.3 C Code for the System 218 8.5.4 Python Code for the System 219 8.5.5 Observing Outputs 220 8.6 Summary 223 Problems 224 9 State-space Based Control System Analysis 227 9.1 State-space Approach 227 9.1.1 Definition of the State 227 9.1.2 Why State-space Representation? 228 9.2 State-space Equations Representing an LTI System 228 9.2.1 Continuous-time State-space Equations 229 9.2.2 Discrete-time State-space Equations 231 9.2.3 Representing Discrete-time State-space Equations in Code Form 231 9.3 Conversion Between State-space and Transfer Function Representations 233 9.3.1 From Transfer Function to State-space Equations 233 9.3.2 From State-space Equations to Transfer Function 235 9.4 Properties of the System from its State-space Representation 236 9.4.1 Time Domain Analysis 236 9.4.2 Stability 237 9.4.3 Controllability 238 9.4.4 Observability 239 9.5 Application: Observing States of the DC Motor in Time 240 9.5.1 Hardware Setup 240 9.5.2 Procedure 240 9.5.3 C Code for the System 240 9.5.4 Python Code for the System 242 9.5.5 Observing Outputs 243 9.6 Summary 243 Problems 244 10 State-space Based Controller Design 247 10.1 General Layout 247 10.1.1 Control Based on State Values 248 10.1.2 Regulator Structure 249 10.1.3 Controller Structure 249 10.1.4 What if States Cannot be Measured Directly? 250 10.2 Regulator and Controller Design via Pole Placement 250 10.2.1 Pole Placement 251 10.2.2 Regulator Design 251 10.2.3 Ackermann’s Formula for the Regulator Gain 251 10.2.4 Controller Design 252 10.2.5 Ackermann’s Formula for the Controller Gain 253 10.3 Regulator and Controller Design in Python 253 10.3.1 Regulator Design 253 10.3.2 Controller Design 256 10.4 State Observer Design 260 10.4.1 Mathematical Derivation 261 10.4.2 Ackermann’s Formula for the Observer Gain 262 10.5 Regulator and Controller Design in Python using Observers 263 10.5.1 Observer Design 263 10.5.2 Observer-Based Regulator Design 264 10.5.3 Observer-Based Controller Design 266 10.6 Application: State-space based Control of the DC Motor 270 10.6.1 Hardware Setup 270 10.6.2 Procedure 271 10.6.3 C Code for the System 271 10.6.4 Python Code for the System 273 10.6.5 Observing Outputs 274 10.7 Summary 275 Problems 275 11 Adaptive Control 279 11.1 What is Adaptive Control? 279 11.2 Parameter Estimation 280 11.3 Indirect Self-Tuning Regulator 283 11.3.1 Feedback ISTR Design 283 11.3.2 Feedback and Feedforward ISTR Design 287 11.4 Model-Reference Adaptive Control 288 11.5 Application: Real-Time Parameter Estimation of the DC Motor 290 11.5.1 Hardware Setup 290 11.5.2 Procedure 291 11.5.3 C Code for the System 291 11.5.4 Observing Outputs 293 11.6 Summary 297 Problems 297 12 Advanced Applications 299 12.1 Nonlinear Control 299 12.1.1 Nonlinear System Identification by MATLAB 299 12.1.2 Nonlinear System Input–Output Example 301 12.1.3 Gain Scheduling Example 302 12.1.4 Flat Systems Example 302 12.1.5 Phase Portraits Example 302 12.2 Optimal Control 302 12.2.1 The Linear Quadratic Regulator 303 12.2.2 Continuous-Time LQR Example 304 12.2.3 LQR for the DC Motor 304 12.3 Robust Control 305 12.4 Distributed Control 306 12.4.1 Hardware and Software Setup 306 12.4.2 Procedure 307 12.5 Auto Dimmer 308 12.5.1 Hardware Setup 308 12.5.2 Procedure 309 12.6 Constructing a Servo Motor from DC Motor 309 12.6.1 Hardware Setup 309 12.6.2 Procedure 310 12.7 Visual Servoing 311 12.7.1 Hardware Setup 312 12.7.2 Procedure 312 12.8 Smart Balance Hoverboard 313 12.8.1 Hardware Setup 313 12.8.2 Procedure 314 12.9 Line Following Robot 314 12.9.1 Hardware Setup 314 12.9.2 Procedure 314 12.10 Active Noise Cancellation 315 12.10.1 Hardware Setup 315 12.10.2 Procedure 316 12.11 Sun Tracking Solar Panel 317 12.11.1 Hardware Setup 317 12.11.2 Procedure 317 12.12 System Identification of a Speaker 318 12.12.1 Hardware Setup 319 12.12.2 Procedure 319 12.13 Peltier Based Water Cooler 321 12.13.1 Hardware Setup 321 12.13.2 Procedure 322 12.14 Controlling a Permanent Magnet Synchronous Motor 322 12.14.1 Hardware Setup 322 12.14.2 Procedure 323 Appendix A STM32 Board Pin Usage Tables 329 Bibliography 335 Index 339


Best Sellers


Product Details
  • ISBN-13: 9781119576525
  • Publisher: John Wiley & Sons Inc
  • Publisher Imprint: Wiley-IEEE Press
  • Height: 10 mm
  • No of Pages: 368
  • Returnable: N
  • Spine Width: 10 mm
  • Weight: 707 gr
  • ISBN-10: 1119576520
  • Publisher Date: 15 Jun 2021
  • Binding: Hardback
  • Language: English
  • Returnable: N
  • Series Title: IEEE Press
  • Sub Title: Implementation with C and Python
  • Width: 10 mm


Similar Products

How would you rate your experience shopping for books on Bookswagon?

Add Photo
Add Photo

Customer Reviews

REVIEWS           
Click Here To Be The First to Review this Product
Embedded Digital Control with Microcontrollers: Implementation with C and Python(IEEE Press)
John Wiley & Sons Inc -
Embedded Digital Control with Microcontrollers: Implementation with C and Python(IEEE Press)
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

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

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book
    Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals

    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!
    ASK VIDYA