A Mixed-Signal Computer Architecture and Its Application to Power System Problems

Total Page:16

File Type:pdf, Size:1020Kb

A Mixed-Signal Computer Architecture and Its Application to Power System Problems A mixed-signal computer architecture and its application to power system problems THÈSE NO 6613 (2015) PRÉSENTÉE LE 4 SEPTEMBRE 2015 À LA FACULTÉ DES SCIENCES ET TECHNIQUES DE L'INGÉNIEUR GROUPE KAYAL PROGRAMME DOCTORAL EN GÉNIE ÉLECTRIQUE ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE POUR L'OBTENTION DU GRADE DE DOCTEUR ÈS SCIENCES PAR Theodoros KYRIAKIDIS acceptée sur proposition du jury: Dr J.-M. Sallese, président du jury Prof. M. Kayal, Dr S.-R. Cherkaoui, directeurs de thèse Prof. T. Van Cutsem, rapporteur Prof. A. Hatzopoulos, rapporteur Prof. M. Paolone, rapporteur Suisse 2015 >En rq¬ ªn å Lìgoc. — >Iw. a'v 1 To my family. Acknowledgements First of all I would like to thank my supervisors Maher Kayal and Rachid Cherkaoui. They gave me the opportunity to conduct my research “the old way”, in the sense of providing me with suggestions and tips along the way rather constraining me to a fixed target. It is this kind of freedom that allows the investigation of “crazy ideas” and it is due to them that this work has been enabled. I would like to equally thank the professor Thierry Van Cutsem of the University of Liège and his group for their exemplary hospitality during my spell with them in Liège. Particular mention goes to dear friend and colleague Petros Aristidou for all our fruitful discussions and his invaluable help. A big part of what you read in this manuscript is done in collaboration with colleagues of my lab and elsewhere. Sometimes collaboration was so tight that is is really difficult to say who has really contributed what. I would like to specially mention Guillaume Lanz, Denis Sallin and Georgios Lilis. Each one with his deep dedication to his field, and each one always willing to share and help. Apart from the above, there is a number of people that have contributed their bit in the scientific part of this work. It being a discussion over a coffee, a review of a paper, a coding idea, or some useful small-talk over a pint of beer, to you all people, I am grateful. I would also like to thank all the people who have made my days here in Switzerland happy and cheerful: my office-, flat-, and team-mates, and all my amazing Greek and Swiss friends. I would finally like to thank my family, for their constant support and for the happiness they bring to my life. Lausanne, 04 Juin 2015 £. K. i Abstract Radical changes are taking place in the landscape of modern power systems. This massive shift in the way the system is designed and operated has been termed the advent of the “smart grid”. One of its implications is a strong market pull for faster power system analysis computing. This work concerns in particular transient simulation, which is one of the most demanding power system analyses. This refers to the imitation of the operation of the real-world system over time, for time scales that cover the majority of slow electromechanical transient phe- nomena. The general mathematical formulation of the simulation problem includes a set of non-linear differential algebraic equations (DAEs). In the algebraic part of this set, heavy linear algebra computations are included, which are related to the admittance matrix of the topology. These computations are a critical factor to the overall performance of a transient simulator. This work proposes the use of analog electronic computing as a means of exceeding the performance barriers of conventional digital computers for the linear algebra operations. Analog computing is integrated in the frame of a power system transient simulator yielding significant computational performance benefits to the latter. Two hybrid, analog and digital computers are presented. The first prototype has been implemented using reconfigurable hardware. In its core, analog computing is used for linear algebra operations, while pipelined digital resources on a field programmable gate array (FPGA) handle all remaining computations. The properties of the analog hardware are thoroughly examined, with special attention to accuracy and timing. The application of the platform to the transient analysis of power system dynamics showed a speedup of two orders of magnitude against conventional software solutions. The second prototype is proposed as a future conceptual architecture that would overcome the limitations of the already implemented hardware, while retaining its virtues. The design space of this future architecture has been thoroughly explored, with the help of a software emulator. For one possible suggested implementation, speedups of two orders of magnitude against software solvers have been observed for the linear algebra operations. Key words: [Computing]: analog computing, pipeline processing, field programmable gate arrays, reconfigurable computing, computer accelerator architectures, high performance computing; [Power systems]: power system simulations, power system analysis computing, power system dynamics; [Mathematics]: linear algebra - linear systems, numerical analysis - numerical simulation, numerical linear algebra; iii Résumé Des changements radicaux prennent place dans les systèmes électriques modernes. Ces changements massifs dans la façon dont le système est conçu et exploité correspondent à l’avènement du “smart grid”. L’une des conséquences est le besoin d’outils d’analyse du système plus rapides. Ce travail concerne en particulier une analyse très exigeante, la simulation transitoire. Ceci se rapporte à l’imitation de l’opération du système réel, pour des échelles de temps qui couvrent la majorité des phénomènes transitoires électromécaniques lents. La formulation mathéma- tique générale du problème comprend un ensemble d’équations algébriques différentielles non-linéaires (DAE). Dans la partie algébrique de cet ensemble, de lourds calculs d’algèbre linéaire prennent place, qui sont liés à la matrice d’admittance de la topologie. Ces calculs sont un facteur critique de la performance globale d’un simulateur transitoire. Ce travail propose l’utilisation des calculs analogiques comme un moyen de dépasser les barrières de performance des ordinateurs numériques classiques pour les opérations d’algèbre linéaire. Le calcul analogique est intégré dans le cadre d’un simulateur transitoire et apporte d’importants avantages en termes de performances. Deux ordinateurs hybrides, analogique et numérique, sont présentés. Le premier prototype a été mis en œuvre en utilisant ressources reconfigurables. Dans son cœur, le calcul analogique est utilisé pour des opérations d’algèbre linéaire, tandis que les ressources numériques sur un Field Programmable Gate Array (FPGA) gèrent tous les calculs restants. Les propriétés du matériel analogique sont examinées. Une attention particulière est portée à la précision et au timing. L’application de la plate-forme à l’analyse transitoire de la dynamique du réseau électrique a montré une accélération de deux ordres de grandeur par rapport à des solutions logicielles classiques. Le deuxième prototype est proposé comme une future architecture conceptuelle qui permet- trait de surmonter les limitations du matériel déjà mis en œuvre, tout en conservant ses vertus. L’espace de conception de cette future architecture a été explorée à fond, avec l’aide d’un émulateur en logiciel. Pour une mise en œuvre suggérée, accélérations de deux ordres de grandeur contre logiciels classiques ont été observées pour les opérations d’algèbre linéaire. Mots clefs : [Informatique] : calcul analogique, traitement en pipeline, circuit logique pro- grammable, computing reconfigurable, architectures d’ordinateur de l’accélérateur, calcul haute performance ; [Réseau électrique] : simulations du réseau électrique, informatique v Acknowledgements de l’ analyse du réseau électrique, dynamique du réseau électrique ; [Mathématiques] : al- gèbre linéaire - systèmes linéaires, analyse numérique - simulation numérique, algèbre linéaire numérique ; vi PerÐlhyh Rizikèc allagèc lambnoun q¸ra ston tomèa twn sÔgqronwn susthmtwn hlektrik c e- nèrgeiac (SHE). Aut h metbash ston trìpo me ton opoÐo to sÔsthma sqedizetai kai leitourgeÐtai apokaleÐtai h èleush tou èxupnou diktÔou. 'Ena apì ta epakìlouja thc eÐnai h angkh gia taqÔterouc upologistèc anlushc SHE. Aut h ergasÐa epikentr¸netai se mia idiaÐterh apaithtik anlush, thn prosomoÐwsh SHE. Autì anafèretai sthn pist anaparstash thc leitourgÐac tou sust matoc gia stajerèc qrìnou pou kalÔptoun thn pleionìthta twn hlektromhqanik¸n metabatik¸n fainomènwn sto sÔsthma. H genik majhmatik diatÔpwsh tou probl matoc thc prosomoÐwshc peri- lambnei èna sÔnolo mh grammik¸n diaforik¸n-algebrik¸n exis¸sewn (DAE). Sto algebrikì mèroc autoÔ tou sunìlou perilambnontai polloÐ kai apaithtikoÐ upologi- smoÐ grammik c lgebra. AutoÐ sqetÐzontai me ton pÐnaka agwgimot twn thc topologÐac kai eÐnai krÐsimoi gia thn sunolik apìdosh enìc prosomoiwt metabatik¸n fainomènwn SHE. Se aut thn ergasÐa proteÐnetai h qr sh analogik¸n arqitektonik¸n wc mèso upèrbashc twn periorism¸n twn sumbatik¸n yhfiak¸n upologist¸n ìson afor idiaÐtera touc upo- logismoÔc grammik c lgebrac. Oi analogikoÐ upologismoÐ enswmat¸nontai sthn ro tou prosomoiwt metabatik¸n fainomènwn apofèrontac shmantik wfèlh sthn apìdosh tou. DÔo ubridikoÐ upologistèc parousizontai. O pr¸toc afor èna prwtìtupo to opoÐo èqei kataskeuasteÐ se epanadiamorf¸simo ulikì. Ston pur na tou analogikoÐ upologismoÐ qrhsimopoioÔntai gia thn grammik lgebra, en¸ swlhnomènoi epexergastèc èqoun programmatisteÐ se mia sustoiqÐa epitìpia programmati- zomènwn pul¸n (FPGA) gia touc upìloipouc upologismoÔc. Oi idiìthtec tou analogikoÔ tm matoc exetzontai diexodik, me
Recommended publications
  • Python – an Introduction
    Python { AN IntroduCtion . default parameters . self documenting code Example for extensions: Gnuplot Hans Fangohr, [email protected], CED Seminar 05/02/2004 ² The wc program in Python ² Summary Overview ² Outlook ² Why Python ² Literature: How to get started ² Interactive Python (IPython) ² M. Lutz & D. Ascher: Learning Python Installing extra modules ² ² ISBN: 1565924649 (1999) (new edition 2004, ISBN: Lists ² 0596002815). We point to this book (1999) where For-loops appropriate: Chapter 1 in LP ² ! if-then ² modules and name spaces Alex Martelli: Python in a Nutshell ² ² while ISBN: 0596001886 ² string handling ² ¯le-input, output Deitel & Deitel et al: Python { How to Program ² ² functions ISBN: 0130923613 ² Numerical computation ² some other features Other resources: ² . long numbers www.python.org provides extensive . exceptions ² documentation, tools and download. dictionaries Python { an introduction 1 Python { an introduction 2 Why Python? How to get started: The interpreter and how to run code Chapter 1, p3 in LP Chapter 1, p12 in LP ! Two options: ! All sorts of reasons ;-) interactive session ² ² . Object-oriented scripting language . start Python interpreter (python.exe, python, . power of high-level language double click on icon, . ) . portable, powerful, free . prompt appears (>>>) . mixable (glue together with C/C++, Fortran, . can enter commands (as on MATLAB prompt) . ) . easy to use (save time developing code) execute program ² . easy to learn . Either start interpreter and pass program name . (in-built complex numbers) as argument: python.exe myfirstprogram.py Today: . ² Or make python-program executable . easy to learn (Unix/Linux): . some interesting features of the language ./myfirstprogram.py . use as tool for small sysadmin/data . Note: python-programs tend to end with .py, processing/collecting tasks but this is not necessary.
    [Show full text]
  • Ordinary Differential Equations (ODE) Using Euler's Technique And
    Mathematical Models and Methods in Modern Science Ordinary Differential Equations (ODE) using Euler’s Technique and SCILAB Programming ZULZAMRI SALLEH Applied Sciences and Advance Technology Universiti Kuala Lumpur Malaysian Institute of Marine Engineering Technology Bandar Teknologi Maritim Jalan Pantai Remis 32200 Lumut, Perak MALAYSIA [email protected] http://www.mimet.edu.my Abstract: - Mathematics is very important for the engineering and scientist but to make understand the mathematics is very difficult if without proper tools and suitable measurement. A numerical method is one of the algorithms which involved with computer programming. In this paper, Scilab is used to carter the problems related the mathematical models such as Matrices, operation with ODE’s and solving the Integration. It remains true that solutions of the vast majority of first order initial value problems cannot be found by analytical means. Therefore, it is important to be able to approach the problem in other ways. Today there are numerous methods that produce numerical approximations to solutions of differential equations. Here, we introduce the oldest and simplest such method, originated by Euler about 1768. It is called the tangent line method or the Euler method. It uses a fixed step size h and generates the approximate solution. The purpose of this paper is to show the details of implementing of Euler’s method and made comparison between modify Euler’s and exact value by integration solution, as well as solve the ODE’s use built-in functions available in Scilab programming. Key-Words: - Numerical Methods, Scilab programming, Euler methods, Ordinary Differential Equation. 1 Introduction availability of digital computers has led to a Numerical methods are techniques by which veritable explosion in the use and development of mathematical problems are formulated so that they numerical methods [1].
    [Show full text]
  • Key Benefits Key Features
    With the MapleSim LabVIEW®/VeriStand™ Connector, you can • Includes a set of Maple language commands, which extend your LabVIEW and VeriStand applications by integrating provides programmatic access to all functionality as an MapleSim’s high-performance, multi-domain environment alternative to the interactive interface and supports into your existing toolchain. The MapleSim LabVIEW/ custom application development. VeriStand Connector accelerates any project that requires • Supports both the External Model Interface (EMI) and high-fidelity engineering models for hardware-in-the-loop the Simulation Interface Toolkit (SIT). applications, such as component testing and electronic • Allows generated block code to be viewed and modified. controller development and integration. • Automatically generates an HTML help page for each block for easy lookup of definitions and parameter Key Benefits defaults. • Complex engineering system models can be developed and optimized rapidly in the intuitive visual modeling environment of MapleSim. • The high-performance, high-fidelity MapleSim models are automatically converted to user-code blocks for easy inclusion in your LabVIEW VIs and VeriStand Applications. • The model code is fully optimized for high-speed real- time simulation, allowing you to get the performance you need for hardware-in-the-loop (HIL) testing without sacrificing fidelity. Key Features • Exports MapleSim models to LabVIEW and VeriStand, including rotational, translational, and multibody mechanical systems, thermal models, and electric circuits. • Creates ANSI C code blocks for fast execution within LabVIEW, VeriStand, and the corresponding real-time platforms. • Code blocks are created from the symbolically simplified system equations produced by MapleSim, resulting in compact, highly efficient models. • The resulting code is further optimized using the powerful optimization tools in Maple, ensuring fast execution.
    [Show full text]
  • Introduction to GNU Octave
    Introduction to GNU Octave Hubert Selhofer, revised by Marcel Oliver updated to current Octave version by Thomas L. Scofield 2008/08/16 line 1 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 8 6 4 2 -8 -6 0 -4 -2 -2 0 -4 2 4 -6 6 8 -8 Contents 1 Basics 2 1.1 What is Octave? ........................... 2 1.2 Help! . 2 1.3 Input conventions . 3 1.4 Variables and standard operations . 3 2 Vector and matrix operations 4 2.1 Vectors . 4 2.2 Matrices . 4 1 2.3 Basic matrix arithmetic . 5 2.4 Element-wise operations . 5 2.5 Indexing and slicing . 6 2.6 Solving linear systems of equations . 7 2.7 Inverses, decompositions, eigenvalues . 7 2.8 Testing for zero elements . 8 3 Control structures 8 3.1 Functions . 8 3.2 Global variables . 9 3.3 Loops . 9 3.4 Branching . 9 3.5 Functions of functions . 10 3.6 Efficiency considerations . 10 3.7 Input and output . 11 4 Graphics 11 4.1 2D graphics . 11 4.2 3D graphics: . 12 4.3 Commands for 2D and 3D graphics . 13 5 Exercises 13 5.1 Linear algebra . 13 5.2 Timing . 14 5.3 Stability functions of BDF-integrators . 14 5.4 3D plot . 15 5.5 Hilbert matrix . 15 5.6 Least square fit of a straight line . 16 5.7 Trapezoidal rule . 16 1 Basics 1.1 What is Octave? Octave is an interactive programming language specifically suited for vectoriz- able numerical calculations.
    [Show full text]
  • Numerical Methods for Ordinary Differential Equations
    CHAPTER 1 Numerical Methods for Ordinary Differential Equations In this chapter we discuss numerical method for ODE . We will discuss the two basic methods, Euler’s Method and Runge-Kutta Method. 1. Numerical Algorithm and Programming in Mathcad 1.1. Numerical Algorithm. If you look at dictionary, you will the following definition for algorithm, 1. a set of rules for solving a problem in a finite number of steps; 2. a sequence of steps designed for programming a computer to solve a specific problem. A numerical algorithm is a set of rules for solving a problem in finite number of steps that can be easily implemented in computer using any programming language. The following is an algorithm for compute the root of f(x) = 0; Input f, a, N and tol . Output: the approximate solution to f(x) = 0 with initial guess a or failure message. ² Step One: Set x = a ² Step Two: For i=0 to N do Step Three - Four f(x) Step Three: Compute x = x ¡ f 0(x) Step Four: If f(x) · tol return x ² Step Five return ”failure”. In analogy, a numerical algorithm is like a cook recipe that specify the input — cooking material, the output—the cooking product, and steps of carrying computation — cooking steps. In an algorithm, you will see loops (for, while), decision making statements(if, then, else(otherwise)) and return statements. ² for loop: Typically used when specific number of steps need to be carried out. You can break a for loop with return or break statement. 1 2 1. NUMERICAL METHODS FOR ORDINARY DIFFERENTIAL EQUATIONS ² while loop: Typically used when unknown number of steps need to be carried out.
    [Show full text]
  • Getting Started with Euler
    Getting started with Euler Samuel Fux High Performance Computing Group, Scientific IT Services, ETH Zurich ETH Zürich | Scientific IT Services | HPC Group Samuel Fux | 19.02.2020 | 1 Outlook . Introduction . Accessing the cluster . Data management . Environment/LMOD modules . Using the batch system . Applications . Getting help ETH Zürich | Scientific IT Services | HPC Group Samuel Fux | 19.02.2020 | 2 Outlook . Introduction . Accessing the cluster . Data management . Environment/LMOD modules . Using the batch system . Applications . Getting help ETH Zürich | Scientific IT Services | HPC Group Samuel Fux | 19.02.2020 | 3 Intro > What is EULER? . EULER stands for . Erweiterbarer, Umweltfreundlicher, Leistungsfähiger ETH Rechner . It is the 5th central (shared) cluster of ETH . 1999–2007 Asgard ➔ decommissioned . 2004–2008 Hreidar ➔ integrated into Brutus . 2005–2008 Gonzales ➔ integrated into Brutus . 2007–2016 Brutus . 2014–2020+ Euler . It benefits from the 15 years of experience gained with those previous large clusters ETH Zürich | Scientific IT Services | HPC Group Samuel Fux | 19.02.2020 | 4 Intro > Shareholder model . Like its predecessors, Euler has been financed (for the most part) by its users . So far, over 100 (!) research groups from almost all departments of ETH have invested in Euler . These so-called “shareholders” receive a share of the cluster’s resources (processors, memory, storage) proportional to their investment . The small share of Euler financed by IT Services is open to all members of ETH . The only requirement
    [Show full text]
  • Freemat V3.6 Documentation
    FreeMat v3.6 Documentation Samit Basu November 16, 2008 2 Contents 1 Introduction and Getting Started 5 1.1 INSTALL Installing FreeMat . 5 1.1.1 General Instructions . 5 1.1.2 Linux . 5 1.1.3 Windows . 6 1.1.4 Mac OS X . 6 1.1.5 Source Code . 6 2 Variables and Arrays 7 2.1 CELL Cell Array Definitions . 7 2.1.1 Usage . 7 2.1.2 Examples . 7 2.2 Function Handles . 8 2.2.1 Usage . 8 2.3 GLOBAL Global Variables . 8 2.3.1 Usage . 8 2.3.2 Example . 9 2.4 INDEXING Indexing Expressions . 9 2.4.1 Usage . 9 2.4.2 Array Indexing . 9 2.4.3 Cell Indexing . 13 2.4.4 Structure Indexing . 14 2.4.5 Complex Indexing . 16 2.5 MATRIX Matrix Definitions . 17 2.5.1 Usage . 17 2.5.2 Examples . 17 2.6 PERSISTENT Persistent Variables . 19 2.6.1 Usage . 19 2.6.2 Example . 19 2.7 STRING String Arrays . 20 2.7.1 Usage . 20 2.8 STRUCT Structure Array Constructor . 22 2.8.1 Usage . 22 2.8.2 Example . 22 3 4 CONTENTS 3 Functions and Scripts 25 3.1 ANONYMOUS Anonymous Functions . 25 3.1.1 Usage . 25 3.1.2 Examples . 25 3.2 FUNCTION Function Declarations . 26 3.2.1 Usage . 26 3.2.2 Examples . 28 3.3 KEYWORDS Function Keywords . 30 3.3.1 Usage . 30 3.3.2 Example . 31 3.4 NARGIN Number of Input Arguments . 32 3.4.1 Usage .
    [Show full text]
  • Towards a Fully Automated Extraction and Interpretation of Tabular Data Using Machine Learning
    UPTEC F 19050 Examensarbete 30 hp August 2019 Towards a fully automated extraction and interpretation of tabular data using machine learning Per Hedbrant Per Hedbrant Master Thesis in Engineering Physics Department of Engineering Sciences Uppsala University Sweden Abstract Towards a fully automated extraction and interpretation of tabular data using machine learning Per Hedbrant Teknisk- naturvetenskaplig fakultet UTH-enheten Motivation A challenge for researchers at CBCS is the ability to efficiently manage the Besöksadress: different data formats that frequently are changed. Significant amount of time is Ångströmlaboratoriet Lägerhyddsvägen 1 spent on manual pre-processing, converting from one format to another. There are Hus 4, Plan 0 currently no solutions that uses pattern recognition to locate and automatically recognise data structures in a spreadsheet. Postadress: Box 536 751 21 Uppsala Problem Definition The desired solution is to build a self-learning Software as-a-Service (SaaS) for Telefon: automated recognition and loading of data stored in arbitrary formats. The aim of 018 – 471 30 03 this study is three-folded: A) Investigate if unsupervised machine learning Telefax: methods can be used to label different types of cells in spreadsheets. B) 018 – 471 30 00 Investigate if a hypothesis-generating algorithm can be used to label different types of cells in spreadsheets. C) Advise on choices of architecture and Hemsida: technologies for the SaaS solution. http://www.teknat.uu.se/student Method A pre-processing framework is built that can read and pre-process any type of spreadsheet into a feature matrix. Different datasets are read and clustered. An investigation on the usefulness of reducing the dimensionality is also done.
    [Show full text]
  • A Case Study in Fitting Area-Proportional Euler Diagrams with Ellipses Using Eulerr
    A Case Study in Fitting Area-Proportional Euler Diagrams with Ellipses using eulerr Johan Larsson and Peter Gustafsson Department of Statistics, School of Economics and Management, Lund University, Lund, Sweden [email protected] [email protected] Abstract. Euler diagrams are common and user-friendly visualizations for set relationships. Most Euler diagrams use circles, but circles do not always yield accurate diagrams. A promising alternative is ellipses, which, in theory, enable accurate diagrams for a wider range of input. Elliptical diagrams, however, have not yet been implemented for more than three sets or three-set diagrams where there are disjoint or subset relationships. The aim of this paper is to present eulerr: a software package for elliptical Euler diagrams for, in theory, any number of sets. It fits Euler diagrams using numerical optimization and exact-area algorithms through a two-step procedure, first generating an initial layout using pairwise relationships and then finalizing this layout using all set relationships. 1 Background The Euler diagram, first described by Leonard Euler in 1802 [1], is a generalization of the popular Venn diagram. Venn and Euler diagrams both visualize set relationships by mapping areas in the diagram to relationships in the data. They differ, however, in that Venn diagrams require all intersections to be present| even if they are empty|whilst Euler diagrams do not, which means that Euler diagrams lend themselves well to be area-proportional. Euler diagrams may be fashioned out of any closed shape, and have been implemented for triangles [2], rectangles [2], ellipses [3], smooth curves [4], poly- gons [2], and circles [5, 2].
    [Show full text]
  • The Python Interpreter
    The Python interpreter Remi Lehe Lawrence Berkeley National Laboratory (LBNL) US Particle Accelerator School (USPAS) Summer Session Self-Consistent Simulations of Beam and Plasma Systems S. M. Lund, J.-L. Vay, R. Lehe & D. Winklehner Colorado State U, Ft. Collins, CO, 13-17 June, 2016 Python interpreter: Outline 1 Overview of the Python language 2 Python, numpy and matplotlib 3 Reusing code: functions, modules, classes 4 Faster computation: Forthon Overview Scientific Python Reusing code Forthon Overview of the Python programming language Interpreted language (i.e. not compiled) ! Interactive, but not optimal for computational speed Readable and non-verbose No need to declare variables Indentation is enforced Free and open-source + Large community of open-souce packages Well adapted for scientific and data analysis applications Many excellent packages, esp. numerical computation (numpy), scientific applications (scipy), plotting (matplotlib), data analysis (pandas, scikit-learn) 3 Overview Scientific Python Reusing code Forthon Interfaces to the Python language Scripting Interactive shell Code written in a file, with a Obtained by typing python or text editor (gedit, vi, emacs) (better) ipython Execution via command line Commands are typed in and (python + filename) executed one by one Convenient for exploratory work, Convenient for long-term code debugging, rapid feedback, etc... 4 Overview Scientific Python Reusing code Forthon Interfaces to the Python language IPython (a.k.a Jupyter) notebook Notebook interface, similar to Mathematica. Intermediate between scripting and interactive shell, through reusable cells Obtained by typing jupyter notebook, opens in your web browser Convenient for exploratory work, scientific analysis and reports 5 Overview Scientific Python Reusing code Forthon Overview of the Python language This lecture Reminder of the main points of the Scipy lecture notes through an example problem.
    [Show full text]
  • Gretl User's Guide
    Gretl User’s Guide Gnu Regression, Econometrics and Time-series Allin Cottrell Department of Economics Wake Forest university Riccardo “Jack” Lucchetti Dipartimento di Economia Università Politecnica delle Marche December, 2008 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation (see http://www.gnu.org/licenses/fdl.html). Contents 1 Introduction 1 1.1 Features at a glance ......................................... 1 1.2 Acknowledgements ......................................... 1 1.3 Installing the programs ....................................... 2 I Running the program 4 2 Getting started 5 2.1 Let’s run a regression ........................................ 5 2.2 Estimation output .......................................... 7 2.3 The main window menus ...................................... 8 2.4 Keyboard shortcuts ......................................... 11 2.5 The gretl toolbar ........................................... 11 3 Modes of working 13 3.1 Command scripts ........................................... 13 3.2 Saving script objects ......................................... 15 3.3 The gretl console ........................................... 15 3.4 The Session concept ......................................... 16 4 Data files 19 4.1 Native format ............................................. 19 4.2 Other data file formats ....................................... 19 4.3 Binary databases ..........................................
    [Show full text]
  • Compiling Maplesim C Code for Simulation in Vissim
    Compiling MapleSim C Code for Simulation in VisSim 1 Introduction MapleSim generates ANSI C code from any model. The code contains the differential equations that describe the model dynamics, and a solver. Moreover, the code is royalty-free, and can be used in any simulation tool (or development project) that accepts external code. VisSim is a signal-flow simulation tool with strength in embedded systems programming, real-time data acquisition and OPC. This document will describe the steps required to • Generate C code from a MapleSim model of a DC Motor. The C code will contain a solver. • Implement the C code in a simulation DLL for VisSim. VisSim provides a DLL Wizard that sets up a Visual Studio C project for a simulation DLL. MapleSim code will be copied into this project. After a few modifications, the project will be compiled to a DLL. The DLL can then be used as a block in a VisSim simulation. The techniques demonstrated in this document can used to implement MapleSim code in any other environment. MapleSim’s royalty -free C code can be implemented in other modeling environment s, such as VisSim MapleSim’s C code can also be used in Mathcad 2 API for the Maplesim Code The C code generated by MapleSim contains four significant functions. • SolverSetup(t0, *ic, *u, *p, *y, h, *S) • SolverStep(*u, *S) where SolverStep is EulerStep, RK2Step, RK3Step or RK4Step • SolverUpdate(*u, *p, first, internal, *S) • SolverOutputs(*y, *S) u are the inputs, p are subsystem parameters (i.e. variables defined in a subsystem mask), ic are the initial conditions, y are the outputs, t0 is the initial time, and h is the time step.
    [Show full text]