PID Control with Derivative Filtering and Integral Anti-Windup for a DC Servo

Similar documents
Modeling and System Identification for a DC Servo

Interfacing dspace to the Quanser Rotary Series of Experiments (SRV02ET)

EE 461 Experiment #1 Digital Control of DC Servomotor

Rotary Motion Servo Plant: SRV02. Rotary Experiment #02: Position Control. SRV02 Position Control using QuaRC. Student Manual

Lab 1: Steady State Error and Step Response MAE 433, Spring 2012

Rotary Motion Servo Plant: SRV02. Rotary Experiment #03: Speed Control. SRV02 Speed Control using QuaRC. Student Manual

Sfwr Eng/TRON 3DX4, Lab 4 Introduction to Computer Based Control

SRV02-Series Rotary Experiment # 3. Ball & Beam. Student Handout

Lab 2: Introduction to Real Time Workshop

Linear Motion Servo Plants: IP01 or IP02. Linear Experiment #0: Integration with WinCon. IP01 and IP02. Student Handout

SRV02-Series. Rotary Servo Plant. User Manual

7 Lab: Motor control for orientation and angular speed

2.017 DESIGN OF ELECTROMECHANICAL ROBOTIC SYSTEMS Fall 2009 Lab 4: Motor Control. October 5, 2009 Dr. Harrison H. Chin

Equipment and materials from stockroom:! DC Permanent-magnet Motor (If you can, get the same motor you used last time.)! Dual Power Amp!

ECE 5671/6671 Lab 3. Impedance Measurement and Parameter Estimation of a DC Motor

ECE 5670/ Lab 5. Closed-Loop Control of a Stepper Motor. Objectives

Tech Note #3: Setting up a Servo Axis For Closed Loop Position Control Application note by Tim McIntosh September 10, 2001

Penn State Erie, The Behrend College School of Engineering

The Discussion of this exercise covers the following points: Angular position control block diagram and fundamentals. Power amplifier 0.

Servo Closed Loop Speed Control Transient Characteristics and Disturbances

Laboratory Assignment 5 Digital Velocity and Position control of a D.C. motor

MTE 360 Automatic Control Systems University of Waterloo, Department of Mechanical & Mechatronics Engineering

5 Lab 5: Position Control Systems - Week 2

Compensation of a position servo

GE 320: Introduction to Control Systems

Introduction to Servo Control & PID Tuning

dspace DS1103 Control Workstation Tutorial and DC Motor Speed Control Project Proposal

Rotary Motion Servo Plant: SRV02. Rotary Experiment #17: 2D Ball Balancer. 2D Ball Balancer Control using QUARC. Instructor Manual

Modelling and Simulation of a DC Motor Drive

Figure 1: Unity Feedback System. The transfer function of the PID controller looks like the following:

MAE106 Laboratory Exercises Lab # 5 - PD Control of DC motor position

Control Design for Servomechanisms July 2005, Glasgow Detailed Training Course Agenda

ME 3200 Mechatronics I Laboratory Lab 8: Angular Position and Velocity Sensors

ECE 5670/6670 Project. Brushless DC Motor Control with 6-Step Commutation. Objectives

EE 4314 Lab 3 Handout Speed Control of the DC Motor System Using a PID Controller Fall Lab Information

Sensors and Sensing Motors, Encoders and Motor Control

Motomatic Servo Control

Ball and Beam. Workbook BB01. Student Version

Lab 2, Analysis and Design of PID

Ver. 4/5/2002, 1:11 PM 1

Massachusetts Institute of Technology. Lab 2: Characterization of Lab System Components

USER MANUAL. SRV02 Rotary Servo Base Unit. Set Up and Configuration

GE420 Laboratory Assignment 8 Positioning Control of a Motor Using PD, PID, and Hybrid Control

Project Proposal. Low-Cost Motor Speed Controller for Bradley ECE Department Robots L.C.M.S.C. By Ben Lorentzen

Implementation of PV and PIV Control for Position Control of Servo Motor

Teaching Mechanical Students to Build and Analyze Motor Controllers

Laboratory Assignment 1 Sampling Phenomena

1. To study the influence of the gain on the transient response of a position servo. 2. To study the effect of velocity feedback.

dspace and Real-Time Interface in Simulink

Chapter 5. Tracking system with MEMS mirror

Effective Teaching Learning Process for PID Controller Based on Experimental Setup with LabVIEW

Sensors and Sensing Motors, Encoders and Motor Control

dspace DS1103 Control Workstation Tutorial and DC Motor Speed Control Project Report

