Kalman filter

For statistics and control theory, Kalman filtering, also known as linear quadratic estimation (LQE), is an algorithm that uses a series of measurements observed over time, including statistical noise and other inaccuracies, and produces estimates of unknown variables that tend to be more accurate than those based on a single measurement alone, by estimating a joint probability distribution over the variables for each timeframe. The filter is named after Rudolf E. Kálmán, who was one of the primary developers of its theory.
This digital filter is sometimes termed the "Stratonovich–Kalman–Bucy filter" because it is a special case of a more general, nonlinear filter developed somewhat earlier by the Soviet mathematician Ruslan Stratonovich. In fact, some of the special case linear filter's equations appeared in papers by Stratonovich that were published before summer 1961, when Kalman met with Stratonovich during a conference in Moscow.
Kalman filtering has numerous technological applications. A common application is for guidance, navigation, and control of vehicles, particularly aircraft, spacecraft and ships positioned dynamically. Furthermore, Kalman filtering is a concept much applied in time series analysis used for topics such as signal processing and econometrics. Kalman filtering is also one of the main topics of robotic motion planning and control and can be used for trajectory optimization. Kalman filtering also works for modeling the central nervous system's control of movement. Due to the time delay between issuing motor commands and receiving sensory feedback, the use of Kalman filters provides a realistic model for making estimates of the current state of a motor system and issuing updated commands.
The algorithm works by a two-phase process. For the prediction phase, the Kalman filter produces estimates of the current state variables, along with their uncertainties. Once the outcome of the next measurement (necessarily corrupted with some error, including random noise) is observed, these estimates are updated using a weighted average, with more weight being given to estimates with greater certainty. The algorithm is recursive. It can operate in real time, using only the present input measurements and the state calculated previously and its uncertainty matrix; no additional past information is required.
Optimality of Kalman filtering assumes that errors have a normal (Gaussian) distribution. In the words of Rudolf E. Kálmán: "In summary, the following assumptions are made about random processes: Physical random phenomena may be thought of as due to primary random sources exciting dynamic systems. The primary sources are assumed to be independent gaussian random processes with zero mean; the dynamic systems will be linear." Though regardless of Gaussianity, if the process and measurement covariances are known, the Kalman filter is the best possible "linear" estimator in the minimum mean-square-error sense.
 It is a common misconception (perpetuated in the literature) that the Kalman filter cannot be rigorously applied unless all noise processes are assumed to be Gaussian.
