Towards Feedback Controlled Adaptive Middleware in Avionics: A Case Study - PowerPoint PPT Presentation

1 / 11
About This Presentation
Title:

Towards Feedback Controlled Adaptive Middleware in Avionics: A Case Study

Description:

Thanks to Dennis Noll, Boeing, St. Louis for giving ... Decompress Rate. FCU. Controller. OFP task. rates. 11/04/2003. CS520 Fall 2003. 5. Server Architecture ... – PowerPoint PPT presentation

Number of Views:21
Avg rating:3.0/5.0
Slides: 12
Provided by: venk9
Category:

less

Transcript and Presenter's Notes

Title: Towards Feedback Controlled Adaptive Middleware in Avionics: A Case Study


1
Towards 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
2
A Case Study
  • Context - Avionics domain
  • Currently using reactive control for adaptation
  • Apply feedback control for adaptation instead

3
WSOA 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

4
Client 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
5
Server 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
6
Client 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
7
Progress 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)
8
Server 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)
9
Relationship 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

10
Demo 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)
11
OFP 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)
Write a Comment
User Comments (0)
About PowerShow.com