the empirical process - agile alliance
TRANSCRIPT
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Me
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Desired
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Desired
Desired
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Desired
Desired
Controller
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
ControllerDesired
Desired
Controller
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
ControllerDesired
Desired
Systeminput
Controller
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
ControllerDesired
Systeminput
Desired
Systeminput
Controller
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
ControllerDesired
Systeminput
Desired
Systeminput
Controller
System
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Controller SystemDesired
Systeminput
Desired
Systeminput
Controller
System
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Controller SystemDesired
Systeminput
Desired
Systeminput
ActualController
System
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Controller SystemActualDesired
Systeminput
Desired
Systeminput
ActualController
System
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Controller SystemActualDesired
Systeminput
Desired
Systeminput
ActualController
System
Feed-forward or Open-loop system
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Actual==Desired ?
Controller SystemActualDesired
Systeminput
Desired
Systeminput
ActualController
System
Feed-forward or Open-loop system
Schematic: Me
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Actual==Desired ?
Controller SystemActualDesired
Systeminput
Desired
Systeminput
ActualController
System
Feed-forward or Open-loop system
Time
Schematic: MeTemp
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Actual==Desired ?
Controller SystemActualDesired
Systeminput
Desired
Systeminput
ActualController
System
Feed-forward or Open-loop system
Time
Desired
Schematic: MeTemp
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Actual==Desired ?
Controller SystemActualDesired
Systeminput
Desired
Systeminput
ActualController
System
Feed-forward or Open-loop system Actual
Time
Desired
Schematic: MeTemp
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Actual==Desired ?
Controller SystemActualDesired
Systeminput
Desired
Systeminput
ActualController
System
Feed-forward or Open-loop system Actual
Time
Desired
Schematic: MeTemp
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Actual==Desired ?
Controller SystemActualDesired
Systeminput
Desired
Systeminput
ActualController
System
Feed-forward or Open-loop system Actual
Time
Desired
Schematic: MeTemp
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Actual==Desired ?
Controller SystemActualDesired
Systeminput
Desired
Systeminput
ActualController
System
Feed-forward or Open-loop system Actual
Time
Desired
Schematic: MeTemp
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
An everyday empirical process...
Actual==Desired ?
Controller SystemActualDesired
Systeminput
Desired
Systeminput
ActualController
System
Feed-forward or Open-loop system ?Actual
Time
Desired
Schematic: MeTemp
Do I jump in...?
Daniel Brolund — @danielbrolund — [email protected]
Exercise on feed-forward systems
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Robot
Exercise on feed-forward systems
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
RobotController
Exercise on feed-forward systems
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
RobotController
Exercise on feed-forward systems
↑↰
P
↱
D
↑
↑
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
Exercise on feed-forward systems
↑↰
P
↱
D
↑
↑
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
Tracker counts paper balls in dropzone as a function of time
Exercise on feed-forward systems
↑↰
P
↱
D
↑
↑
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Tracker counts paper balls in dropzone as a function of time
Exercise on feed-forward systems
↑↰
P
↱
D
↑
↑
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
Goal: Meet desired nr of paper balls in dropzone (see graph)
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Tracker counts paper balls in dropzone as a function of time
Exercise on feed-forward systems
↑↰
P
↱
D
↑
↑
Daniel Brolund — @danielbrolund — [email protected]
What is the control error?
Daniel Brolund — @danielbrolund — [email protected]
Actual
Time
Desired
What is the control error?Temp
Daniel Brolund — @danielbrolund — [email protected]
Actual
Time
Desired
What is the control error?Temp
Daniel Brolund — @danielbrolund — [email protected]
Actual
Time
Desired
What is the control error?Temp
"Error surface"
Daniel Brolund — @danielbrolund — [email protected]
Actual
Time
Desired
Control Error = ∫|Desired-Actual|
What is the control error?Temp
"Error surface"
Daniel Brolund — @danielbrolund — [email protected]
Actual
Time
Desired
Control Error = ∫|Desired-Actual|
What is the control error?Temp
"Error surface"
Time
Control error
Daniel Brolund — @danielbrolund — [email protected]
Actual
Time
Desired
Control Error = ∫|Desired-Actual|
What is the control error?Temp
"Error surface"
Time
Control error
Daniel Brolund — @danielbrolund — [email protected]
Actual
Time
Desired
Control Error = ∫|Desired-Actual|
What is the control error?Temp
"Error surface"
Time
Control error∞
Daniel Brolund — @danielbrolund — [email protected]
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
Impact of robot precision?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Impact of robot precision?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
What are the delays?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
What are the delays?
Points of Discussion - groups of 4-6
Impact of iteration length?
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
What are the delays?
Similarities with software development?
Points of Discussion - groups of 4-6
Impact of iteration length?
Daniel Brolund — @danielbrolund — [email protected]
The "simplistic" solution
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
The "simplistic" solution
Controller SystemActualDesired
Systeminput Controller=(System)-1
Daniel Brolund — @danielbrolund — [email protected]
The "simplistic" solution
Controller SystemActualDesired
Systeminput Controller=(System)-1
⇒Desired = Actual
Daniel Brolund — @danielbrolund — [email protected]
The "simplistic" solution
Controller SystemActualDesired
Systeminput Controller=(System)-1
⇒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 — [email protected]
The "simplistic" solution
Controller SystemActualDesired
Systeminput Controller=(System)-1
⇒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
Errorsε
Daniel Brolund — @danielbrolund — [email protected]
The "simplistic" solution
Controller SystemActualDesired
Systeminput Controller=(System)-1
⇒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
Errorsε
"Unlimited"energy
∞
Daniel Brolund — @danielbrolund — [email protected]
The "simplistic" solution
Controller SystemActualDesired
Systeminput Controller=(System)-1
⇒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
Errorsε
Change"Unlimited"
energy
∞
Daniel Brolund — @danielbrolund — [email protected]
The "simplistic" solution
Controller SystemActualDesired
Systeminput Controller=(System)-1
⇒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
Errorsε
Change"Unlimited"
energy
∞
Complexity
Daniel Brolund — @danielbrolund — [email protected]
The "simplistic" solution
Controller SystemActualDesired
Systeminput Controller=(System)-1
⇒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
Errorsε
Change"Unlimited"
energy
∞
Complexity
Won't work in reality
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
Adding feedback!
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Schematic:
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
Adding feedback!
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Schematic:
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
Adding feedback!
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Schematic:
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
Adding feedback!
Sensor
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Schematic:
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
Adding feedback!
Sensor
Observed result
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Schematic:
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
Adding feedback!
Sensor
SensorObserved result
Observed result
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Schematic:
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
Adding feedback!
Sensor
Error-
SensorObserved result
Observed result
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Schematic:
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
Adding feedback!
Feed-back or Closed-loop system
Sensor
Error-
SensorObserved result
Observed result
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Schematic:
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
Adding feedback!
Feed-back or Closed-loop system
Sensor
Error-
SensorObserved result
Time
Temp
Observed result
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Schematic:
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
Adding feedback!
Feed-back or Closed-loop system
Sensor
Error-
SensorObserved result
Time
Desired
Temp
Observed result
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Schematic:
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
Adding feedback!
Feed-back or Closed-loop system
Sensor
Error-
SensorObserved result Actual
Time
Desired
Temp
Observed result
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Schematic:
Controller SystemActualDesired
Systeminput
Daniel Brolund — @danielbrolund — [email protected]
Adding feedback!
Feed-back or Closed-loop system
Sensor
Error-
SensorObserved result Actual
Time
Desired
Temp
Observed result
Systeminput
ActualController
Me
Desired
System
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
Robot
Controller
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back systems
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
Robot
Controller
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back systemsAs before, but now
only one step at a time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
Robot
Controller
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back systems
↑
As before, but now only one step at a time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
Robot
Controller
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back systems
↑↰
As before, but now only one step at a time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
Robot
Controller
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back systems
↑↰↑
As before, but now only one step at a time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
Robot
Controller
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back systems
↑↰
P
↑
As before, but now only one step at a time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
Robot
Controller
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back systems
↑↰
P
↱
↑
As before, but now only one step at a time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
Robot
Controller
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back systems
↑↰
P
↱
↑
↑
As before, but now only one step at a time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
Robot
Controller
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back systems
↑↰
P
↱
D
↑
↑
As before, but now only one step at a time!
Daniel Brolund — @danielbrolund — [email protected]
What is the control error now?
Daniel Brolund — @danielbrolund — [email protected]
What is the control error now?
Actual
Desired
Temp
Daniel Brolund — @danielbrolund — [email protected]
What is the control error now?
Actual
Desired
Temp
Daniel Brolund — @danielbrolund — [email protected]
Control Error = ∫|Desired-Actual|
What is the control error now?
Actual
Desired
Temp
Daniel Brolund — @danielbrolund — [email protected]
Control Error = ∫|Desired-Actual|
What is the control error now?
Actual
Desired
Temp
Daniel Brolund — @danielbrolund — [email protected]
Control Error = ∫|Desired-Actual|
What is the control error now?
Time
Control error
Actual
Desired
Temp
Daniel Brolund — @danielbrolund — [email protected]
Control Error = ∫|Desired-Actual|
What is the control error now?
Actual
Time
Control error
Actual
Desired
Temp
Daniel Brolund — @danielbrolund — [email protected]
Control Error = ∫|Desired-Actual|
What is the control error now?
Actual
Time
Control error
bounded!!
Actual
Desired
Temp
Daniel Brolund — @danielbrolund — [email protected]
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
Impact of robot precision?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Impact of robot precision?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
What are the delays?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
What are the delays?
Points of Discussion - groups of 4-6
Impact of iteration length?
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
What are the delays?
Similarities with software development?
Points of Discussion - groups of 4-6
Impact of iteration length?
Daniel Brolund — @danielbrolund — [email protected]
Observability and controllability
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Observability and controllability
-
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Observability and controllability
-
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
-
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
-
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
-
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
Water temperature
-
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
Water temperature
Flow
-
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
Water temperature
Flow Acidity
-
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
Water temperature
Mineral tracesFlow Acidity
-
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
Water temperature
Mineral traces
Radioactivity
Flow Acidity
-
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
Water temperature
Mineral traces
Radioactivity
Flow Acidity
-
SW
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Lines of code
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
Water temperature
Mineral traces
Radioactivity
Flow Acidity
-
SW
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Lines of code
Unit test results
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
Water temperature
Mineral traces
Radioactivity
Flow Acidity
-
SW
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Lines of code
Unit test results
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
ROI
Water temperature
Mineral traces
Radioactivity
Flow Acidity
-
SW
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Lines of code
Unit test results
Acceptance test results
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
ROI
Water temperature
Mineral traces
Radioactivity
Flow Acidity
-
SW
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Lines of code
Unit test results
Acceptance test results
Nr of checkins
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
ROI
Water temperature
Mineral traces
Radioactivity
Flow Acidity
-
SW
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Lines of code
Unit test results
Acceptance test results
Nr of checkins Request statistics
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
ROI
Water temperature
Mineral traces
Radioactivity
Flow Acidity
-
SW
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Lines of code
Unit test results
Acceptance test results
Nr of checkins Request statistics
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
User satisfaction
ROI
Water temperature
Mineral traces
Radioactivity
Flow Acidity
-
SW
Daniel Brolund — @danielbrolund — [email protected]
The Sensor has to measure
a relevant state (observability) that the
Controller can influence (controllability).
Lines of code
Unit test results
Acceptance test results
Nr of checkins Request statistics
Error- Controller System
ActualDesired
Systeminput
SensorObserved result
Uncontrollable
Unobservable
Observability and controllability
User satisfactionUsability
ROI
Water temperature
Mineral traces
Radioactivity
Flow Acidity
-
SW
Daniel Brolund — @danielbrolund — [email protected]
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
Live user feedback/release
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
Live user feedback/release Usability tests
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
Live user feedback/release Usability tests
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
Retrospective
Live user feedback/release Usability tests
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
Retrospective
Live user feedback/release Usability tests
Whiteboard discussions
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
Daily stand-up
Retrospective
Live user feedback/release Usability tests
Whiteboard discussions
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
Daily stand-up
Retrospective
Live user feedback/release Usability tests
Whiteboard discussions
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
ATDD
Daily stand-up
Retrospective
Live user feedback/release Usability tests
Whiteboard discussions
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
TDD
ATDD
Daily stand-up
Retrospective
Live user feedback/release Usability tests
Whiteboard discussions
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
TDD
ATDD
Daily stand-up
Retrospective
Live user feedback/release Usability tests
Whiteboard discussions
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
TDD
ATDD
Daily stand-up
Retrospective
Live user feedback/release Usability tests
Pairing
Whiteboard discussions
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
TDD
ATDD
Daily stand-up
Retrospective
Live user feedback/release Usability tests
Compilation Pairing
Whiteboard discussions
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
SquigglesTDD
ATDD
Daily stand-up
Retrospective
Live user feedback/release Usability tests
Compilation Pairing
Whiteboard discussions
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
Feedback cycle-time sweet-spots are different due to
processing and delays
SquigglesTDD
ATDD
Daily stand-up
Retrospective
Live user feedback/release Usability tests
Compilation Pairing
Whiteboard discussions
There are many feedback loops at play!
Daniel Brolund — @danielbrolund — [email protected]
Feedback cycle-time sweet-spots are different due to
processing and delays
SquigglesTDD
ATDD
Daily stand-up
Retrospective
Live user feedback/release Usability tests
Compilation Pairing
Whiteboard discussions
There are many feedback loops at play!
too slow ⇒
Unstable system
Daniel Brolund — @danielbrolund — [email protected]
Feedback cycle-time sweet-spots are different due to
processing and delays
SquigglesTDD
ATDD
Daily stand-up
Retrospective
Live user feedback/release Usability tests
Compilation Pairing
Whiteboard discussions
There are many feedback loops at play!
too slow ⇒
Unstable system
too fast ⇒
Controller overloaded or too expensive
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
Is feed-forward waste?
-
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
Is feed-forward waste?
-
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
Feed-forward using the Controller is application of a priori knowledge.
We always need some of it to avoid re-inventing wheels.
Is feed-forward waste?
-
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
Feed-forward using the Controller is application of a priori knowledge.
We always need some of it to avoid re-inventing wheels.
TDD
Is feed-forward waste?
-
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
Feed-forward using the Controller is application of a priori knowledge.
We always need some of it to avoid re-inventing wheels.
TDD
ATDD
Is feed-forward waste?
-
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
Feed-forward using the Controller is application of a priori knowledge.
We always need some of it to avoid re-inventing wheels.
TDD
ATDD Daily standups
Is feed-forward waste?
-
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
Feed-forward using the Controller is application of a priori knowledge.
We always need some of it to avoid re-inventing wheels.
TDD
ATDD
Iterations
Daily standups
Is feed-forward waste?
-
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
Feed-forward using the Controller is application of a priori knowledge.
We always need some of it to avoid re-inventing wheels.
TDD
ATDD
Iterations
Daily standups Continuous integration
Is feed-forward waste?
-
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
Feed-forward using the Controller is application of a priori knowledge.
We always need some of it to avoid re-inventing wheels.
TDD
ATDD
Iterations
Daily standups Continuous integration
Retrospectives
Is feed-forward waste?
-
Daniel Brolund — @danielbrolund — [email protected]
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
Feed-forward using the Controller is application of a priori knowledge.
We always need some of it to avoid re-inventing wheels.
TDD
ATDD
Iterations
Daily standups Continuous integration
Deployment environments
Retrospectives
Is feed-forward waste?
-
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
The impact of delay
Systeminput
ActualController
System
Sensor
Me
Desired
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
The impact of delay
Systeminput
ActualController
System
Sensor
Error
-
Schematic:
Controller SystemActualDesired
Systeminput
SensorObserved result
-
Me
Desired
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
The impact of delay
Systeminput
ActualController
System
Sensor
Delay
Error
-
Schematic:
Controller SystemActualDesired
Systeminput
SensorObserved result
-
Me
Desired
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
The impact of delay
Systeminput
ActualController
System
Sensor
Delay
Error
-
Schematic:
Controller SystemActualDesired
Systeminput
SensorObserved result
-
Me
Desired
Delay
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
The impact of delay
Systeminput
ActualController
System
Sensor
Time
Temp
Delay
Error
-
Schematic:
Controller SystemActualDesired
Systeminput
SensorObserved result
-
Me
Desired
Delay
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
The impact of delay
Systeminput
ActualController
System
Sensor
Time
Desired
Temp
Delay
Error
-
Schematic:
Controller SystemActualDesired
Systeminput
SensorObserved result
-
Me
Desired
Delay
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
The impact of delay
Systeminput
ActualController
System
Sensor
Time
Desired
Temp
Delay
Tap temp
Error
-
Schematic:
Controller SystemActualDesired
Systeminput
SensorObserved result
-
Me
Desired
Delay
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
The impact of delay
Systeminput
ActualController
System
Sensor
Time
Desired
Temp
Delay
Tap temp
Tap tempError
-
Schematic:
Controller SystemActualDesired
Systeminput
SensorObserved result
-
Me
Desired
Delay
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
The impact of delay
Systeminput
ActualController
System
Sensor
Time
Desired
Temp
Delay
Tap temp
Tap temp
Tap temp
Error
-
Schematic:
Controller SystemActualDesired
Systeminput
SensorObserved result
-
Me
Desired
Delay
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
The impact of delay
Systeminput
ActualController
System
Sensor
Observed result
Time
Desired
Temp
Delay
Tap temp
Tap temp
Tap temp
Error
-
Schematic:
Controller SystemActualDesired
Systeminput
SensorObserved result
-
Me
Desired
Delay
Daniel Brolund — @danielbrolund — [email protected] Brolund — @danielbrolund — [email protected]
The impact of delay
Systeminput
ActualController
System
Sensor
Observed result
Time
Desired
Temp
Delay
Tap temp
Tap temp
Tap temp
Error
-
Schematic:
Controller SystemActualDesired
Systeminput
SensorObserved result
-
Me
Desired
Delay
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delayAs before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑
As before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑↰
As before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑↰↑
As before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑↰↑
As before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑↰
P
↑
As before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑↰
P
↑
As before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑↰
P
↱
↑
As before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑↰
P
↱
↑
As before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑↰
P
↱
↑
↑
As before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑↰
P
↱
↑
↑
As before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑↰
P
↱
D
↑
↑
As before, but now now three steps at a
time!
Daniel Brolund — @danielbrolund — [email protected]
Drop-zone
Tracker
RobotController
0
5
10
0 20 40 60 80 100
Time (s)
DesiredMeasured
Exercise on feed-back system with delay
↑↰
P
↱
D
↑
↑
As before, but now now three steps at a
time!
Place sequence on back of Robot (FIFO queue). Give the first step to the robot, and add one step last in the queue.
Daniel Brolund — @danielbrolund — [email protected]
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
Impact of robot precision?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Impact of robot precision?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
What are the delays?
Points of Discussion - groups of 4-6
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
What are the delays?
Points of Discussion - groups of 4-6
Impact of iteration length?
Daniel Brolund — @danielbrolund — [email protected]
Results in exercise? Error?
What are the measurements we make?
What are the unknowns?
Sensitivity to unknowns & changes? Robustness?
Impact of robot precision? Iteration length?
What are the delays?
Similarities with software development?
Points of Discussion - groups of 4-6
Impact of iteration length?
Daniel Brolund — @danielbrolund — [email protected]
Delay considerations
Daniel Brolund — @danielbrolund — [email protected]
Observed result
Desired
Temp
Tap temp
Delay considerations
Daniel Brolund — @danielbrolund — [email protected]
Observed result
Desired
Temp
Tap temp
Delay considerations
delay > half of required cycletime ⇒
Guaranteed instability!(in practice, instability comes earlier)
Daniel Brolund — @danielbrolund — [email protected]
Observed result
Desired
Temp
Tap temp
Delay considerations
delay > half of required cycletime ⇒
Guaranteed instability!(in practice, instability comes earlier)
It often takes about 5-10 times the delay to tune the
system
Daniel Brolund — @danielbrolund — [email protected]
Observed result
Desired
Temp
Tap temp
Delay considerations
delay > half of required cycletime ⇒
Guaranteed instability!(in practice, instability comes earlier)
It often takes about 5-10 times the delay to tune the
system
Error
- Controller SystemActualDesired
Systeminput
Sensor
Observed result
-
Daniel Brolund — @danielbrolund — [email protected]
Observed result
Desired
Temp
Tap temp
Delay considerations
delay > half of required cycletime ⇒
Guaranteed instability!(in practice, instability comes earlier)
It often takes about 5-10 times the delay to tune the
system
Error
- Controller SystemActualDesired
Systeminput
Sensor
Observed result
Delay position in loop is irrelevant w.r.t. instability!
-
Daniel Brolund — @danielbrolund — [email protected]
Observed result
Desired
Temp
Tap temp
Delay considerations
delay > half of required cycletime ⇒
Guaranteed instability!(in practice, instability comes earlier)
It often takes about 5-10 times the delay to tune the
system
Error
- Controller SystemActualDesired
Systeminput
Sensor
Observed result
DelayDelay position in loop is irrelevant w.r.t. instability!
-
Daniel Brolund — @danielbrolund — [email protected]
Observed result
Desired
Temp
Tap temp
Delay considerations
delay > half of required cycletime ⇒
Guaranteed instability!(in practice, instability comes earlier)
It often takes about 5-10 times the delay to tune the
system
Error
- Controller SystemActualDesired
Systeminput
Sensor
Observed result
Delay position in loop is irrelevant w.r.t. instability!
-
Delay
Daniel Brolund — @danielbrolund — [email protected]
Observed result
Desired
Temp
Tap temp
Delay considerations
delay > half of required cycletime ⇒
Guaranteed instability!(in practice, instability comes earlier)
It often takes about 5-10 times the delay to tune the
system
Error
- Controller SystemActualDesired
Systeminput
Sensor
Observed result
Delay
Delay position in loop is irrelevant w.r.t. instability!
-
Daniel Brolund — @danielbrolund — [email protected]
Observed result
Desired
Temp
Tap temp
Delay considerations
delay > half of required cycletime ⇒
Guaranteed instability!(in practice, instability comes earlier)
It often takes about 5-10 times the delay to tune the
system
Error
- Controller SystemActualDesired
Systeminput
Sensor
Observed result
DelayDelay position in loop is irrelevant w.r.t. instability!
-
Daniel Brolund — @danielbrolund — [email protected]
Observed result
Desired
Temp
Tap temp
Delay considerations
delay > half of required cycletime ⇒
Guaranteed instability!(in practice, instability comes earlier)
It often takes about 5-10 times the delay to tune the
system
Error
- Controller SystemActualDesired
Systeminput
Sensor
Observed result
DelayDelay position in loop is irrelevant w.r.t. instability!
-
Daniel Brolund — @danielbrolund — [email protected]
Noise
Daniel Brolund — @danielbrolund — [email protected]
+ =
Huh?NoiseSignal
Signals must be filtered from noise. ⇒ Delays
⇒ Lower communication bandwidth
Noise
Daniel Brolund — @danielbrolund — [email protected]
+ =
Huh?NoiseSignal
Signals must be filtered from noise. ⇒ Delays
⇒ Lower communication bandwidth
Noise
In SW-development, noise can be - Irrelevant information - Disinformation
Daniel Brolund — @danielbrolund — [email protected]
• What does the following do to your control system?
• Trust?
• Distrust?
• Lies?
• Care?
• What is noise according to you?
• What other "soft" issues will affect the system? How?
"Softer" issues - discussion in groups
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
-
Daniel Brolund — @danielbrolund — [email protected]
• How can you break the empirical process? What part?
• Controller?
• System?
• Sensor?
• Desired?
Failure modes - discussion in groups
Error- Controller SystemActualDesired
Systeminput
SensorObserved result
-
Daniel Brolund — @danielbrolund — [email protected]
• Introduce feedback where appropriate!
• Apply reasonable amount of a priori (feed-forward) knowledge.
• Tune the Sensors to improve resolution.
• Remove unnecessary Sensoring.
• Find the iteration cycle-time sweet-spot.
• Reduce delays to improve responsiveness, extend margins, or cheapen the Controller.
• Reduce noise.
Conclusions & advice