Title: Towards Feedback Controlled Adaptive Middleware in Avionics: A Case Study
1Towards Feedback Controlled Adaptive Middleware
in Avionics A Case Study
- Huang-Ming Huang
- Venkita Subramonian
- Xiaorui Wang
11/04/2003
Thanks to Dennis Noll, Boeing, St. Louis for
giving permission to reuse some pictures used in
these slides
2A Case Study
- Context - Avionics domain
- Currently using reactive control for adaptation
- Apply feedback control for adaptation instead
3WSOA context
Commercial Satellite / GBS
- Backbone for Tactical NET MEETING
Airborne C2 Node
- Collaborates for Target Validation
- Retasks Enroute Strike
- NET Meeting with Warrior to replan route
- JTIDS Net
- Browser Requests
- Low Volume Imagery
C4I Feed
Virtual Data Archive
Warrior
- IPL Provides Target Imagery
- Generates Mission Preview
- Injects Requested Data into Broadcast
- Browser Requests for Target and Imagery data
- NET Meeting with C2 Node for Target Review and
Mission Replan - Browser Requests for Mission Rehearsal
- Pulls Imagery and Rehearsal Data
- Previews Updated Mission Enroute
- Server for Additional Strike Member
4Client Architecture
Receive Throughput Monitor
CPU utilization Monitor
Client
Display
Queue Level Controller
FCU Controller
Image Requester
TAO Scheduler
OFP task rates
Decompress Rate
getImage() setQoS()
Send Rate
RT Event Channel
Tile Decompressor
Image Server
TAO ORB
OFP Tasks
Linux Packet Shaper
hard realtime tasks
5Server Architecture
Image Archive
Send Throughput Monitor
CPU utilization Monitor
Client
Image quality Controller
FCU Controller
Image Handler
TAO Scheduler
OFP task rates
Compression ratio
getImage() setQoS()
Send Rate
RT Event Channel
Tile Sender
Image Client
TAO ORB
C2 Tasks
Linux Packet Shaper
hard realtime tasks
6Client side controller design
- Two controllers
- Progress controller
- Goal image transmission deadline
- Controlled variables
- Image tile transmission progress (how many tiles
have been received) - Buffer full level
- Manipulated variables
- Rate of tile handling task
- Tile sending rate from Server
- FCU controller
- Goal guarantee deadline in RMS
- Controlled variable
- Current CPU utilization
- Manipulated variable
- Rates of other tasks
FCU controller
utilization monitor
Background workload
?
Progress controller
Tile number monitor
Tile handling thread
Buffer level monitor
Tile buffer
Required sending rate
Incoming tile stream from Server
7Progress controller
Controlled variable n(k) tiles have been
received at time k from beginning. N total
number of tiles T image transmission deadline
I pipeline initial phase Reference can be set
as a linear value
N
n(k)
If we can make sure the tile buffer will never be
empty, we can get a fixed transmission progress
T
I
k
Controlled variable L(k) is the current buffer
level Reference R can be specified as half of
the buffer length Outgoing rate Rd(k) is decided
by transmission progress requirement a
constant Manipulated variable tile sending rate
from Server Controller Single Input Single
Output (SISO) controller
R L(k)
Rd(k)
Rs(k)
8Server side controller design
- Two controllers
- Quality controller
- Goal client side rate requirement
- Controlled variables
- Tile sending rate Ri(k)
- Manipulated variables
- JPEG tile compression quality factor
- Reference
- Rd(k) from Client side
- Variation/Disturbance
- Unpredictable network bandwidth
- Modeling
- Treat this Link 16 network as bottleneck of the
pipeline system, so - B(k) is Bandwidth, S(k) is tile size,
- To utilize the bandwidth in maximal extent, we
let Ri(k)S(k) B(k-1) - FCU controller
- Same as Client side
FCU controller
utilization monitor
Background workload
?
Quality controller
Sending rate monitor
Image tiling and compress task
Tile stream to Client
Required sending rate Rd(k)
9Relationship between controllers
Cascade Control relationship between Buffer level
controller and Quality controller
Network Bandwidth Disturbance
Buffer level PID controller
Quality PID controller
Quality factor Actuator
Buffer level Actuator
G1
G2
Buffer level setpoint
Buffer level output
Sending rate Rd(k)
-
-
Sending rate monitor
Buffer level monitor
Block diagram Blue part is on Server side while
black part is on Client Side
- Solutions
- Let outer control loop has much larger sampling
period than inner loop to allow the inner control
loop reach steady-state within the sampling
period of outer loop - Seek controller analysis from Cascade control
theory
10Demo setup
Client
Server
file.jpg
get_image()
Image Handler
Image Requester
.
1Hz
100
90
80
Tile Decompressor
1Hz
OFP tasks
C2 tasks
test.jpg
(3,1) (5,1) (10,1)
(3,1) (5,1) (10,1)
11OFP task simulation
static int handle_signal (int signum) switch
(signum) case SIGVTALRM
per_iter_loop_count_per_sec loop_count/calibrat
ion_time done 1 break
.. void do_computation (unsigned long
loop_count) static unsigned long
prime_number 961989999 loop_count
ACEis_prime (prime_number, 2,
prime_number / 2)
unsigned long do_calibrate () ACE_Sig_Set
sigset per_iter_loop_count_per_sec 0
loop_count 0 sigset.sig_add (SIGVTALRM)
ACE_Sig_Action sa (sigset,
(ACE_SignalHandler) handle_signal) itimerval
timerval timerval.it_value.tv_sec
calibration_time //1sec timerval.it_value.tv_us
ec 0 if (setitimer(ITIMER_VIRTUAL,
timerval, 0) ! 0)
ACE_ERROR_RETURN((LM_ERROR, "setitimer
failed\n"), 0) for (!done)
do_computation (loop_count) done 0
return per_iter_loop_count_per_sec
void CPULoadrun (ACE_Time_Value tv)
unsigned long loops0 unsigned long iters
(unsigned long) (((float)loop_count_per_sec/10
00000) (tv.usec () tv.sec
()1000000)) iters iters 1 for
(itersgt0--iters) do_computation
(loops)