Designing Event-Controlled Continuous Processing Systems Class 325



Similar documents
VLT AutomationDrive for Marine winch applications

FRENIC5000MS5 for Machine Tool Spindle Drives

Degree programme in Automation Engineering

HITACHI INVERTER SJ/L100/300 SERIES PID CONTROL USERS GUIDE

MECE 102 Mechatronics Engineering Orientation

Temperature Transmitter TTX300

Mathematical Modeling and Dynamic Simulation of a Class of Drive Systems with Permanent Magnet Synchronous Motors

Additional Benefits of VFDs In addition to energy savings and better process control, VFDs can provide other benefits:

Control System Definition

NX Series Inverters. HVAC Pocket Programming Guide

How to Turn an AC Induction Motor Into a DC Motor (A Matter of Perspective) Steve Bowling Application Segments Engineer Microchip Technology, Inc.

VLT 6000 HVAC. Contents

What Is Regeneration?

Winding Applications. Winding Applications. An overview to winder applications along with Mitsubishi Electric solutions

Torque control MSF Softstarter

FlexPak 3000 Digital DC Drive Software Reference Manual Version 4.3

A1000 Cheat Sheet (Open Loop Vector)

Current Loop Tuning Procedure. Servo Drive Current Loop Tuning Procedure (intended for Analog input PWM output servo drives) General Procedure AN-015

Installation & Operation Manual for Energenics Air-Flow Optimizer

VARIABLE FREQUENCY DRIVES Revised 4/30/ Mechanical Systems

ACS800. Master/Follower Application Guide Supplement to Firmware Manual for ACS800 Standard Application Program

ELECTRICAL ENGINEERING

GPD 506/P5 Start-up Procedure and Checklist

WINDOW's Programming Software USER MANUAL

Technical Guide No High Performance Drives -- speed and torque regulation

SuperIOr Controller. Digital Dynamics, Inc., 2014 All Rights Reserved. Patent Pending. Rev:

Electrical Drive Modeling through a Multiphysics System Simulation Approach

Outline Servo Control

Principles of Adjustable Frequency Drives

EET272 Worksheet Week 9

Pulse Width Modulated (PWM) Drives. AC Drives Using PWM Techniques

Transmissão em Corrente Contínua

Understanding the Alternator

QNET Experiment #06: HVAC Proportional- Integral (PI) Temperature Control Heating, Ventilation, and Air Conditioning Trainer (HVACT)

BIG SAVINGS FOR A LOT MORE APPLICATIONS

Analog Servo Drive 25A8

PC BASED PID TEMPERATURE CONTROLLER

Real-Time Systems Versus Cyber-Physical Systems: Where is the Difference?

Discover the power of e-learning! The Quick Guide to AC Variable Frequency

Pulse Width Modulated (PWM)

Micro-Step Driving for Stepper Motors: A Case Study

Applying Use Cases to Microcontroller Code Development. Chris Gilbert Cypress Semiconductor

M.S Ramaiah School of Advanced Studies - Bangalore. On completion of this session, the delegate will understand and be able to appriciate:

Motor Control Application Tuning (MCAT) Tool for 3-Phase PMSM

STEPPER MOTOR SPEED AND POSITION CONTROL

WIND TURBINE TECHNOLOGY

GE Energy Industrial Solutions. New. AF-6 Series Drives. Built-in features Built-in simplicity. GE imagination at work

Speed Control Methods of Various Types of Speed Control Motors. Kazuya SHIRAHATA

The Design of DSP controller based DC Servo Motor Control System

Series: IDAM Servo Drive E Digital Motor Drive - DMD

AC Kinetics Variable Frequency Drive Comparative Transient Inertial Testing. This document was prepared by Advanced Energy.

1 Temperature Derating Guide

AC/DC Power Supply Reference Design. Advanced SMPS Applications using the dspic DSC SMPS Family

Technical Manual. Plug & Drive Motors PD6-N8918. NANOTEC ELECTRONIC GmbH & Co. KG Gewerbestraße 11 D Landsham near Munich, Germany

300 MW Variable Speed Drives for Pump-Storage Plant Application Goldisthal

User's Guide. CTS6000 WebControl

MODELING AND SIMULATION OF A THREE-PHASE INVERTER WITH RECTIFIER-TYPE NONLINEAR LOADS

