You have now learned how to use Kalman filters to perform state estimation and parameter estimation independently. That is, you can estimate the state of a system if you know the parameter values exactly. Or you can estimate the parameters of a model if you know the state of the system exactly. But now we ask the question, is it possible to estimate the state and the parameters of a model at the same time? And there are two approaches that researchers take to do this. One is called joint estimation, and the other is called dual estimation. In this lesson, you will learn about these two different approaches in a very generic way. And in the next lesson, you will learn some of the more specific details. First, we discuss joint estimation. In joint estimation, we combine the state vector of the model and the parameter vector of the model into a single vector. A nonlinear Kalman filter simultaneously estimates the values of this augmented vector as it evolves over time. The equations on the slide show the system model that would be used with this Kalman filter. You can see on the left of the first equation that we have combined the state x subscript k with the parameters theta subscript k. We have combined the state update equation and the parameter update equations on the right side of the equation as well. The output equation is simply a description of battery cell voltage as a function of both the state of the model and of the parameters of the model. So the idea behind joint estimation is simply to make a model having a bigger augmented state vector that includes inside of it the parameters of the model as well. Then we use a standard nonlinear Kalman filter with this model to estimate both at the same time. We can simplify notation a little bit to make it more evident that we're simply doing standard nonlinear Kalman filtering. We let fancy X be the augmented state that combines the state of the model and the parameters of the model. And we let fancy W be the augmented noise, that includes the process noise that drives the state, as well as the fictitious noise that drives the parameters. And then we let fancy F be the augmented state equations that combine the state update and the parameter update. One advantage of using joint estimation versus dual estimation that you'll learn about in just a minute is that joint estimation is very straightforward to implement. Once we have defined this augmented model of system state dynamics and parameter dynamics, we simply apply any nonlinear Kalman filter to this model, just like you learned how to do in the third course in the specialization. A disadvantage of joint estimation is that it requires large matrices to be operated on, because the size of the augmented state in the equations, and the equations that work with that augmented state. Large operations tend to be slower, and they tend to require more memory. A less obvious disadvantage is that the numeric conditioning of the mathematical operations may be worse. And that's because of the different time scales of the evolution of states versus the evolution of parameters. So for example, the matrix describing time constants of diffusion would have values that allow diffusion to change over the course of minutes or hours. But values in the matrix that describe time constants of degradation would have values that allow the cell to age over the course of years or even decades. So the amount of change per update, especially for aging, is very small. And round off errors can be a very big contribution to numeric inaccuracies of the joint estimation approach. A second approach to simultaneous estimation of states and parameters is known as dual estimation. With dual estimation, we use two Kalman filters. One Kalman filter is used to estimate the state vector of the system model. A second Kalman filter is used to estimate the parameter values of the model. The computational complexity of dual estimation is lower than of joint estimation, meaning that fewer floating point operations are usually required for every update in order to determine its calculated values. And we partition the relatively fast dynamics of the system into one model, the state model, and that's used by one Kalman filter. And the relatively slow dynamics of aging into another model, that's used by a second Kalmanfilter. And because the fast dynamics are separated from the slow dynamics, matrices and numeric operations may be better conditioned and less susceptible to round off errors. But at the same time, we are decoupling the state from the parameters. So any cross correlations between errors and the states, and errors and the parameters are lost, and this leads to at least potentially to a lower accuracy of a solution. In order to implement dual estimation, we first make a model of the state dynamics. This model is identical to what you saw in the third course of the specialization, except now we explicitly mention the parameters in the vector named theta as an input to this equation. Any numeric values in the model that are constant, and therefore never change with time, do not need to be embedded in that vector, and are just numeric values that are hard coded into the state and measurement equations. So theta consists only of those parameters we desire to adapt. We also slightly revise the model of the parameter dynamics to include the effect of the state equation explicitly. Notice that we have changed the measurement equation of the model. Previously we wrote this measurement as a function of the state xk of the system. And here, we've replaced that state xk with its functional form, expanded out as the first term in the measurement equation, the first input to the h equation. This block diagram that I share with you now illustrates the two Kalman filters operating. The left side of the diagram shows inputs at time k-1, and the right side shows outputs of the state estimate and the parameter estimate at time k. The top portion of the diagram is the Kalman filter that estimates the state. And I have divided this even into two portions, where one portion performs the three time update prediction steps, and the other portion provides the three measurement update steps. I've also divided the bottom part of this diagram into two parts. The first part does the prediction steps of the parameter update, and the second part performs the measurement updates. I've drawn the flow of information or data among the different portions of the filters using lines with arrows. And these interactions between the different filters will be made clearer later on, when you see all of the steps written out as algorithm steps. But the big picture is that dual estimation involves two Kalman filters running in parallel. One adapts the state and one adapts the parameters. And these two filters interchange and exchange information between them as is needed. To summarize this lesson, there are two approaches to adapting a model's state and parameter vectors at the same time using Kalman filters. Joint estimation combines the state and parameters into a single large vector and then uses a single standard nonlinear Kalman filter with this combined or augmented system. Dual estimation instead uses two separate Kalman filters, one for state and one for parameter estimation. Joint estimation I believe is easier to understand conceptually, but it can be slower in practice, because it involves larger matrix operations. And it also might have more inaccurate numeric or poorer numeric conditioning. Dual estimation generally requires fewer floating point operations, but ignores any correlations that might exist between state and parameter estimation errors in its updates. So that concludes this overview introducing joint and dual estimation. In the next lesson, you will learn how to implement these methods with extended Kalman filters and with sigma point Kalman filters also.