Introducción al modelado y simulacion con Simulink Luis Sánchez INTRODUCTION Simulink, developed by The MathWorks, is a commercial tool for modeling, simulating and analyzing dynamic systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers tight integration with the rest of the MATLAB environment. Simulink is widely used in control theory and digital signal processing for simulation and design. A block diagram is simply a graphical representation of a process (which is composed of an input, the system, and an output). Capabilities of Simulink • It Simulates Linear and nonlinear systems. • It Simulates continuous, discrete and hybrid systems. • It has a powerful “What if” exploration capability. GETTING STARTED IN SIMULINK To start Simulink, on the command prompt, type >>simulink or Click here SIMULINK Library Browser The Simulink Library Browser is the library where you find all the blocks you may use in Simulink. Simulink software includes an extensive library of functions commonly used in modeling a system. SOURCES Sources library contains the sources of data signals to be used in the dynamic system simulation. E.g. Constant signal, signal generator, sinusoidal waves, step input, repeating sequences like pulse trains and ramps etc. SINKS Sinks library contains blocks where the signal terminates. You may store data in a file, display it. Use the terminator block to terminate unused signals. STOP block is used to stop the simulation if the input to the block is nonzero. CONTINUOUS AND DISCRETE Analyze your dynamic system as continuous or discrete. Simulink lets you represent your system using transfer functions, integration blocks, delay blocks etc. Create a new Model Click the New icon on the Toolbar in order to create a new Simulink model: The following window appears Configuration There are lots of parameters you may want to configure regarding your simulation. Select “Configuration Parameters…” in the Simulation menu. Here you set important parameters such as: - Start and Stop time for the simulation - What kind of Solver to be used (ode45, ode23 etc.) - Fixed-step/Variable-step SIMPLE EXAMPLE Modelado y Simulación de sistemas Lineales e Invariantes en el tiempo LTI 1. Modelado y Simulación a Partir de las EDO 2. Modelado y Simulación a la Función de Trasferencia. Ejemplo. Modelo Simple • Build a Simulink model that solves the differential equation x 3 sin 2t • Initial condition x(0) 1. • First, sketch a simulation diagram of this mathematical model (equation) (3 min.) Diagrama de la Simulación • Input is the forcing function 3sin(2t) • Output is the solution of the differential equation x(t) x(0) 1 3sin(2t) (input) x 1 s x x(t) (output) integrator • Now build this model in Simulink Select an input block Drag a Sine Wave block from the Sources library to the model window Select an operator block Drag an Integrator block from the Continuous library to the model window Select an output block Drag a Scope block from the Sinks library to the model window Connect blocks with signals • Place your cursor on the output port (>) of the Sine Wave block • Drag from the Sine Wave output to the Integrator input • Drag from the Integrator output to the Scope input Arrows indicate the direction of the signal flow. Select simulation parameters Double-click on the Sine Wave block to set amplitude = 3 and freq = 2. This produces the desired input of 3sin(2t) Select simulation parameters Double-click on the Integrator block to set initial condition = -1. This sets our IC x(0) = -1. Select simulation parameters Double-click on the Scope to view the simulation results Run the simulation In the model window, from the Simulation pulldown menu, select Start View the output x(t) in the Scope window. Simulation results To verify that this plot represents the solution to the problem, solve the equation analytically. The analytical result, x(t ) 12 32 cos2t matches the plot (the simulation result) exactly. Ejemplo. EDO 2 orden • Build a Simulink model that solves the following differential equation – 2nd-order mass-spring-damper system – zero ICs – input f(t) is a step with magnitude 3 – parameters: m = 0.25, c = 0.5, k = 1 mx cx kx f (t ) mx cx kx f (t ) Create the simulation diagram • On the following slides: – The simulation diagram for solving the ODE is created step by step. – After each step, elements are added to the Simulink model. • Optional exercise: first, sketch the complete diagram (5 min.) mx cx kx f (t ) (continue) • First, solve for the term with highest-order derivative mx f (t ) cx kx • Make the left-hand side of this equation the output of a summing block mx summing block Drag a Sum block from the Math library Double-click to change the block parameters to rectangular and + - - (continue) • Add a gain (multiplier) block to eliminate the coefficient and produce the highestderivative alone mx summing block 1 m x Drag a Gain block from the Math library The gain is 4 since 1/m=4. Double-click to change the block parameters. Add a title. (continue) • Add integrators to obtain the desired output variable mx summing block 1 m x 1 s x 1 s x Drag Integrator blocks from the Continuous library ICs on the integrators are zero. Add a scope from the Sinks library. Connect output ports to input ports. Label the signals by double-clicking on the leader line. (continue) • Connect to the integrated signals with gain blocks to create the terms on the right-hand side of the EOM mx summing block x 1 m cx 1 s x c kx k 1 s x Drag new Gain blocks from the Math library To flip the gain block, select it and choose Flip Block in the Format pull-down menu. Double-click on gain blocks to set parameters Connect from the gain block input backwards up to the branch point. Re-title the gain blocks. c=0.5 k=1.0 Complete the model • Bring all the signals and inputs to the summing block. • Check signs on the summer. f(t) input + - mx 1 m x cx kx x 1 s 1 s x x c k x x(t) output Double-click on Step block to set parameters. For a step input of magnitude 3, set Final value to 3 Final Simulink model Run the simulation Results Simulación del péndulo de Foucault En 1851 Jean Leon Foucault colgó un péndulo de 67 metros de largo de la cúpula de los Inválidos en Paris. Un recipiente que contenía arena estaba sujeto al extremo libre, el hilo de arena que caía del cubo mientras oscilaba el péndulo señalaba la trayectoria. Demostró experimentalmente que el plano de oscilación del péndulo giraba 11º 15’ cada hora. Modeling a Foucault Pendulum The physics of the problem can be described by the system of coupled equations given below. The x and y coordinates specify the position of the pendulum bob as seen by an observer on Earth. Condiciones Iniciales Modelado y Simulación de sistemas Lineales e Invariantes en el tiempo LTI 1. Modelado y Simulación a Partir de las EDO 2. Modelado y Simulación a la Función de Trasferencia. Cruise Control: Matlab Modeling The model of the cruise control system is relatively simple. If it is assumed that rolling resistance and air drag are proportional to the car's speed, then the problem is reduced to the simple mass and damper system shown below Using Newton's 2nd law, the governing equation for this system . becomes: m v u bv (1) where u is the force applied. For this example, let's assume that m = 1000 kg; b = 50 N.sec/m; u = 500 N Transfer function model Taking the Laplace transform of the governing differential equation and assuming zero initial conditions, we find the transfer function of the cruise control system to be: V ( s) 1 P( s) U ( s) ms b We enter the transfer function model into MATLAB using the following commands: Building the model in simulink This system will be modeled by summing the forces acting on the mass and integrating the acceleration to give the velocity. Open Simulink and open a new model window. First, we will model the integral of acceleration. dv dt dt v •Insert an Integrator Block (from the Continuous library) and draw lines to and from its input and output terminals. •Label the input line "vdot" and the output line "v" as shown below. To add such a label, double click in the empty space just above the line. Since the acceleration (dv/dt) is equal to the sum of the forces divided by mass, we will divide the incoming signal by the mass. •Insert a Gain block (from the Math Operations library) connected to the Integrator block input line and draw a line leading to the input of the Gain block. •Edit the Gain block by double-clicking on it and change its value to "1/m". •Change the label of the Gain block to "inertia" by clicking on the word "Gain" underneath the block. •Attach a Sum block (from the Math Operations library) to the line leading to the inertia Gain block. •Change the signs of the Sum block to "+-". •Insert a Gain block below the Inertia block, select it by single-clicking on it, and select Flip from the Format menu (or type Ctrl-F) to flip it left-to-right. •Set the block's value to "b" and rename this block to "damping". •Tap a line (hold Ctrl while drawing) off the Integrator block's output and connect it to the input of the damping Gain block. •Draw a line from the damping Gain block output to the negative input of the Sum Block. The second force acting on the mass is the control input, u. We will apply a step input. •Insert a Step block (from the Sources library) and connect it with a line to the positive input of the Sum Block. •To view the output velocity, insert a Scope block (from the Sinks library) connected to the output of the Integrator. To provide an appropriate step input of 500 at time equal zero, double-click the Step block and set the Step Time to "0" and the Final Value to "u". Run the simulation (hit Ctrl-T or select Start from the Simulation menu). When the simulation is finished, double-click on the Scope and hit its autoscale button. You should see the following output.