通過下面這個例子了解模型的數學特性的內容
model firstorderinitial "first order equation with initial value"
real x "state variable";
_iti_parameter real a=0 "parameter";
initial equation
x = a "used before simulation to compute initial values";
equation
der(x) = 1-x "drives value of x toward 1.0";
annotation(experiment(stoptime=10,starttime=0));
end firstorderinitial;
模型名字後面引號中的文字是模型的說明。理解這些引號中的文字模組非常重要,它們在電腦科學中被稱為「字串」,而不是注釋,這些「描述性字串」不像注釋,不能在任意的地方插入。相反的,它們只能在特定的地方插入,以提供與其關聯的模型元素的附加說明。
例如,第乙個字串「cooling example with physical types」 用來描述模型的屬性。
可以注意到,它緊跟在模型名字後面。當希望對模型做相應的注釋,文件語句必須插入在模型名字的後面。
這種文件可以被很多任務具所使用。例如,搜尋模型時,搜尋工具可以利用這些描述性的字串進行識別匹配。
這些文字也可以與模型的圖示相關聯。當然,這種文件對閱讀模型的任何人都很有幫助。
這些描述性的文字也可以放置在模型的其他位置。比如,在變數宣告或方程後面新增相應的文件。
接著定義方程中的變數x和引數a。因為變數x是乙個連續的實數,在modelica語言中可以用real x;語句來宣告它;real 型別只是眾多資料型別的一種,其還有很多中資料型別。
引數a是模型的內部引數,用來定義變數x的初始值,方便在外面修改模型的初始值,提高模型的通用性,可以用_iti_parameter real a=0 ;語句進行宣告,
接著使用initial equation新增相應的方程,可以明確變數x的初始宣告。如果沒有該部分,變數x 的初始值在模型**開始時是不確定的。通常,這意味著變數x 的初始值是它的start 屬性(其預設值為零)。然而,每個工具都會使用自己特定的演算法對最終的方程組進行表示。因此最好明確的宣告方程的初始化條件,就像上述模型宣告的那樣。
當完成上述內容後,就可以編寫描述模型特性的方程了。在這個例子中,可以用運算子der 來表示變數x 的一階導數
der(x) = 1-x
其表示的意義是:
f ′(
x)=1
−xf'(x)=1-x
f′(x)=
1−x不同於大多數的程式語言,我們並不像執行「程式」那樣將**解析成逐條執行的指令。相反,使用modelica 編譯器將**轉換成可以**的模型。這種**的過程基本上等同於求解方程(通常用數值方法)並獲取其解的軌跡的過程。
當搭建模型時,建模人員可能希望為模型關聯特定的試驗條件。這可以通過應用annotation(標註)來完成。標註中包含的資訊與模型的屬性沒有直接聯絡。
例如,試驗條件的描述包括**開始時間、結束時間以及容差範圍等,這些資訊並不描述模型的特性,只是提供進行模擬**的條件。試驗條件通過特定的experiment 標註儲存在模型中。
將初始值a分別設為0和2得到的結果如下圖所示:
學習筆記3
第四單元 了解linux檔案系統 1.絕對路徑和相對路徑 a.絕對路徑 無論在系統的任何位置,從系統的頂級目錄 根目錄 一級一級往下排的表示方法 b.相對路徑 如果已經在某乙個目錄下面操作,那麼可以省略從根目錄到當前目錄的表示,若要切到該目錄下的任意位置,直接表示 2.系統中根目錄下子目錄的作用 a...
學習筆記3
乙個簡單的程式 import tensorflow as tf 定義網路結構和前向傳播演算法 def get weight shape w tf.variable return w def get bias shape b tf.variable return b def forward x,sha...
學習筆記3
vivew 裡面的引數 與前端約定好 return 返回的是乙個例項化物件,字串 render 將資料寫入html中 再返回給前端 本質是把python物件嵌入其中 傳給檢視函式的永遠轉換成字串 url 設定名字 相當於 這個名字與值 以鍵值對的形式發給了 檢視函式 name 200 別名的前提是訪...