Multivariable data lookup and interpolation

Use this forum to post Vensim related questions.
Post Reply
geo_curious
Member
Posts: 46
Joined: Tue Mar 14, 2023 2:05 am
Vensim version: DSS

Multivariable data lookup and interpolation

Post by geo_curious »

Hi,

I am trying to import data from a properties spreadsheet for grout mixes. This properties sheet has nothing to do with a timeseries. I believe the correct function to use would be GET XLSX CONSTANTS(). I do not see a way to load this as a .dat or .vdfx because there is no timeseries. Unfortunately, GET XLSX CONSTANTS() does not seem to be working with the spreadsheet (shown).
forum.png
forum.png (44.17 KiB) Viewed 880 times
I get a syntax error when attempting to save the variable.
forum2.png
forum2.png (11.99 KiB) Viewed 880 times
After I figure out how to import the data, I would like a multivariable interpolation of the density, shown as the last column in image 1.
Most of the data handling information surrounds the use of timeseries, or simple 2 variable lookups, as I have seen in documentation. Could you please direct me as to how to tackle this problem?

In short:
I want to import data to interpolate a single value from, based on multiple variable settings in Vensim, as represented by column values in a properties spreadsheet.
tomfid
Administrator
Posts: 3811
Joined: Wed May 24, 2006 4:54 am

Re: Multivariable data lookup and interpolation

Post by tomfid »

You have a syntax problem - '1' is not a valid cell reference.
https://www.vensim.com/documentation/fn ... tants.html

Not sure what you have in mind for interpolation. You have 4 inputs, but since they have to sum to 100%, it looks like a 3D space. I'm not sure there's a general procedure for a 3D lookup, especially if the known points cover the space sparsely. I'd probably try some kind of radial basis function first.

However, calculating density doesn't strike me as a case for interpolation, because the physics are known explicitly.

Density = SUM( componentDensity[k!]*componentQuantity[k!] )/SUM( componentQuantity[k!] )
or
=SUM( componentMass[k!] )/SUM( componentMass[k!]/componentDensity[k!] )
A units check will see if I got this right off the top of my head.

This doesn't quite work if there are nonlinear interactions (e.g., phase changes, foaming, etc.) but that seems unlikely for mortar.
Post Reply