Greg Stanley and Associates Performity LLC
 Home   About Us   Products   Services   Examples   Tech Resources   Contact Us 
HomeTech Resources > BDAC >

Big Data Approximating Control (BDAC)

Technical Resources:

BDAC Subtopics:


Overview of Big Data Approximating Control (BDAC)

Big Data Approximating Control (BDAC) is a new model-free approach to estimation and control problems. It eliminates separate steps for process identification, state estimation, and optimal control, directly synthesizing control actions based on a set of representative system trajectories. One core technology is approximate pattern matching, applying tools based on the “big data” set of technologies such as clustering. The goals are to improve advanced process control and estimation:

  • Simplify the overall process of model identification, state estimation, and control
  • Better address nonlinear systems
  • Better address adaptation for process behavior and input changes
  • Better address real time systems by reducing computing complexity and eliminating optimization methods
  • Systematically and efficiently handle missing data values
  • Exploit rapid advances in “big data” and machine learning

An overview is given in the paper Big Data Approximating Control (BDAC) - A new model-free estimation and control paradigm based on pattern matching and approximation . The paper is soon to be published in the Journal of Process Control (a publication from IFAC -- the International Federation of Automatic Control). A 5 minute audio-visual BDAC overview presentation is available at the publisher’s web page listed above. Unlike the paper, the presentation does not require a subscription to the journal. A version is also available on YouTube at .

BDAC is based on two independent processes: a training process to create and maintain a “training set” S and an estimation & control process. The estimation & control process uses the training set, recent data, and targets, to determine future control actions and variable estimates. Either process can be stopped or started at any time. Continuing training (‘learning”) during control allows adaptive control.

BDAC data representation and the training process

One key idea is to focus on maintaining a representative set of data, rather than models. The representative data cover data for multiple variables sampled over a finite, sliding time window. There is no need for models or model identification steps, and there is no need for state variable representation. There is also no state estimator such as a Kalman filter, since estimation and control are calculated simultaneously, directly based on the representative data.  Instead, BDAC stores trajectory vectors over finite time windows. At each time step, BDAC looks nh steps back in history and nh steps ahead.  For instance, the graph below shows 5 variables plotted versus time ( 3 sensors and 2 controller outputs). (Click for full-sized image)

BDAC- Assembling a case (click for full-sized image) BDAC maps these 5 individual time series into one long vector called a trajectory. That allows the application of pattern matching techniques that look for approximate matches between two vectors. BDAC representation is covered in more detail in the section on BDAC system representation.

The training process periodically acquires a new trajectory. For each new trajectory, the training process performs time smoothing using Savitzky-Golay smoothing, rejects certain undesirable cases and outliers, and then performs “case filtering”. Case filtering combines new and existing close trajectories to further reduce sensor noise, to reduce the process noise introduced by unmeasured disturbances, and to adapt for process changes. Case filtering also reduces the amount of storage needed. The cases are stored as the rows si of a matrix S. The example below shows multiple trajectories for a 3-variable case. (Click for full-sized image)

BDAC-Training Set Example - Click for full-sized imageTo support case filtering, an efficient new clustering technique called RTEFC (Real Time Exponential Filter Clustering, sometimes shortened to EFC) was created, focusing on real time needs. The cases (representative trajectories) are the centroids in the clustering technique. This is described in more detail in the section on Clustering and filtering in real time with RTMAC and RTEFC.

The BDAC approximation problem

Another key idea in BDAC is control through approximate pattern matching. The idea is to choose a target trajectory starget at each time step, and find a close match among the set of all possible trajectories that would be feasible. That is, minimize the distance of the solution from the target, subject to a constraint that the solution is in (or close to) Omega14x12, defined as the set of all feasible trajectories.  The distance is based on a weighted Euclidean norm, as in MPC (Model Predictive Control). As in MPC, there are penalties for future deviations from setpoints and future changes in manipulated variables. But since BDAC also solves an estimation problem, there are also weights to penalize deviations of solutions from past sensor values and controller outputs. There are also weights to penalize future changes in sensors for process outputs without setpoints.

The BDAC approximation problem is stated formally as:

  min || s - starget ||  
  subject to s in Omega14x12
  where Omega14x12 is the set of all feasible trajectories

Omega14x12 is an abstract set, not directly known. However, approximate solutions to the problem are obtained based on the examplars {si} that are the rows of the training data set S. The following are some approximate solutions: 

  • Approximate Omega14x12 as all linear combinations of rows of S.  Then a solution is BDAC-O, which is a projection of the target onto the row space of S using orthogonal decomposition.
  • Approximate a solution as a linear or nonlinear combination of nearest neighbors of the rows of S. Two examples are BDAC-IDW (Inverse Distance Weighting for nearest neighbors) and BDAC-LSH (Locally Sensitive Hashing for nearest neighbors)

