A Java Based Interactive Control Design and Tuning Platform Aaron - - PowerPoint PPT Presentation

a java based interactive control design and tuning
SMART_READER_LITE
LIVE PREVIEW

A Java Based Interactive Control Design and Tuning Platform Aaron - - PowerPoint PPT Presentation

A Java Based Interactive Control Design and Tuning Platform A Java Based Interactive Control Design and Tuning Platform Aaron Radke 7/9/3 Aaron Radke 7/9/3 Page 1 A Java Based Interactive Control Design and Tuning Platform Outline


slide-1
SLIDE 1

A Java Based Interactive Control Design and Tuning Platform

A Java Based Interactive Control Design and Tuning Platform

Aaron Radke 7/9/3

7/9/3

Aaron Radke

Page 1

slide-2
SLIDE 2

A Java Based Interactive Control Design and Tuning Platform

Outline

  • Introduction
  • Software Structure

– Structural Implementation – Data Flow Implementation

  • System Functionalities and Application

– Differential Equation Solvers – Controller Design and Implementation – General Model

  • Summary and Future

7/9/3

Aaron Radke

Page 2

slide-3
SLIDE 3

Introduction

Introduction

7/9/3

Aaron Radke

Page 3

slide-4
SLIDE 4

Introduction ⇒ Existing software tools

Existing software tools

  • Matlab

⋄ Matlab is powerful Figure 1: Matlab ⋄ It is a controls standard ⋄ Simulink allows easy set up nonlinear systems

  • Shortcomings of Matlab

⋄ Simulink is great but tuning is tedious

7/9/3

Aaron Radke

Page 4

slide-5
SLIDE 5

Introduction ⇒ Existing software tools ⋄ Matlab has GUI but it takes a bit of programming to use ⋄ Matlab license issues ⋄ Version problems

  • SysQuake

Figure 2: SysQuake ⋄ Free package with syntax similar to Matlab ⋄ Built around real time dragging

7/9/3

Aaron Radke

Page 5

slide-6
SLIDE 6

Introduction ⇒ Existing software tools Figure 3: SysQuake icon ⋄ Led to the first project with simplicity of NPID tuning

7/9/3

Aaron Radke

Page 6

slide-7
SLIDE 7

Introduction ⇒ Existing software tools Figure 4: SysQuake window

7/9/3

Aaron Radke

Page 7

slide-8
SLIDE 8

Introduction ⇒ Existing software tools

  • Shortcomings of SysQuake

⋄ Changing the system needed differential equation derivations

7/9/3

Aaron Radke

Page 8

slide-9
SLIDE 9

Introduction ⇒ Proposed approach

Proposed approach

  • Problem formulation

⋄ Start new with difference equations ⋄ Real-time functionality

  • Software development strategy

⋄ Development language Figure 5: Java logo ⋄ Free ⋄ Accessible

7/9/3

Aaron Radke

Page 9

slide-10
SLIDE 10

Introduction ⇒ Proposed approach ⋄ Powerful framework ⋄ Structure

7/9/3

Aaron Radke

Page 10

slide-11
SLIDE 11

Introduction ⇒ Software requirements and specifications

Software requirements and specifications

  • A real time, interactive, dynamic tuning environment

for control systems.

  • Extensible framework
  • Simple construction of nonlinear systems
  • Cross-platform, web application deployment
  • Capability of presenting new control designs and

algorithms

  • Useful and practical for implementation

7/9/3

Aaron Radke

Page 11

slide-12
SLIDE 12

Structural Implementation

Structural Implementation

7/9/3

Aaron Radke

Page 12

slide-13
SLIDE 13

Structural Implementation ⇒ Focus on difference equations

Focus on difference equations

  • Start with the core difference equation solver method
  • The GUI can be built later

7/9/3

Aaron Radke

Page 13

slide-14
SLIDE 14

Structural Implementation ⇒ Fundamental building blocks

Fundamental building blocks

  • Object orientedness

⋄ Library of blocks

  • SimBlocks

⋄ SimSource ⋄ SimFunction ⋄ SimSink ⋄ Class inheritance structure diagrams

7/9/3

Aaron Radke

Page 14

