A Library for Synchronous Control Systems in Modelica Martin Otter Bernhard Thiele Hilding Elmqvist DLR Dassault Systèmes Institute of System Dynamics.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

Start of presentation Mathematical Modeling of Physical Systems © Prof. Dr. François E. Cellier September 20, 2012 Object Oriented Modeling The aim of.
Synchronous Control and State Machines in Modelica Hilding Elmqvist Dassault Systèmes Sven Erik Mattsson, Fabien Gaucher, Francois Dupont Dassault Systèmes.
Chapter 2 Machine Language.
1. 2 LabVIEW for FRC Doug Norman National Instruments January 6, 2012.
Digital Control Systems INTRODUCTION. Introduction What is a control system? Objective: To make the system OUTPUT and the desired REFERENCE as close as.
Introduction to C Programming
Review of Frequency Domain
SSP Re-hosting System Development: CLBM Overview and Module Recognition SSP Team Department of ECE Stevens Institute of Technology Presented by Hongbing.
Course: Operating Systems Instructor: Umar Kalim NUST Institute of Information Technology, Pakistan Operating Systems.
Chapter 2 Machine Language. Machine language The only language a computer can understand directly. Each type of computer has its own unique machine language.
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
Basic Input/Output Operations
EE 231 Digital Electronics Fall 01 week 1-slide 1 Digital Hardware Systems Digital Systems Digital vs. Analog Waveforms Analog: values vary over a broad.
1 Component Description CMU Note-Taker Tools Human Computer Interaction Institute Carnegie Mellon University Prepared by: Bill Scherlis March 26, 1999.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
The Microcomputer System In this presentation you will: Investigate the microprocessor Title Page.
ECE 8443 – Pattern Recognition EE 3512 – Signals: Continuous and Discrete Objectives: Definition of a System Examples Causality Linearity Time Invariance.
Elements of a Computer System Dr Kathryn Merrick Thursday 4 th June, 2009.
Timed UML State Machines Ognyana Hristova Tutor: Priv.-Doz. Dr. Thomas Noll June, 2007.
Introduction to FORTRAN
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
Experts in Chem-Feed and Water Treatment An Overview of Possibilities Dulcometer Disinfection Controller ( DDC )
PHP TUTORIAL. HISTORY OF PHP  PHP as it's known today is actually the successor to a product named PHP/FI.  Created in 1994 by Rasmus Lerdorf, the very.
RM2D Let’s write our FIRST basic SPIN program!. The Labs that follow in this Module are designed to teach the following; Turn an LED on – assigning I/O.
Data Acquisition Data acquisition (DAQ) basics Connecting Signals Simple DAQ application Computer DAQ Device Terminal Block Cable Sensors.
Introduction OF Enterprise Application Development.
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
NATIONAL INSTITUTE OF SCIENCE & TECHNOLOGY VIRTUAL INSTRUMENTATION BIBHU SANTOSH ROUT EI [1] VIRTUAL INSTRUMENTATION by Bibhu Santosh Rout Roll.
MathCore Engineering AB Experts in Modeling & Simulation WTC.
Chapter 11 An Introduction to Visual Basic 2008 Why Windows and Why Visual Basic How You Develop a Visual Basic Application The Different Versions of Visual.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
CMPS 211 JavaScript Topic 1 JavaScript Syntax. 2Outline Goals and Objectives Goals and Objectives Chapter Headlines Chapter Headlines Introduction Introduction.
‘ActiveX’ CA Server (… and Client) Oct Kay-Uwe Kasemir, LANL.
1 Levi Lúcio © A Test Selection Language for CO-OPN Specifications Levi Lúcio, Luis Pedro and Didier Buchs University of Geneva.
Selected Topics in Software Engineering - Distributed Software Development.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 2 Chapter 2 - Introduction to C Programming.
Frontiers in Massive Data Analysis Chapter 3.  Difficult to include data from multiple sources  Each organization develops a unique way of representing.
The european ITM Task Force data structure F. Imbeaux.
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
Lecture 2: Introduction to C Programming. OBJECTIVES In this lecture you will learn:  To use simple input and output statements.  The fundamental data.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Topics AliasesSubprograms Generics & Configurations.
ASP (Active Server Pages) by Bülent & Resul. Presentation Outline Introduction What is an ASP file? How does ASP work? What can ASP do? Differences Between.
SIMULINK-Tutorial 1 Class ECES-304 Presented by : Shubham Bhat.
Application Software System Software.
Teacher/Mentor Institute Using easyC David Dominguez June 2, 2015 Update Version.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 2 - Introduction to C Programming Outline.
Portable Heart Attack Detector (PHAD) Final Presentation
Apr. 3, 2000Systems Architecture I1 Introduction to VHDL (CS 570) Jeremy R. Johnson Wed. Nov. 8, 2000.
May 9, 2001Systems Architecture I1 Systems Architecture I (CS ) Lab 5: Introduction to VHDL Jeremy R. Johnson May 9, 2001.
Web-based Data Mining for Quenching Data Analysis Aparna S. Varde, Makiko Takahashi, Mohammed Maniruzzaman, Richard D. Sisson Jr. Center for Heat Treating.
1 Lecture 2 - Introduction to C Programming Outline 2.1Introduction 2.2A Simple C Program: Printing a Line of Text 2.3Another Simple C Program: Adding.
SysML Modelica Integration Working Group Meeting 8/12/09 Chris Paredis 1.
INTRO. To I.T Razan N. AlShihabi
Computer Organization
REGISTER TRANSFER LANGUAGE (RTL)
Chapter 2 - Introduction to C Programming
MatLab Programming By Kishan Kathiriya.
Honeywell Spyder™ Programmable Controllers
Chapter 2 - Introduction to C Programming
Lesson 2: Introduction to Control programming using Labview
What Is a Program? A program is like an algorithm, but describes a process that is ready or can be made ready to run on a real computer Retrieved from:
Programming Funamental slides
Implementation support
Implementation support
Presentation transcript:

A Library for Synchronous Control Systems in Modelica Martin Otter Bernhard Thiele Hilding Elmqvist DLR Dassault Systèmes Institute of System Dynamics and Control Presented at the Modelica’2012 Conference Munich, Sept. 3-5, 2012 This slide set has be updated to the changes of the library performed after the conference.

Slide 2 Content Introduction Clocks Sample and Hold Sub- and Super-sampling Discretizing Continuous Blocks Modelica_DeviceDrivers library Conclusions

Slide 3 Introduction Synchronous language elements of Modelica 3.3 are “low level”: Modelica_Synchronous library developed to access language elements in a convenient way graphically: // speed sensor vd = sample(v, Clock(0.01)); // P controller for speed u = K*(vref-vd); // force actuator f = hold(u);

Slide 4 Blocks to generate clock signals Blocks operating on clock signals (e.g. sub-sampling a clock signal) Blocks operating on clocked signals of type Real (e.g. sub-sampling a Real signal, PI block, FIR filter) Blocks operating on clocked signals of type Boolean Blocks operating on clocked signals of type Integer

Slide 5 time t t0t0 t1t1 t3t3 r(t i ) t2t2 c(t i ) Clocks New base data type: Clock Variables associated to a clock have only a value at the clock tick. c(t i ): Clock r(t i ): Variable associated to c Similar to Real, Integer, Boolean, introduced input/output Clock connectors: connector ClockInput = input Clock; connector ClockOutput = output Clock;

Slide 6 Blocks that generate clock signals Generates a periodic clock with a Real period parameter Modelica.SIunits.Time period; ClockOutput y; equation y = Clock(period); Generates a periodic clock as an integer multiple of a resolution (defined by an enumeration). Code for 20 ms period: y = superSample(Clock(20), 1000); Clock with period 20 s super-sample clock with 1000 Generates an event clock: The clock ticks whenever the continuous-time Boolean input changes from false to true. y = Clock(u); period = 20 / 1000 = 20 ms

Slide 7 Sample and Hold Discrete-time PI controller Purely algebraic block from Modelica.Blocks.Math y = sample(u, clock); Samples a continuous-time signal and generates a clocked signal. y = sample(u); Holds a clocked signal and generates a continuous-time signal. Before the first clock tick, the continuous-time output y is set to parameter y_start; y = hold(u);

Slide 8 Sub- and Super-Sampling Defines that the output signal is an integer factor faster as the input signal, using a “hold” semantics for the signal. By default, this factor is inferred. It can also be defined explicitly. y = superSample(u);

Slide 9 Defines that the output signal is an integer factor slower as the input signal, picking every n-th value of the input. y = subSample(u,factor);

Slide 10 Several other blocks to change the clock of a signal, such as

Slide 11 Discretizing Continuous Blocks A clocked partition can consists of differential equations, provided an integrator is associated to the corresponding clock (the differential equations are solved at one clock tick with this integrator). Continuous-time PI controller

Slide 12 Especially, inverse, continuous-time models can be discretized (this is not possible with Modelica 3.2): clocked controller inverse plant model (input T_c becomes output output c becomes input)

Slide 13 Modelica_DeviceDrivers library New, free library by DLR that interfaces hardware drivers. Cross platform (Windows and Linux) Realtime synchronization, UDP, joystick, keyboard, etc. Basic functionality provided with Modelica functions. Convenience blocks based either on Modelica_Synchronous library or on Modelica 3.1 when-clauses. Generic packaging system, e.g. to pack 8 Booleans on 1 Integer. Currently supported for UDP, shared memory, and (prototypical) CAN bus

Slide 14 Conclusions (1) Main purpose: Encapsulating the Modelica 3.3 synchronous language elements with an easy to use graphical user interface (the code of most blocks is very simple!!) Makes definition of sampled-data systems much simpler and safer. Should work with every Modelica tool that supports Modelica 3.3. Shall be included in the Modelica Standard Library after an evaluation period. Available for MA members on internal svn server. Released version is stored publicly on MA web. Modelica_Synchronous library

Slide 15 Conclusions (2) Main purpose: Access device drivers on Windows and Linux PCs from a Modelica block. Should work with every Modelica tool that supports external Modelica functions (with C-code included in include annotation) synchronous elements of Modelica 3.3 (for Modelica 3.3 conveníence blocks). Shall be included in the Modelica Standard Library after an evaluation period. Available for MA members on internal svn server. Released version is stored publicly on MA web. Modelica_DeviceDrivers library