潰壩模擬
以MATLAB對給定之壩體模型進行對水流之潰堤分析
B09501067 陳澤祺
B09501014 林曾浩
B09501013 王禮恩
模擬步驟
了解潰壩現象背後的物理原理及運算方程式
1
了解原理
將壩體模型之skt檔中所需的數據引入到MATLAB中
2
引入模型
將方程式轉換為MATLAB程式碼,並套用模型參數進行模擬
3
設計程式
原理及算式

\delta(t)= \frac{\alpha ^{2} }{4}\frac{t^{2} }{1+\frac{1}{8}\alpha \beta t^{2} }
\eta(t)= \frac{\alpha ^{2} }{4}\frac{t^{2} }{(1+\frac{1}{8}\alpha \beta t^{2} )^{2} }
\alpha =\frac{1}{2}(\frac{2}{3} )^{\frac{3}{2} }\frac{KS_{D }^{2}g^{\frac{1}{2} } }{\lambda _{B} }
\beta =(\frac{2}{3} )^{\frac{3}{2} }\frac{g^{\frac{1}{2} }b_{B} }{A_{L} }
Q=\sqrt{\frac{8g}{27} } b_{B}\eta^{\frac{3}{2} }
Model
用於未決堤之分析
壩體模型

Codes
gravity=9.81;
q_in = 1.2 ; %(m^3/s)
qoutmodify = 1; %(modify to q_out)
progressbar = 1; %(enable progessbar or not)
erosion = 0;
original_dam_height = 2.1 ;
decreased_dam_height=0.000001;
z_c = 2.1; %initial dam crest elevation
b_B = 4; %initial breach width
S_d = 1;
b_B = 1;
Lambda = 100;
K = 1;
Codes
for t = 1:outputdata
heightin = volumetoheight(volumevalue,volumemap);
damheight=original_dam_height-decreased_dam_height;
greek_n=waterheight(heightin,damheight);
if t==q_in_stoptimer/time_interval
q_in=0;
end
qthistime= q_in - qout(heightin,b_B,gravity,qoutmodify,damheight);
alpha=((1/2)*(2/3)^(3/2))*(((K*(S_d^2)*gravity^(1/2)))/Lambda);
if decreased_dam_height==0
D_dam_height_decrease=0;
else
D_dam_height_decrease=alpha*(greek_n^(3/2))/decreased_dam_height;
end
if decreased_dam_height>=original_dam_height
decreased_dam_height=original_dam_height;
else
decreased_dam_height=decreased_dam_height+D_dam_height_decrease*time_interval;
end
volumevalue=volumevalue+qthistime*time_interval;
if volumevalue<0
volumevalue=0;
end
實際數據與模擬結果比較

project1
By spacezpr
project1
- 24