slide-15
SLIDE 15

Structural Implementation ⇒ Fundamental building blocks

JLabel ScrollablePicture SimZtf Sim1stOrder Sim2ndOrder SimStf SimDoubleIntegrator SimIntegrator SimFunction SimAdd SimFunctionFactory SimDiffEq SimDTOC SimFunctionSelector SimGain SimGFunc SimSaturation SimStat SimSubtract SimZtfDirect SimADRC SimDTOCDiff SimFunctionTest SimGeneralClasicController SimNPID SimTest SimBase SimBlock SimParameters SimVariable VariableContainer SimBuffer SimSource SimFactory SimInput SimFunction2Input SimFunctionXInput SimImage SimSourceFactory SimContinuousProfile SimProfile SimTrapezoidalProfile SimDialogManager SimDiff SimFilter SimPid SimDisturbance SimDoubleTriangle SimNoise SimNothing SimPolyProfile SimSourceSelector SimStep SimTimeIndex SimTrapezoid SimSink SimMultiply JApplet SimImageFactory ADRC GCADRC GeneralControlLoop SimpleLoop SimpleLoopNN TestBlock SimNPIDwc SimPtPlot SimStdout SimTextBoxOutput SimCheckBox SimComboBox SimDoubleArray SimNumber SimString SimTextBox SimComboBoxNumber SimComboBoxString SimInteger SimStaticNumber implements Console

Figure 6: The class structure for the blocks (without implementation classes)

7/9/3

Aaron Radke

Page 15

slide-16
SLIDE 16

Structural Implementation ⇒ Fundamental building blocks

Scrollable ScrollablePicture JLabel SimPanelable Sim1stOrder Sim2ndOrder SimADRC SimFunctionFactory SimContinuousProfile SimSourceFactory SimDiff SimStf SimDiffEq SimDisturbance SimDoubleTriangle SimDTOC SimDTOCDiff SimFactory SimFilter SimFunctionSelector SimFunctionTest SimGain SimGeneralClasicController SimGFunc SimImage SimNoise SimNothing SimNPID SimParameters SimPid SimPolyProfile SimProfile SimPtPlot SimSaturation SimSourceSelector SimStat SimStep SimTest SimTextBoxOutput SimTimeIndex SimTrapezoid SimTrapezoidalProfile SimVariable VariableContainer SimZtf SimDoubleIntegrator SimIntegrator SimFunction SimAdd SimSubtract SimZtfDirect SimBase SimBlock SimBuffer SimSource SimInput SimFunction2Input SimFunctionXInput SimDialogManager Iterator Simulatable ADRC Console GCADRC GeneralControlLoop SimpleLoop SimpleLoopNN TestBlock HasOutput SimSink SimMultiply JApplet SimImageFactory HasInput SimNPIDwc SimStdout SimCheckBox SimComboBox SimDoubleArray SimNumber SimString SimTextBox SimComboBoxNumber SimComboBoxString SimInteger SimStaticNumber implements

Figure 7: The entire hierarchal class structure of the project

7/9/3

Aaron Radke

Page 16

slide-17
SLIDE 17

Structural Implementation ⇒ Fundamental building blocks

  • Class inheritance structure

SimPid → SimStf → SimZtf → SimDiffEq → SimFunction → SimBlock → SimBase (1) Table 1: Example hierarchy path of a PID controller Class name provides SimBase simple title and description structures SimBlock the ability to interface with the rest of the simulation library

7/9/3

Aaron Radke

Page 17

slide-18
SLIDE 18

Structural Implementation ⇒ Fundamental building blocks SimFunction the functionality of inputs and

  • utputs

SimDiffEq the ability to create, display, and edit discrete difference equations SimZtf the ability to create, display, and edit z transfer functions and convert them to discrete difference equations SimStf the ability to create, display, and edit s transfer functions and convert them to z transfer functions

7/9/3

Aaron Radke

Page 18

slide-19
SLIDE 19

Structural Implementation ⇒ Fundamental building blocks SimPid the specific transfer function for proportional, integral and derivative control

  • Block interconnection
  • Small memory size
  • Block interconnection method

7/9/3

Aaron Radke

Page 19