Extensions and generalizations of the method have also been developed, such as the extended Kalman filter and the unscented Kalman filter which work on nonlinear systems. The basis is a hidden Markov model such that the state space of the latent variables is continuous and all latent and observed variables have Gaussian distributions. Kalman filtering has been used successfully in multi-sensor fusion, and distributed sensor networks to develop distributed or consensus Kalman filtering.
History.
The filtering method is named for Hungarian émigré Rudolf E. Kálmán, although Thorvald Nicolai Thiele and Peter Swerling developed a similar algorithm earlier. Richard S. Bucy of the Johns Hopkins Applied Physics Laboratory contributed to the theory, causing it to be known sometimes as Kalman–Bucy filtering.
Stanley F. Schmidt is generally credited with developing the first implementation of a Kalman filter. He realized that the filter could be divided into two distinct parts, with one part for time periods between sensor outputs and another part for incorporating measurements. It was during a visit by Kálmán to the NASA Ames Research Center that Schmidt saw the applicability of Kálmán's ideas to the nonlinear problem of trajectory estimation for the Apollo program resulting in its incorporation in the Apollo navigation computer.
This Kalman filtering was first described and developed partially in technical papers by Swerling (1958), Kalman (1960) and Kalman and Bucy (1961).
Kalman filters have been vital in the implementation of the navigation systems of U.S. Navy nuclear ballistic missile submarines, and in the guidance and navigation systems of cruise missiles such as the U.S. Navy's Tomahawk missile and the U.S. Air Force's Air Launched Cruise Missile. They are also used in the guidance and navigation systems of reusable launch vehicles and the attitude control and navigation systems of spacecraft which dock at the International Space Station.
Overview of the calculation.
Kalman filtering uses a system's dynamic model (e.g., physical laws of motion), known control inputs to that system, and multiple sequential measurements (such as from sensors) to form an estimate of the system's varying quantities (its state) that is better than the estimate obtained by using only one measurement alone. As such, it is a common sensor fusion and data fusion algorithm.
Noisy sensor data, approximations in the equations that describe the system evolution, and external factors that are not accounted for, all limit how well it is possible to determine the system's state. The Kalman filter deals effectively with the uncertainty due to noisy sensor data and, to some extent, with random external factors. The Kalman filter produces an estimate of the state of the system as an average of the system's predicted state and of the new measurement using a weighted average. The purpose of the weights is that values with better (i.e., smaller) estimated uncertainty are "trusted" more. The weights are calculated from the covariance, a measure of the estimated uncertainty of the prediction of the system's state. The result of the weighted average is a new state estimate that lies between the predicted and measured state, and has a better estimated uncertainty than either alone. This process is repeated at every time step, with the new estimate and its covariance informing the prediction used in the following iteration. This means that Kalman filter works recursively and requires only the last "best guess", rather than the entire history, of a system's state to calculate a new state.
The measurements' certainty-grading and current-state estimate are important considerations. It is common to discuss the filter's response in terms of the Kalman filter's "gain". The Kalman-gain is the weight given to the measurements and current-state estimate, and can be "tuned" to achieve a particular performance. With a high gain, the filter places more weight on the most recent measurements, and thus conforms to them more responsively. With a low gain, the filter conforms to the model predictions more closely. At the extremes, a high gain close to one will result in a more jumpy estimated trajectory, while a low gain close to zero will smooth out noise but decrease the responsiveness.
When performing the actual calculations for the filter (as discussed below), the state estimate and covariances are coded into matrices because of the multiple dimensions involved in a single set of calculations. This allows for a representation of linear relationships between different state variables (such as position, velocity, and acceleration) in any of the transition models or covariances.
Example application.
As an example application, consider the problem of determining the precise location of a truck. The truck can be equipped with a GPS unit that provides an estimate of the position within a few meters. The GPS estimate is likely to be noisy; readings 'jump around' rapidly, though remaining within a few meters of the real position. In addition, since the truck is expected to follow the laws of physics, its position can also be estimated by integrating its velocity over time, determined by keeping track of wheel revolutions and the angle of the steering wheel. This is a technique known as dead reckoning. Typically, the dead reckoning will provide a very smooth estimate of the truck's position, but it will drift over time as small errors accumulate.
For this example, the Kalman filter can be thought of as operating in two distinct phases: predict and update. In the prediction phase, the truck's old position will be modified according to the physical laws of motion (the dynamic or "state transition" model). Not only will a new position estimate be calculated, but also a new covariance will be calculated as well. Perhaps the covariance is proportional to the speed of the truck because we are more uncertain about the accuracy of the dead reckoning position estimate at high speeds but very certain about the position estimate at low speeds. Next, in the update phase, a measurement of the truck's position is taken from the GPS unit. Along with this measurement comes some amount of uncertainty, and its covariance relative to that of the prediction from the previous phase determines how much the new measurement will affect the updated prediction. Ideally, as the dead reckoning estimates tend to drift away from the real position, the GPS measurement should pull the position estimate back toward the real position but not disturb it to the point of becoming noisy and rapidly jumping.
Technical description and context.
The Kalman filter is an efficient recursive filter estimating the internal state of a linear dynamic system from a series of noisy measurements. It is used in a wide range of engineering and econometric applications from radar and computer vision to estimation of structural macroeconomic models, and is an important topic in control theory and control systems engineering. Together with the linear-quadratic regulator (LQR), the Kalman filter solves the linear–quadratic–Gaussian control problem (LQG). The Kalman filter, the linear-quadratic regulator, and the linear–quadratic–Gaussian controller are solutions to what arguably are the most fundamental problems of control theory.
In most applications, the internal state is much larger (has more degrees of freedom) than the few "observable" parameters which are measured. However, by combining a series of measurements, the Kalman filter can estimate the entire internal state.
For the Dempster–Shafer theory, each state equation or observation is considered a special case of a linear belief function and the Kalman filtering is a special case of combining linear belief functions on a join-tree or Markov tree. Additional methods include belief filtering which use Bayes or evidential updates to the state equations.
A wide variety of Kalman filters exists by now, from Kalman's original formulation - now termed the "simple" Kalman filter, the Kalman–Bucy filter, Schmidt's "extended" filter, the information filter, and a variety of "square-root" filters that were developed by Bierman, Thornton, and many others. Perhaps the most commonly used type of very simple Kalman filter is the phase-locked loop, which is now ubiquitous in radios, especially frequency modulation (FM) radios, television sets, satellite communications receivers, outer space communications systems, and nearly any other electronic communications equipment.
Underlying dynamic system model.
Kalman filtering is based on linear dynamic systems discretized in the time domain. They are modeled on a Markov chain built on linear operators perturbed by errors that may include Gaussian noise. The state of the target system refers to the ground truth (yet hidden) system configuration of interest, which is represented as a vector of real numbers. At each discrete time increment, a linear operator is applied to the state to generate the new state, with some noise mixed in, and optionally some information from the controls on the system if they are known. Then, another linear operator mixed with more noise generates the measurable outputs (i.e., observation) from the true ("hidden") state. The Kalman filter may be regarded as analogous to the hidden Markov model, with the difference that the hidden state variables have values in a continuous space as opposed to a discrete state space as for the hidden Markov model. There is a strong analogy between the equations of a Kalman Filter and those of the hidden Markov model. A review of this and other models is given in Roweis and Ghahramani (1999) and Hamilton (1994), Chapter 13.
In order to use the Kalman filter to estimate the internal state of a process given only a sequence of noisy observations, one must model the process in accordance with the following framework. This means specifying the matrices, for each time-step "k", following:
The Kalman filter model assumes the true state at time "k" is evolved from the state at ("k" − 1) according to
where
At time "k" an observation (or measurement) z"k" of the true state x"k" is made according to
where
The initial state, and the noise vectors at each step {x0, w1, ..., w"k", v1, ... ,v"k"} are all assumed to be mutually independent.
Many real-time dynamic systems do not exactly conform to this model. In fact, unmodeled dynamics can seriously degrade the filter performance, even when it was supposed to work with unknown stochastic signals as inputs. The reason for this is that the effect of unmodeled dynamics depends on the input, and, therefore, can bring the estimation algorithm to instability (it diverges). On the other hand, independent white noise signals will not make the algorithm diverge. The problem of distinguishing between measurement noise and unmodeled dynamics is a difficult one and is treated as a problem of control theory using robust control.
Details.
The Kalman filter is a recursive estimator. This means that only the estimated state from the previous time step and the current measurement are needed to compute the estimate for the current state. In contrast to batch estimation techniques, no history of observations and/or estimates is required. In what follows, the notation formula_6 represents the estimate of formula_7 at time "n" given observations up to and including at time .
The state of the filter is represented by two variables:
The algorithm structure of the Kalman filter resembles that of Alpha beta filter. The Kalman filter can be written as a single equation; however, it is most often conceptualized as two distinct phases: "Predict" and "Update". The predict phase uses the state estimate from the previous timestep to produce an estimate of the state at the current timestep. This predicted state estimate is also known as the "a priori" state estimate because, although it is an estimate of the state at the current timestep, it does not include observation information from the current timestep. In the update phase, the innovation (the pre-fit residual), i.e. the difference between the current "a priori" prediction and the current observation information, is multiplied by the optimal Kalman gain and combined with the previous state estimate to refine the state estimate. This improved estimate based on the current observation is termed the "a posteriori" state estimate.
Typically, the two phases alternate, with the prediction advancing the state until the next scheduled observation, and the update incorporating the observation. However, this is not necessary; if an observation is unavailable for some reason, the update may be skipped and multiple prediction procedures performed. Likewise, if multiple independent observations are available at the same time, multiple update procedures may be performed (typically with different observation matrices H"k").
Update.
The formula for the updated ("a posteriori") estimate covariance above is valid for the optimal Kk gain that minimizes the residual error, in which form it is most widely used in applications. Proof of the formulae is found in the "derivations" section, where the formula valid for any Kk is also shown.
A more intuitive way to express the updated state estimate (formula_10) is:
This expression reminds us of a linear interpolation, formula_12 for formula_13 between [0,1].
In our case:
This expression also resembles the alpha beta filter update step.
Invariants.
If the model is accurate, and the values for formula_20 and formula_21 accurately reflect the distribution of the initial state values, then the following invariants are preserved:
where formula_23 is the expected value of formula_24. That is, all estimates have a mean error of zero.
Also:
so covariance matrices accurately reflect the covariance of estimates.
Estimation of the noise covariances Q"k" and R"k".
Practical implementation of a Kalman Filter is often difficult due to the difficulty of getting a good estimate of the noise covariance matrices Q"k" and R"k". Extensive research has been done to estimate these covariances from data. One practical method of doing this is the "autocovariance least-squares (ALS)" technique that uses the time-lagged autocovariances of routine operating data to estimate the covariances. The GNU Octave and Matlab code used to calculate the noise covariance matrices using the ALS technique is available online using the GNU General Public License. Field Kalman Filter (FKF), a Bayesian algorithm, which allows simultaneous estimation of the state, parameters and noise covariance has been proposed. The FKF algorithm has a recursive formulation, good observed convergence, and relatively low complexity, thus suggesting that the FKF algorithm may possibly be a worthwhile alternative to the Autocovariance Least-Squares methods.
Optimality and performance.
It follows from theory that the Kalman filter provides an optimal state estimation in cases where a) the model matches the real system perfectly, b) the entering noise is "white" (uncorrelated) and c) the covariances of the noise are known exactly. Correlated noise can also be treated using Kalman filters.
Several methods for the noise covariance estimation have been proposed during past decades, including ALS, mentioned in the section above. After the covariances are estimated, it is useful to evaluate the performance of the filter; i.e., whether it is possible to improve the state estimation quality. If the Kalman filter works optimally, the innovation sequence (the output prediction error) is a white noise, therefore the whiteness property of the innovations measures filter performance. Several different methods can be used for this purpose. If the noise terms are distributed in a non-Gaussian manner, methods for assessing performance of the filter estimate, which use probability inequalities or large-sample theory, are known in the literature.
Example application, technical.
Consider a truck on frictionless, straight rails. Initially, the truck is stationary at position 0, but it is buffeted this way and that by random uncontrolled forces. We measure the position of the truck every Δ"t" seconds, but these measurements are imprecise; we want to maintain a model of the truck's position and velocity. We show here how we derive the model from which we create our Kalman filter.
Since formula_26 are constant, their time indices are dropped.
The position and velocity of the truck are described by the linear state space
where formula_28 is the velocity, that is, the derivative of position with respect to time.
We assume that between the ("k" − 1) and "k" timestep, uncontrolled forces cause a constant acceleration of "a""k" that is normally distributed with mean 0 and standard deviation "σ""a". From Newton's laws of motion we conclude that
(there is no formula_30 term since there are no known control inputs. Instead, "a""k" is the effect of an unknown input and formula_31 applies that effect to the state vector) where
so that
where
The matrix formula_35 is not full rank (it is of rank one if formula_36). Hence, the distribution formula_37 is not absolutely continuous and has no probability density function. Another way to express this, avoiding explicit degenerate distributions is given by
At each time phase, a noisy measurement of the true position of the truck is made. Let us suppose the measurement noise "v""k" is also distributed normally, with mean 0 and standard deviation "σ""z".
where
and
We know the initial starting state of the truck with perfect precision, so we initialize
and to tell the filter that we know the exact position and velocity, we give it a zero covariance matrix:
If the initial position and velocity are not known perfectly, the covariance matrix should be initialized with suitable variances on its diagonal:
The filter will then prefer the information from the first measurements over the information already in the model.
Asymptotic form.
For simplicity, assume that the control input formula_45. Then the Kalman filter may be written:
A similar equation holds if we include a non-zero control input. Gain matrices formula_15 evolve independently of the measurements formula_48. From above, the four equations needed for updating the Kalman gain are as follows:
Since the gain matrices depend only on the model, and not the measurements, they may be computed offline. Convergence of the gain matrices formula_15 to an asymptotic matrix formula_51 applies for conditions established in Walrand and Dimakis. Simulations establish the number of steps to convergence. For the moving truck example described above, with formula_52. and formula_53, simulation shows convergence in formula_54 iterations.
Using the asymptotic gain, and assuming formula_55 and formula_56 are independent of formula_57, the Kalman filter becomes a linear time-invariant filter:
The asymptotic gain formula_51, if it exists, can be computed by first solving the following discrete Riccati equation for the asymptotic state covariance formula_60:
The asymptotic gain is then computed as before.
Additionally, a form of the asymptotic Kalman filter more commonly used in control theory is given by
where
This leads to an estimator of the form
Derivations.
The Kalman filter can be derived as a generalized least squares method operating on previous data.
Deriving the "posteriori" estimate covariance matrix.
Starting with our invariant on the error covariance P"k" | "k" as above
substitute in the definition of formula_67
and substitute formula_69
and formula_48
and by collecting the error vectors we get
Since the measurement error v"k" is uncorrelated with the other terms, this becomes
by the properties of vector covariance this becomes
which, using our invariant on P"k" | "k"−1 and the definition of R"k" becomes
This formula (sometimes known as the Joseph form of the covariance update equation) is valid for any value of K"k". It turns out that if K"k" is the optimal Kalman gain, this can be simplified further as shown below.
Kalman gain derivation.
The Kalman filter is a minimum mean-square error estimator. The error in the "a posteriori" state estimation is
We seek to minimize the expected value of the square of the magnitude of this vector, formula_78. This is equivalent to minimizing the trace of the "a posteriori" estimate covariance matrix formula_79. By expanding out the terms in the equation above and collecting, we get:
The trace is minimized when its matrix derivative with respect to the gain matrix is zero. Using the gradient matrix rules and the symmetry of the matrices involved we find that
Solving this for K"k" yields the Kalman gain:
This gain, which is known as the "optimal Kalman gain", is the one that yields MMSE estimates when used.
Simplification of the "posteriori" error covariance formula.
The formula used to calculate the "a posteriori" error covariance can be simplified when the Kalman gain equals the optimal value derived above. Multiplying both sides of our Kalman gain formula on the right by S"k"K"k"T, it follows that
Referring back to our expanded formula for the "a posteriori" error covariance,
we find the last two terms cancel out, giving
This formula is computationally cheaper and thus nearly always used in practice, but is only correct for the optimal gain. If arithmetic precision is unusually low causing problems with numerical stability, or if a non-optimal Kalman gain is deliberately used, this simplification cannot be applied; the "a posteriori" error covariance formula as derived above (Joseph form) must be used.
Sensitivity analysis.
The Kalman filtering equations provide an estimate of the state formula_10 and its error covariance formula_9 recursively. The estimate and its quality depend on the system parameters and the noise statistics fed as inputs to the estimator. This section analyzes the effect of uncertainties in the statistical inputs to the filter. In the absence of reliable statistics or the true values of noise covariance matrices formula_88 and formula_89, the expression
no longer provides the actual error covariance. In other words, formula_91. In most real-time applications, the covariance matrices that are used in designing the Kalman filter are different from the actual (true) noise covariances matrices. This sensitivity analysis describes the behavior of the estimation error covariance when the noise covariances as well as the system matrices formula_56 and formula_55 that are fed as inputs to the filter are incorrect. Thus, the sensitivity analysis describes the robustness (or sensitivity) of the estimator to misspecified statistical and parametric inputs to the estimator.
This discussion is limited to the error sensitivity analysis for the case of statistical uncertainties. Here the actual noise covariances are denoted by formula_94 and formula_95 respectively, whereas the design values used in the estimator are formula_96 and formula_89 respectively. The actual error covariance is denoted by formula_98 and formula_99 as computed by the Kalman filter is referred to as the Riccati variable. When formula_100 and formula_101, this means that formula_102. While computing the actual error covariance using formula_103, substituting for formula_104 and using the fact that formula_105 and formula_106, results in the following recursive equations for formula_98 :
and
While computing formula_99, by design the filter implicitly assumes that formula_111 and formula_112. The recursive expressions for formula_98 and formula_99 are identical except for the presence of formula_115 and formula_116 in place of the design values formula_96 and formula_89 respectively. Researches have been done to analyze Kalman filter system's robustness.
Square root form.
One problem with the Kalman filter is its numerical stability. If the process noise covariance Q"k" is small, round-off error often causes a small positive eigenvalue of the state covariance matrix P to be computed as a negative number. This renders the numerical representation of P indefinite, while its true form is positive-definite.
Positive definite matrices have the property that they have a triangular matrix square root P = S·ST. This can be computed efficiently using the Cholesky factorization algorithm, but more importantly, if the covariance is kept in this form, it can never have a negative diagonal or become asymmetric. An equivalent form, which avoids many of the square root operations required by the matrix square root yet preserves the desirable numerical properties, is the U-D decomposition form, P = U·D·UT, where U is a unit triangular matrix (with unit diagonal), and D is a diagonal matrix.
Between the two, the U-D factorization uses the same amount of storage, and somewhat less computation, and is the most commonly used square root form. (Early literature on the relative efficiency is somewhat misleading, as it assumed that square roots were much more time-consuming than divisions, while on 21st-century computers they are only slightly more expensive.)
Efficient algorithms for the Kalman prediction and update steps in the square root form were developed by G. J. Bierman and C. L. Thornton.
The L·D·LT decomposition of the innovation covariance matrix Sk is the basis for another type of numerically efficient and robust square root filter. The algorithm starts with the LU decomposition as implemented in the Linear Algebra PACKage (LAPACK). These results are further factored into the L·D·LT structure with methods given by Golub and Van Loan (algorithm 4.1.2) for a symmetric nonsingular matrix. Any singular covariance matrix is pivoted so that the first diagonal partition is nonsingular and well-conditioned. The pivoting algorithm must retain any portion of the innovation covariance matrix directly corresponding to observed state-variables Hk·xk|k-1 that are associated with auxiliary observations in
yk. The l·d·lt square-root filter requires orthogonalization of the observation vector. This may be done with the inverse square-root of the covariance matrix for the auxiliary variables using Method 2 in Higham (2002, p. 263).
Parallel form.
The Kalman filter is efficient for sequential data processing on central processing units (CPUs), but in its original form it is inefficient on parallel architectures such as graphics processing units (GPUs). It is however possible to express the filter-update routine in terms of an associative operator using the formulation in Särkkä (2021). The filter solution can then be retrieved by the use of a prefix sum algorithm which can be efficiently implemented on GPU. This reduces the computational complexity from formula_119 in the number of time steps to formula_120.
Relationship to recursive Bayesian estimation.
The Kalman filter can be presented as one of the simplest dynamic Bayesian networks. The Kalman filter calculates estimates of the true values of states recursively over time using incoming measurements and a mathematical process model. Similarly, recursive Bayesian estimation calculates estimates of an unknown probability density function (PDF) recursively over time using incoming measurements and a mathematical process model.
In recursive Bayesian estimation, the true state is assumed to be an unobserved Markov process, and the measurements are the observed states of a hidden Markov model (HMM).
Because of the Markov assumption, the true state is conditionally independent of all earlier states given the immediately previous state.
Similarly, the measurement at the "k"-th timestep is dependent only upon the current state and is conditionally independent of all other states given the current state.
Using these assumptions the probability distribution over all states of the hidden Markov model can be written simply as:
However, when a Kalman filter is used to estimate the state x, the probability distribution of interest is that associated with the current states conditioned on the measurements up to the current timestep. This is achieved by marginalizing out the previous states and dividing by the probability of the measurement set.
This results in the "predict" and "update" phases of the Kalman filter written probabilistically. The probability distribution associated with the predicted state is the sum (integral) of the products of the probability distribution associated with the transition from the ("k" − 1)-th timestep to the "k"-th and the probability distribution associated with the previous state, over all possible formula_124.
The measurement set up to time "t" is
The probability distribution of the update is proportional to the product of the measurement likelihood and the predicted state.
The denominator
is a normalization term.
The remaining probability density functions are
The PDF at the previous timestep is assumed inductively to be the estimated state and covariance. This is justified because, as an optimal estimator, the Kalman filter makes best use of the measurements, therefore the PDF for formula_130 given the measurements formula_131 is the Kalman filter estimate.
Marginal likelihood.
Related to the recursive Bayesian interpretation described above, the Kalman filter can be viewed as a generative model, i.e., a process for "generating" a stream of random observations z = (z0, z1, z2, ...). Specifically, the process is
This process has identical structure to the hidden Markov model, except that the discrete state and observations are replaced with continuous variables sampled from Gaussian distributions.
In some applications, it is useful to compute the "probability" that a Kalman filter with a given set of parameters (prior distribution, transition and observation models, and control inputs) would generate a particular observed signal. This probability is known as the marginal likelihood because it integrates over ("marginalizes out") the values of the hidden state variables, so it can be computed using only the observed signal. The marginal likelihood can be useful to evaluate different parameter choices, or to compare the Kalman filter against other models using Bayesian model comparison.
It is straightforward to compute the marginal likelihood as a side effect of the recursive filtering computation. By the chain rule, the likelihood can be factored as the product of the probability of each observation given previous observations,
and because the Kalman filter describes a Markov process, all relevant information from previous observations is contained in the current state estimate formula_142 Thus the marginal likelihood is given by
i.e., a product of Gaussian densities, each corresponding to the density of one observation z"k" under the current filtering distribution formula_144. This can easily be computed as a simple recursive update; however, to avoid numeric underflow, in a practical implementation it is usually desirable to compute the "log" marginal likelihood formula_145 instead. Adopting the convention formula_146, this can be done via the recursive update rule
where formula_148 is the dimension of the measurement vector.
An important application where such a (log) likelihood of the observations (given the filter parameters) is used is multi-target tracking. For example, consider an object tracking scenario where a stream of observations is the input, however, it is unknown how many objects are in the scene (or, the number of objects is known but is greater than one). For such a scenario, it can be unknown apriori which observations/measurements were generated by which object. A multiple hypothesis tracker (MHT) typically will form different track association hypotheses, where each hypothesis can be considered as a Kalman filter (for the linear Gaussian case) with a specific set of parameters associated with the hypothesized object. Thus, it is important to compute the likelihood of the observations for the different hypotheses under consideration, such that the most-likely one can be found.
Information filter.
In cases where the dimension of the observation vector y is bigger than the dimension of the state space vector x, the information filter can avoid the inversion of a bigger matrix in the Kalman gain calculation at the price of inverting a smaller matrix in the prediction step, thus saving computing time. In the information filter, or inverse covariance filter, the estimated covariance and estimated state are replaced by the information matrix and information vector respectively. These are defined as:
Similarly the predicted covariance and state have equivalent information forms, defined as:
as have the measurement covariance and measurement vector, which are defined as:
The information update now becomes a trivial sum.
The main advantage of the information filter is that "N" measurements can be filtered at each time step simply by summing their information matrices and vectors.
To predict the information filter the information matrix and vector can be converted back to their state space equivalents, or alternatively the information space prediction can be used.
Fixed-lag smoother.
The optimal fixed-lag smoother provides the optimal estimate of formula_155 for a given fixed-lag formula_156 using the measurements from formula_157 to formula_48. It can be derived using the previous theory via an augmented state, and the main equation of the filter is the following:
where:
If the estimation error covariance is defined so that
then we have that the improvement on the estimation of formula_170 is given by:
Fixed-interval smoothers.
The optimal fixed-interval smoother provides the optimal estimate of formula_172 (formula_173) using the measurements from a fixed interval formula_157 to formula_175. This is also called "Kalman Smoothing". There are several smoothing algorithms in common use.
Rauch–Tung–Striebel.
The Rauch–Tung–Striebel (RTS) smoother is an efficient two-pass algorithm for fixed interval smoothing.
The forward pass is the same as the regular Kalman filter algorithm. These "filtered" a-priori and a-posteriori state estimates formula_176, formula_67 and covariances formula_178, formula_99 are saved for use in the backward pass (for retrodiction).
In the backward pass, we compute the "smoothed" state estimates formula_180 and covariances formula_181. We start at the last time step and proceed backward in time using the following recursive equations:
where
formula_184 is the a-posteriori state estimate of timestep formula_57 and formula_186 is the a-priori state estimate of timestep formula_187. The same notation applies to the covariance.
Modified Bryson–Frazier smoother.
An alternative to the RTS algorithm is the modified Bryson–Frazier (MBF) fixed interval smoother developed by Bierman. This also uses a backward pass that processes data saved from the Kalman filter forward pass. The equations for the backward pass involve the recursive
computation of data which are used at each observation time to compute the smoothed state and covariance.
The recursive equations are
where formula_189 is the residual covariance and formula_190. The smoothed state and covariance can then be found by substitution in the equations
or
An important advantage of the MBF is that it does not require finding the inverse of the covariance matrix.
Minimum-variance smoother.
The minimum-variance smoother can attain the best-possible error performance, provided that the models are linear, their parameters and the noise statistics are known precisely. This smoother is a time-varying state-space generalization of the optimal non-causal Wiener filter.
The smoother calculations are done in two passes. The forward calculations involve a one-step-ahead predictor and are given by
The above system is known as the inverse Wiener-Hopf factor. The backward recursion is the adjoint of the above forward system. The result of the backward pass formula_194 may be calculated by operating the forward equations on the time-reversed formula_195 and time reversing the result. In the case of output estimation, the smoothed estimate is given by
Taking the causal part of this minimum-variance smoother yields
which is identical to the minimum-variance Kalman filter. The above solutions minimize the variance of the output estimation error. Note that the Rauch–Tung–Striebel smoother derivation assumes that the underlying distributions are Gaussian, whereas the minimum-variance solutions do not. Optimal smoothers for state estimation and input estimation can be constructed similarly.
A continuous-time version of the above smoother is described in.
Expectation–maximization algorithms may be employed to calculate approximate maximum likelihood estimates of unknown state-space parameters within minimum-variance filters and smoothers. Often uncertainties remain within problem assumptions. A smoother that accommodates uncertainties can be designed by adding a positive definite term to the Riccati equation.
In cases where the models are nonlinear, step-wise linearizations may be within the minimum-variance filter and smoother recursions (extended Kalman filtering).
Frequency-weighted Kalman filters.
Pioneering research on the perception of sounds at different frequencies was conducted by Fletcher and Munson in the 1930s. Their work led to a standard way of weighting measured sound levels within investigations of industrial noise and hearing loss. Frequency weightings have since been used within filter and controller designs to manage performance within bands of interest.
Typically, a frequency shaping function is used to weight the average power of the error spectral density in a specified frequency band. Let formula_198 denote the output estimation error exhibited by a conventional Kalman filter. Also, let formula_199 denote a causal frequency weighting transfer function. The optimum solution which minimizes the variance of formula_200 arises by simply constructing formula_201.
The design of formula_199 remains an open question. One way of proceeding is to identify a system which generates the estimation error and setting formula_199 equal to the inverse of that system. This procedure may be iterated to obtain mean-square error improvement at the cost of increased filter order. The same technique can be applied to smoothers.
Nonlinear filters.
The basic Kalman filter is limited to a linear assumption. More complex systems, however, can be nonlinear. The nonlinearity can be associated either with the process model or with the observation model or with both.
The most common variants of Kalman filters for non-linear systems are the Extended Kalman Filter and Unscented Kalman filter. The suitability of which filter to use depends on the non-linearity indices of the process and observation model.
Extended Kalman filter.
In the extended Kalman filter (EKF), the state transition and observation models need not be linear functions of the state but may instead be nonlinear functions. These functions are of differentiable type.
The function "f" can be used to compute the predicted state from the previous estimate and similarly the function "h" can be used to compute the predicted measurement from the predicted state. However, "f" and "h" cannot be applied to the covariance directly. Instead a matrix of partial derivatives (the Jacobian) is computed.
At each timestep the Jacobian is evaluated with current predicted states. These matrices can be used in the Kalman filter equations. This process essentially linearizes the nonlinear function around the current estimate.
Unscented Kalman filter.
When the state transition and observation models—that is, the predict and update functions formula_205 and formula_206—are highly nonlinear, the extended Kalman filter can give particularly poor performance.
 This is because the covariance is propagated through linearization of the underlying nonlinear model. The unscented Kalman filter (UKF)  uses a deterministic sampling technique known as the unscented transformation (UT) to pick a minimal set of sample points (called sigma points) around the mean. The sigma points are then propagated through the nonlinear functions, from which a new mean and covariance estimate are then formed. The resulting filter depends on how the transformed statistics of the UT are calculated and which set of sigma points are used. It should be remarked that it is always possible to construct new UKFs in a consistent way. For certain systems, the resulting UKF more accurately estimates the true mean and covariance. This can be verified with Monte Carlo sampling or Taylor series expansion of the posterior statistics. In addition, this technique removes the requirement to explicitly calculate Jacobians, which for complex functions can be a difficult task in itself (i.e., requiring complicated derivatives if done analytically or being computationally costly if done numerically), if not impossible (if those functions are not differentiable).
