1. The Empirical Process
- at the very core of agile everything
Daniel Brolund
@danielbrolund
daniel.brolund@agical.com
2. Lets start with an exercise!
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
3. Lets start with an exercise!
Drop-
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
4. Lets start with an exercise!
Drop-
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
5. Lets start with an exercise!
Robot
Drop-
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
6. Lets start with an exercise!
Controller
Robot
Drop-
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
7. Lets start with an exercise!
↑
Controller
Robot
↑
Drop-
P
zone
↑
D
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
8. Lets start with an exercise!
Goal: Max nr of paper
balls in dropzone!
↑
Controller
Robot
↑
Drop-
P
zone
↑
D
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
9. Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
10. Discussion - groups of 4-6
What happened?
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
11. An everyday empirical process...
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
12. An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
13. An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
14. An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
15. An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
16. An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
17. An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
18. An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
19. An everyday empirical process...
Do I jump in...?
Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
20. An everyday empirical process...
Do I jump in...?
Schematic: Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
21. An everyday empirical process...
Do I jump in...?
Desired
Schematic: Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
22. An everyday empirical process...
Do I jump in...?
Desired
Schematic: Me
Desired
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
23. An everyday empirical process...
Do I jump in...?
Desired
Controller
Schematic: Me
Desired
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
24. An everyday empirical process...
Do I jump in...?
Desired
Controller
Schematic: Me
Desired
Controller
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
25. An everyday empirical process...
Do I jump in...?
Desired
Controller
System
input
Schematic: Me
Desired
Controller
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
26. An everyday empirical process...
Do I jump in...?
Desired
Controller
System
input
Schematic: Me
System
Desired input
Controller
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
27. An everyday empirical process...
Do I jump in...?
Desired
System
Controller
System
input
Schematic: Me
System
Desired input
Controller
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
28. An everyday empirical process...
Do I jump in...?
Desired
System
Controller
System
input
Schematic: Me
System
Desired input
Controller System
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
29. An everyday empirical process...
Do I jump in...?
Desired
System
Controller Actual
System
input
Schematic: Me
System
Desired input
Controller System
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
30. An everyday empirical process...
Do I jump in...?
Desired
System
Controller Actual
System
input
Schematic: Me
System
Desired input Actual
Controller System
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
31. An everyday empirical process...
Do I jump in...?
Desired
Actual==Desired ?
System
Controller Actual
System
input
Schematic: Me
System
Desired input Actual
Controller System
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
32. An everyday empirical process...
Do I jump in...?
Desired
Actual==Desired ?
System
Controller Actual
System
input
Schematic: Me
System
Temp
Desired input Actual
Controller System
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
33. An everyday empirical process...
Do I jump in...?
Desired
Actual==Desired ?
System
Controller Actual
System
input
Schematic: Me
System
Temp
Desired input Actual
Controller System
Desired
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
34. An everyday empirical process...
Do I jump in...?
Desired
Actual==Desired ?
System
Controller Actual
System
input
Schematic: Me
System
Temp
Desired input Actual
Controller System
Desired
Actual
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
35. An everyday empirical process...
Do I jump in...?
Desired
Actual==Desired ?
System
Controller Actual
System
input
Schematic: Me
System
Temp
Desired input Actual
Controller System
Desired
Actual
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
36. An everyday empirical process...
Do I jump in...?
Desired
Actual==Desired ?
System
Controller Actual
System
input
Schematic: Me
System
Temp
Desired input Actual
Controller System
Desired
Actual
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
37. An everyday empirical process...
Do I jump in...?
Desired
Actual==Desired ?
System
Controller Actual
System
input
Schematic: Me
System
Temp
Desired input Actual
Controller System
Desired
Actual
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
38. An everyday empirical process...
Do I jump in...?
Desired
Actual==Desired ?
System
Controller Actual
System
input
Schematic: Me
System
Temp
Desired input Actual
Controller System
?
Desired
Actual
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
39. An everyday empirical process...
Do I jump in...?
Desired
Actual==Desired ?
System
Controller Actual
System
input
Schematic: Me
System
Temp
Desired input Actual
Controller System
Desired
Actual Robot
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
40. What is the control error?
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
41. What is the control error?
Temp
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
42. What is the control error?
Temp
Desired
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
43. What is the control error?
Temp
Desired
Actual
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
44. What is the control error?
Temp
Desired
Actual
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
45. What is the control error?
Temp
"Error surface"
Desired
Actual
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
46. What is the control error?
Temp
"Error surface"
Desired
Actual
Time
Control Error = ∫|Desired-Actual|
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
47. What is the control error?
Temp
"Error surface"
Desired
Actual
Time
Control Error = ∫|Desired-Actual|
Control error
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
48. What is the control error?
Temp
"Error surface"
Desired
Actual
Time
Control Error = ∫|Desired-Actual|
Control error
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
49. What is the control error?
Temp
"Error surface"
Desired
Actual
Time
Control Error = ∫|Desired-Actual|
Control error
∞
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
50. The "simplistic" solution
System
Desired input Actual
Controller System
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
51. The "simplistic" solution
System
-1
Desired
Controller
input
System
Actual Controller=(System)
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
52. The "simplistic" solution
System
-1
Desired
Controller
input
System
Actual Controller=(System)
Desired = Actual
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
53. The "simplistic" solution
System
-1
Desired
Controller
input
System
Actual Controller=(System)
Desired = Actual
Requires:
- detailed knowledge of System, Desired and hence Actual
- that such a Controller exists and can create such System input
- that the System can handle System input
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
54. The "simplistic" solution
ε
Errors
System
-1
Desired
Controller
input
System
Actual Controller=(System)
Desired = Actual
Requires:
- detailed knowledge of System, Desired and hence Actual
- that such a Controller exists and can create such System input
- that the System can handle System input
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
55. The "simplistic" solution
ε
Errors
System
-1
Desired
Controller
input
System
Actual Controller=(System)
∞ Desired = Actual
"Unlimited"
energy
Requires:
- detailed knowledge of System, Desired and hence Actual
- that such a Controller exists and can create such System input
- that the System can handle System input
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
56. The "simplistic" solution
ε
Errors
System
-1
Desired
Controller
input
System
Actual Controller=(System)
Change ∞ Desired = Actual
"Unlimited"
energy
Requires:
- detailed knowledge of System, Desired and hence Actual
- that such a Controller exists and can create such System input
- that the System can handle System input
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
57. The "simplistic" solution
Complexity System
ε
Errors
-1
Desired
Controller
input
System
Actual Controller=(System)
Change ∞ Desired = Actual
"Unlimited"
energy
Requires:
- detailed knowledge of System, Desired and hence Actual
- that such a Controller exists and can create such System input
- that the System can handle System input
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
58. The "simplistic" solution
Complexity System
ε
Errors
-1
Desired
Controller
input
System
Actual Controller=(System)
Change ∞ Desired = Actual
"Unlimited"
energy
Won't work in reality
Requires:
- detailed knowledge of System, Desired and hence Actual
- that such a Controller exists and can create such System input
- that the System can handle System input
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
59. Exercise 2
Controller
Drop-
zone
Robot
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
60. Exercise 2
As before, but now
only one step at a time!
Controller
Drop-
zone
Robot
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
61. Exercise 2
As before, but now
only one step at a time!
↑
Controller
Drop-
zone
Robot
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
62. Exercise 2
As before, but now
only one step at a time!
↑
Controller
Drop-
zone
Robot
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
63. Exercise 2
As before, but now
only one step at a time!
↑
Controller
↑
Drop-
zone
Robot
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
64. Exercise 2
As before, but now
only one step at a time!
↑
Controller
↑
Drop-
P
zone
Robot
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
65. Exercise 2
As before, but now
only one step at a time!
↑
Controller
↑
Drop-
P
zone
Robot
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
66. Exercise 2
As before, but now
only one step at a time!
↑
Controller
↑
Drop-
P
zone
↑
Robot
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
67. Exercise 2
As before, but now
only one step at a time!
↑
Controller
↑
Drop-
P
zone
↑
Robot
D
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
68. Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
69. Discussion - groups of 4-6
What happened this time?
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
70. Adding feedback!
Desired
System
Controller Actual
System
input
Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
71. Adding feedback!
Desired
System
Controller Actual
System
input
Schematic: Me
System
Desired input Actual
Controller System
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
72. Adding feedback!
Desired
System
Controller Actual
System
input
Schematic: Me
System
Desired input Actual
Controller System
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
73. Adding feedback!
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
Desired input Actual
Controller System
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
74. Adding feedback!
Observed
result
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
Desired input Actual
Controller System
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
75. Adding feedback!
Observed
result
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
Desired input Actual
Controller System
Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
76. Adding feedback!
Observed
result
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
-
Desired Error input Actual
Controller System
Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
77. Adding feedback!
Observed
result
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
-
Desired Error input Actual
Controller System
Feed-back or Closed-loop system
Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
78. Adding feedback!
Observed
result
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
Temp
-
Desired Error input Actual
Controller System
Feed-back or Closed-loop system
Observed result
Sensor
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
79. Adding feedback!
Observed
result
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
Temp
-
Desired Error input Actual
Controller System
Desired
Feed-back or Closed-loop system
Observed result
Sensor
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
80. Adding feedback!
Observed
result
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
Temp
-
Desired Error input Actual
Controller System
Desired
Feed-back or Closed-loop system
Observed result Actual
Sensor
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
81. Adding feedback!
Observed
result
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
Temp
-
Desired Error input Actual
Controller System
Desired
Feed-back or Closed-loop system
Observed result Actual
Sensor
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
82. What is the control error now?
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
83. What is the control error now?
Temp
Desired
Actual
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
84. What is the control error now?
Temp
Desired
Actual
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
85. What is the control error now?
Temp
Desired
Actual
Control Error = ∫|Desired-Actual|
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
86. What is the control error now?
Temp
Desired
Actual
Control Error = ∫|Desired-Actual|
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
87. What is the control error now?
Temp
Desired
Actual
Control Error = ∫|Desired-Actual|
Control error
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
88. What is the control error now?
Temp
Desired
Actual
Control Error = ∫|Desired-Actual|
Control error
Actual
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
89. What is the control error now?
Temp
Desired
Actual
Control Error = ∫|Desired-Actual|
Control error
Actual bounded!!
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
90. In software: There are many feedback loops at play!
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
91. In software: There are many feedback loops at play!
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
92. In software: There are many feedback loops at play!
Live user feedback/release
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
93. In software: There are many feedback loops at play!
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
94. In software: There are many feedback loops at play!
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
95. In software: There are many feedback loops at play!
Retrospective
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
96. In software: There are many feedback loops at play!
Whiteboard discussions
Retrospective
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
97. In software: There are many feedback loops at play!
Daily stand-up
Whiteboard discussions
Retrospective
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
98. In software: There are many feedback loops at play!
Daily stand-up
Whiteboard discussions
Retrospective
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
99. In software: There are many feedback loops at play!
ATDD
Daily stand-up
Whiteboard discussions
Retrospective
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
100. In software: There are many feedback loops at play!
TDD
ATDD
Daily stand-up
Whiteboard discussions
Retrospective
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
101. In software: There are many feedback loops at play!
TDD
ATDD
Daily stand-up
Whiteboard discussions
Retrospective
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
102. In software: There are many feedback loops at play!
Pairing
TDD
ATDD
Daily stand-up
Whiteboard discussions
Retrospective
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
103. In software: There are many feedback loops at play!
Compilation Pairing
TDD
ATDD
Daily stand-up
Whiteboard discussions
Retrospective
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
104. In software: There are many feedback loops at play!
Squiggles Compilation Pairing
TDD
ATDD
Daily stand-up
Whiteboard discussions
Retrospective
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
105. In software: There are many feedback loops at play!
Squiggles Compilation Pairing
TDD
ATDD
Daily stand-up
...AND MANY MORE!
Whiteboard discussions
Retrospective
Live user feedback/release Usability tests
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
106. Exercise 3: Draw your own feedback loops
TDD 10s
Retros 1w
Release 1m
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
107. Exercise 4
Controller
Robot
Drop-
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
108. Exercise 4
As before, but now
now three steps at a
time!
Controller
Robot
Drop-
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
109. Exercise 4
As before, but now
now three steps at a
↑
time!
Controller
Robot
Drop-
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
110. Exercise 4
As before, but now
now three steps at a
↑
time!
Controller
Robot
Drop-
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
111. Exercise 4
As before, but now
now three steps at a
↑
time!
Controller
Robot
↑
Drop-
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
112. Exercise 4
As before, but now
now three steps at a
↑
time!
Controller
Robot
↑
Drop-
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
113. Exercise 4
As before, but now
now three steps at a
↑
time!
Controller
Robot
↑
Drop-
P
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
114. Exercise 4
As before, but now
now three steps at a
↑
time!
Controller
Robot
↑
Drop-
P
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
115. Exercise 4
As before, but now
now three steps at a
↑
time!
Controller
Robot
↑
Drop-
P
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
116. Exercise 4
As before, but now
now three steps at a
↑
time!
Controller
Robot
↑
Drop-
P
zone
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
117. Exercise 4
As before, but now
now three steps at a
↑
time!
Controller
Robot
↑
Drop-
P
zone
↑
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
118. Exercise 4
As before, but now
now three steps at a
↑
time!
Controller
Robot
↑
Drop-
P
zone
↑
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
119. Exercise 4
As before, but now
now three steps at a
↑
time!
Controller
Robot
↑
Drop-
P
zone
↑
D
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
120. Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
121. Discussion - groups of 4-6
What happened this time?
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
122. The impact of delay
Desired
System
Sensor
Controller Actual
System
input
Me
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
123. The impact of delay
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
-
Desired Error input Actual
Controller System
Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
124. The impact of delay
Delay
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
-
Desired Error input Actual
Controller System
Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
125. The impact of delay
Delay
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
-
Desired Error input Actual
Controller System Delay
Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
126. The impact of delay
Delay
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
Temp
-
Desired Error input Actual
Controller System Delay
Observed result
Sensor
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
127. The impact of delay
Delay
Desired
System
Sensor
Controller Actual
System
input
Schematic: Me
System
Temp
-
Desired Error input Actual
Controller System Delay
Desired
Observed result
Sensor
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
128. The impact of delay
Delay
Desired
System
Sensor
Tap temp
Controller Actual
System
input
Schematic: Me
System
Temp
-
Desired Error input Actual
Controller System Delay
Desired
Observed result
Sensor
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
129. The impact of delay
Delay
Desired
System
Sensor
Tap temp
Controller Actual
System
input
Schematic: Me
System Tap temp
Temp
-
Desired Error input Actual
Controller System Delay
Desired
Observed result
Sensor
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
130. The impact of delay
Delay
Desired
System
Sensor
Tap temp
Controller Actual
System
input
Schematic: Me
System Tap temp
Temp
-
Desired Error input Actual
Controller System Delay
Desired
Tap temp
Observed result
Sensor
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
131. The impact of delay
Delay
Desired
System
Sensor
Tap temp
Controller Actual
System
input
Schematic: Me
System Tap temp
Temp
-
Desired Error input Actual
Controller System Delay
Desired
Tap temp
Observed result Observed
Sensor
result
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
132. The impact of delay
Delay
Desired
System
Sensor
Tap temp
Controller Actual
System
input
Schematic: Me
System Tap temp
Temp
-
Desired Error input Actual
Controller System Delay
Desired
Tap temp
Observed result Observed
Sensor
result
Time
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
134. Delay considerations
Temp
Desired
Tap temp
Observed
result
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
135. Delay considerations
Temp delay > half of required
cycletime
Desired
Tap temp
Observed Guaranteed instability!
result (in practice, instability comes earlier)
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
136. Delay considerations
Temp delay > half of required
cycletime
Desired
Tap temp
Observed Guaranteed instability!
result (in practice, instability comes earlier)
It often takes about 5-10 times
the delay to tune the system
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
138. More delay considerations
System
input
-
Desired Error Actual
Controller System
Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
139. More delay considerations
System
input
-
Desired Error Actual
Delay position in Controller System
loop is irrelevant
w.r.t. instability! Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
140. More delay considerations
System
input
-
Desired Error Actual
Delay position in Controller System Delay
loop is irrelevant
w.r.t. instability! Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
141. More delay considerations
System
input
-
Desired Error Actual
Delay position in Controller System
loop is irrelevant
w.r.t. instability! Observed result
Sensor Delay
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
142. More delay considerations
System
input
-
Desired Error Actual
Delay position in Controller System
loop is irrelevant
w.r.t. instability! Observed result
Delay Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
143. More delay considerations
System
input
-
Desired Error Actual
Delay position in Delay Controller System
loop is irrelevant
w.r.t. instability! Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
144. More delay considerations
System
input
-
Desired Error Actual
Delay position in Controller Delay System
loop is irrelevant
w.r.t. instability! Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
146. Feedback delay considerations
Feedback cycle-time sweet-
spots are different due to
processing and delays
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
147. Feedback delay considerations
Feedback cycle-time sweet-
spots are different due to
processing and delays
slower that
desired change
Unstable
system
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
148. Feedback delay considerations
Feedback cycle-time sweet-
spots are different due to
processing and delays
slower that faster than desired
desired change change
Unstable Controller
system overloaded or too
expensive
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
149. Feedback delay considerations
Feedback cycle-time sweet-
spots are different due to
processing and delays
slower that faster than desired
desired change change
inner
Unstable Controller
or ten
system overloaded or too
expensive
want to sh re ou ter!
You loops befo
feed bac k
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
151. Observability and controllability
-
Desired Actual
Controller System
System
Error
input
Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
152. Observability and controllability
Uncontrollable
-
Desired Actual
Controller System
System
Error
input
Observed result
Sensor
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
153. Observability and controllability
Uncontrollable
-
Desired Actual
Controller System
System
Error
input
Observed result
Sensor
Unobservable
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
154. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
155. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
156. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Water temperature
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
157. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Water temperature
Flow
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
158. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Water temperature
Flow Acidity
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
159. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Water temperature
Flow Acidity
Mineral traces
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
160. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Water temperature
Flow Acidity
Mineral traces
Radioactivity
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
161. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Water temperature
Flow Acidity SW
Mineral traces
Radioactivity
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
162. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Water temperature
Flow Acidity SW Lines of code
Mineral traces
Radioactivity
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
163. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Water temperature
Flow Acidity SW Lines of code
Unit test results
Mineral traces
Radioactivity
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
164. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Water temperature
Flow Acidity SW Lines of code
Unit test results
Mineral traces ROI
Radioactivity
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
165. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Water temperature
Flow Acidity SW Lines of code
Unit test results
Mineral traces ROI Acceptance test results
Radioactivity
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com
166. Observability and controllability
Uncontrollable
The Sensor has to
- measure
Desired Actual
Controller System
Error
System
input
a relevant state
(observability) that the
Observed result
Sensor Controller
can influence
Unobservable
(controllability).
Water temperature
Flow Acidity SW Lines of code
Unit test results
Mineral traces ROI Acceptance test results
Radioactivity Nr of checkins
Daniel Brolund — @danielbrolund — daniel.brolund@agical.com