Laboratory of Embedded Control Systems Course Presentation Teacher Luigi Palopoli AA. 2011/2012 Aim of the course The aim of this course it to introduce the student (you :=) ) to model based design of embedded control systems This will be done with theoretical lectures (few) and lab experiences (many) The course is a laboratory course. What we expect is that you deliver a complete working project You will organise yourself in groups of two students Please start searching for your mate and let me know in the next class The project The project will be developed in different phases At the end of each phase, you will produce a different artefact (e.g., a piece of code or a model), which has to be documented by a report There is a specific date for each delivery Those of you who do not attend the class can deliver the project all at once, but I warmly recommend not to (is possible) We will do most of the work together in the class, but you may need to work on your own to complete the different phase What this course is not... It is not a Signals and System course It is not a Real-Time Operating Systems course It is not an automatic control or a digital control course..... ...but you will need a little bit of all of this and we will help you.... What this course is... In this course you will be offered a comprehensive look on the entire model based development methodology In detail, you will learn how to 1. Formulate design specifications 4. Design a controller for the system that fulfils your goals 2. Construct a model of the system that you want to control (plant) 5. Simulate the closed loop system and asses its performance 3. Identify the physical parameters of the system 6. Generate a Software implementation for your controller A plant The objective of this course is to control a system that we define a plant A plant is a continuous time system described by a set of differential equations Example (Spring + Damper) Model of the Plant Very often we will use the transfer function (Laplace Transform) to express the plant in a mathematically tractable way In our example: Model We can easily translate this equation into a scicos model • Double-clicking on the transfer function block we can insert the physical parameters and simulate the system Simulation Step Response Physical Parameters The behaviour of the system is obviously much different if we change the physical parameters To make our modelNon-idealities more realistic, we can refine our model inserting blocks that model non-idealities For instance, actuators are not able to produce any input value an utility car is different from a Formula 1 racing car we can model this by inserting in the model a “saturation” block The system is no longer linear (why?) but we can consider its behaviour as linear ad long as we do not exceed the bound of the saturation Non-idealities Saturation Performance Specs Once we have a model for our system we can formulate performance specification (e.g., related to the step response) Overshoot Rise time Settling time Physical Parameters Essential to our purpose is to determine the choice of parameters whereby our model best fits the model To do this we can measure the physical quantities if easy/possible Carry out the identification procedure Identification: carry out a large set of experiments and collect data find the set of parameters that minimise the distance between our system and the model Control Design At this point, we are in condition to design a feedback controller that fulfils the specs. If we make a feedback connection of a plant P(s) with a controller C(s), we get a new transfer function given by: The presence of the controller at the denominator moves the poles and changes the dynamics Feedback Control r + e - C(s) u P(s) Digital Implementation The controller we have designed in this way is a continuous time system (a differential equation) If we want to implement it in a digital computer, we need to transform it into a numeric algorithm Instrumental to this goal is the introduction of a sampling mechanism for the sensors and of a Zero order Hold (ZoH) for the actuators Feedback Control r + Sampler - C(z) ZoH P(s) What is the digital implementation C(z)? Assume that our controller is given by • In terms of differential equations: Digital Implementation If we sample periodically, the derivative can be approximated by the backward difference (we will see better approximations….) Z-transform notation It is useful to express the difference equation in terms of the Z-transform It plays the same role in discrete—time as the Laplace transform plays in continuous time The one—step forward operator in the time domain corresponds to multiplication by z in the Z domain and the one step delay operator to multiplication by 1/z The controller equation becomes: Digital approximation We can account for the digital approximation in our scheme and simulate the system …and finally…. Once we are happy with the simulations, we can write a real—time task (implemented in a RTOS) that translates the algorithm into code double e_1, u_1; void task () { double u, e; e = get_from_sensor(); u = u_1 + kp (e-e_1)+ki*e; output(u); e_1 = e: u_1 = u; } Schedule Lecture 1: Introduction Methodology Introduction to Scicoslab Lecture II: Scicoslab Matrix computation Scripts and functions Plotting data Modelling and simulating a CT system with Scicos Schedule Lecture III: Interfacing ScicosLab and Lego Setup of the environment (step by step) Example 1: turn on a motor and read the encoder through USB and dump on file Read the file with Scilab and plot it Lecture IV: Recap on Laplace transform Schedule Lecture V: Modelling a second order system Lecture VI: Identification of a second order system Scicos-lab examples (identifying a second order system using synthetic data) Filtering Schedule Lecture VII: Identification of the Lego’s motors Collection of Data Lecture VIII: Identification of the Lego’s motors Filtering Identification Schedule Lecture IX: Control of SISO system root locus [DELIVERY] Lecture X: Identification of the Lego’s motors Filtering Identification Schedule Lecture XI: Control of SISO system root locus PID Lecture XII: Example of design using scicoslab Second order systems: from specs to control Assesment by simulation Schedule Lecture XIII: Control of the motor root locus PID Lecture XIV: Control of the motor Schedule Lecture XV: Digital Implementation of controllers theory practical application for the motor (SCICOSLAB) Lecture XVI: Getting acquainted with Lego Setup of the environment (step by step) Example 1: Hello world and buttons Example II: Read a sensor and print on display Example III: Periodic tasks, signal activation, interrupts Schedule Lecture XVII: Modelling and simulation of the larger system [Delivery] Lecture XVIII: Implementing the digital controller Schedule Lecture XIX: Control design based on State Space Methods Lecture XX: Control design based on State Space Methods Schedule Lecture XXI: Design of the control in SCICOLAB Lecture XXII: Design of the control in SCICOLAB Schedule Lecture XXIII: Design of the control in SCICOLAB Digital implementation Lecture XXIV: Design of the control in SCICOLAB Coding After 1 Week delivery