Sigma points.
For a random vector formula_207, sigma points are any set of vectors
attributed with
A simple choice of sigma points and weights for formula_216 in the UKF algorithm is
where formula_218 is the mean estimate of formula_216. The vector formula_220 is the "j"th column of formula_221 where formula_222. Typically, formula_221 is obtained via Cholesky decomposition of formula_224. With some care the filter equations can be expressed in such a way that formula_221 is evaluated directly without intermediate calculations of formula_224. This is referred to as the "square-root unscented Kalman filter".
The weight of the mean value, formula_227, can be chosen arbitrarily.
Another popular parameterization (which generalizes the above) is
formula_229 and formula_230 control the spread of the sigma points. formula_231 is related to the distribution of formula_232.
Appropriate values depend on the problem at hand, but a typical recommendation is formula_233, formula_234, and formula_235. However, a larger value of formula_229 (e.g., formula_237) may be beneficial in order to better capture the spread of the distribution and possible nonlinearities. If the true distribution of formula_232 is Gaussian, formula_235 is optimal.
Predict.
As with the EKF, the UKF prediction can be used independently from the UKF update, in combination with a linear (or indeed EKF) update, or vice versa.
Given estimates of the mean and covariance, formula_240 and formula_224, one obtains formula_242 sigma points as described in the section above. The sigma points are propagated through the transition function "f".
The propagated sigma points are weighed to produce the predicted mean and covariance.
where formula_245 are the first-order weights of the original sigma points, and formula_246 are the second-order weights. The matrix formula_247 is the covariance of the transition noise, formula_248.
Update.
Given prediction estimates formula_176 and formula_178, a new set of formula_251 sigma points formula_252 with corresponding first-order weights formula_253 and second-order weights formula_254 is calculated. These sigma points are transformed through the measurement function formula_206.
Then the empirical mean and covariance of the transformed points are calculated.
where formula_89 is the covariance matrix of the observation noise, formula_259. Additionally, the cross covariance matrix is also needed
The Kalman gain is
The updated mean and covariance estimates are
Discriminative Kalman filter.
When the observation model formula_263 is highly non-linear and/or non-Gaussian, it may prove advantageous to apply Bayes' rule and estimate
where formula_265 for nonlinear functions formula_266. This replaces the generative specification of the standard Kalman filter with a discriminative model for the latent states given observations.
Under a stationary state model
where formula_268, if
then given a new observation formula_48, it follows that
where
Note that this approximation requires formula_273 to be positive-definite; in the case that it is not,
is used instead. Such an approach proves particularly useful when the dimensionality of the observations is much greater than that of the latent states and can be used build filters that are particularly robust to nonstationarities in the observation model.
Adaptive Kalman filter.
Adaptive Kalman filters allow to adapt for process dynamics which are not modeled in the process model formula_275, which happens for example in the context of a maneuvering target when a constant velocity (reduced order) Kalman filter is employed for tracking.
Kalman–Bucy filter.
Kalman–Bucy filtering (named for Richard Snowden Bucy) is a continuous time version of Kalman filtering.
It is based on the state space model
where formula_277 and formula_278 represent the intensities (or, more accurately: the Power Spectral Density - PSD - matrices) of the two white noise terms formula_279 and formula_280, respectively.
The filter consists of two differential equations, one for the state estimate and one for the covariance:
where the Kalman gain is given by
Note that in this expression for formula_283 the covariance of the observation noise formula_278 represents at the same time the covariance of the prediction error (or "innovation") formula_285; these covariances are equal only in the case of continuous time.
The distinction between the prediction and update steps of discrete-time Kalman filtering does not exist in continuous time.
The second differential equation, for the covariance, is an example of a Riccati equation. Nonlinear generalizations to Kalman–Bucy filters include continuous time extended Kalman filter.
Hybrid Kalman filter.
Most physical systems are represented as continuous-time models while discrete-time measurements are made frequently for state estimation via a digital processor. Therefore, the system model and measurement model are given by
where
Predict.
The prediction equations are derived from those of continuous-time Kalman filter without update from measurements, i.e., formula_290. The predicted state and covariance are calculated respectively by solving a set of differential equations with the initial value equal to the estimate at the previous step.
For the case of linear time invariant systems, the continuous time dynamics can be exactly discretized into a discrete time system using matrix exponentials.
Update.
The update equations are identical to those of the discrete-time Kalman filter.
Variants for the recovery of sparse signals.
The traditional Kalman filter has also been employed for the recovery of sparse, possibly dynamic, signals from noisy observations. Recent works utilize notions from the theory of compressed sensing/sampling, such as the restricted isometry property and related probabilistic recovery arguments, for sequentially estimating the sparse state in intrinsically low-dimensional systems.
Relation to Gaussian processes.
Since linear Gaussian state-space models lead to Gaussian processes, Kalman filters can be viewed as sequential solvers for Gaussian process regression.