Robust Control Design for Rotary Inverted Pendulum Balance

Lab 5: Inverted Pendulum PID Control

Root Locus Design. by Martin Hagan revised by Trevor Eckert 1 OBJECTIVE

Laboratory Tutorial#1

L E C T U R E R, E L E C T R I C A L A N D M I C R O E L E C T R O N I C E N G I N E E R I N G

GE423 Laboratory Assignment 6 Robot Sensors and Wall-Following

Design of a Simulink-Based Control Workstation for Mobile Wheeled Vehicles with Variable-Velocity Differential Motor Drives

Laboratory Seven Stepper Motor and Feedback Control

E x p e r i m e n t 2 S i m u l a t i o n a n d R e a l - t i m e I m p l e m e n t a t i o n o f a S w i t c h - m o d e D C C o n v e r t e r

Motor Modeling and Position Control Lab 3 MAE 334

Observer-based Engine Cooling Control System (OBCOOL) Project Proposal. Students: Andrew Fouts & Kurtis Liggett. Advisor: Dr.

A Do-and-See Approach for Learning Mechatronics Concepts

Implementation of discretized vector control strategies for induction machines

Digital Control Lab Exp#8: PID CONTROLLER

MM7 Practical Issues Using PID Controllers

Design of Compensator for Dynamical System

FPGA Implementation of a PID Controller with DC Motor Application

University of Michigan EECS 311: Electronic Circuits Fall 2009 LAB 2 NON IDEAL OPAMPS

Lab 2: Quanser Hardware and Proportional Control

EE 233 Circuit Theory Lab 2: Amplifiers

4 Experiment 4: DC Motor Voltage to Speed Transfer Function Estimation by Step Response and Frequency Response (Part 2)

CSE 3215 Embedded Systems Laboratory Lab 5 Digital Control System

E x p e r i m e n t 3 Characterization of DC Motor: Part 1

Basic Tuning for the SERVOSTAR 400/600

By Vishal Kumar. Project Advisor: Dr. Gary L. Dempsey

DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING BANGLADESH UNIVERSITY OF ENGINEERING & TECHNOLOGY EEE 402 : CONTROL SYSTEMS SESSIONAL

Phys Lecture 5. Motors

SERVO MOTOR CONTROL TRAINER

UNIT 2: DC MOTOR POSITION CONTROL

MEM01: DC-Motor Servomechanism

Electric Drives Experiment 5 Four-Quadrant Operation of a PMDC Motor

PID-control and open-loop control

2.737 Mechatronics Laboratory Assignment 1: Servomotor Control

Implementation of Conventional and Neural Controllers Using Position and Velocity Feedback

CSMIO/IP-A motion controller and Mach4

SKEE 3732 BASIC CONTROL LABORATORY (Experiment 2) ANGULAR POSITION CONTROL


ECE 5670/6670 Lab 7 Brushless DC Motor Control with 6-Step Commutation. Objectives

Feedback Devices. By John Mazurkiewicz. Baldor Electric

Active Vibration Isolation of an Unbalanced Machine Tool Spindle

is the angular velocity (speed) and friction in rotor of motor is very small (can be neglected) so Bm = 0.

Mechatronics Laboratory Assignment 3 Introduction to I/O with the F28335 Motor Control Processor

By Vishal Kumar. Project Advisor: Dr. Gary L. Dempsey

Quanser Products and solutions

Students: Andrew Fouts Kurtis Liggett. Advisor: Dr. Dempsey

Open Loop Frequency Response

Development of a MATLAB Data Acquisition and Control Toolbox for BASIC Stamp Microcontrollers

Transcription:

PID Control with Derivative Filtering and Integral Anti-Windup for a DC Servo Nicanor Quijano and Kevin M. Passino The Ohio State University Department of Electrical Engineering 2015 Neil Avenue, Columbus Ohio, 43210 April 8,2002 Abstract In this lab you are going to use the main concepts that you saw in the prelab for PID controllers. For that, we use the DC motor for the SRV-02ET to do position control. You are also going to learn about another sensor. Instead of the using the tachometer to measure shaft angular velocity as you did in the Lab # 2, you aregoing to use an optical encoder to measure shaft angular position. Contents 1 Introduction 2 2 Laboratory Procedures 2 2.1 Necessary Equipment.... 2 2.2 Connections... 2 2.3 Proportional Controller... 2 2.4 PID Controller with Derivative Filtering... 4 2.5 PID Controller with Derivative Filtering and Integral Anti-Windup...... 5 3 Post-Laboratory Exercises 6 1