VLT 6000 HVAC Series Contents

Rotating Machinery Diagnostics & Instrumentation Solutions for Maintenance That Matters

SIMERO Software System Design and Implementation

Reliance Electric GV3000/SE Industrial AC Drive

Supplement to the Operating Instructions for SIMOREG DC-MASTER Series 6RA70. for Software Release 3.2. Version 13 Order no.

Microcontroller-based experiments for a control systems course in electrical engineering technology

Relationship between large subject matter areas

AC Induction Motor Slip What It Is And How To Minimize It

Failure code manual. content

INDUCTION MOTOR PERFORMANCE TESTING WITH AN INVERTER POWER SUPPLY, PART 2

Application Note, Rev.1.0, September 2008 TLE8366. Application Information. Automotive Power

Active Vibration Isolation of an Unbalanced Machine Spindle

EDUMECH Mechatronic Instructional Systems. Ball on Beam System

Brake module AX5021. Documentation. Please read this document carefully before installing and commissioning the brake module!

EnVisioneering.

From Control Loops to Software

IQAN MDM Operation Manual

with Electronic Assistant

W a d i a D i g i t a l

Fundamentals of Power Electronics. Robert W. Erickson University of Colorado, Boulder

I2C PRESSURE MONITORING THROUGH USB PROTOCOL.

Drives 101. Functions of an Adjustable Frequency Drive (AFD) This lesson covers the basic functions of an Adjustable Frequency Drives (AFD).

Product Manual. ABB i-bus KNX Data Logging Unit BDB/S 1.1. Intelligent Installation Systems ABB

Force/position control of a robotic system for transcranial magnetic stimulation

CONSTRUCTION STANDARDS DIVISION 23 HEATING VENTILATING AND AIR CONDITIONING

REMOTE HOST PROCESS CONTROL AND MONITORING OF INDUSTRY APPLIANCES

IPB-IB ELECTRIC ACTUATORS FOR INDUSTRIAL PROCESS CONTROL INDUSTRIAL STEAM BOILERS. BECK VIDEO Scan w/ Smartphone

TURBOtech srl. SED-635 Digital Excitation System. Industrial Electronics Sector FEATURES

HVAC Applications. VFD considerations for HVAC systems...

EMC6D103S. Fan Control Device with High Frequency PWM Support and Hardware Monitoring Features PRODUCT FEATURES ORDER NUMBERS: Data Brief

Tire pressure monitoring

Power Electronics. Prof. K. Gopakumar. Centre for Electronics Design and Technology. Indian Institute of Science, Bangalore.

ITEC FlexDMC motion architecture. Thiemo van Engelen 4 June, th Systems/software Architecture Study Group Meeting

Motors. 13/16 Siemens PM

Basics electronic speed Governor

Technical Information POWER PLANT CONTROLLER

CPW Current Programmed Winder. Application Handbook. Copyright 2002 by Eurotherm Drives, Inc.

POTENTIAL OF STATE-FEEDBACK CONTROL FOR MACHINE TOOLS DRIVES

Ordering Part Numbers:

Hardware in the Loop (HIL) Testing VU 2.0, , WS 2008/09

Technical Training Module ( 30 Days)

32VFD Variable Frequency Drives for Centrifugal Chillers

Transcription:

Designing Event-Controlled Continuous Processing Systems Class 325 by Hans Peter Jepsen, Danfoss Drives and Finn Overgaard Hansen, Engineering College of Aarhus hans_peter_jepsen@danfoss.com foh@e.iha.dk

The main ideas of this class To present the two-part architectural model as a basis for implementing event-controlled continuous processing systems To outline an object-oriented design of this architectural model where design patterns have been helpful in the design To give some method hints Results of a pilot project on the OO-development of a frequency converter in the Danish research project COT - Centre for Object Technology Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 2

What is an Event-Controlled Continuous Processing System? A system which carries out continuous signal processing which reacts on events that impacts and reconfigures the signal processing The signal processing can be carried out by software and/or hardware, can be distributed on multiple processors When carried out in software or digital hardware, signal processing is periodic or discrete-time Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 3

Examples of Event-Controlled Continuous Processing Systems Examples can be found in several fields, e.g Measurement instruments (e.g. flowmeters) Process control (e.g. frequency converters) Consumer electronic (e.g. CD-players) Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 4

