REAL-TIME SYSTEMS Real-time systems (RTS) are systems, intended for the interaction (in the first turn, for control) with real physical objects and this interaction must run at a real physical time, in those temporary scales, in which live these objects. If we speak about control of fast running processes (for instance, when controlling flying apparatus having speed of the order 600 km/hour and altitude of 50 m then temporary scales for making and fulfilling decisions must have order of 0.01 sec). RTS are usual computing systems (CS), but intended for functioning in terms of hard temporary restrictions and which must have developed facilities of the interactions with the external world for the reception of information on objects of control and for the transferring them worked out control influences Real-time system RTS Control stimuli information external stimuli CO Controlled object Such systems must possess increased reliability. There are distinguished soft RTS (violation of timing restrictions in some range does not lead to the system failure), hard RTS (violation of timing restrictions leads to the system failure) and firm RTS (violation of timing restrictions in some range does not lead to the system failure with certain probability). EXAMPLE OF REAL-TIME SYSTEM Let’s consider an analog single-input/single-output PID (Proportional, Integral and Derivative) controller. The analog sensor reading y(t) gives the measured state of the plant at time t. Let e(t)=r(t)-y(t) denote the difference between the desired state r(t) and the measured state y(t) at time t. Reference input r(t) uk rk Control-law computation A/D D/A yk A/D u(t) y(t) Sensor Plant Actuator The output u(t) of the controller consists of three terms: a term that is proportional to e(t), to the integral of e(t) and to the derivative of e(t). In the sampled data version, the inputs to the control-law computation are the sampled values yk and rk, k=0,1,2,.., which analog-to-digital converters produce by sampling and digitizing y(t) and r(t) periodically every T units of time. ek=rk-yk is the k-th sample value of e(t). There are many ways to discretize the derivative and integral of e(t). For example, we can approximate derivative of e(t) for (k-1)T<=t<=kT by (ek-ek-1)/T and use the b right rectangular rule of numerical integration ( f ( x)dx f (b)(b a) )to a transform a continuous integral into a discrete form. EXAMPLE OF REAL-TIME SYSTEM (CONT 1) The result is the kT k 0 i 1 u k ek (ek ek 1 ) / T e(t )dt ek (ek ek 1 ) / T ei Considering uk-1, we get k 1 u k 1 ek 1 (ek 1 ek 2 ) / T ei i 1 From two last equations, we get u k u k 1 aek 2 bek 1 cek (1) where a,b,c are some constants; they are chosen at the design time. During the k-th sampling period, the RTS computes the output of the controller according to this expression. Different discretization methods may lead to different expressions for uk, but they all are simple to compute (10-20 machine instructions). From (1), we can see that during any sampling period (say k-th), the control output uk depends on the current and past values yi, i<=k. The future measured values yi for i>k in turn depend on uk. Such a system is called a (feedback) control loop or simply a loop. CONTROLLER’S ALGORITHM We can implement it as an infinite timed loop: Set timer to interrupt periodically with period T; At each timer interrupt, do Do analog-to-digital conversion to get y Compute control output u Make digital-to-analog conversion and output u End do ABOUT TIME SAMPLING The length T of time between any two consecutive instants at which y(t) and r(t) are sampled is called the sampling period. T is a key design choice. The behavior of the resultant digital controller critically depends on this parameter. Ideally, we want the sampled data version behave like the analog version. This can be done by making T small. However, this will lead to more frequent control-law computation and higher processor-time demand. We want a sampling period T that achieves a good compromise. In making this selection we are to consider two factors. The first is the perceived responsiveness of the overall system (i.e., the plant and the controller). Oftentimes, the system is operated by a person (driver, pilot). The operator may issue a command at any time, say at t. The consequent change in the reference input is read and reacted to by the digital controller at the next sampling instant. This instant can be as late as t+T. Thus, sampling introduces a delay in a system response. The operator will feel the system sluggish when the delay exceeds a tenth of a second. Therefore, the sampling period should be under this limit. The second factor is the dynamic behavior of the plant (considered earlier). It is recommended to use sampling frequency twice as highest possible frequency occurring in the system to be able to reproduce such signals (Nyquist-Kotelnikov theorem). EXAMPLE OF FLIGHT CONTROLLER Let’s consider software control structure of the flight controller: Do the following in the 1/180 –second cycle: Validate sensor data and select data source; in the presence of failures, reconfigure the system Do the following 30-Hz avionics tasks, each once every six cycles: keyboard input and mode selection data normalization and coordinate transformation tracking reference update Do the following 30-Hz computations, each once every six cycles: control laws of the outer pitch-control loop control laws of the outer roll-control loop control laws of the outer yaw- and collective control loop Do each of the following 90-Hz computations once every two cycles, using outputs produced by 30-Hz computations and avionics tasks as input: control laws of the inner pitch-control loop control laws of the inner roll- and collective-control loop Compute the control laws of the inner yaw-control loop, using outputs produced by 90-Hz control-law computations as input Output commands Carry out built-in test Wait until the beginning of the next cycle EXPLANATION OF PHYSICAL VALUES Three velocities along axes are called collective velocities, rotational velocities around axes are illustrated below: GENERAL CASE CONTROLLERS ALGORITMS This multirate controller controls only flight dynamics. The control system on board an aircraft contains many other equally critical subsystems. In many cases, sensor gives not the value of the state variable, but some observable attributes of the plant, and state variables should be computed on their basis. In such more complicated cases controllers may be represented by the following schema Set timer to interrupt periodically with period T; At each clock interrupt, do Sample and digitize sensor readings to get measured values Compute control output from measured and state-variable values Convert control output to analog form Compute and update plant parameters and state variables End do HIERARCHICAL CONTROL Usually, control is made in many levels, hierarchically. Figure above shows example of hierarchy of flight control, flight management and air traffic control systems. AIR TRAFFIC/FLIGHT CONTROL The Air Traffic Control (ATC) system is at the highest level. It regulates the flow of flights to each destination airport. It does so by assigning to each aircraft an arrival time at each metering fix (known geographical point, adjacent points are 40-60 miles apart) in the route to destination. The aircraft is supposed to arrive at the metering fix at the assigned time. At any time while in flight, the assigned arrival time to the next metering fix is a reference input to the on-board flight management system. The flight management system chooses a time-referenced flight path that brings the aircraft to the next metering fix at the assigned arrival time. The cruise speed, turn radius, descend/ascend rates and so for required to the chosen time-referenced flight path are the reference inputs to the flight controller at the lowest level of hierarchy. Computations made by controllers of low levels may be simple and deterministic while high-level controller interacting with operator is more complex and variable (for example, expert system). Period of low-level controller ranges from milliseconds to seconds, the periods of high-level controllers may be minutes and even hours. AIR TRAFFIC CONTROL SYSTEM The ATC system monitors the aircraft in its coverage area and generates and presents information needed by the operators. Outputs from the ATC system include the assigned arrival times to metering fixes for individual aircraft. These outputs are reference inputs to on-board flight management systems. Thus, the ATC system indirectly controls the embedded components in low levels of hierarchy. In addition, the ATC system provides voice and telemetry links to on-board avionics. The ATC system gathers information on the state of each aircraft via one or more active radars. Such radar interrogates each aircraft periodically. AIR TRAFFIC CONTROL SYSTEM (CONT 1) When interrogated, an aircraft responds by sending the ATC system its state variables: identifier, position, altitude, heading and so on (these variables in the figure are referred to collectively as a track record, and the current trajectory of the aircraft is a track). The ATC system processes messages from aircraft and stores state information in the database. This information is picked up and processed by display processors. At the same time, the surveillance system continuously analyses the scenario and alerts the operators whenever it detects any potential hazard (e.g., a possible collision). Again, the rates at which human interfaces operate (keyboards and displays) must be at least 10 Hz. From this example, we can see that a command and control system bears little resemblance to low-level controllers. In contrast to low-level controller whose workload is either purely or mostly periodic, a command and control system computes and communicates in response to sporadic events and operator’s commands. It may process images and speech, query and update databases, simulate various scenarios, and the like. The resource and processing times demands can be large and varied. CRITERIA USED FOR RTS DESIGN When designing RTS, as well as for the comparison of existing systems are used different criteria of their quality, the most important of them are the following: Performance - an amount of executed operations in the unit of the time. If, for instance, there must be solved batch of tasks z i ir1 with computational complexities (total amount of operations) Qi then performance may be calculated as r Р= Q i 1 T i , where Т is the time of execution of all the batch tasks. To evaluate current performance at the time moment t there may be used P(t)= lim 0 Q (t , t ) , where Q(t1,t2) is complexity of tasks executed by system in the time interval [t1,t2). System cost С, which must include not only cost of its creation or purchase price but also cost of maintaining it in the working state Cost of performance unit (1 operation/sec), calculated as С/Р, or inverse value Р/С, characterizing performance obtained per dollar of expenditure. System volume, system mass, energy consumption, intensiveness of system radiation, working temperature CRITERIA USED FOR RTS DESIGN (CONT 1) RTS are intended to solve definite sets of tasks, for example, simulate moving of flying apparatus, finding out optimal trajectory of flying, making and transfer of control stimuli to corresponding mechanical devices. These tasks are to be solved in minimal possible time or in the time not greater than predefined. In connection with that there may be considered the following criteria: Minimization of the total execution time То of the batch having L tasks. If fi is a moment of the time of termination of i-th task, then total execution time То= max f i , i 1, L and it is necessary to find min max f i . i 1, L This criterion corresponds to maximization of performance of the system when solving given batch of tasks, because computational complexity is constant, and denominator is minimized in the expression for performance. CRITERIA USED FOR RTS DESIGN (CONT 2) Each task of the batch may have its deadline di – time moment before which it must be solved. There may be used the following criteria: L min ( f i 1 i di ) , i di | , L min | f i 1 L min max( 0, f i 1 i di ) min max f i d i i 1, L min max | f i d i | i 1, L min max | 0, f i d i | . i 1, L The first 3 criterions use mean deviations from deadline terms, and last 3 use maximal deviations. In the first criterion an excess of deadline term for one task can be compensated by earlier solution of other tasks, in the second variant are fined both an excess of deadline term, and early solution, in the third variant is fined only excess of deadline term. For last three criterions important is maximum deviation. Besides, there can be introduced weights, characterizing importance of tasks and, accordingly, violations of deadline terms for the given task. CRITERIA USED FOR RTS DESIGN (CONT 3) For server type systems, for instance, phone stations, communication nodes, headquarters may be important criterion defining mean number of tasks (users) served in the time unit, i.e. throughput of the system. Here is important not computational complexity of executed tasks but number of served users standing beyond these tasks, number of made decisions. Throughput is maximized when mean time of staying tasks in the system is minimized. Let number of tasks be – L, time moment of i-th task arriving to the system is si, time moment of i-th task execution finishing is fi, i=1,..,L. Then mean time of staying tasks in the system is Тс = L ( f i 1 i si ) / L . If time staying in the system of i-th task is f i si , i 1, L , then we may say that for i-th task each unit of time 1/( f i si ), i 1, L , part of task leaves the system and in whole the following L number of tasks L / ( f i si ) leave system per time unit, i.e. i 1 throughput is value inverse to mean time of staying tasks in the system. Thus, to maximize throughput it is necessary to minimize mean time of staying tasks in the system, and for maximization of performance we need in minimization of maximal time of staying tasks in the system. APPROACHES TO OPTIMIZATION TASKS Let’s note that minimization of То is NP-hard task. For solution of such tasks usually are applied polynomial-hard heuristic algorithms giving not optimal but rather good solutions. So, to optimize То there may be used algorithm LPT (Largest Processing Time task – first) with time complexity О(LlogL+Ln). Essence of that algorithm is to sort tasks in the descending order of execution times and assigning them in such order to freeing processors. It was proved that when allocating any batch П of independent tasks (order of assigning may be arbitrary, there is no precedence relation on the tasks set) То(П,LPT)/То(П,ОPТ)<(4/3-1/(3n)), where То(П, ОPТ) – is optimal execution time of batch П. Task of optimization of Тс is optimally solved by algorithm SPT (Shortest Processing Time task – first) of the same time complexity as LPT. In SPT algorithm tasks with less execution time are pushed forward. EXAMPLES OF APPLICATION OF LPT AND SPT Let tasks of the batch П have the following execution times: (3,3,2,2,2). Then in the case of 2-processor system (n=2) P1 P2 1 3 Tо(ОPТ) =6 2 3 3 P1 3 P2 3 a) 2 3 1 To(SPT) =7 Tc(SPT)= 4 c) P1 1 3 P2 2 3 3 To(LPT) =7 Tc(LPT) =4.6 Tasks are represented by their numbers b) MULTIPLE CRITERIA OPTIMIZATION When designing RTS we are to take into account many different criteria, often contradicting each other (performance – cost, performance – size, etc.). It’s obvious that optimal solution of this task is extremely hard, because it is necessary to solve make multiple criteria optimization. Here, as a rule, two simplifying approaches are used: - usage of one general criterion which is obtained by forming one expression involving all necessary criteria (usually sum, or weighted sum with weights taken from (0,1), showing importance of corresponding criterion, sum of weights equal to 1); - optimization on one criterion using other as restrictions. So, design of RTS is a complex multiple criteria task in the result of solving which there must be obtained CS having desired for control of respective objects features. For achieving such a goal it is necessary to use existing resources in optimal way. As it is obvious from modification of only order of tasks serving, without modification of hardware, cost, mass and so on, we can significantly influence on system characteristics TOPICS TO BE CONSIDERED FARTHER Main resources of the system are processors, processor time, RAM, external memory. These resources are used by processes running program codes. So, we shall consider problems of control of processes and system resources. Usually RTS is to control multiple objects simultaneously; therefore even in the case of uniprocessor systems they are to support multitasking, Therefore for RTS it is very important to manage in optimal way parallel processes responsible for corresponding controlled objects. For the sake of more rapid response (control outputs) it is widely used parallelizing of computations between several processors, so we shall consider issues of parallelizing and related problems. RTS are dedicated for controlling of real objects and cost of their failure may be extremely high (for instance, error in controlling of nuclear reactor on Chernobyl nuclear power station). Therefore there must be used methods for increasing reliability of software and hardware incorporated in RTS. We shall consider approaches to this issue starting from design. RTS are complicated software-hardware products, in which there must be present model of controlled object, facilities for interaction with external world with the help of input-output devices. To simplify development of such systems there were elaborated SCADA systems, which we shall briefly consider in our course. Very important for RTS are issues of communication with external devices, which is usually organized with the help of drivers. We shall also briefly touch this topic.