slide-20
SLIDE 20

Structural Implementation ⇒ GUI development

GUI development

7/9/3

Aaron Radke

Page 20

slide-21
SLIDE 21

Structural Implementation ⇒ GUI development Figure 8: Screen shot for the sample simtk applet GUI

7/9/3

Aaron Radke

Page 21

slide-22
SLIDE 22

Data Flow Implementation

Data Flow Implementation

7/9/3

Aaron Radke

Page 22

slide-23
SLIDE 23

Data Flow Implementation ⇒ Developer’s viewpoint

Developer’s viewpoint

  • Top-level managing class

⋄ Hierarchy ⋄ SimFactory ⋄ Containment structure of example applets

7/9/3

Aaron Radke

Page 23

slide-24
SLIDE 24

Data Flow Implementation ⇒ Developer’s viewpoint

GeneralControlLoop SimParameters SimFactory SimTextBoxOutput SimPtPlot SimImage SimSubtract SimFunctionSelector SimStep SimSourceSelector SimGain SimADRC SimAdd SimGeneralClasicController SimProfile SimSource SimFunction SimSink SimBlock Simulatable SimBuffer SimPanelable Simulation SimTabBox SimDiffEq SimFucntionSelector SimComboBoxString SimNumber Simple SimFunctionFactory

Figure 9: Simplified example containment of classes for the Gener- alControlLoop applet

7/9/3

Aaron Radke

Page 24

slide-25
SLIDE 25

Data Flow Implementation ⇒ Developer’s viewpoint

  • Setting up a simulation

⋄ Loading or instantiating blocks ⋄ Adding and connecting blocks ⋄ Simulating

  • Building blocks

⋄ Extend a block ⋄ Add adjustable variables ⋄ Override iteration definition

  • Developer’s documentation

7/9/3

Aaron Radke

Page 25

slide-26
SLIDE 26

Data Flow Implementation ⇒ User’s viewpoint

User’s viewpoint

  • Nature of the system
  • Simulation accuracy
  • Globals

7/9/3

Aaron Radke

Page 26

slide-27
SLIDE 27

Comparison of Ode Solvers

Comparison of Ode Solvers

7/9/3

Aaron Radke

Page 27

slide-28
SLIDE 28

Comparison of Ode Solvers ⇒ Simple example problem for comparisons

Simple example problem for comparisons

  • Applet Source

y′(t) = f(t, y(t)) (2) y(t0) = y0 (3)

7/9/3

Aaron Radke

Page 28

slide-29
SLIDE 29

Comparison of Ode Solvers ⇒ Simple example problem for comparisons Figure 10: Comparison of ode solvers with 5 iterations

7/9/3

Aaron Radke

Page 29

slide-30
SLIDE 30

Comparison of Ode Solvers ⇒ Simple example problem for comparisons Figure 11: Comparison of ode solvers with 20 iterations

7/9/3

Aaron Radke

Page 30

slide-31
SLIDE 31

Comparison of Ode Solvers ⇒ Simple example problem for comparisons Figure 12: Comparison of ode solvers with 200 iterations

7/9/3

Aaron Radke

Page 31

slide-32
SLIDE 32

Comparison of Ode Solvers ⇒ Conclusion

Conclusion

  • Ten-fold increase of Tustin over Simple Euler

7/9/3

Aaron Radke

Page 32

slide-33
SLIDE 33

Differential Equation Solver Engine

Differential Equation Solver Engine

7/9/3

Aaron Radke

Page 33

slide-34
SLIDE 34

Differential Equation Solver Engine ⇒ Specific conversions from continuous form to discrete

Specific conversions from continuous form to discrete

  • Simple Euler

s = −1 + z z (4) ⋄ Integrator 1 s → z −1 + z (5) ⋄ Double Integrator 1 s2 → z2 1 − 2 z + z2 (6) ⋄ The problem with the Simple Euler method

  • Tustin

7/9/3

Aaron Radke

Page 34

slide-35
SLIDE 35