The frequency converter - as an example A frequency converter is a device used to control a three-phase induction motor so that the motor speed or motor torque matches the need of a given application Often called a drive which explains the company name Danfoss Drives VLT is the trademark for Danfoss frequency converters Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 5

The two-part architectural model Event Controlled Part Delivers Events to Selects Controller Continuous Processing Part Contains several control or Output algorithms Parameterises The event-controlled part: Responsibilities: event handling, configuration Selects controller in cont. proc. part The continuous processing part: Responsibility: continuous data processing Delivers events (indications) to event-controlled part, e.g. Spinning motor caught Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 6

Controlling a conveyer belt - example of speed control Goal: To control the speed of the conveyer belt Constraints: Changes in load may not change the speed Changes in speed (e.g. start and stop) must occur in a controlled manner and be smooth Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 7

Controlling a fan - example of process control Goal: To maintain a desired room temperature, e.g. in an airport building Constraints: Before applying power, the ventilator must be stopped or caught, because the ventilator is often windmilling when the motor is not powered Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 8

More to the Fan Control Three modes of steady-state operation Coast (fan is wind milling ) Catch spinning motor Closed loop feedback control Events control shift between these Start command Spinning motor caught Stop command Demand: Bumpless transfer START Command Catch spinning motor Spinning motor caught Coast Process closed loop STOP Command Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001

The working of a frequency converter Rectifier Intermed. Circuit Inverter Motor Control Circuit Enclosure Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 10

Architectural style: Process Control Architectural style - a pattern for the architecture of a group of systems The Process Control architectural style can be used with advantage in connection with continuous control of a process The style is presented by applying it to the frequency converter examples Reference: [Shaw&Garlan96] Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 11

Ventilator control as process control Disturbances: heat production, heat loss, temperature outside, etc Setpoint: desired temperature Controller: VLT Manipulated variables: frequency+ voltage Process: Motor + fan + room Controlled variable: room temperature Feedback: measured room temperature Example of closed-loop feedback control Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 12

The inside of the controller is signal processing Controller: VLT Process: Motor + ventilator + room Setpoint signal Setpoint calculation Setpoint value PID Controller f Frequency Bypass f Output Frequency Limits f f Resonance f Ramp Damping Voltage calculation U theta theta update Inverter Control f (Frequency) U (Voltage) Feedback value Feedback Calcualation Feedback signal The Process Closed Loop controller in a VLT Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 13

The conveyer belt again Input variables: motor current Setpoint: desired speed Controller: VLT Manipulated variables: frequency + voltage Process: Motor + load Controlled variable: speed of conveyer belt Setpoint signal Reference calculation Setpoint value Slip compensation Output Frequency Resonance f f Frequency f Ramp f f Bypass Damping Limits Voltage calculation U theta theta update Inverter control f (frequency) U (Voltage) slip Slip estimation I (Motor Current) The Speed Open Loop controller in a VLT - also called sensorless speed control. Example of a feedforward control system. Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 14

Continuous signal processing - implemented in software Characteristics: Periodic instead of continuous normally initiated by a periodic interrupt Input signals are sampled Period length is an important system parameter Dataflow architecture Thorough treatment in control theory but often lacks guidelines for sensible SW-implementations Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 15

A frequency converter must also react to events Events can be: commands, e.g: Start, Stop, Change-Setup change of a parameter value new set point value received from a processlocal-area-network Sources can be digital terminals keypads telegrams from the process-local-area-network Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 16

The treatment of events Characteristics: The arrival of events is often independent of and asynchronous to signal processing normally via an interrupt The reaction is very often determined by finite state machines Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 17

The event treatment impacts signal processing Most signal processing block has configuration-parameters e.g. ramp: ramp time, type (linear or S-ramp) Most commands and configuration-parameters result in a change in the signal path Start, Stop, Change-Set-up Change from Speed-Open-Loop to Process-Closed- Loop Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 18

Examples: The signal processing part can produce events The setpoint-signal disappears the motor must be stopped or the controller replaced The motor speed reaches 0 rpm the motor control mode must be set to Stopped Feedback outside user determined limits a Warning must be submitted Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 19

