• 締切済み

臨界膜厚の計算方法について

臨界膜厚の計算で困っています。 MatthewsとBlakesleeの式 hc={b(1-ν(cosα)^2)/(2πf(1+ν)cosλ)}{log(hc/b)+1} から臨界膜厚が算出できるようなのですが、左辺とlogの中にhcがあるため計算がうまくいきません。 ちなみに臨界膜厚hc以外の文字は既知です。 もしhcの求め方が分かる人がいましたら宜しくお願いします。

みんなの回答

  • inara1
  • ベストアンサー率78% (652/834)
回答No.3

どうでしたか?

すると、全ての回答が全文表示されます。
  • inara1
  • ベストアンサー率78% (652/834)
回答No.2

Webにある式 [1] とはちょっと違うようですが、ご質問の式を解いて臨界膜厚 hc を計算するには、Excel のユーザ関数を使う方法があります。この方法なら Excel 関数のように一発で答えが出ます。ご質問の式は、x = hc/b、a = (1-ν(cosα)^2)/(2πf(1+ν)cosλ) とおけば    x = a*{ log(x) + 1 } --- (1) なので、この解 x を求めればいいわけです(この方程式の解法を別質問でされていますね)。 [1] 臨界膜厚の式 http://mars.numse.nagoya-u.ac.jp/f6/koizumi/pub_programs/CriticalThickness/index.html 式(1)の解 x = f(a) を求めるユーザ関数 fn(a) の作り方を末尾に書きました。この関数を使えば、臨界膜厚 hc は    hc = b*x = b*fn(a) で求められます。Excelシートのセルに = b*fn( a) と書けば臨界膜厚が出ます( a, b は、通常のExcel関数と同様、数値またはセル位置です)。b は格子定数ですが、b の単位は nm でも m でも構いません。f(a) は無次元なので、hc の単位は b と同じになります。 なお、式(1)は、a<1 のとき解は存在しませんが、1 ≦ a のときは x ≦ 1 と 1 ≦ x の2つの解があります。臨界膜厚 hc が b より小さくなる(x ≦ 1 )ような計算は実際には不要だと思うので、1 ≦ x の解だけ計算するようにしています。 a<1 のとき解は存在しないので、1 ≦ a のときのみ計算するようにしてあります。計算はANo.1さんと同じ反復法です。a が大きくなるほど f(a) が大きくなるので、 a が大きいほど臨界膜厚が大きくなることになります。fn(1) = 1 ですが、1 < a のときは常に a < fn(a) です。 【式(1)を解くユーザ関数 fn(a) の作り方(Excel2002の場合)】 Excel のメニューバーの [ツール] → [マクロ] → [Visual Basic Editor] → [挿入] → [標準モジュール] で出た空白の画面に以下のプログラムを コピー&ペースト で貼り付け、Excelシートに戻って、セルに =fn(a ) と書けば計算できます。プログラム中の n は解 x の有効桁数です。 ↓ここから Function fn(a As Double) As Variant If a < 1 Then fn = "VALUE!" ' 解なし Exit Function End If Dim x As Double, x1 As Double, eps As Double, n As Integer n = 15 ' 解の有効桁数 eps = 10 ^ (-n) x = 0: x1 = 1 While Abs((x - x1) / x1) > eps x = x1 x1 = a * (Log(x) + 1) Wend fn = x1 End Function ↑ここまで 【Excelのセキュリティーレベルの設定】 Excelのセキュリティーレベルが「高」になっていると、マクロを含むファイルを開いたときに、マクロを使っているという警告が出てマクロを使うことができません。その場合、警告ダイアログでOKをクリックした後、以下の手順でセキュリティーレベルを「中」に変更してください(Excel2002の場合)。   メニューバーの [ツール] → [オプション] → [セキュリティー]タブ → [マクロセキュリティー] → [中] を選択 → OK → OK セキュリティーレベルを「中」に変更した後にファイルを開くと、マクロを使っているという注意が出ますが、「マクロを有効にする」を選択すればマクロを使うことができます。

taketake03
質問者

お礼

すみません、お礼が遅くなりました。 詳しい解説ありがとうございます。 御回答を参考に計算してみようと思います。

すると、全ての回答が全文表示されます。
noname#252183
noname#252183
回答No.1

プログラムするまでもなく、Excelで解けそうです。 未知数がhcだけなので、与式を変形して hc-a{log(hc/b)+1}=0 ExcelのA1~A100セルに例えば 1~100(これでだめなら0.1~10、などに変更) B1セルに式: (a,b には具体的な値を記入) =A1-a*(log(A1/b)+1) を入れて、B100までコピペ。B列のセルが0になるときのA列セルの値が解(hc)です。 ----------- 余談です。 ふ~ん、こんな式が出てきたのですか。約20年前発行の薄膜の本には載ってません。 νはポアソン比ですか。bが格子定数なら、単結晶膜だけに適用するんですかね。 多結晶でも単結晶の計算値を定数倍して補正できるのかな。 膜が強く内部応力大で基板への接着力不足なら、製膜中に臨界膜厚到達以前に剥がれるでしょう。 昔、着膜中に膜が厚くなると基板からばらばら剥がれて、往生したことがあります。 接着力は下地処理でかなり変わりましたが・・・ 薄膜の接着力の式はまだできていないんですかね。

すると、全ての回答が全文表示されます。

関連するQ&A