1.動態(tài)系統(tǒng)的表示方法

一、前言
所謂動態(tài)系統(tǒng)是指生活中相關物質隨時間運動規(guī)律的集合,其關鍵在于隨時間變化。如社會人口的增長,疾病的傳播,天體運動,空氣的運動,大腦電信號的傳遞等。而我們對動態(tài)系統(tǒng)的研究,核心就是研究系統(tǒng)中各個組成部分之間的相互作用和變化規(guī)律。
二、動態(tài)系統(tǒng)的表示方法
要想研究動態(tài)系統(tǒng)的變化規(guī)律,從而對其進行控制,那么需要用合適的語言來對其進行刻畫。而所研究的相互作用和變化可以通過一組(偏)微分方程或差分方程來描述。這些方程包含研究對象對時間的導數(shù),表達了系統(tǒng)狀態(tài)隨時間的演化規(guī)律,即系統(tǒng)在不同時間點上的狀態(tài)如何相互依賴和變化。
比如,對于兔子和狼兩個種群之間的關系,如果用x代表兔子的數(shù)量,y代表狼的數(shù)量,則對于兔子數(shù)量的變化率由x和y以及一些參數(shù)決定,如:
可見,此時的變化率由此時
和
的值來決定,而此時
的變化率,將決定下一時刻
的值。而這個時刻是連續(xù)的,時間步長可以為0.0001,也可以為0.1,按時間步長和變化率求解下一步x的值,即是歐拉算法。而對于某些動態(tài)系統(tǒng),可能研究以年,月,天等單位的,這時候右邊的變化率即可以寫成:
的形式,這就是離散后的差分方程。
以上,即稱之為系統(tǒng)的狀態(tài)變量,而狀態(tài)變量本身的變化率則可以由等式右邊進行確定,即等式右邊說明了每個狀態(tài)變量變化率的計算方法,它由系統(tǒng)參數(shù)與當前時刻系統(tǒng)狀態(tài)變量的取值直接相關。

因此一般而言,動態(tài)系統(tǒng)可以寫成如下式子:
其中是以向量形式表示的狀態(tài)變量,
為確定每一個狀態(tài)變量變化率的函數(shù),其可能為非線性也可能為線性函數(shù)。如果為線性函數(shù),則右邊可以寫成矩陣的形式,即:
因此,可以通過矩陣的一些理論和特性方便地對系統(tǒng)進行分析與控制。而如果系統(tǒng)是非線性的,則情況將會變得復雜許多。

在matlab或python等程序中,可以通過符號計算方式或數(shù)值計算方式表示動態(tài)系統(tǒng)以及求解。
以上matlab代碼則通過syms定義了符號變量,并表達了pomega,pdelta等變量,p表示對狀態(tài)變量求導。通過符號解析,能夠對簡單的系統(tǒng)進行相關分析。
以上代碼則用函數(shù)定義了系統(tǒng)動態(tài)方程,以便通過m文件調用ode45函數(shù)等求解器函數(shù)進行數(shù)值求解。具體可參見matlab官網(wǎng)手冊進行學習。
三、動態(tài)系統(tǒng)的求解
高數(shù)中所學的微分方程是較為經(jīng)典的一類常微分方程,課本上通過若干技巧求解了它們的解析解。然而,現(xiàn)實中幾乎所有的動態(tài)系統(tǒng),是難以獲取其解析解,因此,面對所構建的復雜(偏)微分方程組,需要通過數(shù)值求解的方法。
從求解的精度與考慮因素的復雜程度來看,常見求解微分方程組的數(shù)值方法有歐拉算法,龍格庫塔等算法。從實用的角度來看,一般的程序中會自帶求解器,當我們構建好模型方程,給定初值之后,就調用函數(shù)能夠自動求解。
但從學習的角度來看,掌握復雜算法如龍格庫塔算法,有助于我們對相關數(shù)值分析方法的理解,亦能夠提升編程的能力,這也是大家課上將會學習的內(nèi)容。
四、關于動態(tài)系統(tǒng)的研究
可以發(fā)現(xiàn),動態(tài)系統(tǒng)這個名詞與太多太多東西相關,從求解來看,就有求解算法的研究;從應用場景來看,生物、電氣、社會、經(jīng)濟等都可以用上;從知識涉及面來看,其要掌握線性代數(shù)、微積分、控制理論、計算機等相關知識;從研究目標來看,有研究動態(tài)系統(tǒng)的分析方法,亦有研究控制方法等等。
同時,目前有一類較為前沿的研究是,將機器學習等基于數(shù)據(jù)驅動的方法運用到動態(tài)系統(tǒng)的分析與控制之中,這將解決許多傳統(tǒng)分析方法難以解決的問題,從而給各個學科帶來新的發(fā)展。
五、總結
本文集將相對獨立的介紹動態(tài)系統(tǒng)的經(jīng)典分析方法與理論,以及部分有趣前沿的方法,同時與電力系統(tǒng)建模分析與控制相結合,旨在傳達基本的思考方式與學習思路。