The two-part architecture (very simplified) RS- 485 serial line interface local user interface Digital inputs C Motor starting Motor stopped Ramping down DC braking C C Configuration Motor running C Event-Controlled Part Setpoint from RS485 C C Setpoint calc C Slip comp. Freq Limits Ramp Bypass Resonans damp C Voltage calc Continuous Data Processing Part Inverter Control Analog inputs Feedback calc PID C C C C Catch spinning motor C C C Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 20 C

Advantages of the two-part architectural view The two parts of the software have different demands and constraints i.e. the questions, that must be answered, and the approach is different The software can be implemented so that the signal processing path is only set up, when it needs to be changed in our former approach the path was set up during every period The period length of the different blocks does not have to be identical Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 21

The applicability of the two part architectural view Assumed to be applicable in many embedded systems The signal processing can be distributed on multiple CPU s The signal processing blocks can be moved between HW and SW Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 22

Two-part model for a frequency transformer (VLT) Event controlled part VLT user VLT Control Configuration Continuous processing part Sensor Motor Controlling VLT & Motor supervising Motor Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 23

Design Patterns in the two-part architectural model Discrete event based part VLT user Command, State Sensor Motor Controlling VLT & Motor supervising Strategy, Filter & Pipes Observer Continuous processing part Motor Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 24

Structure for Strategy Pattern Context ContextInterface() Strategy AlgorithmInterface() ConcreteStrategyA AlgorithmInterface() ConcreteStrategyB AlgorithmInterface() ConcreteStrategyC AlgorithmInterface() Ref. [Gamma95] Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 25

Class diagram showing realisation of Strategy Pattern Context Strategy Pattern Strategy MotorOutputGenerator 1 OutputController {abstract} setactivecontroller() generatemotoroutput() periodic activation activeoutputcontroller SpeedOpenLoopController generateoutput() generatef() generatev() activate() deactivate() ProcessClosedLoopController PwmAsic... generatef(): Frequency generatev(): Voltage generatef(): Frequency generatev(): Voltage Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 26

C++ code example for generatemotoroutput() MotorOutputGenerator setactivecontroller() generatemotoroutput() activeoutputcontroller 1 OutputController {abstract} generateoutput() generatef(): Frequency generatev(): Voltage OutputController *theactiveoutputcontroller; MotorOutputGenerator::generateMotorOutput() { theactiveoutputcontroller->generateoutput(); } Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 27

C++ code example for generateoutput() OutputController {abstract} + generateoutput() - generatef(): Frequency - generatev(): Voltage PwmAsic Output(Frequency,Voltage) OutputController::generateOutput() { frequecy= generatef(); // pure virtual function voltage= generatev(); // pure virtual function thepwmasic->output(frequency,voltage); } generateoutput() is a Template Method according to [Gamma95] Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 28

C++ code example for setactivecontroller() MotorOutputGenerator setactivecontroller() generatemotoroutput() activeoutputcontroller 1 OutputController {abstract} activate() deactivate() generateoutput() MotorOutputGenerator::setActiveController (OutputController: newcontroller) { controllerinfo= theactiveoutputcontroller->deactivate(); theactiveoutputcontroller= newcontroller; theactiveoutputcontroller->activate(controllerinfo); } Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 29

Block diagram for two different Speed Open loop: application modes Setpoint signal Reference calculation Setpoint value Slip compensation Output Frequency Resonance f f Frequency f Ramp f f Bypass Damping Limits Voltage calculation U theta theta update Inverter control f (frequency) U (Voltage) slip Slip estimation I (Motor Current) Process Closed Loop: Setpoint signal Setpoint calculation Setpoint value PID Controller f Frequency Bypass f Output Frequency Limits f f Resonance f Ramp Damping Voltage calculation U theta theta update Inverter Control f (Frequency) U (Voltage) Feedback value Feedback Calcualation Feedback signal Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 30

Pipes and Filters Pattern classes Class Filter Class Pipe Responsibility Get input Perform function Set output Collaborators Pipe Responsibility Transfer data Buffer data Sync. filters Collaborators Data Source Data Sink Filter Class Data Source Class Data Sink Responsibility Collaborators Responsibility Collaborators Deliver input to processing pipeline Pipe Consumes output Pipe Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 31

:SpeedOpen LoopController Object diagram for SpeedOpenLoopController f=output(f) :SlipFilter input frequency f=output(f) :BypassFilter f=output(f) :FreqLimiterFilter f=output(f) :RampFilter f=output(f) :ResonanceDamperFilter output frequency Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 32

Class diagram for Pipes and Filter pattern Source, Sink, Pipe OutputController {abstract} Pipes and filter pattern 0..* Filter ControllerComponent {abstract} generateoutput() generatef(): Frequency generatev(): Voltage ProcessClosedLoop Controller generatef(): Frequency generatev(): Voltage SpeedOpenLoop Controller generatef(): Frequency generatev(): Voltage Output(Frequency): Frequency Slip Bypass Freq RampFilter... Filter Filter LimiterFilter Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 33...

C++ code example for generatef() SpeedOpenLoop Controller generatef(): Frequency Frequency SpeedOpenLoopController::generateF() {.. frequency = theslipfilter->output(frequency); frequency = thebypassfilter->output(frequency); frequency = thefreqlimiterfilter->output(frequency); frequency = therampfilter->output(frequency); frequency = theresdamperfilter->output(frequency); return frequency; } Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 34

Object collaboration diagram for generatemotoroutput generatemotoroutput :MotorOutputGenerator active later on :StopController 1. generateoutput 1.2 generatev :SpeedOpenLoopController 1.1 generatef 1.3 output(frequency,voltage) :PwmAscic 1.1.1 output :SlipFilter 1.1.n output :last filter object Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 35

Outline of the discrete event based part Event based part VLT user User Interface VLT Control Configuration Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 36

Configuration of motor output generator discrete part continuous part MotorManager configures MotorOutputGenerator activeoutputcontroller implemented by a state machine 1 setactivecontroller() generatemotoroutput() 1 runcontroller, stopcontroller, 1..* OutputController {abstract} generateoutput() PwmAsic startcontroller, appmodecontroller SpeedOpen LoopController Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 37

Part of the state machine for the MotorManger class MotorStopped entry/setactivecontroller(stopcontroller) start/ setactivecontroller(startcontroller) MotorStarting running MotorRunning entry/setactivecontroller(runcontroller) Initialized in another part of the program: runcontroller= theconfiguration->appmodecontroller()) Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 38

