ODE Parameter Estimation Using Optimization
Version 1.0.1 (3,73 KB) von
Zongze
MATLAB tool for estimating unknown parameters in ODE models using optimization with known time-varying inputs.
Why We Made This Code
This MATLAB code estimates the parameters of a three-element Windkessel (WK3) model from an input flow waveform by solving the governing ODE and performing optimization.
The code was originally developed as part of the following paper:
A fast approach to estimating Windkessel model parameters for patient-specific multi-scale CFD simulations of aortic flow
In that work, this code provides a fast approach for identifying Windkessel parameters so that the resulting pressure waveform satisfies prescribed physiological targets (e.g., systolic and diastolic pressure).
Quick Start
1. Prepare input data
Place your waveform in `flowrate.csv` with
- Column 1 — time
- Column 2 — flow rate
2. Run the MATLAB script
Open MATLAB in this folder and run `windkessel_model_parameters_estimation`
3. Check outputs
The script
- estimates the Windkessel parameters
- prints the optimized parameters in MATLAB
- generates the reconstructed pressure waveform
General Idea Behind the Code
Although this code was originally developed for Windkessel parameter estimation, the underlying idea can be generalized to many modeling and simulation problems.
The framework can be used when:
- a governing ODE is known
- some coefficients (parameters) are unknown
- a time-varying input waveform is available
- the goal is to determine the unknown parameters so that the resulting output waveform satisfies certain desired properties
For example, the objective may require the output waveform to match
- specific maximum and minimum values
- a desired amplitude
- other waveform characteristics defined through an objective function
In such cases, the workflow becomes:
1. define the governing ODE
2. provide an input waveform
3. define an objective function describing the desired waveform properties
4. use optimization to identify the unknown parameters
To apply this framework to other problems, users mainly need to modify
- the input waveform
- the ODE definition
- the objective function
Acknowledgment
Many thanks to my Ph.D. advisor Dr. Wenbin Mao, who mentored me during the development of this code.
The original framework was implemented during our research work, and I later learned from it and extended parts of the code.
More Information
More detailed explanation, background, and documentation can be found on my project page:
The methodology used in this implementation is described in the paper:
A fast approach to estimating Windkessel model parameters for patient-specific multi-scale CFD simulations of aortic flow
Zitieren als
Li, Zongze, and Wenbin Mao. “A Fast Approach to Estimating Windkessel Model Parameters for Patient-Specific Multi-Scale CFD Simulations of Aortic Flow.” Computers Fluids, vol. 259, June 2023, p. 105894, https://doi.org/10.1016/j.compfluid.2023.105894.
Kompatibilität der MATLAB-Version
Erstellt mit
R2025b
Kompatibel mit allen Versionen
Plattform-Kompatibilität
Windows macOS LinuxTags
Live Editor erkunden
Erstellen Sie Skripte mit Code, Ausgabe und formatiertem Text in einem einzigen ausführbaren Dokument.
| Version | Veröffentlicht | Versionshinweise | |
|---|---|---|---|
| 1.0.1 | Fix the description formatting issue. |
||
| 1.0.0 |