Differential Equation Solver Engine ⇒ Specific conversions from continuous form to discrete s = 2 (−1 + z) T (1 + z) (7) ⋄ Integrator 1 s → T + T z −2 + 2 z (8) ⋄ Double Integrator 1 s2 → T 2 + 2 T 2 z + T 2 z2 4 − 8 z + 4 z2 (9) ⋄ First order plant 1 s + a → T + T z −2 + a T + 2 z + a T z (10) ⋄ Second order plant

7/9/3

Aaron Radke

Page 35

slide-36
SLIDE 36

Differential Equation Solver Engine ⇒ Specific conversions from continuous form to discrete ω2 s2 + 2ζω + ω2 → T 2 ω2 + 2 T 2 z ω2 + T 2 z2 ω2 4 − 4 T ζ ω + T 2 ω2 + 2 z (−4 + T 2 ω2) + z2 (4 + 4 T ζ ω + T 2 ω2) (11) ⋄ Second order plant with ω = ζ = 1 1 s2 + 2 + ω2 → T 2 + 2 T 2 z + T 2 z2 4 − 4 T + T 2 − 8 z + 2 T 2 z + 4 z2 + 4 T z2 + T 2 z2 (12) ⋄ PID controller continuous to discrete kps + kds2 + ki s → 4 kd − 2 kp T + ki T 2 − 8 kd z + 2 ki T 2 z + 4 kd z2 + 2 kp T z2 + ki T 2 z2 −2 T + 2 T z2 (13)

7/9/3

Aaron Radke

Page 36

slide-37
SLIDE 37

Differential Equation Solver Engine ⇒ Specific conversions from continuous form to discrete ⋄ Approximate differentiator s (τs + 1)2 → −2 T + 2 T z2 T 2 + 2 T 2 z + T 2 z2 − 4 T τ + 4 T z2 τ + 4 τ 2 − 8 z τ 2 + 4 z2 τ 2 (14)

  • General transfer function derivations

Gp = n0 (15) n0. (16) Gp = n1s + n0 (17)

7/9/3

Aaron Radke

Page 37

slide-38
SLIDE 38

Differential Equation Solver Engine ⇒ Specific conversions from continuous form to discrete −2 n1 + n0 T + 2 n1 z + n0 T z. (18) Gp = n2s2 + n1s + n0 (19) 4 n2 − 2 n1 T + n0 T 2 − 8 n2 z +2 n0 T 2 z + 4 n2 z2 + 2 n1 T z2 + n0 T 2 z2. (20) Gp = n3s3 + n2s2 + n1s + n0 (21)

7/9/3

Aaron Radke

Page 38

slide-39
SLIDE 39

Differential Equation Solver Engine ⇒ Specific conversions from continuous form to discrete −8 n3 + 4 n2 T − 2 n1 T 2 + n0 T 3 +24 n3 z − 4 n2 T z − 2 n1 T 2 z + 3 n0 T 3 z −24 n3 z2 − 4 n2 T z2 + 2 n1 T 2 z2 + 3 n0 T 3 z2 + 8 n3 z3 +4 n2 T z3 + 2 n1 T 2 z3 + n0 T 3 z3. (22) Gp = n4s4 + n3s3 + n2s2 + n1s + n0 (23) 16 n4 − 8 n3 T + 4 n2 T 2 − 2 n1 T 3 + n0 T 4 − 64 n4 z + 16 n3 T z −4 n1 T 3 z + 4 n0 T 4 z + 96 n4 z2 − 8 n2 T 2 z2 + 6 n0 T 4 z2 − 64 n4 z3 −16 n3 T z3 + 4 n1 T 3 z3 + 4 n0 T 4 z3 + 16 n4 z4 +8 n3 T z4 + 4 n2 T 2 z4 + 2 n1 T 3 z4 + n0 T 4 z4. (24)

7/9/3

Aaron Radke

Page 39

slide-40
SLIDE 40

Differential Equation Solver Engine ⇒ General s to z transform matrices

General s to z transform matrices

Zn = Mn · Sn · Tn (25) Sn =           s0 s1 s2 . . . sn           (26)

7/9/3

Aaron Radke

Page 40

slide-41
SLIDE 41

Differential Equation Solver Engine ⇒ General s to z transform matrices Tn =           T 0 T 1 T 2 . . . T n           (27)

  • Conversion matrixes

