Main Content

Estimate Model Parameters Per Experiment (GUI)

This example shows how to use multiple experiments to estimate a mix of model parameter values; some that are estimated using all the experiments and others that are estimated using individual experiments. The example also shows how to configure estimation experiments with experiment dependent parameter values.

You estimate the parameters of a rechargeable battery based on data collected in experiments that discharge and charge the battery.

Open the Model and Get Experimental Data

This example estimates parameters of a simple, rechargeable battery model, sdoBattery. The model input is the battery current and the model output, the battery terminal voltage, is computed from the battery state-of-charge.

open_system('sdoBattery')

Simple Battery Model

The model is based on the equation

E=(1-Loss)V-KQmax1-ss

In the equation:

E is the battery terminal voltage in Volts.

V is the battery constant voltage in Volts.

K is the battery polarization resistance in Ohms.

Qmax is the maximum battery capacity in Ampere-hours.

s is the battery charge state, with 1 being fully charged and 0 discharged. The battery state-of-charge is computed from the integral of the battery current with a positive current indicating discharge and a negative current indicating charging. The battery initial state-of-charge is specified by Q0 in Ampere-hours.

Loss is the voltage drop when charging, expressed as a fraction of the battery constant voltage. When the battery is discharging this value is zero.

V, K, Qmax, Q0, and Loss are variables defined in the model workspace.

Estimation Experiment Data

A 1.2V (6500mAh) battery was subjected to a discharge and a charging experiment. This experiment data has been loaded into a preconfigured estimation session.

Use the following commands to load the pre-configured estimation session.

load sdoBattery_spesession
spetool(SDOSessionData)

The measured charge and discharge experiment data are loaded and plotted. Click the arrow to the right of the plot tab and select Tile All > Left/Right to lay out the plots so that the Experiment plot:Charge_Exp and Experiment plot:DCharge_Exp are both visible. Click Plot Model Response to see how well the model simulation matches the measured experiment data.

Model response plots of both the measured charge and discharge experiment data in the Parameter Estimator app

The plots show that the battery initial charge Q0 is not set correctly for the Charge_Exp experiment and that the model V, K, and Loss parameters need to be estimated.

Setting Experiment Parameter Values

The previous plot indicates that the Charge_Exp battery initial charge, Q0, is not set correctly. Add the initial charge to both experiments. Right click Charge_Exp and select Edit. A dialog box to edit the experiment opens.

Edit Experiment: Charge_Exp dialog box containing the Outputs, Inputs, Initial States, and Parameters sections from top to bottom

Click Select Parameters to open a dialog box to add model parameters to the experiment. Select Loss and Q0 to add to the experiment. Select Loss as we need to estimate this parameter using only the Charge_Exp experiment. Click Ok to add the Q0 and Loss parameters to the experiment.

Select model variables dialog box with variables Loss and Q0 selected

Set the battery initial charge Q0 in the Charge_Exp to 0, i.e. there is no initial charge.

Q0 is set to 0 in the Edit Experiment: Charge_Exp dialog box

Similarly add the battery initial charge Q0 to the DCharge_Exp experiment and set the initial charge to 6.5., i.e. for this experiment there is an initial charge.

Q0 is set to 6.5 in the Edit Experiment: DCharge_Exp dialog box

Now that the experiments are updated with the correct initial battery charge click Plot Model Response to simulate the model and compare measured and simulated data.

Updated model response plots of the measured charge and discharge experiment data

The experiment plots show that the experiment initial conditions match but the battery response does not. The next step is to estimate the K and V model parameters.

Select Estimation Parameters

The previous plot showed that the model response does not match the measured data and we need to estimate the model V and K parameters.

Click Select Parameters to open a dialog box to select model parameters.

Edit: Estimated Parameters dialog box with options to select parameters for experiments

The upper portion of the select parameters dialog box has a section for parameters that are tuned using all experiments. Click Select Parameters and add the V and K model parameters to the estimated parameters. Set the V minimum to 0 and the maximum to 2, similarly set the K minimum to 1e-6 and maximum to 0.1.

Edit: Estimated Parameters dialog box showing parameters K and V along with their minimum and maximum values under Parameters Tuned for all Experiments

The lower section of the dialog box has a section for initial states and parameters that are tuned using individual experiments.

For the Charge_Exp we tune the Loss parameter and set its minimum to 0 maximum to 0.5. The battery initial charge Q0 is fixed to 0 and should not be estimated; clear Estimate.

Under Parameters and Initial States Tuned per Experiment in the Edit: Estimated Parameters dialog box, Charge_Exp is selected as the Experiment. Minimum and maximum values of Loss are specified. Estimate box against Q0 parameter is unchecked.

Select DCharge_Exp from the Experiment combobox to view the parameter settings for the DCharge_Exp experiment. The battery initial charge Q0 is fixed to 6.5 and should not be estimated; clear Estimate.

Under Parameters and Initial States Tuned per Experiment in the Edit: Estimated Parameters dialog box, DCharge_Exp is selected as the Experiment. Estimate box against Q0 parameter is unchecked.

Estimate Parameter Values

The experiments and estimated parameters are configured and we a ready to run the estimation. First create a plot to monitor the estimation progress. Click Add Plot and select Parameter Trajectory. This creates a plot that shows how the estimated parameter values change during estimation. Click the View tab to layout the plots so that the experiment and parameter trajectory plots are all visible.

Parameter trajectory plot is added at the bottom of the model response plots in the app

Click the Estimate button to start the estimation. You can modify estimation options by setting the Cost Function combobox and clicking More Options.

While the estimation is running the plots update and a dialog box showing estimation progress appears. The progress dialog box shows the estimation iterations, the number of times the model has been evaluated (F-count), and the estimation cost at each iteration.

Model Response plots and parameter trajectory plot after performing parameter estimation

Optimization Progress Report

After a number of iterations the estimation converges and terminates. The experiment plots show the measured and simulation data matching well. The EstimatedParams plot shows the V, K, and Loss parameters changing during the estimation; the scale of V, K, and Loss are different, right click on the plot and select Show scaled values to see how all the parameters changed from their original values.

Related Examples

To learn how to estimate parameters per experiment using the sdo.optimize command, see Estimate Model Parameters Per Experiment (Code).

Close the model.

bdclose('sdoBattery')