Domain adaptation

Domain adaptation is a field associated with machine learning and transfer learning. This scenario arises when we aim at learning from a source data distribution a well performing model on a different (but related) target data distribution. For instance, one of the tasks of the common spam filtering problem consists in adapting a model from one user (the source distribution) to a new user who receives significantly different emails (the target distribution). Domain adaptation has also been shown to be beneficial for learning unrelated sources.
Note that, when more than one source distribution is available the problem is referred to as multi-source domain adaptation.
Overview.
Domain adaptation is the ability to apply an algorithm trained in one or more "source domains" to a different (but related) "target domain". Domain adaptation is a subcategory of transfer learning. In domain adaptation, the source and target domains all have the same feature space (but different distributions); in contrast, transfer learning includes cases where the target domain's feature space is different from the source feature space or spaces.
Domain shift.
A domain shift, or distributional shift, is a change in the data distribution between an algorithm's training dataset, and a dataset it encounters when deployed. These domain shifts are common in practical applications of artificial intelligence. Conventional machine-learning algorithms often adapt poorly to domain shifts. The modern machine-learning community has many different strategies to attempt to gain better domain adaptation.
Examples.
Other applications include wifi localization detection and many aspects of computer vision.
Formalization.
Let formula_1 be the input space (or description space) and let formula_2 be the output space (or label space). The objective of a machine learning algorithm is to learn a mathematical model (a hypothesis) formula_3 able to attach a label from formula_2 to an example from formula_1. This model is learned from a learning sample formula_6.
Usually in supervised learning (without domain adaptation), we suppose that the examples formula_7 are drawn i.i.d. from a distribution formula_8 of support formula_9 (unknown and fixed). The objective is then to learn formula_10 (from formula_11) such that it commits the least error possible for labelling new examples coming from the distribution formula_8.
The main difference between supervised learning and domain adaptation is that in the latter situation we study two different (but related) distributions formula_8 and formula_14 on formula_9. The domain adaptation task then consists of the transfer of knowledge from the source domain formula_8 to the target one formula_14. The goal is then to learn formula_10 (from labeled or unlabelled samples coming from the two domains) such that it commits as little error as possible on the target domain formula_14.
The major issue is the following: if a model is learned from a source domain, what is its capacity to correctly label data coming from the target domain?
The different types of domain adaptation.
There are several contexts of domain adaptation. They differ in the information considered for the target task.
Four algorithmic principles.
Reweighting algorithms.
The objective is to reweight the source labeled sample such that it "looks like" the target sample (in terms of the error measure considered).
Iterative algorithms.
A method for adapting consists in iteratively "auto-labeling" the target examples. The principle is simple:
Note that there exist other iterative approaches, but they usually need target labeled examples.
Search of a common representation space.
The goal is to find or construct a common representation space for the two domains. The objective is to obtain a space in which the domains are close to each other while keeping good performances on the source labeling task.
This can be achieved through the use of Adversarial machine learning techniques where feature representations from samples in different domains are encouraged to be indistinguishable.
Hierarchical Bayesian Model.
The goal is to construct a Bayesian hierarchical model formula_22, which is essentially a factorization model for counts formula_23, to derive domain-dependent latent representations allowing both domain-specific and globally shared latent factors.
Softwares.
Several compilations of domain adaptation and transfer learning algorithms have been implemented over the past decades:


