2013-09-27 33 views
1

我需要在Dymola Modelica中執行一些列表數據的插值,但我只能找到一個線性互信息(Modelica.Math.Vectors.interpolate)的函數。我真的需要一些更高階的插值,如多項式或最好是樣條線。有沒有人寫過一個功能來做到這一點?Dymola/Modelica插值?

+0

此文本http://dx.doi.org/10.3384/ecp09430013描述了樣條插值庫。作者在結論中指出,圖書館將免費提供。 – matth

+0

我發現那張紙。他們確實在這裏提供他們的庫:http://www.netlib.org/dierckx/,但除非我錯過了一些東西,否則作者只提供了Fortran庫。這並不比我調用python插值函數的計劃更好:http://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html – Chad

+1

我讀這篇論文的方式,Ungethüm和Hülsebusch寫了一個Modelica接口與Fortran DIERCKX庫「交談」。您將需要Fortran代碼和包裝界面。您是否考慮聯繫該論文的作者? – matth

回答

1

奇怪的是,我發現了一個多項式擬合函數在這裏:Modelica.Media.Incompressible.TableBased.Polynomials_Temp.fitting

也有在同一個地方評估多項式函數。

+1

相關:https://trac.modelica.org/Modelica/ticket/978 – matth

3

在Dymola中,有一些「內置」功能允許您執行表格插值。 我不記得具體細節或插值的最大順序,但我確定它 在那裏。你只需要檢查文檔。

還值得注意的是,從Modelica 3.2.1開始,有a new table interpolation implementation。我沒有仔細看過,但我非常肯定 它具有三次多項式的特點,並且由於它是開源的,我懷疑你可以找出一種以幾乎任何你想要的方式重新調整它的方法。唯一的缺點是你必須使用 最新版本的MSL(這應該不是一個大問題)。

+1

如果我正確讀取了新的MSL 3.2.1'Modelica.Blocks.Tables'的註釋,它僅具有線性插值。 – matth