クラドニ図形をExcelでシミュレートする(Not VBA)
やり方だけみたい!という方は後ろからどうぞ
クラドニ図形とは?
金沢健一さんのパフォーマンスは素敵で、クラドニ図形が描かれる様がよく分かります。このクラドニ図形をシミュレーション上で再現する事で簡単に可視化を行いたいという事と、きちんと技術的な要素を理解したいというのがモチベーションです。
なぜExcel?
自分にとって馴染みがあって簡単だったからというのが理由
ProcessingやPythonの様な簡単にビジュアライズできる様な言語でも良いし、Houdiniみたいな物理演算に特化したソフトを使っても良いと思います。なんなら、CADソフトでもできる。
幾つかの方法を試したので紹介します。
Fusion360(CADソフト)
下記はFusion360で実施、固有振動モードを解析によって出してくれます。
個人的に一番簡単で、CAEで一発で出してくれます。
普段、CADを使う人が手っ取り早く試すならおすすめ。Twitterで探したところ先人が既にやってました
Houdini
Houdiniはソフトの独特な癖があって取っ付きづらいが、チュートリアル動画を見ながら少しずつやっていけば出来るはず、副読本として全く同じ内容がまとまっていたので、かなり参考になりました
数式
上記によると、四角形平板の際に定在波が生じる部分は以下によって求められる。(丸型だと計算方法が変わってくる)
n,m(正の整数) =板状の節点数
L = 辺の長さ
x = X軸の位置
y = Y軸の位置
ちなみにクラドニによると以下の式で周波数を計算することができる
詳しい式の解説はリンク先に任せるとして、この値を計算してビジュアライズしていけば良さそうだ
ちなみに先人がゴリゴリ計算的に出している論文もある。このレベルまで理解しようとするとかなり勉強が必要そうなので、一旦置いておきます
MATLABが使える人は論文を探すとソースがそのまま載っていたりするのでそちらの方が良いかもです
Excel上での実装
先ず、全体の方針としてはVBAを使わずにExcelに備わっている機能だけで作りたい。プログラミング何それ分かんない状態の人でも理解できると思う
手順としては、
1.セルの大きさを正方形に変える
2.変数の置き場を作る
3.計算用の番地を振っていく
4.数式をセルに入れていく
5.カラースケールを設定する
という感じ、VBAは使わずになるべく簡単な方法で実践したつもり
詳細なやり方はファイルをアップするので省きます
あと、かなり重いので注意
リンク切れの指摘を頂いたので修正します。22.10.23
https://github.com/tsugumasa320/chladni_figure_excel
ちょこっと解説
1つ目の「変数」シートに、各種変数を入力する様にしている。
シミュレーション結果が正しく表示されているかの確認用に論文から画像を転載している。
2つ目の「描画用」シートに、結果が表示される
ここでは、板状の節点(m=3,n=5)に対応した結果が表示されている。
白い部分が、固有振動の節となっている部分(=クラドニ図形で言うところの砂が溜まる部分)になっている100*100マス程度でも綺麗に描画されている。
ちなみに、その他のシートに数式の理解用に色々と試行錯誤したものがあります。
さいごに
個人的なメモ書きとして試したことを書き出しました。
技術的には先人がかなり解き明かしている問題なので、車輪の再発明的な部分はありますが、自分で手を動かしてやることに意味があると思ってます。