Petri Net Markup Language

Petri Net Markup Language (PNML) is an interchange format aimed at enabling Petri net tools to exchange Petri net models. PNML is an XML-based syntax for high-level Petri nets, which is being designed as a standard interchange format for Petri net tools.
It will end up being the second part of the ISO standard ISO/IEC 15909.
PNML grammar is publicly available on its reference site.
The first part of this international standard, provides the mathematical definitions for high-level Petri nets.
These definitions are called the semantic model.
It also provides the graphical form definition, known as
High-level Petri Net Graph (HLPNG), and its mapping to the semantic model.
As of December 2004, the first part is an international standard.


Frank–Wolfe algorithm

The Frank–Wolfe algorithm is an iterative first-order optimization algorithm for constrained convex optimization. Also known as the conditional gradient method, reduced gradient algorithm and the convex combination algorithm, the method was originally proposed by Marguerite Frank and Philip Wolfe in 1956. In each iteration, the Frank–Wolfe algorithm considers a linear approximation of the objective function, and moves towards a minimizer of this linear function (taken over the same domain).
Problem statement.
Suppose formula_1 is a compact convex set in a vector space and formula_2 is a convex, differentiable real-valued function. The Frank–Wolfe algorithm solves the optimization problem
Properties.
While competing methods such as gradient descent for constrained optimization require a projection step back to the feasible set in each iteration, the Frank–Wolfe algorithm only needs the solution of a linear problem over the same set in each iteration, and automatically stays in the feasible set.
The convergence of the Frank–Wolfe algorithm is sublinear in general: the error in the objective function to the optimum is formula_20 after "k" iterations, so long as the gradient is Lipschitz continuous with respect to some norm. The same convergence rate can also be shown if the sub-problems are only solved approximately.
The iterates of the algorithm can always be represented as a sparse convex combination of the extreme points of the feasible set, which has helped to the popularity of the algorithm for sparse greedy optimization in machine learning and signal processing problems, as well as for example the optimization of minimum–cost flows in transportation networks.
If the feasible set is given by a set of linear constraints, then the subproblem to be solved in each iteration becomes a linear program.
While the worst-case convergence rate with formula_20 can not be improved in general, faster convergence can be obtained for special problem classes, such as some strongly convex problems.
Lower bounds on the solution value, and primal-dual analysis.
Since formula_11 is convex, for any two points formula_23 we have:
This also holds for the (unknown) optimal solution formula_25. That is, formula_26. The best lower bound with respect to a given point formula_27 is given by
The latter optimization problem is solved in every iteration of the Frank–Wolfe algorithm, therefore the solution formula_8 of the direction-finding subproblem of the formula_30-th iteration can be used to determine increasing lower bounds formula_31 during each iteration by setting formula_32 and
Such lower bounds on the unknown optimal value are important in practice because they can be used as a stopping criterion, and give an efficient certificate of the approximation quality in every iteration, since always formula_34.
It has been shown that this corresponding duality gap, that is the difference between formula_35 and the lower bound formula_31, decreases with the same convergence rate, i.e.
formula_37


Causal system

