2011年3月11日金曜日

バネの減衰振動

洪水 ver1

簡単な洪水を表す簡単な例。
洪水発生時刻をif文で判定しているので、今後while文等に変更する必要があると思われる。

Scifuncブロック中に以下が書いてある。


//----------------------------------------
y1=0

i=1

S=[3, 10, 11, 12, 19, 20, 30, 45, 66, 80]
V=[2, 8, 9, 8, 9, 11, 12, 9, 11, 8]

for i=1 : 10;
if Time >S(i) then y1=V(i);
if Time > S(i)+0.9 then y1=0;

end;
end;

end;
//----------------------------------------

(1)毎時間、現在の時間が洪水発生時刻かどうか、全ての配列データ
  (数百あると思われる)と比較しながら計算を進めるのはよくない
  と考えられる。
  if文をWhile文で置き換えることが考えられるが、複数の判定をしながら
  計算を進めることにならないかどうか。

(2) 次の洪水発生時刻を超えたかどうか、それだけを判定しながら計算を進
  めるのであれば、より時間が少なくてすむと思われた。
  この場合、下のようなフローチャートが考えられた。

----------------------------------------------------
   現在が、次(i番目)洪水発生を超えたか?
    →NO ・・・ いつもどおり (状態1)
    →YES ・・・ フラグ(旗)が立つ (状態2に変わる)
      現在が、洪水終了を超えたか?
      →NO ・・・ (状態2のまま)
      →YES ・・・ フラグ(旗)が降りる(状態1に戻る)
              i=i+1

----------------------------------------------------

これを行うために下記のようなプログラム(Scifunc中の記述)を考えたが、現時点ではうまく動いていない。

//----------------------------------------

Time=u1
y1=0

i=1

S=[3, 10, 11, 12, 19, 20, 30, 45, 66, 80]
V=[2, 8, 9, 8, 9, 11, 12, 9, 11, 8]

if Time >S(i) then y1=V(i);
if Time > S(i)+0.9 then y1=0; i=i+1;

end;
end;
//----------------------------------------

2011年3月9日水曜日

タンクモデル(5段直列)



左がScicosプログラム、右が計算結果です。

計算結果は、黒が一番上のタンク、緑が上から2番目赤が3番目黄色が4番目青が5番目のタンクの水の量の増減を、それぞれ表します。

タンクは5つとも同じ(面積と体積が同じ)としています(Scicos中で異なった定数等を与えればタンク毎に違った値を設定できます。)

【∫】マークがそれぞれのタンクを表します。初期値(各タンクの最初の水量)は一番上のタンクが1000、残りは0です。

各タンクからは水深H(地下水では水頭、ここでは各タンクの断面の形が同じなので水量)に比例して水が流出するとし、比例係数は0.01 /日 としています。三角マーク(△)に0.01という数字が入っています。

自分のタンクから水が出てゆく事で水が減り(-)、上のタンクから水が入って来ることで水が増え(+)ます。この2つが同時に起こり、【∑】で合算されます。

あるタンクから出て行く水の値と、下のタンクに入ってゆく水の値が同じです。出て行く水の量はそのタンクに反映され、同じ量が下のタンクに入るように、矢印が結ばれています。

タンクは5段直列ですが、より多くの数、種類のタンクや、直列と並列の混在なども、Scicos中では容易にできます。

生物7種の計算(流入水を追加)

2011年3月8日火曜日

2011年3月6日日曜日

生物7種の計算例



(2011/03/09)
 図ではA1(緑藻)、A2(大型珪藻)としていますが、プログラム等ではA1(大型珪藻)、A2(緑藻)でとしています。



2011年2月15日火曜日

緑藻から珪藻への種の変遷






************【補足】**************
使っている式は、最も基本的な藻類の増殖および死滅、底泥からの溶出の2つだけです。
-----------------------------------------------------------
 dX/dt = μmax・S/(Km+S)- kd (藻類の増殖と死滅)
 dD/dt = f・D  (底泥の溶出)
  ここで
   μmax :最大比増殖速度
   S :基質(リン)濃度
   Km :基質(リン)飽和定数
   kd :藻類の死滅係数
   f :底泥の溶出係数
-----------------------------------------------------------

2010年12月5日日曜日

琵琶湖2(緑藻5種類)





--- 珪藻

--- Urogrena


--- 緑藻

 ・下の線
   個々の緑藻

 ・上の線
   5種の合計




2010年10月19日火曜日

研究予定(児島湖関係)

児島湖の水質は、近年穏やかな改善傾向にあるものの、県民からは更なる水質改善が求められている。

 生物の棲息する系による水質改善を目的として、貝類による懸濁物質除去能力を測定、水質浄化効果を量的に評価し、併せて貝類を含む湖底の生物の棲息状況を調査している。

(H22実施状況)
(1)児島湖の底泥に棲息する底生生物調査(種類数および個体数、児島湖の22地点で年4回)
(2)室内実験で、児島湖および流域に多く棲息する生物(ヒメタニシ、カイミジンコ)と、高次捕食者として魚類(メダカ)及び泥を組み合わせた生態系を組み立て、系の維持を検討している(最長4ヶ月)。

(H23計画)
 生物間の食物連鎖や物質循環をシミュレーション計算で表し、生態系の維持や生物相の改善を検討し、水質改善対策につなげていく。

マトリックス(行列、鋳型)で表す

水域の生態系は行列で表される。

複数の要素(例、藻類、ミジンコ、栄養塩、泥等)が存在する場合、これらの関係は絵に描いて表されます(図1)。すなわち、複数の要素が丸印(○)で描かれ、これら要素間の関係を示す矢印(→)が描かれています。各要素(○)には初期値が設定されます。また要素間の関係(→)には数式が設定されます。この数式は要素(○)および定数から成り、いずれも数値が設定されます。つまり各要素(○)、関係(→)は記号で表されますが、いずれも数値化されます。

これらの関係は、表に「押し込められ」て表されます(図2)。例えば要素が4つある場合(栄養塩、藻類、ミジンコ、泥)、要素間の関係(→)を、4行4列の表のマス目のどこかに書き込むことで、図1の絵を表現することができます。栄養塩を「P」(※リンの意味)、藻類を「藻」、ミジンコを「動」(※動物プランクトンの意味)、泥を「泥」で表すとすると、

  P藻動泥
 P□□□□
 藻□□□□
 動□□□□
 泥□□□□

の表で表されます。ここで栄養塩(P)が藻類に吸収されるとき、この移動関係を表す式は、表の1行2列目(下の図の「●」の位置)に書き込みます。

  P藻動泥
 P□●□□
 藻□□□□
 動□□□□
 泥□□□□

同じように、藻類がミジンコに食べられるとき、この関係を表す式は、表の2行3列目(下の図の「■」の位置)に書き込みます。

  P藻動泥
 P□●□□
 藻□□■□
 動□□□□
 泥□□□□

簡単なシミュレーション計算(リン-藻類)















※手書きの計算ページで、吸収速度の所に藻類度をかけ算するのを忘れていましたm(. .)m早急に修正します(2010.10.20)