Outline of Command + State pattern MotorManager handlecommand(command *pc) 1 actualstate MotorState 1. handlecommand(command *pc) { pc->execute(actualstate); } MotorStopped MotorStarting MotorRunning... 2. StartCommand::execute(MotorState *ps) { ps->start(); } 3. MotorStopped::start() {...->SetActiveController(startController); } Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 39

Two types of VLT Use Cases Control VLT Actor initiated Use Cases (discrete) VLT user Change VLT configuration parameters System initiated Use Cases (continuous) Motor Controlling Motor Protection Motor Sensor Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 40

Generalised two-part architectural model Event controlled part Controlling User Controlling Configuration OUTPUT INPUT Continuous processing part Processing Monitoring Supervising User Sensor Actuator Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 41

Task model example Event controlled part :VLTControlTask <<monitor>> :Configuration Continuous processing part :Motor Control Task :VltMotor supervising Task Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 42

Experiences with Design Patterns Design patterns have been a very useful design tool The continuous part can be implemented with the Strategy pattern working in concert with the Pipes and Filter pattern The discrete part can be implemented with the State pattern working in concert with the Command pattern Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 43

Other OO experiences Extensive use of abstract classes and polymorph operations in the design the continuous part is fast easy to extend with extension based on subclasses Smaller state machines than in the previous SA/SD-RT (Ward&Mellor) based design Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 44

Conclusion Successful use of OO technology in an embedded system, where the use of design patterns has resulted in a flexible object model The two-part architectural model has been a valuable design tool - and is useful as a general design principle A framework has been build based on OO techniques (i.e. design patterns) Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 45

References [Bushmann96]: [COT]: [Gamma95]: [Jacobson92]: [Shaw95]: A System of Patterns: Patterns Oriented Software Architecture The Centre for Object Technology (COT) (http://www.cit.dk/cot/) Design Patterns: Elements of Reusable Software Object-Oriented Software Engineering A Use Case Driven Approach Comparing Architectural Design Styles [Shaw&Garlan96]: Software Architecture: Perspective of an Emerging Discipline [UML97]: Unified Modelling Language (UML), www.omg.org Finn Overgaard Hansen, Hans Peter Jepsen: Designing Event-Controlled Continuous Processing Systems April 2001 46