Model based design (MBD) – a free tool-chain Simon Mayr, (Gernot Grabmair) Simon Mayr, [email protected], University of Applied Sciences Upper Austria , Austria University of Applied Sciences Upper Austria Projects Projects dealing with Scilab/XCos PROTOFRAME – Framework und frontend for semi-automated matching of real and virtual prototypes Work in progress MOdoPS – MOdel based Design by OPen Source Project finished Project result: Scilab/XCos example library Seite 2 Overview Model based design (MBD) Code generation from XCos Example (cart and pendulum) Conclusion Seite 3 Model based design (MBD) Definition Mathematical and visual method applied in designing embedded software to address problems associated with Complex control Signal processing Communication systems Seite 4 Model based design (MBD) Applications Common fields of application are: Motion control applications Industrial equipment Aerospace applications Automotive applications … Seite 5 Model based design (MBD) Main steps of model based (controller) design System modelling and basic model verification Parameter identification and model verification Control design and closed-loop simulation Code generation and transfer to target Seite 6 Model based design (MBD) Main steps of model based (controller) design Seite 7 Model based design (MBD) Advantages Faster and more cost-efficient development Errors in system design can be located and corrected in early stage of the project, when financial and time impacts of the system redesign are relatively small Extension and/or modification of an existing system is relatively easy Seite 8 Model based design (MBD) Common commercial tool-chains Typical examples of commercial tools are: Matlab/Simulink Dymola … Advantages: Advanced and well-proven software Complete tool-chains Disadvantages: Quite expensive Unsuitable for small and medium-sized companies Seite 9 Model based design (MBD) Free tool-chain Scilab/XCos Advantages: Plant modeling Control design & simulation Disadvantages: Code generation is not implemented Solution: Use an external application to generate code from XCos diagram Seite 10 Code generator for Scilab/XCos State of the art Existing code generators for the outdated Scilab/Scicos: RTAI [3] Gene-Auto [4] Scicos-FLEX [5] Code generators for Scilab/XCos: Project-P [6] X2C from JKU-Linz (Upper Austria) [2] Seite 11 Code generator for Scilab/XCos Code generator X2C The predecessor of X2C was developed more than 10 years ago at the JKUniversity Linz, Austria as a Simulink extension X2C natively includes into XCos and can be simulated in parallel with plant and controller Seite 12 Code generator for Scilab/XCos Code generator X2C X2C-blocks are full featured XCos-blocks extended with an parameter editor and the connection to the back-end for code generation In XCos simulation the X2C-blocks are implementing exactly the code which will run on the target Model transformation and code generation is executed by a simple mouse click. All non-X2C-blocks are ignored during this process. Seite 13 Code generator for Scilab/XCos Code generator X2C The central tool is the so called „Communicator“. It‘s the interface between simulation environment and target. The Communicator features Code generation Change parameters in the model or in the communicator, and the parameters on the target are updated instantly Scope (software oscilloscope) Seite 14 Code generator for Scilab/XCos Communicator and scope Seite 15 Code generator for Scilab/XCos User defined X2C-blocks It’s possible to generate user defined X2C blocks easily with the help of a dedicated block generator Inputs, outputs, control parameters and data types are specified by the user This information is used to generate a code template automatically The behavior of the block is included by the user This blocks can be used for simulation and implementation on target Seite 16 Code generator for Scilab/XCos X2C-block generator Seite 17 Code generator for Scilab/XCos Code template and user code Seite 18 Experiment Cart and pendulum System modeling Plant simulation Parameter identification (pendulum length) Adaptive STC control Code generation Measurements Seite 19 Plant modeling Cart and pendulum Plant modeling can be either done by using mathematical terms (e.g. ODEs) or by using the Modelica-based Scilab-addon „Coselica“ Plant modeling is shown by the cart and pendulum example. m1 d1 m2 d2 l2 ... vehicle mass … linear friction coefficient (cart) … pendulum mass … linear friction coefficient (pendulum) … pendulum length x … distance (cart) v ... velocity (cart) φ … angle (pendulum) ω … angular velocity (pendulum) l2, m2 Seite 20 Plant modeling Cart and pendulum Nonlinear system equations can be computed using the Lagrange formalism with the vector of generalized coordinates = [, ] and = . Furthermore static friction FC is ignored, because it‘s compensated. The linearized model (around = [ , , , ] = [0, , 0,0] , k = 0,2,…) can be written as Seite 21 Plant modeling Coselica & ODE Seite 22 Parameter identification Identifying the unknown (but constant) pendulum length l2 Assumption(s): Pendulum friction is set to zero (d2 = 0) The 4th line of the linearized model is used for identification To get rid of the time derivatives, the system equation is transformed into the laplace-domain Seite 23 Parameter identification We apply realizable stable filters F0(s) and F1(s) = sF0(s) with free coefficients to the whole equation [1] The inverse laplace transformation leads to one data line, linear in the unknown parameter (* indicates the convolution operator in time-domain) Estimation of the parameter using recursive least square algorithm Seite 24 Adaptive STC control Design a linear state control law parameterized in pendulum length l2 Seite 25 STC measurements Seite 26 STC measurements Discovery-board Seite 27 STC measurements Seite 28 Summary and outlook Complete free (or low cost if hardware is included) tool-chain based on Scilab/XCos Ongoing development is targeted towards efficient handling of vectorized signal lines in X2C more block libraries Industrial targets adaption of the FMI (functional mockup interface) for model exchange Thank you for your attention! Seite 29 References [1] JJE. Slotine, W. Li, Applied nonlinear control, Prantice-Hall, 1991 [2] X2C in Scilab/XCos, 2013, http://www.mechatronic-simulation.org [3] Roberto Bucher, et al., RTAI-Lab tutorial: Scilab, Comedi and real-time control, 2006 [4] Ana-Elena Rugina, et al., Gene-Auto: Automatic Software Code Generation for Real-Time Embedded Systems, DASIA 2008 [5] Scicos-FLEX code generator, http://erika.tuxfamily.org/drupal/scilabscicos.html [6] Project-P code generator, http://www.open-do.org/projects/p/ Seite 30

© Copyright 2019 ExploreDoc