LEADER 11146nam 2200589 450 001 9910555117703321 005 20220216193711.0 010 $a1-119-57655-5 010 $a1-119-57660-1 010 $a1-119-57658-X 035 $a(CKB)4100000011809473 035 $a(MiAaPQ)EBC6524940 035 $a(Au-PeEL)EBL6524940 035 $a(OCoLC)1243534075 035 $a(EXLCZ)994100000011809473 100 $a20211014d2021 uy 0 101 0 $aeng 135 $aurcnu|||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aEmbedded digital control with microcontrollers $eimplementation with C and Python /$fUnsalan, Duygun E. Barkana, and H. Deniz Gurhan 210 1$aHoboken, New Jersey :$cJohn Wiley & Sons, Incorporated,$d[2021] 210 4$dİ2021 215 $a1 online resource (371 pages) $cillustrations 225 1 $aWiley - IEEE Ser. 311 $a1-119-57652-0 320 $aIncludes bibliographical references and index. 327 $aCover -- 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. 327 $a3.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. 327 $a4.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. 327 $a6.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. 327 $a8.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?. 327 $a10.2 Regulator and Controller Design via Pole Placement. 410 0$aWiley - IEEE Ser. 606 $aC (Computer program language) 606 $aDigital control systems 606 $aMicrocontrollers 615 0$aC (Computer program language) 615 0$aDigital control systems. 615 0$aMicrocontrollers. 676 $a629.89 700 $aU?nsalan$b Cem$01217224 702 $aBarkana$b Duygun E. 702 $aGurhan$b H. Deniz 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910555117703321 996 $aEmbedded digital control with microcontrollers$92815185 997 $aUNINA