- Level Professional
- Duration 28 hours
- Course by University of Colorado Boulder
-
Offered by
About
This course can also be taken for academic credit as ECEA 5732, part of CU Boulder's Master of Science in Electrical Engineering degree. In this course, you will learn how to implement different state-of-charge estimation methods and to evaluate their relative merits. By the end of the course, you will be able to: - Implement simple voltage-based and current-based state-of-charge estimators and understand their limitations - Explain the purpose of each step in the sequential-probabilistic-inference solution - Execute provided Octave/MATLAB script for a linear Kalman filter and evaluate results - Execute provided Octave/MATLAB script for state-of-charge estimation using an extended Kalman filter on lab-test data and evaluate results - Execute provided Octave/MATLAB script for state-of-charge estimation using a sigma-point Kalman filter on lab-test data and evaluate results - Implement method to detect and discard faulty voltage-sensor measurementsModules
3.1.1: Welcome to the course!
1
Discussions
- Introduce Yourself
1
Videos
- 3.1.1: Welcome to the course!
7
Readings
- Get help and meet other learners in this course. Join your discussion forums!
- Notes for lesson 3.1.1
- Frequently asked questions
- Course resources
- How to use discussion forums
- Earn a course certificate
- Are you interested in earning an MSEE degree?
3.1.2: What is the importance of a good SOC estimator?
1
Assignment
- Practice quiz for lesson 3.1.2
1
Videos
- 3.1.2: What is the importance of a good SOC estimator?
1
Readings
- Notes for lesson 3.1.2
3.1.3: How do we define SOC carefully?
1
Assignment
- Practice quiz for lesson 3.1.3
1
Videos
- 3.1.3: How do we define SOC carefully?
1
Readings
- Notes for lesson 3.1.3
3.1.4: What are some approaches to estimating battery cell SOC?
1
Assignment
- Practice quiz for lesson 3.1.4
1
Labs
- Notebook to run before attempting practice quiz
1
Videos
- 3.1.4: What are some approaches to estimating battery cell SOC?
2
Readings
- Notes for lesson 3.1.4
- Introducing a new element to the course!
3.1.5: Understanding uncertainty via mean and covariance
1
Assignment
- Practice quiz for lesson 3.1.5
1
Videos
- 3.1.5: Understanding uncertainty via mean and covariance
1
Readings
- Notes for lesson 3.1.5
3.1.6: Understanding joint uncertainty of two unknown quantities
1
Assignment
- Practice quiz for lesson 3.1.6
1
Videos
- 3.1.6: Understanding joint uncertainty of two unknown quantities
1
Readings
- Notes for lesson 3.1.6
3.1.7: Understanding time-varying uncertain quantities
1
Assignment
- Practice quiz for lesson 3.1.7
1
Videos
- 3.1.7: Understanding time-varying uncertain quantities
1
Readings
- Notes for lesson 3.1.7
3.1.8: Summary of "The importance of a good SOC estimator" and next steps
1
Assignment
- Quiz for week 1
1
Videos
- 3.1.8: Summary of "The importance of a good SOC estimator" and next steps
1
Readings
- Notes for lesson 3.1.8
3.2.1: Predict/correct mechanism of sequential probabilistic inference
1
Assignment
- Practice quiz for lesson 3.2.1
1
Videos
- 3.2.1: Predict/correct mechanism of sequential probabilistic inference
1
Readings
- Notes for lesson 3.2.1
3.2.2: The Kalman-filter gain factor
1
Assignment
- Practice quiz for lesson 3.2.2
1
Videos
- 3.2.2: The Kalman-filter gain factor
1
Readings
- Notes for lesson 3.2.2
3.2.3: Summarizing the six steps of generic probabilistic inference
1
Assignment
- Practice quiz for lesson 3.2.3
1
Videos
- 3.2.3: Summarizing the six steps of generic probabilistic inference
1
Readings
- Notes for lesson 3.2.3
3.2.4: Deriving the three Kalman-filter prediction steps
1
Assignment
- Practice quiz for lesson 3.2.4
1
Videos
- 3.2.4: Deriving the three Kalman-filter prediction steps
1
Readings
- Notes for lesson 3.2.4
3.2.5: Deriving the three Kalman-filter correction steps
1
Assignment
- Practice quiz for lesson 3.2.5
1
Videos
- 3.2.5: Deriving the three Kalman-filter correction steps
1
Readings
- Notes for lesson 3.2.5
3.2.6: Summary of "Introducing the linear KF as a state estimator" and next steps
1
Assignment
- Quiz for week 2
1
Videos
- 3.2.6: Summary of "Introducing the linear KF as a state estimator" and next steps
1
Readings
- Notes for lesson 3.2.6
3.3.1: Visualizing the Kalman filter with a linearized cell model
1
Assignment
- Practice quiz for lesson 3.3.1
1
Videos
- 3.3.1: Visualizing the Kalman filter with a linearized cell model
1
Readings
- Notes for lesson 3.3.1
3.3.2: Introducing Octave code to generate correlated random numbers
1
Assignment
- Practice quiz for lesson 3.3.2
1
Labs
- Generating correlated random vectors
1
Videos
- 3.3.2: Introducing Octave code to generate correlated random numbers
1
Readings
- Notes for lesson 3.3.2
3.3.3: Introducing Octave code to implement KF for linearized cell model
1
Assignment
- Practice quiz for lesson 3.3.3
1
Labs
- Sample code implementing linear Kalman filter
1
Videos
- 3.3.3: Introducing Octave code to implement KF for linearized cell model
1
Readings
- Notes for lesson 3.3.3
3.3.4: How do we improve numeric robustness of Kalman filter?
1
Assignment
- Practice quiz for lesson 3.3.4
1
Videos
- 3.3.4: How do we improve numeric robustness of Kalman filter?
1
Readings
- Notes for lesson 3.3.4
3.3.5: Can we automatically detect bad measurements with a Kalman filter?
1
Assignment
- Practice quiz for lesson 3.3.5
1
Videos
- 3.3.5: Can we automatically detect bad measurements with a Kalman filter?
1
Readings
- Notes for lesson 3.3.5
3.3.6: How do I initialize and tune a Kalman filter?
1
Assignment
- Practice quiz for lesson 3.3.6
1
Videos
- 3.3.6: How do I initialize and tune a Kalman filter?
1
Readings
- Notes for lesson 3.3.6
3.3.7: Summary of "Coming to understand the linear KF" and next steps
1
Assignment
- Quiz for week 3
1
Videos
- 3.3.7: Summary of "Coming to understand the linear KF" and next steps
1
Readings
- Notes for lesson 3.3.7
3.4.1: Introducing nonlinear variations to Kalman filters
1
Assignment
- Practice quiz for lesson 3.4.1
1
Videos
- 3.4.1: Introducing nonlinear variations to Kalman filters
1
Readings
- Notes for lesson 3.4.1
3.4.2: Deriving the three extended-Kalman-filter prediction steps
1
Assignment
- Practice quiz for lesson 3.4.2
1
Videos
- 3.4.2: Deriving the three extended-Kalman-filter prediction steps
1
Readings
- Notes for lesson 3.4.2
3.4.3: Deriving the three extended-Kalman-filter correction steps
1
Assignment
- Practice quiz for lesson 3.4.3
1
Videos
- 3.4.3: Deriving the three extended-Kalman-filter correction steps
1
Readings
- Notes for lesson 3.4.3
3.4.4: Introducing a simple EKF example, with Octave code
1
Assignment
- Practice quiz for lesson 3.4.4
1
Labs
- Simple EKF example
1
Videos
- 3.4.4: Introducing a simple EKF example, with Octave code
1
Readings
- Notes for lesson 3.4.4
3.4.5: Preparing to implement EKF on an ECM
1
Assignment
- Practice quiz for lesson 3.4.5
1
Labs
- Sample workspace for evaluating quiz answers
1
Videos
- 3.4.5: Preparing to implement EKF on an ECM
1
Readings
- Notes for lesson 3.4.5
3.4.6: Introducing Octave code to initialize and control EKF for SOC estimation
1
Videos
- 3.4.6: Introducing Octave code to initialize and control EKF for SOC estimation
1
Readings
- Notes for lesson 3.4.6
3.4.7: Introducing Octave code to update EKF for SOC estimation
1
Assignment
- Practice quiz for lesson 3.4.7
1
Labs
- Octave implementation of EKF to estimate SOC
1
Videos
- 3.4.7: Introducing Octave code to update EKF for SOC estimation
1
Readings
- Notes for lesson 3.4.7
3.4.8: Summary of "Cell SOC estimation using an EKF" and next steps
1
Assignment
- Quiz for week 4
1
Videos
- 3.4.8: Summary of "Cell SOC estimation using an EKF" and next steps
1
Readings
- Notes for lesson 3.4.8
3.5.1: Problems with EKF that are improved with sigma-point methods
1
Assignment
- Practice quiz for lesson 3.5.1
1
Videos
- 3.5.1: Problems with EKF that are improved with sigma-point methods
1
Readings
- Notes for lesson 3.5.1
3.5.2: Approximating uncertain variables using sigma points
1
Assignment
- Practice quiz for lesson 3.5.2
1
Videos
- 3.5.2: Approximating uncertain variables using sigma points
1
Readings
- Notes for lesson 3.5.2
3.5.3: Deriving the six sigma-point-Kalman-filter steps
1
Assignment
- Practice quiz for lesson 3.5.3
1
Videos
- 3.5.3: Deriving the six sigma-point-Kalman-filter steps
1
Readings
- Notes for lesson 3.5.3
3.5.4: Introducing a simple SPKF example with Octave code
1
Assignment
- Practice quiz for lesson 3.5.4
1
Labs
- Simple SPKF example
1
Videos
- 3.5.4: Introducing a simple SPKF example with Octave code
1
Readings
- Notes for lesson 3.5.4
3.5.5: Introducing Octave code to initialize and control SPKF for SOC estimation
1
Videos
- 3.5.5: Introducing Octave code to initialize and control SPKF for SOC estimation
1
Readings
- Notes for lesson 3.5.5
3.5.6: Introducing Octave code to update SPKF for SOC estimation
1
Assignment
- Practice quiz for lesson 3.5.6
1
Labs
- Octave implementation of SPKF to estimate SOC
1
Videos
- 3.5.6: Introducing Octave code to update SPKF for SOC estimation
1
Readings
- Notes for lesson 3.5.6
3.5.7: Summary of "Cell SOC estimation using a SPFK" and next steps
1
Assignment
- Quiz for week 5
1
Videos
- 3.5.7: Summary of "Cell SOC estimation using a SPFK" and next steps
1
Readings
- Notes for lesson 3.5.7
3.6.1: Why do we need to be clever when estimating SOC for battery packs?
1
Assignment
- Quiz for lesson 3.6.1
1
Videos
- 3.6.1: Why do we need to be clever when estimating SOC for battery packs?
1
Readings
- Notes for lesson 3.6.1
3.6.2: Developing the "bar" filter using an ECM
1
Assignment
- Quiz for lesson 3.6.2
1
Videos
- 3.6.2: Developing a "bar" filter using an ECM
1
Readings
- Notes for lesson 3.6.2
3.6.3: Developing the "delta" filters using an ECM
1
Assignment
- Quiz for lesson 3.6.3
1
Videos
- 3.6.3: Developing the "delta" filters using an ECM
1
Readings
- Notes for lesson 3.6.3
3.6.4-3.6.5: Introducing "desktop validation" as a method for predicting performance; summary
1
Assignment
- Quiz for lessons 3.6.4 and 3.6.5
1
Labs
- Octave implementation of a bar-delta filter
2
Videos
- 3.6.4: Introducing "desktop validation" as a method for predicting performance
- 3.6.5: Summary of "Improving computational efficiency using the bar-delta method" and next steps
2
Readings
- Notes for lesson 3.6.4
- Notes for lesson 3.6.5
3.7 Capstone project
- Part 1: Tuning an EKF for SOC estimation
- Part 2: Tuning an SPKF for SOC estimation
2
Labs
- Jupyter notebook for capstone project, Part 1
- Jupyter notebook for capstone project, Part 2

Gregory Plett