TutorialPCET – Polynomial Chaos Expansion Toolbox
Stefan Streif Felix Petzke Ali Mesbah
Stef
an S
trei
f–
TU C
hem
nit
z –
PC
ET T
uto
rial
2
PCET Overview
What’s PCET?• MATLAB™ based toolbox for uncertainty quantification using the
polynomial chaos expansion (PCE)• simple syntax for definition of models, uncertainties, …• general purpose code and mid-level functions• free for academic purposes:
www.TU-Chemnitz.de/etit/control/research/PCET
Possible applications and problem setup• systems: continuous- or discrete-time systems with uncertain initial
conditions, parameters and inputs and outputs
• problems and applications: stochastic MPC, stochastic active FDI, experiment-design, parameter and state estimation, uncertainty quantification, …
Aims of this tutorial?explain main concepts and typical work flow at simple example
Stef
an S
trei
f–
TU C
hem
nit
z –
PC
ET T
uto
rial
3
Outline
1. Quick guide
2. Typical workflow illustrated at a simple example
3. Examples overview
4. References
Stef
an S
trei
f–
TU C
hem
nit
z –
PC
ET T
uto
rial
4
Quick guide – installation, files, folders, documentation
InstallationUnpack ZIP-file into current MATLAB™ folder and run
installPCET
generates documentation, sets paths, checks dependencies, …
Help and documentationFor short introduction to syntax etc. type
help PCET
For further and more detailed information on different functions, extended functionality, please see examples, help browser or type e.g.:
help PCETcompose
doc PCETcompose
Please contact [email protected] if you need further help.
Files and folders• main files (starting with PCET…) in main folder• auxiliary files in subfolders (shouldn’t be used directly)• examples in folders ./PCET/examples/ex…
mailto:[email protected]
Stef
an S
trei
f–
TU C
hem
nit
z –
PC
ET T
uto
rial
5
Typical workflow
7. Modify inputs, uncertaintiesof parameters and initial cond.
init
ializ
atio
np
rob
lem
sp
eci
fic
6. Visualize or analyze results
5. Simulate PCE-system or perform MC simulations
4. Set options for simulation, integration, …
3. Write files for simulation
2. Compose the PCE-system
1. Define dynamical system and uncertainties, inputs, …
Stef
an S
trei
f–
TU C
hem
nit
z –
PC
ET T
uto
rial
6
Define system, inputs, uncertainties, …
1. Define dynamical system and uncertainties, inputs, …
states(1).name = 'x';
states(1).dist = 'uniform';
states(1).data = [0.9 1.3];
states(1).rhs = 'a*x + u';
parameters(1).name = 'a';
parameters(1).dist = 'normal';
parameters(1).data = [-5 0.1];
outputs(1).name = 'y';
outputs(1).rhs = '3*x^2';
inputs(1).name = 'u';
inputs(1).rhs = 'piecewise(ut,uv,t)';
inputs(1).ut = 1; % time of step
inputs(1).uv = 1; % height of step
Example ODE:
Implementation:
state
parameter
output
input(here piecewise constant)
Stef
an S
trei
f–
TU C
hem
nit
z –
PC
ET T
uto
rial
7
Compose and export problem
2. Compose the PCE-systemPCE is performed for the specified system, uncertainties, …
may take a long time depending on the number of uncertainties and PCE order• returns: structure sys that will be used by subsequent functions
3. Write files for simulationr.h.s. of continuous or discrete-time dynamics (PCE-system or Monte-Carlo) andof output equations have to written to files (used later by simulation functions etc.)
sys = PCETcompose(states,parameters, ...
inputs,outputs,pce_order)
PCETwriteFiles(sys,'ex1_ODE.m','ex1_OUT.m', ...
'ex1_MCODE.m','ex1_MCOUT.m')
r.h.s. of PCE system(for simulation)
r.h.s of PCE output equations
r.h.s. of MC system(for simulation)
r.h.s of MC output equations
Stef
an S
trei
f–
TU C
hem
nit
z –
PC
ET T
uto
rial
8
Set options and update of uncertainties
4. Set options for simulation, integration, …
simoptions.tspan = [0 3];
simoptions.dt = 0.05;
Continuous-time:simoptions.setup = odeset;
simoptions.solver = ‘ode15s';
Discrete-time:simoptions.solver = ‘discrete-time';
7. Update/modify uncertainties of initial conditions or parameter
set simulation interval
set time step-size for (simulation and/orevaluation
set integrator options
choose integrator
choose discrete-timesimulation
sys = PCETupdate(sys,‘x',[1.1 1.4],‘a',[-6 0.1]);
update ‘data’ (see step 1) of variables ‘x’ and ‘a’
Optional and possibly at a later time-point:
Stef
an S
trei
f–
TU C
hem
nit
z –
PC
ET T
uto
rial
9
Simulation
5a. Simulate PCE system (and output equations) using Galerkin projectionPCEresults = ...
PCETsimGalerkin(sys,'ex1_ODE','ex1_OUT',simoptions)
PCEresults/MCresults contain all simulation data which can be processed and analyzed further
5b.Simulate PCE system (and output equations) using collocation
and/or:
samples_col = PCETsample(sys,'basis',col_samples)
PCEresults = ...
PCETsimCollocation(sys,'ex1_MCODE', ...
'ex1_MCOUT',samples_col,simoptions)
5c. Monte-Carlo simulation (states and output equations)
and/or:
samples = PCETsample(sys,'variables',mc_samples)
MCresults = ...
PCETsimMonteCarlo(sys,'ex1_MCODE','ex1_MCOUT', ...
samples,simoptions)
draws col_samples samples, evaluates basis polyn. and uses collocation
draws mc_samples samples, evaluates uncert. and simulates system
Stef
an S
trei
f–
TU C
hem
nit
z –
PC
ET T
uto
rial
10
Visualize and analyze results
6a. MomentsMomMats = PCETmomentMatrices(sys,4)
compute moment matrices (up to 4th order)need not to recomputed (can be stored for repeated use)
6b.Histogram
and/or:
samples_basis = PCETsample(sys,'basis',n_samples)
samples_y = samples_basis' * PCEresults.y.pcvals
draws n_samples samples and evaluates basis polynomials
use MATLAB™ functions for histogram plots (e.g. histc)
PCEresults.y.moments = ...
PCETcalcMoments(sys,MomMats,results.y.pcvals)
use MATLAB™ function plot to display moments stored in PCEresults.y.moments
Stef
an S
trei
f–
TU C
hem
nit
z –
PC
ET T
uto
rial
11
Quick guide – examples
ex1_continuous_simulation
• uncertainty quantification for a nonlinear system• plotting of moments, histograms, …
ex2_lti_systems
• uncertainty quantification for a linear system• specification of system dynamics in matrix form
ex3_discrete_simulation
• uncertainty quantification for a discrete-time nonlinear system
ex4_fault_detection
• input design for active fault detection for a two-tank-system• distribution dissimilarity measure• embedding uncertainty quantification into an nonlinear optimization scheme
ex5_model_discrimination
• input design for model discrimination for biochemical reaction networks
[Mesbah et al. (2014)]
[Streif et al. (2014)]
ex6_SNMPC
• stochastic nonlinear model predictive control for a crystallization process• chance constraints
[Mesbah et al. (2014)]
Stef
an S
trei
f–
TU C
hem
nit
z –
PC
ET T
uto
rial
12
Selected PCE applications/publications
• J. A. Paulson, S. Streif, and A. Mesbah. Stability for receding-horizon stochastic model predictive control. In Proc. American Control Conference (ACC), Chicago, IL, July 2015.
• J. A. Paulson, A. Mesbah, S. Streif, R. Findeisen, and R. D. Braatz. Fast stochastic model predictive control of high-dimensional systems. In Proc. 53rd IEEE Conference on Decision and Control (CDC), Los Angeles, CA, December 2014.
• A. Mesbah, S. Streif, R. Findeisen, and R. D. Braatz. Stochastic nonlinear model predictive control with probabilistic constraints. In Proc. American Control Conference (ACC), Portland, Oregon, June 2014.
• A. Mesbah, S. Streif, R. Findeisen, and R. D. Braatz. Active fault diagnosis for nonlinear systems with probabilistic uncertainties. In Proc. 19th IFAC World Congress, Cape Town, South Africa, 2014.
• S. Streif, F. Petzke, A. Mesbah, R. Findeisen, and R. D. Braatz. Optimal experimental design for probabilistic model discrimination using polynomial chaos. In Proc. 19th IFAC World Congress, Cape Town, South Africa, 2014.
• S. Streif, M. Karl, and A. Mesbah. Stochastic nonlinear model predictive control with efficient sample approximation of chance constraints. arXiv: 1410.4535.
• A. Mesbah and S. Streif. A probabilistic approach to robust optimal experiment design with chance constraints. In. Proc. International Symposium on Advanced Control of Chemical Processes (ADCHEM), Whistler, Canada, 2015.
source codes available, see examples!
Top Related