In control theory, a causal system (also known as a physical or nonanticipative system) is a system where the output depends on past and
current inputs but not future inputs—i.e., the output formula_1 depends only on the input formula_2 for values of formula_3.
The idea that the output of a function at any time depends only on past and present values of input is defined by the property commonly referred to as causality. A system that has "some" dependence on input values from the future (in addition to possible dependence on past or current input values) is termed a non-causal or acausal system, and a system that depends "solely" on future input values is an anticausal system. Note that some authors have defined an anticausal system as one that depends solely on future "and present" input values or, more simply, as a system that does not depend on past input values.
Classically, nature or physical reality has been considered to be a causal system. Physics involving special relativity or general relativity require more careful definitions of causality, as described elaborately in Causality (physics).
The causality of systems also plays an important role in digital signal processing, where filters are constructed so that they are causal, sometimes by altering a non-causal formulation to remove the lack of causality so that it is realizable. For more information, see causal filter.
For a causal system, the impulse response of the system must use only the present and past values of the input to determine the output. This requirement is a necessary and sufficient condition for a system to be causal, regardless of linearity. Note that similar rules apply to either discrete or continuous cases. By this definition of requiring no future input values, systems must be causal to process signals in real time.
Mathematical definitions.
Definition 1: A system mapping formula_4 to formula_5 is causal if and only if, for any pair of input signals formula_6, formula_7 and any choice of formula_8, such that
the corresponding outputs satisfy
Definition 2: Suppose formula_11 is the impulse response of any system formula_12 described by a linear constant coefficient differential equation. The system formula_12 is causal if and only if
otherwise it is non-causal.
Examples.
The following examples are for systems with an input formula_4 and output formula_5.


Hurwitz matrix

In mathematics, a Hurwitz matrix, or Routh–Hurwitz matrix, in engineering stability matrix, is a structured real square matrix constructed with coefficients of a real polynomial.
Hurwitz matrix and the Hurwitz stability criterion.
Namely, given a real polynomial
the formula_2 square matrix
is called Hurwitz matrix corresponding to the polynomial formula_4. It was established by Adolf Hurwitz in 1895 that a real polynomial with formula_5 is stable
(that is, all its roots have strictly negative real part) if and only if all the leading principal minors of the matrix formula_6 are positive:
and so on. The minors formula_8 are called the Hurwitz determinants. Similarly, if formula_9 then the polynomial is stable if and only if the principal minors have alternating signs starting with a negative one.
Hurwitz stable matrices.
In engineering and stability theory, a square matrix formula_10 is called a stable matrix (or sometimes a Hurwitz matrix) if every eigenvalue of formula_10 has strictly negative real part, that is,
for each eigenvalue formula_13. formula_10 is also called a stability matrix, because then the differential equation
is asymptotically stable, that is, formula_16 as formula_17
If formula_18 is a (matrix-valued) transfer function, then formula_19 is called Hurwitz if the poles of all elements of formula_19 have negative real part. Note that it is not necessary that formula_21 for a specific argument formula_22 be a Hurwitz matrix — it need not even be square. The connection is that if formula_10 is a Hurwitz matrix, then the dynamical system
has a Hurwitz transfer function.
Any hyperbolic fixed point (or equilibrium point) of a continuous dynamical system is locally asymptotically stable if and only if the Jacobian of the dynamical system is Hurwitz stable at the fixed point.
The Hurwitz stability matrix is a crucial part of control theory. A system is "stable" if its control matrix is a Hurwitz matrix. The negative real components of the eigenvalues of the matrix represent negative feedback. Similarly, a system is inherently "unstable" if any of the eigenvalues have positive real components, representing positive feedback.


Motion control

Motion control is a sub-field of automation, encompassing the systems or sub-systems involved in moving parts of machines in a controlled manner. Motion control systems are extensively used in a variety of fields for automation purposes, including precision engineering, micromanufacturing, biotechnology, and nanotechnology. The main components involved typically include a motion controller, an energy amplifier, and one or more prime movers or actuators. Motion control may be open loop or closed loop. In open loop systems, the controller sends a command through the amplifier to the prime mover or actuator, and does not know if the desired motion was actually achieved. Typical systems include stepper motor or fan control. For tighter control with more precision, a measuring device may be added to the system (usually near the end motion). When the measurement is converted to a signal that is sent back to the controller, and the controller compensates for any error, it becomes a Closed loop System.
Typically the position or velocity of machines are controlled using some type of device such as a hydraulic pump, linear actuator, or electric motor, generally a servo. Motion control is an important part of robotics and CNC machine tools, however in these instances it is more complex than when used with specialized machines, where the kinematics are usually simpler. The latter is often called General Motion Control (GMC). Motion control is widely used in the packaging, printing, textile, semiconductor production, and assembly industries.
Motion Control encompasses every technology related to the movement of objects. It covers every motion system from micro-sized systems such as silicon-type micro induction actuators to micro-siml systems such as a space platform. But, these days, the focus of motion control is the special control technology of motion systems with electric actuators such as dc/ac servo motors. Control of robotic manipulators is also included in the field of motion control because most of robotic manipulators are driven by electrical servo motors and the key objective is the control of motion.
Overview.
The basic architecture of a motion control system contains:
The interface between the motion controller and drives it control is very critical when coordinated motion is required, as it must provide tight synchronization. Historically the only open interface was an analog signal, until open interfaces were developed that satisfied the requirements of coordinated motion control, the first being SERCOS in 1991 which is now enhanced to SERCOS III. Later interfaces capable of motion control include Ethernet/IP, Profinet IRT, Ethernet Powerlink, and EtherCAT.
Common control functions include:


Chebyshev pseudospectral method