M0 =

  • 1
  • (28)

M1 =   −2 1 2 1   (29)

7/9/3

Aaron Radke

Page 41

slide-42
SLIDE 42

Differential Equation Solver Engine ⇒ General s to z transform matrices M2 =     −4 −2 1 −8 2 4 2 1     (30) M3 =        −8 4 −2 1 24 −4 −2 3 −24 −4 2 3 8 4 2 1        (31) M4 =           −16 −8 4 −2 1 −64 16 −4 4 −96 −8 6 −64 −16 4 4 16 8 4 2 1           (32)

7/9/3

Aaron Radke

Page 42

slide-43
SLIDE 43

Differential Equation Solver Engine ⇒ General s to z transform matrices Listing 1: S transform to z transform algorithm

for ( int i = 0 ; i<=order ; i ++){ // loop through zˆ i terms // loop each c o e f f i c i e n t ( which i s also Tˆ j terms ) for ( int j = 0 ; j<=order ; j ++){ // c o n t i n u a l l y add up terms for the coef

  • f

zˆ i // s t o r i n g them into zpoly in the form

  • f

zˆ3+zˆ2+z ˆ1 // from MSZ to LSZ zpoly [ order − i ] += c2dmatrix [ i ] [ j ] ∗ Tz [ j ] ; } }

7/9/3

Aaron Radke

Page 43

slide-44
SLIDE 44

Differential Equation Solver Engine ⇒ General z transfer function to difference equations

General z transfer function to difference equations

y r = n0z4 + n1z3 + n2z2 + n3z1 + n4z0 d0z4 + d1z3 + d2z2 + d3z1 + d4z0 (33) z−4 z−4 (34) y = 1 d0 ((n0r + n1rz−1 + n2rz−2 + n3z−3 + n4z−4) −(d1rz−1 + d2rz−2 + d3z−3 + d4z−4)) (35) y = q

i=1(nirz−i − dirz−i) + n0r

d0 (36) z−i → y(k − i) (37)

7/9/3

Aaron Radke

Page 44

slide-45
SLIDE 45

Differential Equation Solver Engine ⇒ General z transfer function to difference equations Listing 2: z transform to difference equation algorithm

double tempsumterms = 0; for ( int i =1; i<=zorder ; i ++){ tempsumterms += num[ i ] ∗ in . val [ i ] − den [ i ] ∗ out . val [ i ] ; } ;

  • ut . val [ 0 ] = (

tempsumterms + num[ 0 ] ∗ in . val [ 0 ] ) / den [ 0 ] ;

7/9/3

Aaron Radke

Page 45

slide-46
SLIDE 46

Controller Design and Implementation

Controller Design and Implementation

7/9/3

Aaron Radke

Page 46

slide-47
SLIDE 47

Controller Design and Implementation ⇒ Parameterization

Parameterization

kd = 2ωc (38) kp = ω2

c

(39)

7/9/3

Aaron Radke

Page 47

slide-48
SLIDE 48

Controller Design and Implementation ⇒ Approximate PID

Approximate PID

u = kpe + ki

  • e + kd ˙

e (40) ˙ u = kp ˙ e + kie + kd¨ e (41) u(s) e(s) = kp + ki s + kd´ s (42) ´ s = s (τs + 1)2 (43)

7/9/3

Aaron Radke

Page 48

slide-49
SLIDE 49

Controller Design and Implementation ⇒ Approximate PID

0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1 2 3 4 5 6 7 8 9 10 time m a g n i t u d e

step tau = 1 tau = 0.25 tau = 5

Figure 13: 2nd order approximate derivative with tau=1,0.5,0.25 on a step function u(s) e(s) = kp + ki s + kd s (τs + 1)2 (44)

7/9/3

Aaron Radke

Page 49

slide-50
SLIDE 50

Controller Design and Implementation ⇒ Approximate PID u(s) e(s) = s3(kpτ 2) + s2(kd + 2kpτ + kiτ 2) + s(kp + 2kiτ) + ki s3(τ 2) + s2(2τ) + s(1) + s(0) (45)

7/9/3

Aaron Radke

Page 50

slide-51
SLIDE 51

Controller Design and Implementation ⇒ Nonlinear PID

Nonlinear PID

  • Extension of classical PID

u = Gkp(e)e + Gki(e)

  • e + Gkd(e)˙

e (46)

  • Gfunc

10 20 30 40 50 1 2 3 4 5 6 7 8 9 10 time m a g n i t u d e

Figure 14: Nonlinear GFunction

7/9/3

Aaron Radke

Page 51

slide-52
SLIDE 52

Controller Design and Implementation ⇒ Nonlinear PID Gx(e, kp1, kp2, kn1, kn2, wp, wn) =                e > 0    e · kp1 |e| < wp e · kp2 |e| ≥ wp e ≤ 0    e · kn1 |e| < np e · kn2 |e| ≥ np (47)

7/9/3

Aaron Radke

Page 52

slide-53
SLIDE 53

Controller Design and Implementation ⇒ Active Disturbance Rejection Control

Active Disturbance Rejection Control

˙ x1 = x2 (48) ˙ x2 = x3 + b0u ˙ x3 = h(t) ˙ z1 = z2 + B1(y − z1) (49) ˙ z2 = z3 + B2(y − z1) + b0u ˙ z3 = B3(y − z1) u = u0 − z3 b0 (50)

7/9/3

Aaron Radke

Page 53

slide-54
SLIDE 54

Controller Design and Implementation ⇒ Active Disturbance Rejection Control

r r y+n u ADRC general controller pre-filter (includes controller and observer) feedback-filter (includes controller and observer)

Figure 15: ADRC block diagram controller depicting the separation into two transfer functions U(s) R(s) = ω2

c

  • 1

3ωo 3ω2

  • ω3
  • · S

b0 [(1) (3ωo + 2ωc) (3ωo2ωc + ω2

c + 3ω2

  • )

(0)] · S (51)

7/9/3

Aaron Radke

Page 54

slide-55
SLIDE 55

Controller Design and Implementation ⇒ Active Disturbance Rejection Control Y (s) R(s) = ω2

c

  • (3ωoω2

c + 3ω2

  • 2ωc + ω3
  • )

(3ω2

  • ω2

c + ω3

  • 2ωc)

(ω3

  • ω3

c)

  • · S

b0 [(1) (3ωo + 2ωc) (3ωo2ωc + ω2

c + 3ω2

  • )

(0)] · S (52) S =        s3 s2 s1 s        (53) b0 = Largest plant numerator coefficient Highest order plant denominator coefficient (54)

7/9/3

Aaron Radke

Page 55

slide-56
SLIDE 56

Controller Design and Implementation ⇒ Discrete Time Optimal Control

Discrete Time Optimal Control

u = −rsign

  • x1 + x2|x2|

2r

  • (55)

7/9/3

Aaron Radke

Page 56

slide-57
SLIDE 57

Controller Design and Implementation ⇒ Discrete Time Optimal Control u = fst(x1, x2, r, h) (56) d = rh d0 = hd y = x1 + hx2 a0 =

  • d2 + 8r|y|

a =    x2 + a0−d

2

sign(y), |y| > d0 x2 + y

h,

|y| ≤ d0 fst = −    rsign(a), |a| > d r a

d,

|a| ≤ d

7/9/3

Aaron Radke

Page 57

slide-58
SLIDE 58

A General Model Diagram

A General Model Diagram

7/9/3

Aaron Radke

Page 58

slide-59
SLIDE 59

A General Model Diagram ⇒ Classic system

Classic system

controller plant

  • utput

input

Figure 16: Simple classic controller without noise or disturbance

controller plant

  • utput

sensor noise input disturbance r e y+n u y

Figure 17: Classic controller model setup with noise and disturbance

7/9/3

Aaron Radke

Page 59

slide-60
SLIDE 60

A General Model Diagram ⇒ Combined General System

Combined General System

plant r y+n u y controller

  • utput

sensor noise input disturbance

Figure 18: New General controller model setup

7/9/3

Aaron Radke

Page 60

slide-61
SLIDE 61

A General Model Diagram ⇒ General Blocks

General Blocks

r y+n u general controller 2 inputs one output

Figure 19: New General controller block

7/9/3

Aaron Radke

Page 61

slide-62
SLIDE 62

A General Model Diagram ⇒ General Blocks

r y+n u improved general controller pre-filter feedback-filter e classic controller ( ex. PID )

Figure 20: Improved General controller to include pre-filter and ob- server before summing loop

7/9/3

Aaron Radke

Page 62

slide-63
SLIDE 63

A General Model Diagram ⇒ General Blocks

r e y+n u general controller example classic controller ( ex. PID )

Figure 21: New General controller block example using PID

7/9/3

Aaron Radke

Page 63

slide-64
SLIDE 64

A General Model Diagram ⇒ General Blocks

r r y+n u ADRC general controller pre-filter (includes controller and observer) feedback-filter (includes controller and observer)

Figure 22: ADRC Controller (which is a special case of the improved general controller where error controller is unity)

7/9/3

Aaron Radke

Page 64

slide-65
SLIDE 65

Summary and Future Research

Summary and Future Research

7/9/3

Aaron Radke

Page 65

slide-66
SLIDE 66

Summary and Future Research ⇒ Summary

Summary

⋄ A real time, interactive, dynamic tuning environment for control systems. ⋄ Extensible framework ⋄ Simple construction of nonlinear systems ⋄ Cross-platform, web application deployment, ⋄ Useful and practical for implementation

  • Simulation building blocks
  • Simple GUI examples

⋄ Teaching tool ⋄ Capability of presenting new control designs and algorithms

7/9/3

Aaron Radke

Page 66

slide-67
SLIDE 67

Summary and Future Research ⇒ Future research

Future research

  • Additional library blocks
  • Graphical setup of SimBlocks
  • Extension to a hardware tuning and monitoring

interface ⋄ Use the library to find new tuning parameters ⋄ Network protocols

  • Extension to Automated Computer Assisted Design

for Controls

7/9/3

Aaron Radke

Page 67

slide-68
SLIDE 68

Project Tools

Project Tools

7/9/3

Aaron Radke

Page 68

slide-69
SLIDE 69

Project Tools ⇒ Software Packages

Software Packages

  • Java
  • Mathematica
  • SysQuake
  • Matlab
  • Ptolemy
  • Java math exploration
  • Octave
  • Perl
  • Gnuplot
  • Simple ode solvers
  • Hartmath

7/9/3

Aaron Radke

Page 69

slide-70
SLIDE 70

Project Tools ⇒ Software Packages

  • Vim
  • Graphviz
  • L

A

T EX

7/9/3

Aaron Radke

Page 70

slide-71
SLIDE 71

Project Tools ⇒ Constructed tools

Constructed tools

  • Aaindex
  • Aao2tex
  • Aao2pdf
  • Aao.vim
  • Java2dot
  • Containment
  • Aao2dot
  • ExtractClassInfo
  • Compressgif
  • Csuthesis.sty

7/9/3

Aaron Radke

Page 71

slide-72
SLIDE 72

Http://academic.csuohio.edu/aerl/simtk

Http://academic.csuohio.edu/aerl/simtk

7/9/3

Aaron Radke

Page 72

slide-73
SLIDE 73

Demo

Demo

7/9/3

Aaron Radke

Page 73

slide-74
SLIDE 74

Demo

List of Slides

2 Outline 3 Introduction 4 Existing software tools 9 Proposed approach 11 Software requirements and specifications 12 Structural Implementation 13 Focus on difference equations 14 Fundamental building blocks 20 GUI development 22 Data Flow Implementation 23 Developer’s viewpoint

7/9/3

Aaron Radke

Page 74

slide-75
SLIDE 75

Demo 26 User’s viewpoint 27 Comparison of Ode Solvers 28 Simple example problem for comparisons 32 Conclusion 33 Differential Equation Solver Engine 34 Specific conversions from continuous form to discrete 40 General s to z transform matrices 44 General z transfer function to difference equations 46 Controller Design and Implementation 47 Parameterization 48 Approximate PID 51 Nonlinear PID 53 Active Disturbance Rejection Control

7/9/3

Aaron Radke

Page 75

slide-76
SLIDE 76

Demo 56 Discrete Time Optimal Control 58 A General Model Diagram 59 Classic system 60 Combined General System 61 General Blocks 65 Summary and Future Research 66 Summary 67 Future research 68 Project Tools 69 Software Packages 71 Constructed tools 72 Http://academic.csuohio.edu/aerl/simtk 73 Demo

7/9/3

Aaron Radke

Page 76

slide-77
SLIDE 77

Index

L

AT

EX, 70 A General Model Diagram, 58 A real time, interactive, dynamic tuning environment for control systems., 11 aaindex, 71, 76-1 Aaindex, 71 aao.vim, 71, 76-1 Aao.vim, 71 aao2dot, 71, 76-1 Aao2dot, 71 aao2pdf, 71, 76-1 Aao2pdf, 71 aao2tex, 71, 76-1 Aao2tex, 71 Active Disturbance Rejection Con- trol, 53 Additional library blocks, 67 Applet Source, 28 Approximate PID, 48 Block interconnection, 19 Block interconnection method, 19 Building blocks, 25 Capability of presenting new con- trol designs and algo- rithms, 11 Class inheritance structure, 17 Classic system, 59 Combined General System, 60 Comparison of Ode Solvers, 27 76-1

slide-78
SLIDE 78

Demo compressgif, 71, 76-2 Compressgif, 71 Conclusion, 32 Constructed tools, 71 containment, 71, 76-2 Containment, 71 Controller Design and Implemen- tation, 46 Conversion matrixes, 41 Cross-platform, web application deployment, 11 csuthesis.sty, 71, 76-2 Csuthesis.sty, 71 Data Flow Implementation, 22 Demo, 73 Developer’s documentation, 25 Developer’s viewpoint, 23 Differential Equation Solver En- gine, 33 Discrete Time Optimal Control, 56 Existing software tools, 4 Extensible framework, 11 Extension of classical PID, 51 Extension to a hardware tuning and monitoring interface, 67 Extension to Automated Com- puter Assisted Design for Controls, 67 extractClassInfo, 71, 76-2 ExtractClassInfo, 71 Focus on difference equations, 13 Fundamental building blocks, 14 Future research, 67

7/9/3

Aaron Radke

Page 76

slide-79
SLIDE 79

Demo General s to z transform matri- ces, 40 General z transfer function to dif- ference equations, 44 General Blocks, 61 General transfer function deriva- tions, 37 Gfunc, 51 Globals, 26 Gnuplot, 69 Graphical setup of SimBlocks, 67 Graphviz, 70 GUI development, 20 Hartmath, 69 Http://academic.csuohio.edu/aerl/simtk, 72 Introduction, 3 Java, 69 Java math exploration, 69 java2dot, 71, 76-3 Java2dot, 71 Mathematica, 69 Matlab, 4, 69 Nature of the system, 26 Nonlinear PID, 51 Object orientedness, 14 Octave, 69 Parameterization, 47 Perl, 69 Problem formulation, 9 Project Tools, 68 Proposed approach, 9 Ptolemy, 69

7/9/3

Aaron Radke

Page 76

slide-80
SLIDE 80

Demo Setting up a simulation, 25 Shortcomings of Matlab, 4 Shortcomings of SysQuake, 8 SimBlocks, 14 Simple construction of nonlinear systems, 11 Simple Euler, 34 Simple example problem for com- parisons, 28 Simple GUI examples, 66 Simple ode solvers, 69 Simulation accuracy, 26 Simulation building blocks, 66 Small memory size, 19 Software development strategy, 9 Software Packages, 69 Software requirements and spec- ifications, 11 Specific conversions from contin- uous form to discrete, 34 Start with the core difference equa- tion solver method, 13 Structural Implementation, 12 Summary, 66 Summary and Future Research, 65 SysQuake, 5, 69 Ten-fold increase of Tustin over Simple Euler, 32 The GUI can be built later, 13 Top-level managing class, 23 Tustin, 34 Useful and practical for imple- mentation, 11

7/9/3

Aaron Radke

Page 76

slide-81
SLIDE 81

Demo User’s viewpoint, 26 Vim, 69

7/9/3

Aaron Radke

Page 76