Release Notes
v0.29.0
JuliaSimControl
Features
- Add Polynomial-Quadratic Regulator control design (PQR)
- Add function
common_lyap
that computes quadratic Lyapunov functions for uncertain systems - Add polynomial trajectory synthesizer
- Add function
poly_approx
for least-squares polynomial approximation of nonlinear dynamics
Tutorials
- Add PQR tutorials
- Add tutorial for control of PDE system
- Add input-simulation tutorial
JuliaSimModelOptimizer
Features
- Add support for DataSets as input data
- Add symbolic regression interface for automated model discovery
- Add support for log transformed search space
- Add parallelization support for multiple shooting
JuliaSimSurrogates
Features
- Add support for custom callbacks in training loop
- Add support for external simulators like JuliaSimBatteries
- Add support for plotting ExperimentData objects directly
- Add support to spawn data generation and training jobs on JuliaHub
- Added a Datagen app for tuning controllers
- DigitalEcho now supports deploying to MTK
- Generically handle constant values during normalization for the DigitalEcho
- Implemented Controller which has a fixed value at t=0
- Improved documentation
- Improves the performance of DigitalEcho
- Scalable storage format for data generation
- Support for training with GPUs
PumasQSP
Features
- Add support for DataSets as input data
- Add model autocomplete
- You can now add a neural network to your model and train it as a calibration problem
- The symbolic regression interface can be used to interpret the results from the neural network
- Add support for log transformed search space
- Add parallelization support for multiple shooting
- Add support for dosing tables
v0.28.0
JuliaSim
Features
- Upgrade to Julia v1.8.5.
JuliaSimControl
Features
- Add sliding mode controllers.
- Add support for integer and binary variables in Model Predictive Controllers (MPC).
- Introduce Linear Quadratic Regulator (LQR) design method for uncertain systems.
- Introduce robust Model Predictive Control (MPC) for systems with uncertain parameters.
JuliaSimModelOptimizer
Features
- Add model autocomplete
- You can now add a neural network to your model and train it as a calibration problem
- This can be used for automatic model discovery
- Experimental Import FMUs into inverse problems
- Having an MTK model as a starting point is no longer required as we can now import both model exchange and co-simulation FMUs.
v0.27.0
JuliaSimModelOptimizer
Breaking changes
- Renamed structures to better fit the engineering domain.
Trial
-> `ExperimentSteadyStateTrial
->SteadyStateExperiment
ComparisonTrial
->ExperimentComparison
- Renamed trial collections to experiment collections
IndependentTrials
->IndependentExperiments
SteadyStateTrials
->SteadyStateExperiments
TrialChains
->ChainedExperiments
Features
- Add support for parameter priors.
- Add parametrization support to the initial conditions.
- Add
ReplicateData
. This allows one to use multiple datasets for one experiment. - Add experiment chains. Experiments can now have arbitrarily deep dependencies on any other previously defined experiments.
PumasQSP
Features
- Add support for parameter priors.
- Add parametrization support to the initial conditions.
- Add the possibility to import PEtab files.
- Add MAPEL.
- Add
ReplicateData
. This allows one to use multiple datasets for one trial. - Add trial chains. Trials can now have arbitrarily deep dependencies on any other previously defined trials.
v0.26.0
JuliaSim
Breaking Change
- Requires at least JuliaHub v6.0.0 as the deployment platform.
v0.25.1
JuliaSimModelOptimizer
- Add error handling in calibration.
- Decreased overhead for small problems.
- Fix a bug in how parameters and initial conditions were computed, when ForwardDiff was used, which could have lead to wrong results.
- Fix
MultipleShooting
bugs that could lead to wrong results.
BuildingModelLibrary
- Bumps the CSV version to v0.10 (from earlier v0.9)
ThermalThermofluid
- Adds LICENSE
- Fixes room iteration order
v0.25.0
JuliaSimModelOptimizer
Features
Hierarchical Bayesian inference is now available as a virtual population generation method.
This method assumes that the parameters of each
Trial
subject are sampled from the same population distribution. It then calculates the posterior distribution all parameters, subject-specific and population ones, given the available data. Finally, it uses the posterior distribution of population-level parameters to generate a virtual population.When using a Bayesian method to generate a virtual population with
MCMCOpt
, if the keyword argumenthierarchical = true
, then this hierarchical method will be used.Pathfinder MCMC initialization is now available. This is an alternative to the standard warmup phase that sampling methods such as No-U-Turn-Sampler use to find regions of high probability mass and tune some internal parameters before sampling. In many cases Pathfinder is able to find regions of more probable parameter values more efficiently.
Users can choose this method by setting the keyword argument
warmup_method = PathfinderWarmUp()
inMCMCOpt
, before passing it to thevpop
function, otherwise the defaultwarmup_method = StandardWarmUp()
will be used.
v0.24.1
JuliaSimSurrogates
- Fix broken surrogates dashboard styling.
v0.24.0
JuliaSimControl
- The
JuliaSimControls
package has been renamed toJuliaSimControl
. All references to the package should be updated accordingly. - Trimming of ModelingToolkit (MTK) models.
- More general Model-Predictive Control (MPC) problem formulation.
JuliaSimModelOptimizer
- New calibration feature for robustly fitting data using multiple shooting and collocation methods.
PumasQSP
- Add support for dosing. The following types of doses can be used:
Bolus
, increment a state by some amount.PeriodicBolus
, same asBolus
periodically.Infusion
, increments the rate of change of a state by some amount for a time window of given duration.PeriodicInfusion
, same asInfusion
periodically, where the period counts from the onset time of theInfusion
time window.
v0.23.0
PumasQSP
- New population subsampling method
- Users can now set target distributions for any number of model states and our new custom-made method will subsample a virtual population, so that the same model states of virtual patients match the target distributions, as measured by discretized histograms.
- New plot recipe to plot all trials from a virtual population.
- Improvements to plotting functionality.
v0.22.0
PumasQSP
The initial release of PumasQSP contains the following features:
- Bayesian inference is now available when generating virtual populations
- Each
Trial
object now contains a likelihood function andnoise_priors
distributions, which together describe how data was measured in a trial.
- Each
- Timespan optimization is now possible
- The timespan of a given trial can be fit to data, similarly to how model parameters and initial conditions are optimized to match the data of the trial.
- New subsampling API
- Subsampling a virtual population of patients
vp
for a giventrial
can now be performed with a simple call tosubsample(alg, vp, trial)
, wherealg
is one of several available subsampling methods, like MAPEL or Allen-Reiger-Musante 2016 ARM.
- Subsampling a virtual population of patients
- Accessing the sampler of each subsampling method
- Users now have access to a Sampler object, which they can call repeatedly to generate new subsampled virtual populations.
- This way, users can perform subsampling multiple times quickly, without having to wait for the necessary computations of the respective method to finish every time (e.g. solving an optimization problem, like in the case of Allen-Reiger-Musante subsampling).