The Chebyshev pseudospectral method for optimal control problems is based on Chebyshev polynomials of the first kind. It is part of the larger theory of pseudospectral optimal control, a term coined by Ross. Unlike the Legendre pseudospectral method, the Chebyshev pseudospectral (PS) method does not immediately offer high-accuracy quadrature solutions. Consequently, two different versions of the method have been proposed: one by Elnagar et al., and another by Fahroo and Ross. The two versions differ in their quadrature techniques. The Fahroo–Ross method is more commonly used today due to the ease in implementation of the Clenshaw–Curtis quadrature technique (in contrast to Elnagar–Kazemi's cell-averaging method). In 2008, Trefethen showed that the Clenshaw–Curtis method was nearly as accurate as Gauss quadrature.
 This breakthrough result opened the door for a covector mapping theorem for Chebyshev PS methods. A complete mathematical theory for Chebyshev PS methods was finally developed in 2009 by Gong, Ross and Fahroo.
Other Chebyshev methods.
The Chebyshev PS method is frequently confused with other Chebyshev methods. Prior to the advent of PS methods, many authors proposed using Chebyshev polynomials to solve optimal control problems; however, none of these methods belong to the class of pseudospectral methods.


Aizerman's conjecture

In nonlinear control, Aizerman's conjecture or Aizerman problem states that a linear system in feedback with a sector nonlinearity would be stable if the linear system is stable for any linear gain of the sector. This conjecture was proven false but led to the (valid) sufficient criteria on absolute stability.
Mathematical statement of Aizerman's conjecture (Aizerman problem).
"Consider a system with one scalar nonlinearity"
"where P is a constant n×n-matrix, q, r are constant n-dimensional vectors, ∗ is an operation of transposition, f(e) is scalar function, and f(0)=0. Suppose that the nonlinearity f is sector bounded, meaning that for some real" formula_2 and formula_3 with formula_4, the function formula_5 satisfies
"Then Aizerman's conjecture is that the system is stable in large (i.e. unique stationary point is global attractor) if all linear systems with f(e)=ke, k ∈(k1,k2) are asymptotically stable."
There are counterexamples to Aizerman's conjecture such that nonlinearity belongs to the sector of linear stability and unique stable equilibrium coexists with a stable periodic solution, i.e. a hidden oscillation. However, under stronger assumptions on the system, such as positivity, Aizerman's conjecture is known to hold true.


Lazy linear hybrid automaton

Lazy linear hybrid automata model the discrete time behavior of control systems containing finite-precision sensors and actuators interacting with their environment under bounded inertial delays. The model permits only linear flow constraints but the invariants and guards can be any computable function.
This computational model was proposed by Manindra Agrawal and P. S. Thiagarajan. This model is more realistic and also computationally amenable than the currently popular modeling paradigm of linear hybrid automaton.


Cladding (metalworking)

Cladding is the bonding together of dissimilar metals. It is different from fusion welding or gluing as a method to fasten the metals together. Cladding is often achieved by extruding two metals through a die as well as pressing or rolling sheets together under high pressure.
The United States Mint uses cladding to manufacture coins from different metals. This allows a cheaper metal to be used as a filler. For example, dimes and quarters struck since 1965 have cores made from pure copper, with a clad layer consisting of 75% copper and 25% nickel added during production. Half dollars struck from 1965 to 1969 for circulation and in 1970 for collectors also incorporated cladding, albeit in the case of those coins, the core was a mixture of 20.9% silver and 79.1% copper, and its clad layer was 80% silver and 20% copper. Half dollars struck since 1971 are produced identically to the dimes and quarters.
Laser cladding is an additive manufacturing approach for metal coatings or precise piece restorations by using high power multi-mode optical fiber laser.
Roll bonding.
In roll bonding, two or more layers of different metals are thoroughly cleaned and passed through a pair of rollers under sufficient pressure to bond the layers. The pressure is high enough to deform the metals and reduce the combined thickness of the clad material. Heat may be applied, especially when metals are not ductile enough. As an example of application, bonding of the sheets can be controlled by painting a pattern on one sheet; only the bare metal surfaces bond, and the un-bonded portion can be inflated if the sheet is heated and the coating vaporizes. This is used to make heat exchangers for refrigeration equipment.
Explosive welding.
In explosive welding, the pressure to bond the two layers is provided by detonation of a sheet of chemical explosive. No heat-affected zone is produced in the bond between metals. The explosion propagates across the sheet, which tends to expel impurities and oxides from between the sheets. Pieces up to 4 x 16 metres can be manufactured. The process is useful for cladding metal sheets with a corrosion-resistant layer.
Laser cladding.
"Laser cladding" is a method of depositing material by which a powdered or wire feedstock material is melted and consolidated by use of a laser in order to coat part of a substrate or fabricate a near-net shape part (additive manufacturing technology) .
It is often used to improve mechanical properties or increase corrosion resistance, repair worn out parts, and fabricate metal matrix composites. Surface material may be laser cladded directly onto a highly stressed component, i.e. to make a self-lubricating surface. However, such a modification requires further industrialization of the cladding process to adapt it for efficient mass production. Further research on the detailed effects from surface topography, material composition of the laser cladded material and the composition of the additive package in the lubricants on the tribological properties and performance are preferably studied with tribometric testing.
Process.
A laser is used to melt metallic powder dropped on a substrate to be coated. The melted metal forms a pool on the substrate; moving the substrate allows the melt pool to solidify in a track of solid metal. Some processes involve moving the laser and powder nozzle assembly over a stationary substrate to produce solidified tracks. The motion of the substrate is guided by a CAM system which interpolates solid objects into a set of tracks, thus producing the desired part at the end of the trajectory.
Automatic laser cladding machines are the subject of ongoing research and development. Many of the process parameters must be manually set, such as laser power, laser focal point, substrate velocity, powder injection rate, etc., and thus require the attention of a specialized technician to ensure proper results. By use of sensors to monitor the deposited track height and width, metallurgical properties , and temperature, constant observation from a technician is no longer required to produce a final product. Further research has been directed to forward processing where system parameters are developed around specific metallurgical properties for user defined applications (such as microstructure, internal stresses, dilution zone gradients, and clad contact angle).


Fluid dynamic gauge

A fluid dynamic gauge (FDG) is a measurement technique used to study the behaviour of soft deposit layers in a liquid environment. It employs fluid mechanics to determine the thickness of the layer, and can also be used to obtain a measure of its strength. It was inspired by the technique of pneumatic gauging, which relies on a flow of air rather than the process liquid. Fluid dynamic gauging can be conducted as an in-line measuring technique, but is more commonly used as a research tool.
The technique was originally developed to measure the buildup or removal of the fouling layers commonly encountered in the process industry (such as in the heat treatment of dairy products). More recently, it has been applied to study cake buildup on porous membrane surfaces. Scanning versions can determine the topology of a solid/soft-solid surface immersed in a liquid environment, in an analogous manner to an atomic force microscope, but exploiting the principles of fluid mechanics.
Key features of the technique are that it can study soft deposit layers without touching them, relies on relatively simple operating principles, can be used in a completely opaque liquid, and does not rely on knowledge of the fluid or deposit properties.


Clutch control

Clutch control refers to the act of controlling the speed of a vehicle with a manual transmission by partially engaging the clutch plate, using the clutch pedal instead of (or in conjunction with) the accelerator pedal. The purpose of a clutch is in part to allow such control; in particular, a clutch provides transfer of torque between shafts spinning at different speeds. In the extreme, clutch control is used in performance driving, such as starting from a dead stop with the engine producing maximum torque at high RPM.
Overview.
With the clutch pedal completely pressed or a motorcycle's lever pulled entirely towards the driver, there is no direct link between the engine and the driveshaft, so no power can pass from the engine to the driveshaft and wheels. With the pedal entirely released, there is full contact between the engine and the driveshaft, via the clutch plate, which means that the engine can apply power directly to the driveshaft. However, it is possible to have the clutch plate partially engaged, allowing the clutch to slip. As a result, only a fraction of the power from the engine reaches the driveshaft, which is commonly known as half clutch.
Benefits.
There are benefits to the use of clutch control in specific circumstances:
Low gear and low speed.
When a car is in first gear, small variations in engine speed translate to large changes in acceleration and engine braking. However, with a combination of clutch control and careful use of engine speed, a much smoother ride can be achieved by allowing the clutch to slip. Variations in engine revs are not immediately translated into changes in drive shaft rotation speed, but rather the friction on the clutch plate allows the drive shaft to gradually equalize with the speed of the engine.
Moving off from a standstill
At a certain point while gently lifting the clutch, the car will begin to move as the clutch starts to slip, referred to as the biting point. Here, the accelerator pedal should be gently depressed to slowly increase the car's speed. Once the car reaches a suitable speed, the clutch can be fully engaged and speed can then be controlled either by varying the engine speed or by partially disengaging the clutch again if necessary.
This particular use of clutch control is frequently taught to learning drivers as a way to control acceleration when pulling away from a complete stop or when driving at very slow speeds while minimizing the chance of stalling the engine.
Creeping
Creeping generally refers to moving slowly, and is generally analogous to a parking situation or very slow moving traffic. Creeping is usually done in either reverse or first gear, like when reversing out of a parking space or pulling into a driveway. While moving at low speeds like these, it is often not necessary to use the accelerator pedal as an engine's idle speed should provide enough power to do so, given a driver is skilled with clutch control. Revving the engine higher than about 2000 RPM while moving at low speeds and the clutch not fully engaged is very bad and causes extreme wear to the clutch material, greatly reducing its usable lifespan. This is mitigated in most motorcycles by the use of a wet clutch.
Uphill start.
When pulling away on an uphill slope, the chance of stalling the engine is greater, and so it can be beneficial to engage the clutch more slowly than normal while revving higher than normal.
Adverse road conditions.
In adverse road conditions, notably snow or ice, it is recommended to pull away in as high a gear as possible (usually second) to minimize torque on the wheels and thereby maintain traction with the road. Pulling away requires progressively slower engagement of the clutch as the gear increases, and in a high gear it is necessary to engage the clutch slowly to avoid the increased risk of stalling the engine, or, in the case of adverse weather conditions, spinning the wheels.
Balancing the clutch.
Normally, when a vehicle is stationary on an uphill slope it is necessary to use the handbrake in conjunction with clutch control to prevent the vehicle from rolling backwards when pulling away. However, in situations where the vehicle must be stopped briefly, for example in slow moving traffic, the clutch can be used to balance the uphill force from the engine with the downhill force of gravity. In very few instances this may be useful, but generally should be avoided as doing this habitually will cause excessive wear on the clutch.
Deceleration.
Typically with motorcycles and in motor sport, the clutch is often used to facilitate the use of resistance from the engine spinning at high speeds to decelerate the vehicle more quickly, often accompanied with normal braking. This can be achieved by placing the vehicle in a gear that would ordinarily be too low for the current speed and momentum of the vehicle and by partly engaging the clutch. When this happens, momentum energy from the inertia of the vehicle is taken away to spin the engine as close as possible to its maximum capability. As the vehicle is decelerating, the clutch can be further released to transfer more energy to keep the engine spinning as quickly as possible. This method causes excessive clutch wear, however, and it could cause severe engine damage or wheel lockup if the clutch were to be released suddenly.
A better method is to downshift to a lower gear that would spin the engine within its RPM limit and use the throttle to "rev match" the engine to the road speed before releasing the clutch fully. Effective engine braking is still achieved with little or no excessive clutch wear.
Once the clutch is entirely released and the vehicle has decelerated some, this cycle proceeds downwards through the gears to further assist deceleration. If the clutch is controlled improperly while this is being attempted, damage or extra wear to the engine and gears is possible, as well as the risk of wheels locking up and a subsequent loss of proper vehicle control.
Problems.
Even normal use of clutch control increases the wear (and decreases the lifespan) of the clutch. Excessive use of clutch control or "riding the clutch" will cause further damage.
Prolonged use.
While the use of clutch control at low speed can be used to obtain greater control of acceleration and engine braking, once a car has picked up sufficient speed the clutch should be fully engaged (pedal released).
Excessive engine revolutions.
Excessively revving the engine while using clutch control, or keeping the clutch partially engaged while accelerating with the gas pedal, can cause unnecessary damage to the clutch.
Slipping the clutch.
Slipping the clutch (sometimes referred to as feathering the clutch) is a term used by automotive enthusiasts to describe when the driver alternately applies and releases the clutch to achieve some movement of the car. It's called "slipping" because the clutch plate will slip against the flywheel surface when such an action is performed. Slipping the clutch is known to be hard on the clutch surface due to the sliding friction created.
Drivers can frequently be observed slipping the clutch when they are trying to stay stationary on a hill without using neutral and the brake. They apply the clutch to climb a bit, then release to roll back, then apply again, etc. so that the car stays in about the same place. With enough practice, alternating is no longer needed. Applying the correct amount of clutch pressure and throttle causes just enough force from the engine to counter gravity and keep the vehicle stationary (see balancing the clutch). The alternative to this technique of staying stationary on a hill would be to put the vehicle in neutral and apply the brake.
Slipping the clutch is a popular term in drag racing culture and is done when launching a car, usually in a drag race. Some contend that slipping the clutch is the best way to launch a front-wheel drive (FWD) car as it prevents torque steering that many FWD cars experience when too much power is put to the front wheels.
Riding the clutch.
In a vehicle with a manual transmission, riding the clutch refers to the practice of needlessly keeping the clutch partially disengaged. This results in the clutch being unable to fully engage with the flywheel and so causes premature wear on the disc and flywheel.
A common example of riding the clutch is to keep slight continual pressure on the clutch pedal whilst driving, as when a driver habitually rests his/her foot on the clutch pedal instead of on the floorboard or dead pedal. Although this slight pressure is not enough to allow the clutch disc itself to slip, it is enough to keep the release bearing against the release springs. This causes the bearing to remain spinning, which leads to premature bearing failure.
When shifting properly, the driver "shifts" to another gear and then releases pressure on the clutch pedal to re-engage the engine to the driveshaft. If the pedal is released quickly, a definite lurch can be felt as the engine and driveshaft re-engage and their speeds equalize. However, if the clutch is released slowly the clutch disc will "slip" against the flywheel; this friction permits the engine a smoother transition to its new rotation speed. Such routine slippage causes wear on the clutch analogous to the wear-and-tear on a brake pad when stopping. Some amount of wear is unavoidable, but with better clutching/shifting technique it can be minimized by releasing the clutch as close to the correct engine speed for the gear and vehicle speed as possible. When upshifting, this will involve allowing the engine speed to fall. Conversely, when downshifting, increasing the engine speed with the accelerator prior to releasing clutch will result in a smoother transition and minimal clutch wear.
Riding the clutch occurs when the driver does not fully release the clutch pedal. This results in the clutch disc slipping against the flywheel and some engine power not being transferred to the drive train and wheels. While inefficient, most drivers routinely use this technique effectively when driving in reverse (as fully engaging the reverse gear results in velocity too great for the short distance traveled) or in stop-and-go traffic (as it is easier to control the throttle and acceleration at very slow speeds).
Riding the clutch should not be confused with "freewheeling" or "coasting", where the clutch is pressed down fully allowing the car to roll either downhill or from inertia. While this is not damaging to the car, it can be considered a dangerous way to drive since one forgoes the ability to quickly accelerate if needed. It is, however, a common practice to roll into a parking space or over speed bumps via momentum.


Underactuation

Underactuation is a technical term used in robotics and control theory to describe mechanical systems that cannot be commanded to follow arbitrary trajectories in configuration space. This condition can occur for a number of reasons, the simplest of which is when the system has a lower number of actuators than degrees of freedom. In this case, the system is said to be "trivially underactuated".
The class of underactuated mechanical systems is very rich and includes such diverse members as automobiles, airplanes, and even animals.
Definition.
To understand the mathematical conditions which lead to underactuation, one must examine the dynamics that govern the systems in question. Newton's laws of motion dictate that the dynamics of mechanical systems are inherently second order. In general, these dynamics can be described by a second order differential equation:
formula_1
Where:
formula_2 is the position state vector formula_3 is the vector of control inputs formula_4 is time.
Furthermore, in many cases the dynamics for these systems can be rewritten to be affine in the control inputs:
formula_5
When expressed in this form, the system is said to be underactuated if:
formula_6
When this condition is met, there are acceleration directions that can not be produced no matter what the control vector is.
Note that formula_7 does not explicitly represent the number of actuators present in the system. Indeed, there may be more actuators than degrees of freedom and the system may still be underactuated. Also worth noting is the dependence of formula_7 on the state formula_9. That is, there may exist states in which an otherwise fully actuated system becomes underactuated.
Examples.
The classic inverted pendulum is an example of a trivially underactuated system: it has two degrees of freedom (one for its support's motion in the horizontal plane, and one for the angular motion of the pendulum), but only one of them (the cart position) is actuated, and the other is only indirectly controlled. Although naturally extremely unstable, this underactuated system is still controllable.
A standard automobile is underactuated due to the nonholonomic constraints imposed by the wheels. That is, a car cannot accelerate in a direction perpendicular to the direction the wheels are facing. A similar argument can be made for boats, planes and most other vehicles.


OPC Foundation

The OPC Foundation (Open Platform Communications, formerly Object Linking and Embedding for Process Control) is an industry consortium that creates and maintains standards for open connectivity of industrial automation devices and systems, such as industrial control systems and process control generally. The OPC standards specify the communication of industrial process data, alarms and events, historical data and batch process data between sensors, instruments, controllers, software systems, and notification devices.
The OPC Foundation started in 1994, as a task force comprising five industrial automation vendors (Fisher-Rosemount, Rockwell Automation, Opto 22, Intellution, and Intuitive Technology), with the purpose of creating a basic OLE for Process Control specification. OLE is a technology developed by Microsoft Corporation for the MS Windows operating system. The task force released the OPC standard in August 1996. The OPC Foundation was chartered to continue development of interoperability specifications and includes manufacturers and users of devices instruments, controllers, software and enterprise systems.
The OPC Foundation cooperates with other organizations, such as MTConnect, who share similar missions.
OPC standards and specification groups.
The OPC Foundation enhanced the range for certification of OPC product to meet the increasing demand for reliable functionality and insured interoperability. The self-certification using the ComplianceTestTool (CTT) and the participation at an Interoperability Workshop (IOP) are now enhanced with a Certification in an independent test facility. According to the test specification here not only the OPC Data Access (DA2/3) interface is tested but also the overall behavior of the product in a real world environment is verified. OPC Certification


Nesting (process)

In manufacturing industry, nesting refers to the process of laying out cutting patterns to minimize the raw material waste. Examples include manufacturing parts from flat raw material such as sheet metal, glass sheets, cloth rolls, cutting parts from steel bars, etc.
Such process can also be applied to additive manufacturing, such as 3D printing. Here the advantages sought can include minimizing tool movement that is not producing product, or maximizing how many pieces can be fabricated in one build session. One difference from nesting of cut pieces is that 3D parts often have a cross section that changes with height, which can cause interference between adjacent parts as they are built up.
Types.
The nesting process differs for different types of parts:
Process.
To minimize the amount of scrap raw material produced during cutting, companies use nesting software. It automates the calculation of ideal distribution of the cutting patterns to avoid waste. The process involves the analyses the parts (shapes) to be produced at a particular time. Using algorithms, it then determines how to lay these parts out in such a way as to produce the required quantities of parts, while minimizing the amount of raw material (or space) wasted.
Off-the-shelf nesting software packages address the optimization needs. While some cater only to rectangular nesting, others offer profile or shape nesting where the parts required can be any odd shape. These irregular parts can be created using popular computer-aided design (CAD) tools. Here, the nesting software may be utilized as the connection between CAD drawings and the cut output.
Most of the profile nesting software can read IGES or DXF profile files automatically, a few of them work with built-in converters. An important consideration in shape nesting is to verify that the software in question actually performs true profile nesting and not just block nesting (rectangular). In block nesting an imaginary rectangle is drawn around the shape and then the rectangles are laid side-by side which actually is not profile nesting. There remains scope for waste reduction.
Nesting software must take into account the limitations and features of the material and machining technology in use, such as:
Nesting software may also have to take into account material characteristics, such as:
Many machine manufacturers offer their own custom nesting software designed to offer ease of use and take full advantage of the features of their specific machines.
If a fabricator operates machines from more than one vendor, they may prefer to use an off-the-shelf nesting software package from a third-party vendor. They then have the potential to run jobs on any available machine, and their staff should not have to learn several different software packages.
See also.
Material may be cut using off-line blanking dies, lasers, plasma, punches, shear blades, ultrasonic knives and water jet cutters.


Lowell Corporation

Lowell Corporation is a manufacturing company based in West Boylston, Massachusetts. The company was originally based in Worcester, Massachusetts and called the Lowell Wrench Company.
Lowell Corporation produces ratchet wrenches and other hand tools used for High Line and Pipeline Utility installation and repair. Lowell also makes ratchets as handles and clutches for inclusion in original industrial and commercial equipment. Through its Porter-Ferguson division, Lowell Corp. also produces portable hydraulic units and repair clamps for the automotive body and frame repair industry.