在Modelica中,我有一個變量x,它依賴於(a,b,c)。對於給定的仿真時間,其繪圖(x,時間)看起來平滑且連續。我希望得到這條曲線的斜率,而不必明確區分der(x),因爲我得到關於a,b或c的偏導數的錯誤。這可能嗎?換句話說,我想要最終輸出的斜率,而不必區分它背後的內容。變量的時間導數作爲信號而不是函數
回答
Modelica.Blocks.Continuous.Derivative x_dot(開始= 1)這提供了衍生物的近似。我給了x作爲輸入,並得到了x_dot.y作爲衍生物,沒有任何問題。
在Modelica本身中,您不能這樣做,因爲您無權訪問集成商,以前的時間或類似內容。您可以通過使用採樣得到的Modelica代碼的近似,但稍有變化的模擬結果,並可能是一個性能瓶頸:
model M Real signal = time; Real approx_der(start=0); discrete Real x(start=0); discrete Real t(start=0); equation when sample(0.1,0.1) then x = signal; t = time; approx_der = (x-pre(x))/(t-pre(t)); end when; end M;
這是比較容易簡單地使用後處理。加載在八度,MATLAB或類似的結果文件並繪製近似衍生物: plot(time(2:length(time)),diff(y) ./ diff(time))
謝謝你的回答,實際上我需要實時的斜率值。我使用了'Modelica.Blocks.Continuous.Derivative x_dot(start = 1);'。我給了x作爲一個輸入,並得到了'x_dot.y'作爲衍生物,沒有任何問題。 – leoo321
- 1. 作爲函數輸入的全局變量而不是參數
- 2. R:匹配變量而不是函數參數省略號
- 3. Bash函數,導出函數參數作爲環境變量
- 4. Emacs函數返回符號的值作爲變量是void:
- 5. Javascript函數中的PHP變量輸出變量而不是值
- 6. C++爲什麼變量是函數而不是對象?
- 7. 將信號量作爲參數傳遞給函數
- 8. 函數回調函數作爲變量
- 9. 在NetCDF中寫入作爲時間函數的變量
- 10. 使用二進制信號量作爲計數信號量
- 11. PHP函數作爲變量
- 12. 變量作爲函數
- 13. 變量作用域:this.remove不是函數
- 14. 編號爲函數的變量
- 15. intrensic原子函數的使用,而不是信號燈
- 16. 作爲函數參數的變量名?
- 17. 在Haskell的函數使用全局變量而不是作爲參考
- 18. 作爲數組而不是變量的類屬性
- 19. Knockout.JS「變量不是函數」
- 20. 爲什麼這個變量導致「不是函數」錯誤?
- 21. Python:設置函數超時而不使用信號或線程?
- 22. 保持前導零,並保持變量作爲文本值,而不是數字
- 23. ActionScript:如何將XML數據作爲變量(而不是事件)導入
- 24. 爲什麼數組變成文本「數組」而不是變量?
- 25. 隨着時間改變導入信號的音高對數/指數
- 26. 變量引用作爲函數參數
- 27. 作爲函數參數變量?
- 28. PHP類作爲函數參數變量
- 29. JavaScript變量PHP函數作爲參數
- 30. 信號量爲數據行
考慮添加一些換行符,並使用編輯器的「代碼」格式選項使其更具可讀性。 – DaveParsons