6章:堰を通る流量の計算

作成2012.10.04
  1. 堰を通る流量の計算例題
     図6-1に示すように大きい水槽Aと小さい水槽Bがあり、間には直径dのオリフィスがある。
     水槽Bには幅bの四角堰がある。水槽Aの水面を堰よりH=2mだけ高く保つためにAに供給すべきか?

    例題解説
     オリフィスを通過する流量は熱力学と流体」58章:オリフィスから


     となります。 (6.1)式を水位さh=H-xに置き換えると重力加速度をgとして

     となります。また堰を通過する流量は「熱力学と流体」60章:堰(せき)から



    (6.4)式と(6.5)式においてD=∞として、単位変換すると

    ここで

     としてF=0を満足するxの値を求めます。ニュートン法から

     (6.8)式の計算を繰り返すことによりF=0を満足するxの値が求まります。


  2. VBA堰の流量フリーソフトのダウンロード
    1. ダウンロード
       下記の[VBA堰の流量フリーソフト]をダウンロードしてください。

       ダウンロード後はダブルクリックで解凍してから使用してください。
       
      [VBA堰の流量フリーソフト]をダウンロードする。


    2. VBA堰の流量フリーソフト説明
      1. ファイル構成
        (1) 堰の流量.xls :フリーソフトです。

      2. 注意事項
        注(1)ファイルの保存場所の制限はありません。

      3. 標準的な実行方法
        (1)「堰の流量.xls」をダブルクリックで起動します。
           (マクロを有効にして開いてください!!)
        (2)入力変数を設定します。
        堰から水面の高さ H 2 m
        オリフィスの直径 d 0.1 m
        堰の幅 B 0.3 m
        重力加速度 g 9.81 m/s2
        オリフィス流量係数 α 0.6 無次元
        堰係数0次 C0 1.785 (m^0.5)/s
        堰係数1次 C1 0.00295 (m^-0.5)/s
        x値 0 m
        x微小量 dx 0.0000001 m
        収束演算回数 N 5
        (3)「計算実行」ボタンを押します。
        (4)x値の値が最適化され表示されます。


  3. プログラムリスト
    1. プログラムリスト
       VBAのプログラムリストは以下のようになります。
      Sub Main()
      '初期入力
      H = Sheets("Sheet1").Cells(8, 3).Value
      d = Sheets("Sheet1").Cells(9, 3).Value
      B = Sheets("Sheet1").Cells(10, 3).Value
      g = Sheets("Sheet1").Cells(11, 3).Value
      a = Sheets("Sheet1").Cells(12, 3).Value
      C0 = Sheets("Sheet1").Cells(13, 3).Value
      C1 = Sheets("Sheet1").Cells(14, 3).Value
      x = Sheets("Sheet1").Cells(15, 3).Value
      dx = Sheets("Sheet1").Cells(16, 3).Value
      N = Sheets("Sheet1").Cells(17, 3).Value

      If x < 0.01 Then x = 0.01 'x入力制限
      If x > H - 0.01 Then x = H - 0.01 'x入力制限

      'ニュートン法
      For i = 0 To N Step 1
      k = x - dx
      Sheets("Sheet1").Cells(15, 3).Value = k
      Qa = Sheets("Sheet1").Cells(21, 3).Value
      Qb = Sheets("Sheet1").Cells(22, 3).Value
      Fm = Qa - Qb 'Fm=F(x-dx)
      k = x
      Sheets("Sheet1").Cells(15, 3).Value = k
      Qa = Sheets("Sheet1").Cells(21, 3).Value
      Qb = Sheets("Sheet1").Cells(22, 3).Value
      F0 = Qa - Qb 'F0=F(x)
      k = x + dx
      Sheets("Sheet1").Cells(15, 3).Value = k
      Qa = Sheets("Sheet1").Cells(21, 3).Value
      Qb = Sheets("Sheet1").Cells(22, 3).Value
      Fp = Qa - Qb 'Fp=F(x+dx)

      x = x - (2 * F0 * dx) / (Fp - Fm)

      '計算結果出力
      Sheets("Sheet1").Cells(15, 3).Value = x
      Sheets("Sheet1").Cells(25 + i, 1).Value = i
      Sheets("Sheet1").Cells(25 + i, 2).Value = x
      Sheets("Sheet1").Cells(25 + i, 3).Value = F0
      Next i
      End Sub


    2. プログラムリスト解説
      1. xの値は0.01以上H-0.01以下に制限しています。(計算エラー防止のため)
      2. QaはCells(21, 3)、QbはCells(22, 3)で計算しています。
      3. 計算結果はCells(15, 3)に出力します。

7章:文字数合わせ変換表に行く。



トップページに戻る。