Controlling Hybrid Vehicles with Haskell

Similar documents
Eaton power management solutions Eaton. All Rights Reserved..

Solutions. ydraulics. We Manufacture. H y d r a u l i c s. h y d r a u l i c s. Hydraulics Division Char-Lynn Hydraulic Products. S o l u t i o n 1 s

Electrical solutions for mining. Experience robust performance above and below ground.

Electrical solutions for machine builders. Build a better machine with Eaton solutions integrated.

Solutions for machine builders. Build a better machine with Eaton solutions integrated

Anti-Lock Braking Systems

PLUS+1 GUIDE Software. PLUS+1 Compliant SASA Function Block User Manual COMPLI ANT PRESSURE mm mm x 25.2 mm [1.

North Montco Technical Career Center. Automotive Technology Duty and Task List

What are the characteristics of Object Oriented programming language?

Recent applications of overset mesh technology in SC/Tetra

INSTALLATION MANUAL. MEC-HL COMPACT Electromechanical proportional actuators for Hydraulic Applications

Solutions. ydraulics. We Manufacture. H y d r a u l i c s. h y d r a u l i c s. Hydraulics Division Eaton / Char-Lynn Hydraulic Products

Eaton Corporation An Overview February Eaton Corporation. All rights reserved.

MBS1250 Heavy Duty Pressure Transmitter. Product Electrical Installation

Hitch Control. System Description

2x 25.2 mm [1.0] 2x 7.0 [.28] MOUNTING DIRECTION #2 LED INDICATOR LIGHTS mm [2.03] 47.1 mm [1.85]

III-YEAR AUTOMOBILE ENGINEERING AT 2301 AUTOMOTIVE TRANSMISSION UNIT-1 CLUTCH

PLUS+1 Compliant JS1 CANopen Joystick Function Block

Eaton Logic Controller. Product Focus

User Manual PLUS+1 Compliant ACX104 Function Block

PLUS+1 Compliant CLS1000 Laser Sensor Function Block

2G Actuator Communications Protocol Document Rotary & Linear Actuators

Intelligent Technologies (IT.) Starter Network Adapter Products (SNAP) Product Focus D77B-DSNAP D77B-QSNAP

PLUS+1 Compliant MP1 NFPE Function Blocks

Intelligent Technologies (IT.) Motor Control Centers Product Focus Designed Specifically for the Power Generation Industry

Create, Embed, Empower. Crevavi Technologies Company profile

Modular and Scalable Power Converters in the UPS Industry

System Description. System Hitch Control. powersolutions.danfoss.com

PRODUCT SERVICE INFORMATION

CHAPTER 1: REAL TIME COMPUTER CONTROL

Page 1. Stuff. Last Time. Today. Safety-Critical Systems MISRA-C. Terminology. Interrupts Inline assembly Intrinsics

epro Canvas epro Canvas TM (Catalog No. CANVAS)

e-pg Pathshala Subject : Computer Science Paper: Embedded System Module: Microcontrollers and Embedded Processors Module No: CS/ES/2 Quadrant 1 e-text

NPTEL

Model Based Systems Engineering Engine Control: from concept to validation. Jan Smolders Technical Account Manager

2x 25.2 mm [1.0] 2x 7.0 [.28] MOUNTING DIRECTION #2 LED INDICATOR LIGHTS mm [2.03] 47.1 mm [1.85]

PLUS+1 Compliant JS1 J1939 CAN Joystick Function Block

PLUS+1 GUIDE Software. PLUS+1 Compliant PVEO DI Function Block User Manual COMPLI ANT PRESSURE mm mm x 25.2 mm [1.

PLUS+1 GUIDE Software. PLUS+1 Compliant JS2000 XYZ-Axis Joystick Function Block User Manual COMPLI ANT mm mm x 25.2 mm [1.

ELEC 5260/6260/6266 Embedded Computing Systems

MathWorks Technology Session at GE Physical System Modeling with Simulink / Simscape

HEAVY DUTY EQUIPMENT TECHNICIAN

Heterogeneous Modeling: Hybrid Systems

University of Swaziland Department Of Computer Science Supplementary Examination JULY 2012

Compiler Construction

, Temperature Sensor. Product Electrical Installation. Tech Note

CROSSOVER 8000 CROSSOVER T capacity class Boom truck crane Datasheet imperial. Features

Partitioned Control Challenge Problem

PLUS+1 GUIDE Software. AGCO Ag-Chem Fan Drive Subsystem Fault Location and Fault Type Codes User Manual. BlinkCodeGen. OutputDrivers. Faults.

JS7000_XY. 2x 25.2 mm [1.0] 2x 7.0 [.28] MOUNTING DIRECTION #2 LED INDICATOR LIGHTS mm [2.03] 47.1 mm [1.85]

AUTOMATIC TENSION & COMPRESSION TESTING MACHINE

Object-Oriented Programming in C++/Handout 01 Page 1 of 8

Y-0044 MECHATRONICS TRAINING SET

PLUS+1 GUIDE Software. PLUS+1 Compliant S42 NFPE Function Block User Manual COMPLI ANT mm mm x 25.2 mm [1.0] mm [5.

Either witech OR StarMOBILE DESKTOP CLIENT can be used to perform this bulletin. FLASH FILES FOR THIS BULLETIN ARE AVAILABLE VIA THE INTERNET.

PLUS+1 GUIDE Software. PLUS+1 Compliant KPP SPD Speed Sensor Function Block User Manual COMPLI ANT mm mm x 25.2 mm [1.

PLUS+1 GUIDE Software. PLUS+1 Compliant H1B Motor Electric Proportional PCOR Control Function Blocks User Manual COMPLI ANT mm 6.

Design & Implementation of CAN Bus for Intelligent Vehicle using Sensors System

An ISO 9001:2008 Registered Company

Electromechanical Braking (Brake By-Wire)

Object-Oriented Programming

ELECTRICAL CONTROL SYSTEMS 1

MATLAB Expo Simulation Based Automotive Communication Design using MATLAB- SimEvent. Sudhakaran M Anand H General Motors

Kinematics of Machines. Brown Hills College of Engineering & Technology

CSE 153 Design of Operating Systems

Simon Peyton Jones (Microsoft Research) Tokyo Haskell Users Group April 2010

CUSTOMIZED TEACHER ASSESSMENT BLUEPRINT. Test Code: 5936 Version: 01

Chapter 20: Binary Trees

Clink II Integrated Motor Control System

Temperature Sensors ,

Simulation-based development of automotive control software with Modelica

Core Java - SCJP. Q2Technologies, Rajajinagar. Course content

C++ Important Questions with Answers

Asset Manager. Introduction to "Asset Manager" 1. Data model in "Asset Manager" 2. User interface "Asset Manager" 3

JS1000 Joystick Analog Output Product Electrical Installation

Processes and Threads

JS7000 Joystick Analog, CAN, and CAN+ Output. Product Electrical Installation. Technical Information

THE StarSCAN FLASH FILES FOR THIS BULLETIN ARE AVAILABLE VIA THE INTERNET. StarSCAN SOFTWARE LEVEL MUST BE AT RELEASE 9.04 OR HIGHER.

Hydro-Jet Vario

CS 140RC. Joystick Controller Configuration and Set-up Manual

Runtime. The optimized program is ready to run What sorts of facilities are available at runtime

Abstract classes and Interfaces

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question)

VA-7700 Series. Electric Valve Actuators. Product Bulletin

Operator Station (V8.0) SIMATIC. Process Control System PCS 7 Operator Station (V8.0) Preface 1. The PCS 7 Operator Station

Workflow for Control System Design and Implementation

Instructions & Software Install Version 6.30a (Feb 2018) Copyright 2018 DealerTool.co.uk

15-418, Spring 2008 OpenMP: A Short Introduction

Multicore Migration Study in Automotive Powertrain Domain

ECUs F42. F88 Series. F90 Series

Thank you for downloading one of our ANSYS whitepapers we hope you enjoy it.

Joystick JS7000 Analog and CAN Output

SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road QUESTION BANK (DESCRIPTIVE) UNIT I OPERATING SYSTEMS

nddprint 360 White Paper - Corporate Printing

User Manual PLUS+1 License Administration Tool powersolutions.danfoss.com

Open and flexible test rig automation with PC-based control and TwinCAT 3

Final Exam Preparation Questions

Highlights. - Making threads. - Waiting for threads. - Review (classes, pointers, inheritance)

3D Roll Forming Center for Automotive Application

Type Conversion. and. Statements

Transcription:

This is a photographic template your photograph should fit precisely within this rectangle. Controlling Hybrid Vehicles with Haskell 2008 Eaton Corporation. All rights reserved.

Overview Eaton Hydraulics Hybrid Vehicles Haskell @ Eaton Atom: A DSL embedded in Haskell Functional Programming Challenges 2 2

Eaton: Powering Business Worldwide Diversified Power Management Cleveland, OH; 81,000 Employees; $13 Billon in Sales Markets & Products Electrical circuit beakers, power distribution assemblies, uninterruptible power systems Aerospace hydraulics, fuel systems, motion control, circuit protection Truck transmissions, clutches, electric hybrid powertrain systems cruise control, collision warning, traction control systems Automotive air, transmission, and fuel management controls superchargers, differentials Hydraulics valves, pumps, motors, cylinders, fluid conveyance, filtration Golf Grips??? Eaton: Powering Business and Golf Balls Worldwide 3 3

Hydraulic Control Valves Proportional Valves for Directional Control 4 4

Hydraulic Accumulators Compressed Nitrogen Stores Energy 5 5

Hydraulic Pumps and Motors Axial Piston Pump Positive Displacement Variable Displacement 6 6

Hydraulic Pumps and Motors Bent-Axis Piston Pump 7 7

Building a Hydraulic Hybrid Accumulator Transmission Engine Reservoir Parallel Hybrid: Hydraulic Launch Assist (HLA) Augments conventional drivetrain. 8 8

Building a Better Hydraulic Hybrid High Pressure Accumulator Transmission Engine Low Pressure Accumulator Series Hybrid: Decouples Engine from Wheels Run engine at optimal RPM. Shut off when not needed. Opens door to alternative engines: Free piston, HCCI. 9 9

HLA (Parallel) System 10 10

Haskell for Day to Day Stuff Scripting, Data Conversion, Field Tools, etc. ECU Flash Programming Hardware-in-the-Loop Simulation Differential Cryptanalysis Remote Vehicle Management Data logging, calibration, and re-programming through WiFi and cell modems. Fountain codes for forward error correction. Distributed download, multicast. 11 11

Atom DSL Inspired by... Bluespec (Arvind and friends) STM Atom: Atomic State Transition Rules For embedded hard-real-time control software. Haskell + Atom = Safer Software Concisely express safety related behavior. Atom Compiler Automates: Multi-Rate Thread Scheduling No need for RTOS task scheduler. Multi-Rate Thread Synchronization No need to program with locks and semaphores. Multi-ECU Software Partitioning* No need to explicitly program ECUs independently. * not implemented yet, but possible 12 12

Atom Semantics Enabling Conditions balance <- double 0 system deposit $ do when depositrequest balance <== value balance + amount system withdraw $ do when withdrawrequest when $ value balance >=. amount balance <== value balance - amount Actions Rules Execute Atomically 13 13

Atom Types and Values data System a -- System monad collects variable and rule definitions. data Var a -- State variables. data Term a -- Combinational expressions of variables. -- Term Bool, Term Word8, Term Int16, Term Double, etc. -- Variable declarations. bool :: Bool -> System (Var Bool) word8 :: Word8 -> System (Var Word8) int32 :: Int32 -> System (Var Int32) double :: Double -> System (Var Double) -- Variable reference. value :: Var a -> Term a -- Term operations. inv :: Term Bool -> Term Bool (&&.) :: Term Bool -> Term Bool -> Term Bool (==.) :: Term a -> Term a -> Term Bool (<.) :: Term a -> Term a -> Term Bool mux :: Term Bool -> Term a -> Term a -> Term a -- Instances of Num, Fractional, Floating, Bits, etc. 14 14

Atom Types and Values -- Building system hierarchy. Each hierarchal node could be rule. -- Child system inherits parents execution rate. system :: Name -> System a -> System a -- Building hierarchy with timing information. -- Child system executes at a factor of parent s rate. systemperiodic :: Name -> Int -> System a -> System a -- Enabling conditions. when :: Term Bool -> System () -- Variable assignment. (<==) :: Var a -> Term a -> System () -- Compile an Atom description. -- Specify top level name and base execution period. compile :: Name -> Double -> System () -> IO () 15 15

Atom Example: HLA Disengagement Fault 16 16

Compiling Atom: Rule Scheduling Each Rule Associated with an Execution Period Threads are sets of rules with same period. Schedule rules to balance processing. Returns single C function to be called at base rate. rule A (1ms, 10 instructions) rule B (2ms, 5 instructions) rule C (2ms, 10 instructions) rule D (2ms, 5 instructions) sample 1 rule A # 10 rule B C # 105 ------------- rule C # 10 rule Total D # 205 ------------- Total 30 sample 2 rule A # 10 ------------- rule B # 5 Total rule D # 105 ------------- Total 20 Advanced scheduling is possible. eg. Splitting a rule execution across multiple samples. 17 17

Compiling Atom: Rule Scheduling Thread Scheduling Compiler does the scheduling, not the OS. Timing semi-verified by compiler. Thread Synchronization Compiler adheres to rule atomicity. No need to program with locks and semaphores. Yeah! Life is Good! 18 18

Compiling Atom: Multi-ECU Partitioning ECU ECUAbstract ECU ECU ECU Program the system as a whole. Let the compiler handle... ECU allocation. ECU communication and synchronization. Multiple ECUs for redundancy (ie. safety). Requires new compiler constraints: availability and integrity. Which rules are important, and which are less so? 19 19

Challenges Limitations with Meta Programming instance Eq (Term a). Equality comparison of deep combinational expressions. GADTs only for Meta, not Object Language Considered direct compilation, via YHC. System, not IO, as top monad. Functional Programming is a Tough Sell No traction with former 2 employers. Eaton is different. 20 20

Succeeding with Functional Programming at Work Declare what to compute, not how to compute it. It s easier to ask forgiveness than to get permission. 21 21

Real Haskell Garbage Collection Mark and Sweep? No, Clump and Dump! 22 22

23 23