None of these solutions require an optimizer or other unknown amounts of iteration at each time step. The cited paper mostly covers BDAC-O.

The BDAC estimation and control process

BDAC Time Window The stored trajectories represent examplars of a time window of 2nH + 1 time steps, with an index centered at 0. BDAC matches the current trajectory against the stored trajectories, with the current time step k lined up against index 0 in the stored trajectories. So, negative indices in the stored trajectories correspond to the past, and positive indices correspond to the future. At each time step, a target trajectory starget is created. Past values in starget are set based on past sensor readings and controller outputs. Targets for future values for the sensors are the setpoints. We don't know the future controller outputs. But we do know that that we want the incremental output changes over time to converge to 0 for stability. To facilitate pattern matching, the trajectories actually store incremental controller outputs for future values. The approximate pattern matching results in a trajectory that is close to the desired target, but feasible. The estimation and control process then extracts the desired controller output changes, along with any measured variable estimates of interest). So, estimation and control are accomplished in one step, replacing a Kalman filter and Model Predictive Control (MPC).

BDAC is a form of moving horizon control analogous to MPC. It is based on a finite size time window, looking into the recent past and near future. At each time step, the entire desired trajectory is calculated, but control output is only implemented for the next time step. Then, at the next time step, new sensor data is collected, and the process is repeated. 

The estimation and control process is formally stated as follows. For each time step k:

  1. Acquire past and current measurements at time step k
  2. Calculate the target trajectory starget[k] over the current time window
  3. Find s* solving or approximately solving the BDAC approximation problem
  4. Extract the manipulated variable increment du[k] for this time step from s* (along with any other desired estimates for past, present, or future)
  5. Apply typical control limits to du[k] and u[k] = u[k-1] + du[k]
  6. Send u[k] to the process

Benefits of the new paradigm

Nonlinear systems

Each stored trajectory already incorporates all nonlinearities along that trajectory. Solutions by BDAC can be thought of as interpolating between these trajectories. So, with enough stored trajectories, even the approximations between trajectories will still be very close to the real system behavior. Clustering separates different operating regions and modes, so that nonlinearities over a wide range of conditions are remembered and used. For severe nonlinearities, the “kernel trick” can be used. The idea is to add extra variables to capture the nonlinear behavior. This basic idea has been around for a long time. For instance, linear regression is a purely linear method, like BDAC-O. However, extra calculated data is included, such as squared and cubed values so that polynomial curve fits can be done. With just minimal engineering insight, many nonlinearities are known. For instance, the exponential function of temperature captures the Arrhenious reaction rate for chemical reactions. Relations such as square root or square are common in representing flow and pressure behavior. Energy balances and component material balances contain products of flow and temperature or composition. These extra terms are simply included as pseudomeasurements. This approach works well with BDAC, but is not as useful for conventional control methods such as MPC (Model Predictive Control).  With those methods, there still needs to be effort expended to derive linearized models, either analytically or empirically. Nonlinear optimization packages are also generally needed.


Adaptation occurs naturally simply by running the training process, whether control is active or not. Learning can be done while in manual modes, closed loop control by other control systems, or closed loop control by BDAC.


 Without models, there is no need for a model identification step. There is no need to rebuild models when adaptation is desired. There is no need for a state estimator such as a Kalman filter. There is no need for linearization, either analytically or empirically. There is no need for an optimization package. The method is simple. For instance, the heart of BDAC-O is just a projection of the target onto the training data set.

Efficiency and predictable timing for “hard real time

The training process with RTEFC is efficient and non-iterative, as are the control calculation steps. This means that the worst case computing time is known by experiment.  “Hard real time” systems can be addressed: systems where computation must be complete within a time limit.

Other benefits

Soft sensing can easily be accomodated. This can be used to replace missing, slowly, or irregularly sampled sensors, such as analyzers. Some problems in MPC systems such as collinearity are not an issue. BDAC works with underdetermined or overdetermined systems. Also, pattern approximation isn’t restricted to just numerical variables. For instance, there could be binary or symbolic variables for operating modes, faults, etc. Finally, BDAC can exploit rapid advances being made in machine learning and “big data”. For instance, improved clustering techniques that will support rapid recovery and use of local data in extremely nonlinear systems.


(Additional material to follow at a later date)

Copyright 2017, Greg Stanley

(Return to Technical Resources)

Share this page: Share this page via LinkedIn... Bookmark or share this page on Delicious... Share this page by e-mailing link...