Export initial conditions of parameters​/compartme​nts/specie​s into workspace

2 次查看(过去 30 天)
Hello,
I have built a PBPK on Simbiology (2023b), with numerous parameters and compartments whose values are mostly defined by initial assignements. I nicely see the initial conditions in the model builder app after activating the initial conditions button in the toolbox. I usually have 1 by default in the value column and my calculated value based on the initial assignements in the initial conditions column.
However, when exporting the model to MATLAB Workspace (via Model tab > Export > Export Model to MATLAB Workspace), I cannot retrieve the initial values, but only the default 1 values appear.
Is there a way to access the initial values in the MATLAB workspace to do some calculations? (both for parameters and compartments)
Or, maybe even better, is there a way to transfer the initial conditions to values, as they remain constant ?
Thank you very much in advance!

采纳的回答

Jeremy Huard
Jeremy Huard 2024-1-4
编辑:Jeremy Huard 2024-1-10
Dear @Justine,
there is currently no built-in command line interface to get the initial conditions.
However, you could simulate the model with StopTime=0 to get these values.
I have attached an implementation of this approach (sbiogetInitialValues.m) that returns both a table and a variant with the computed initial values.
Here is an example:
s = sbioloadproject('lotka.sbproj');
modelObj = s.m1;
modelObj.Species
ans =
SimBiology Species Array Index: Compartment: Name: Value: Units: 1 unnamed x 1 2 unnamed y1 900 3 unnamed y2 900 4 unnamed z 0
% let's now add initial assignments and check the initial values
addrule(modelObj,'x = z','initialAssignment');
addrule(modelObj,'z = 100','initialAssignment');
[tableOut, variantOut] = sbiogetInitialValues(modelObj)
tableOut = 8×4 table
Type Name Property Value _______________ ________________ _________ _____ {'compartment'} {'unnamed' } {'Value'} 1 {'species' } {'x' } {'Value'} 100 {'species' } {'y1' } {'Value'} 900 {'species' } {'y2' } {'Value'} 900 {'species' } {'z' } {'Value'} 100 {'parameter' } {'Reaction1.c1'} {'Value'} 10 {'parameter' } {'Reaction2.c2'} {'Value'} 0.01 {'parameter' } {'Reaction3.c3'} {'Value'} 10
variantOut =
SimBiology Variant - Initial values (inactive) ContentIndex: Type: Name: Property: Value: 1 compartment unnamed Value 1.0 2 species x Value 100.0 3 species y1 Value 900.0 4 species y2 Value 900.0 5 species z Value 100.0 6 parameter Reaction1.c1 Value 10.0 7 parameter Reaction2.c2 Value .01 8 parameter Reaction3.c3 Value 10.0
I hope this helps.
Best regards,
Jérémy

更多回答(0 个)

社区

更多回答在  SimBiology Community

类别

Help CenterFile Exchange 中查找有关 Extend Modeling Environment 的更多信息

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by