1 Introduction In the pre-lab you studied some basic ideasabout PID control. In this lab you are going to apply these ideas to position control for the SRV-02ET DC motor using a proportional controller, then a PID controller with derivative filtering. Finally we are going to design an integral anti-windup scheme for the PID controller. 2 Laboratory Procedures 2.1 Necessary Equipment 1 dspace software. 1DS1104 interface card. 1Universal Power Module, UPM-2405. 1SRV02ET servo DC motor. 1Encodercable. 1ToloadCable. 1FromD/ACable. 1Inertialdisk. 372teeth gears (low gear ratio). 2.2 Connections We are going to connect the motor using the encoder to perform a position control experiment. For that, follow the next steps: 1. Take the To Load Cable and connect one side to theuniversalpower Module, and the other to the motor. 2. Take the From D/A cable and connect the RCA termination to the analog output 0 in the DS1104 Interface Board (remember that this analog output is # 1 in the software). The connector at the other end goes to the UPM-2405. 3. Take the Encoder cable and connect one side to the encoder that is located on the motor (as you saw in the document Interfacing dspace to the Quanser Rotary Series of Experiments (SRV02ET) ), and the other end to the DS1104 Interface Card. 4. Remember that you have to put the motor in the low gear ratio, with its inertia in the top, as you can see in Figure 1. 2.3 Proportional Controller First, we are going to implement a proportional controller. For that, follow the next steps: 1. Open dspace and Matlab. Remember that you have to change the path where you are working (you will work under C:\EE758\LAB3\). 2. Youare going to build a model that has one input sequence described in the next step, the controller, and the input from the encoder. This model should be saved as model3.mdl. 3. Construct one output that has the following characteristics: 2

Figure 1: Motor with its inertial disk. It must be zero between 0 and 10 seconds. It must be 45 between 10 and 40 seconds. It must be 0 between 40 and 60 seconds. The signal must look like the one that you see in Figure 2. Since the input wave that you just constructed must be smooth, you can use a rate limiter with a rising slew rate of 1000, and a falling slew rate of -1000 to process it before it is used as a reference input. Label the output of the rate limiter as Input. 4. Now you can construct a simple proportional controller using the gain that you found in the prelab. This gain should be able to be changed by a dspace user. 5. Limit the output of the controller between 5 and -5. 6. You have to use the encoder to acquire position of the DC servo shaft. For that you have to use two basic elements in the library of dspace that you have in Simulink: the encoder setup block, and the encoder position block. You have to configure these elements, such that you work with channel # 1, and you have a single-ended (TTL) signal type. 7. The output of the encoder position block is in cycles, and the encoder that we have has 4 counts/cycle. Also, the encoder has 360 deg/count. You have to be able to figure out the value of the gain that 4096 converts from cycles to deg, such that you can subtract the reference input that you configured above (in deg.) from this input (Hint: You can figure out directly the value that you have to use via the previous information, but if you are not able to do that, try to find the number of degrees per count using dspace. For that you have to find heuristically the number of counts once you turn the motor shaft one whole revolution by hand.). 8. Add the Safety Stop time block that you built in the last laboratory. Fix its value at 60 seconds. 9. Change whatever you need to change to compile the experiment, and run it using the DS1104 card. 10. Now that you already compiled the model, start a dspace experiment, so that the user can see the input sequence that you are applying, the real position that you are obtaining, and finally so the user 3

Input 45 40 35 30 Amplitude 25 20 15 10 5 0 0 10 20 30 40 50 60 time Figure 2: Signal input for the experiment. can change the proportional gain, and the set point. Finally, save the experiment, so that in the future it can beopened (use your own folder under EE758). 11. Take some closed-loop response data for the gain that you obtained in the prelab. Is this gain appropriate? If not, try to tune the controller to obtain a better result, and save the resulting closed-loop data (Hint: To save the data, you have to follow the same steps that you use in Lab # 2, or you can just autosave the values using the steps described in the tutorial of Lab # 1.). 2.4 PID Controller with Derivative Filtering Now, building on the simple proportional controller, you aregoing to use a more sophisticated one: a PID controller with derivative filtering. 1. Use the same input that was described in Section 2.3. 2. Now you are going to build a subsystem called PID with filter that has the following characteristics: The block has two inputs: (i) the error that is going to be used by the proportional and the integral part, and (i) the output of the motor that is going to be passed through a filtered derivative to create an approximation to the derivative. One input should be named Error, the other Output, and the output must be named PID output. When the user double clicks this block he/she should be able to change the P, I, and D gains and the value α of the filter (see the prelab). This subsystem should be like the one in Figure 3. 3. Now, using the previous subsystem, and the input wave that you already built, construct a model that you are going to save as model4.mdl that controls the position of the motor. For that you have to use the values of P, I, and D gains and α that you found in prelab # 3. 4. After you follow the steps to compile, and build the model, you have to run the experiment, and IF YOU HEAR A BUZZ IN THE MOTOR, TURN THE EXPERIMENT OFF IMME- DIATELY AS THIS CAN DAMAGE THE EQUIPMENT, AND RECONSIDER YOUR DESIGN. (See the warning in the handout on the DC servo from Quanser.) 4

Figure 3: PID controller with derivative filtering subsystem. 5. Build an experiment so that the user can change the values of P, I, and D gains and α. Besides that, the user should be able to see in the same plot the input that you are applying to the system, and the output that you are obtaining. Finally, in a separate plot show the error that you are getting. If you want, you can put two displays so that in one you can see the value in degrees of the DC motor, and in the other you can see the value of the error. 6. Are the values found in the prelab ones that lead to good closed-loop performance? Explain what you found, and save the data, so that you can use it later in the post-lab. 7. Tune the controller, so that you will obtain zero steady state error and a good transient response (you define what you mean by good ). Which values did you change? Why? Explain in detail the criteria that you used to change the values of P, I, D, and α, ifyouchanged any of these values. 8. Again, save the closed-loop response data that you obtained for different values of the P, I, and D gains and α. 2.5 PID Controller with Derivative Filtering and Integral Anti-Windup Here, you have to build a PID controller using the same derivative filter that you used before, but instead of using the integral part as you had in the Section 2.4, use the block diagram that you have in the Figure 2.5.B in the handout of the prelab. In this part we will need to use the experiment that you saved in Section 2.4, and a new experiment that you will build right now. 1. Use the same output that you built in Section 2.3. 2. Using practically the same values that you found in Section 2.4 for the P, I, and D gains, and α. Find avaluethat can saturate the output of the motor. (Hint: You may want to use a value that is 18 times less than the original value that you had.) 3. Choose a value for the gain in the anti-windup loop that you built. This value is going to be tuned, once the experiment is running. 4. Compile the new model that you create using the block diagram in Figure 2.5.B in the Appendix A, using the filter for the derivative part. 5

5. In the control desk of dspace, put two plotters that are going to be able to show, in one of them the input and the real position of the motor, and in the other plotter you will put the output that enters in the saturation block. These two plotters will allow you to save these values so that you will plot the results in the post-lab exercises. 6. Put 7 displays that will allow the user to see the values of the parameters of the controller (including the value of the anti-windup gain), plus the actual position, and the error. 7. Save the experiment, and run it. Whathappens? 8. Now, you are going to open the dspace experiment that you saved in the Section 2.4, and you will change the values of the controller, and the saturation blocks, so thatyouwill have the same as in the case of the anti-windup scheme. 9. Run the experiment, and save the data of the input, output, and the output of the PID with filter block. 10. Tune the values, until you will observe something interesting, and you can show the difference between the two controllers. 3 Post-Laboratory Exercises 1. What was the value of the gain used at the output of the encoder? How did you find it? Explain. 2. Plot on the same graph the input wave and the response of the actual DC servo for the proportional controller gain value that you found in the prelab. 3. What is the steady state error? Explain what is happening. 4. Now, plot on the same graph the input wave and the response of system for the tuned proportional controller that you found in the lab. What is the value of the gain that you finally obtained in V/deg? 5. What was the criteria that you used to change the proportional value? 6. What is the value of the overshoot? Rise-time? 7. Why do you think that you obtained different values for the proportional controller in theory and in the practice? 8. Explain how you built the subsystem called PID with filter. Give the code, and clearly state which steps you followed to mask the system. 9. Plot on the same graph the input wave and the response of the actual DC servo for the values you found from prelab and the final tuned values you used for the PID controller with derivative filtering. Are the values found in the prelab good ones? Explain. Do you find a steady state error in the response? Why? What is your rise-time and overshoot? How did you tune the controller? What are the values of the gains that you finally picked? Is the value α of the filter affecting the performance of the controller? 10. What are the values for P, I, D, anti-windup gain, saturation, and α that you found in the Section 2.5. Why did you choose thesevalues? 11. Plot in the same graph, the output of your two different controllers developed using the same gains in the Section 2.5. What do you observe? Is that correct? 12. Plot in the same graph the output of the motor for the case where you used a PID with filter, and the anti-windup scheme. Besides that, plot also the output. What do you observe? Give your conclusions. 6