現(xiàn)目前大壩安全監(jiān)測數(shù)據(jù)主要是通過建立傳統(tǒng)監(jiān)測數(shù)學模型進行分析的,即:統(tǒng)計模型、確定性模型和混合模型。傳統(tǒng)監(jiān)測模型的共同特點是將影響變形的因素歸納為水壓、溫度和時效三類因子,通過預(yù)置適當?shù)囊蜃蛹Y(jié)合實測變形數(shù)據(jù),采用統(tǒng)計回歸方法,獲得監(jiān)測數(shù)學模型。
傳統(tǒng)的大壩安全監(jiān)測模型的實質(zhì)上是將復(fù)雜的非線性問題,通過適當?shù)暮喕M行線性化處理,因而其本質(zhì)上仍然是廣義的線性回歸模型,難以真實反映混凝土壩系統(tǒng)中的非線性特性,在用于混凝土壩的實際安全監(jiān)控時,其預(yù)報效果、特別是外延預(yù)報效果常常不理想。即使對模型中的預(yù)置因子、求解方法等方面進行改進,仍然無法從根本上改善模型的監(jiān)控效果。
因此,迫切需要尋找一種可靠并且行之有效的方法,建立新的大壩監(jiān)測模型來處理數(shù)據(jù)并揭示其測值的變化規(guī)律。監(jiān)測人網(wǎng)站團隊成員一直致力于大壩安全監(jiān)測非線性模型研究,深入分析大壩安全監(jiān)測模型的非線性因素,試圖引入一種新的且非常實用非線性監(jiān)測模型進行大壩安全監(jiān)測資料分析。
現(xiàn)代非線性科學的發(fā)展,為研究混凝土壩系統(tǒng)中的非線性動力問題提供了理論基礎(chǔ)和技術(shù)支持;特別是非線性科學中的混沌理論(Chaos Theory)、突變理論等現(xiàn)代數(shù)學,為建立大壩安全監(jiān)控模型提供了新的研究思路。監(jiān)測人網(wǎng)站團隊通過近一年多的對大壩安全監(jiān)測混沌時間序列模型的研究,獲得一定成果。由于混沌時間序列已經(jīng)在早幾年就被成功引入到了大壩安全監(jiān)測領(lǐng)域,其中武漢大學和河海大學對此混沌的研究成果較多。現(xiàn)監(jiān)測人網(wǎng)站利用我站團隊自己研究的成果,同時結(jié)合各高校的研究成果,舉行關(guān)于混沌時間序列大壩安全監(jiān)測模型的普及講座,使得大家都知道和了解混沌在大壩安全監(jiān)測領(lǐng)域的應(yīng)用情況。下面首先進行混沌理論的基礎(chǔ)知識的相關(guān)介紹。
1、混沌理論
混沌理論是一門新興的非線性學科,是對確定性非線性動力系統(tǒng)中的不穩(wěn)定非周期性行為的定性研究。即為在沒有變量的情況下,系統(tǒng)運動是一項有規(guī)律的重復(fù)行為,通過研究認識這一系統(tǒng)狀態(tài),非周期性行為就變成了可以觀察的對象。
簡而言之,混沌是一種非周期性的動力學過程,它無處不在且蘊含著有序,有序的過程也可能出現(xiàn)混沌,它是服從確定性規(guī)律但具有隨機性的運動。
2、互信息法求延遲時間
上面簡要介紹混沌理論的基礎(chǔ)知識,下面來具體介紹一下關(guān)于互信息求混沌時間序列延遲時間的知識。
在進行重構(gòu)相空間時,延遲時間和嵌入維數(shù)的選取具有十分重要的意義,同時這兩個參數(shù)確定也是難點。相關(guān)基礎(chǔ)理論知識,監(jiān)測人網(wǎng)站此次講座就不在此一一細細講解,具體可以查看呂金虎編寫的《混沌時間序列分析及其應(yīng)用》,里面有較為詳細的介紹。
計算延遲時間的方法主要有自相關(guān)函數(shù)法、復(fù)自相關(guān)法、互信息法,其中互信息法是估計重構(gòu)相空間時間延遲的一種有效方法,得到了廣泛的應(yīng)用。因此,本次講座主要講述關(guān)于互信息法求延遲時間的相關(guān)知識。
同樣本文對于具體理論基礎(chǔ)知識也不再細細講述,本次講座主要是講述利用互信息進行延遲時間的計算。由于我國雖然對混沌時間序列模型有一定研究成果,但很多具體計算方法和計算程序僅在各個高校課題研究組內(nèi)部存在,具體計算方法在中文相關(guān)文獻中較為模型,且無具體實際的算列,因此,國內(nèi)大部分研究學者存在了解混沌理論概況,但在具體實現(xiàn)方法又存在有難題。現(xiàn)監(jiān)測人網(wǎng)站根據(jù)近一年來的研究成果,對此種狀態(tài)進行簡要的解述,同時監(jiān)測人網(wǎng)站團隊在此感謝某論壇上發(fā)布此開源混沌程序的作者(此作者將畢業(yè)設(shè)計的程序奉獻出來了),我團隊在此提供的成果上進行的研究。
具體計算方法為:(matlab源碼)
function [tau,I_sq]=mutual_information(data,tau_max,n)
I_sq=zeros(tau_max,1);
N=length(data);
for tau=1:tau_max
s=data(1:N-tau);q=data(tau+1:N);
as=min(s);bq=min(q); delts=(max(s)-as)/n;deltq=(max(q)-bq)/n;
N_sq=zeros(n);
for ii=1:n
for jj=1:n
for k=1:N-tau
as_k=(s(k)-as)/delts; bq_k=(q(k)-bq)/deltq;
if as_k>=ii-1&as_k<ii&bq_k>=jj-1&bq_k<jj
N_sq(ii,jj)=N_sq(ii,jj)+1;
end
end
end
end
Ntotal=sum(sum(N_sq));
Ps=sum(N_sq)/Ntotal; %¼ÆËãλÓÚһάs¸ñ×ÓÄڵĸÅÂÊ
Pq=sum(N_sq')/Ntotal; %¼ÆËãλÓÚһάq¸ñ×ÓÄڵĸÅÂÊ
Psq=N_sq/Ntotal; %¼ÆËãλÓÚ¶þά¸ñ×Ó(ii,jj)ÄÚ¸ÅÂÊ
H_s=0; %¼ÆËãsµÄìØ
H_q=0; %¼ÆËãqµÄìØ
for i=1:n
if Ps(i)~=0
H_s=H_s-Ps(i)*log(Ps(i));
elseif Pq(i)~=0
H_q=H_q-Pq(i)*log(Pq(i));
end
end