[[情報機器の操作]]

* キルヒホッフの法則 [#zfa3864e]

「物理の鍵としっぽ」というページがあり連立方程式の解き方が載っている。キルヒホッフの法則について具体的に解くときには便利。非線形素子が入ったりするとLTSpiceを使いましょう。

http://hooktail.org/computer/index.php?%CF%A2%CE%A9%B0%EC%BC%A1%CA%FD%C4%F8%BC%B0%A4%F2%B2%F2%A4%AF
* Cygwinのjavaの使い方 [#n6394a89]

 export JAVA_HOME=/cygdrive/c/Program\ Files/Java/jdk1.8.0_121
 export PATH=$JAVA_HOME/bin:$PATH
* 高圧回路の実験 [#xd40b906]

使い捨てカメラの高圧発生回路はブロッキング回路というものらしい。ネットにある例ではトランジスタの抵抗が大きめで発振しなかった。試しに2Kにしたところ、これでトランジスタが壊れないか心配だが、とりあえずアップする。元は研究室の学生が書いたものを動くようにコイルをカップルさせた。22kに戻しても動いた。2sc4081(?)にしたからか?

#ref(blockingOsc.asc)

* Javaを使った説明付きの「よくわかる電磁気学」という本がある [#a75f1ad5]

Javaはセキュリティの問題があるらしくIPCでは使えるようになっていません。どうやれば使えるかは力学基礎のページをみてください。PCではコントロールパネル->ユーザー->環境変数の設定でjdkのbinにパスを通します。ただし電源を消すと再設定する必要があります。Cygwinで設定ファイルを作っておくのがよさそうですね。unix, macでは環境変数にパスを通したりCLASSPATHにj3dなどextention的なものがあればそこを書いておきます。j3dはopenGLが使えるようになってないので動きませんけど。

http://irobutsu.a.la9.jp/mybook/ykwkrEM/

 nkf -g denba.java //漢字コードを確認
 nkf -s denba.java > denbaS.java //shift-JISに変換
 emacs -nw denbaS.java  // クラス名を一致させる 初めの一行のみ変更 Ctl-XS Ctl-XC
 javac denbaS.java
 appletviewer denbaS.html  //ウェブのhtmlのソースをコピーして作成 denbaS.classに変更
* フリップフロップを作ってみる [#b953db99]


これは30%に縮小した画像。添付のところに元の画像あり。

#ref(HC_flipFlop-2.jpg)

*電磁気学では光速度が重要 [#t58ae39d]

http://fnorio.com/0131Foucault_1850_1862/Foucault_1850_1862.html

* アナログ回路はSPICEで [#u200b741]

LTSPICEが便利

発振回路を試してみよう。

http://netlog.jpn.org/r271-635/2012/12/cr-oscillator-ltspice.html

高圧回路も試してみよう。

http://www.makisima.jp/engineering-lab/wiki.cgi?CockcroftWaltonMultiplier

* 電子回路の設計はHDLで行う [#fb5a00ba]

Dフリップフロップでレジスターを作って、計数を行うのが基本。基本クロックを計数して違うクロックを作成する例をシミュレートしてHDLについて勉強してみよう。

#ref(clktest.zip)

* 電磁気学をツールで勉強 [#t45fcab2]

windows利用者の場合、rootはroot.cern.chのバイナリでよい。VC++は自動で入っているので気にしない。通常のWindowsのコマンドのrootプロンプトでTBrowser bとタイプしてブラウザーを起動して、マクロを実行する。
gnuplotは慣れているのはCygwinで利用するのがよさそう。データファイルを作る必要があるので、developのc++, fortranを入れておくのがよい。X11をdefautで入れる。そうしてxlauchを一度やっておいて、config(xtermのみONがおすすめ)をDocumentに保存しておけば、次はそれをダブルクリックする。

勉強のツールはいまいちパソコンで十分。vmwareだと64bitが必須だったりする。Ubuntuも結構パソコンを選んでしまう。

#ref(myroot.zip)

* 磁石 [#iec0ceb5]

強磁性体としては鉄があるが、温度を高くすると磁化しなくなる。

太陽や地球にも磁場がある。黒点は磁場と関係がある。以下のページからjpegファイルをダウンロードして黒点の変化のアニメーションを作成する。

http://swc.nict.go.jp/sunspot/

http://sohowww.nascom.nasa.gov/sunspots/

図の下のlist of all available imagesをクリックすると以下のページに飛ぶ。

http://sohowww.nascom.nasa.gov/data/synoptic/sunspots_earth/

#ref(sunAnime100.gif)

* 過渡現象の微分方程式解法 [#d8df7cdb]

過渡現象は抵抗、コンデンサー、コイルが登場する。直列に接続すると、線形方程式となる。コイルは起電力とするので電圧降下と反対の場所に配置する。

#math(-L\frac{dI}{dt}=IR+\frac{Q}{C})

#ref(rlc_runge.f)

このプログラムで&math(x1=Q);で&math(x2=\frac{dQ}{dt});である。またdeff_eq1は&math(x1);の微分が&math(x2);であることを示す関数となることを記述している。またdeff_eq2は&math(x2);の微分が&math(-(RC\times x2 + x1)/(LC));となることを記述している。

ちょっとこれでは複雑なので、ルンゲクッタ法は時間発展を記述し、より簡単なオイラー法を発展させたものであることを理解する。まずはコンデンサーの放電を記述する式から見てみる。

#ref(rc_runge.f)

ただしこのプログラムはそのままではgnuplotで描画出来ない。rlc_runge.fと同じように変更する。

* 誘電体を補色で表現 [#z2a25df5]

誘電体の正電荷部分を赤、負電荷部分をシアンで表現すると重なったところが白になって、中性を表現するのはどうか。同じ大きさの長方形を描き、赤をマウスの位置に合わせて移動できるようにする。楽にプログラムできるのはjavaも良さそうだが、いまやコード配布やjavascriptしかないかも。

* 誘電体の影響 [#a4c03216]

#ref(relax2.f)

電束が真電荷なしでは変化しない。よって境界で誘電率と電場の積は変化しないことを境界条件とする。これは二つの誘電体のコンデンサーにも応用できる。

 set contour
 splot 'relax2.dat' with pm3d

* 鏡像法による金属面に誘起する反対電荷分布 [#oaba3c6f]

 set pm3d
 set samples 30
 set isosamples 30
 splot [-2:2] [-2:2] 1/(1+x**2+y**2)**1.5 with pm3d

さらに一様電場の中に金属球を置いた場合の電位分布の表示。金属球は半径1

 pr(x,y)=sqrt(x*x+y*y)
 splot [-2:2][-2:2] pr(x,y) >1. ? -5.*x+5.*x/pr(x,y)**3 : 0. with pm3d

また、一様に帯電した原子核の周りの電位分布。やはり半径1を原子核の大きさとする。このモデルでは電子は半径4と1の間に分布しています。最大の電場強度は何処になるでしょう。また原子核を相対的に小さくしていくと電位や電場強度はどうなるか?

 splot [-4:4][-4:4] pr(x,y) >1. ? -1./8.+1/(3*pr(x,y))+pr(x,y)**2/384. : 3./8.-63.*pr(x,y)**2/384.  with pm3d

* 正と負の帯電した導体球のまわりの電位 [#k5c0dc3b]

#ref(potential.f)

* poisson方程式をover lelaxation法で解く場合 [#e705bf82]

高橋・早野著の計算物理にあったものの出力をgnuplot用に変更した。

#ref(relax1.f)

g77でコンパイルしてrelax1.exeを作成
 gnuplot
 set pm3d
 splot 'relax1.dat' with pm3d

* 電子回路への応用 [#qf220d83]

電磁気学を勉強したら、実際のデジタル回路設計をやってみよう。デジタル回路の要素はAND,OR,NOTから組み合わせ回路ができる。Dフリップフロップと呼ばれる要素から時間順序回路ができる。通常はクロックにD-Flip-Flopが同期するのでエッジの手前のD入力が出力されることに注意する。信号もクロックに同期していて遅延がある時は注意が必要。

これから複雑な加算器、計数器ができるが、これを電子回路で実現するには回路接続を計算機から制御できるFPGAやCPLDを使い、作成されたビット列をFPGAやCPLDに送る。

そのビット列を作るには、HDL(Hardware Description Language)で電子回路を記述する。HDLを使い、電子回路を記述し、各電極の電圧変化をシミュレーションしてみよう。ツールとしてはiverilog(icarus)を使う。

IPCの環境でインストールを行った。容量が心配な人は自分のノートPCのCygwinに入れたらよいでしょう。

 tar zxvf ../Downloads/verilog-0.9.5.tar.gz
 cd verilog-0.9.5
 ./configure --prefix=/cygdrive/z/cygwin/iverilog
 make
 make install

Macにも入れてみた

 tar zxvf ../Downloads/verilog-20120501.tar.gz
 cd verilog-20120501/
 ./configure
 make
 sudo make install
 cd ../
 tar zxvf ../Downloads/gtkwave-3.3.36.tar.gz
 cd gtkwave-3.3.36/
 /usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"
 brew install xz
 ...
 brew install gtk+
 make
 sudo make install
 
実用入門 デジタル回路とverilog-HDLの例ではTSTのプログラムのincludeをコメントアウトする。またMacとWindowsで改行が違うせいで、最終行でエラーが出る時がある。最後の文字を消して書き直すなどが必要?

#ref(MORGAN1-TST.V)
#ref(MORGAN1.V)

 iverilog -o morgan1 MORGAN1.V MORGAN1-TST.V
 vvp morgan1
 gtkwave morgan1.vcd

とかでシミュレーションまで行くはずです。MacでもLionにしたら動きました。でも下記の例ではvcdファイルがなぜかvvpでできません。不思議。

windows用のバイナリインストールでは問題ないです。

http://hw001.spaaqs.ne.jp/k-okada/design/verilog/verilog_free.html

#ref(test_ins.v)

#ref(test_tb2.v)

 export PATH=/cygdrive/z/cygwin/iverilog/bin:${PATH}
 export LD_LIBRARY_PATH=/cygdrive/z/cygwin/iverilog/lib
 iverilog -o test test_ins.v test_tb2.v
 vvp test
 gtkwave test.vcd

信号をinsert やappendで入れて、マイナスボタンを押して、時間スケールを変更します。GTKWaveを授業で使えるように、Cygwinでコンパイルしてます。どうもできそうです。configureのところでxzが入らないときは--disable-xzを入れましょう。大学のcygwinではtclに問題があり動かない。

* Gaussの法則を問題作成で実習 [#bb9f77cd]

点対称、線対称、面対称をつかってガウス面を定義する方法を作図することによって示せ。作図はAdobe illustratorを利用する。はさみツールを利用して隠れ線をカットすること。

* 電気力線の描画 [#v4c114f4]

高橋、早野著の計算物理のコード例のプロットコマンドをコメントにした。

#ref(denka.f)
 mkdir -p cygwin/denka
 cd cygwin/denka
 // cygwin/denkaのフォルダーにdenka.fをWebブラウザーでコピー
 ls  // denka.fがあるか確認
 gfortran -o denka denka.f
 ./denka.exe > denka.dat
 gnuplot
 plot 'denka.dat'

** 誘電率が高いと電場が弱くなる [#a1488fc5]

電圧が高いところに誘電率の高い物体を配置

#ref(poissonDi.cc)

gnuplotでプロットを作成する簡単なスクリプト

#ref(poissonDi.gnu)

以上のファイルを自分のcygwin\poissonに入れる。

 mkdir -p cygwin/poisson
 cd cygwin/poisson
 emacs -nw poissonDi.cc //ここでコピペ Ctl-s,Ctl-xで書いて出る。
 g++ -o poissonDi poissonDi.cc
 ./poissonDi > poisson.dat
 gnuplot
 load 'poisson.gnu'


** mathcadが欲しくなるような図 [#v4102615]

http://homepage2.nifty.com/ysc/rikisen.pdf

** 立体表示の例 [#ve8a41af]

gnuplotで媒介変数を使った3次元での立体の表示をしてみた。x-y平面の円をy軸の周りに回転する行列をかけて、10枚のファイルを作る。これをImageMagickを使って、アニメのファイルに変換する。

#ref(circle-anime.gnu)

#ref(circle-anime.gif)

** 直線電流の周りに磁場 [#v3855b6d]

上の例では、線分となっているが、トーラスを使ってもよい。レンジを変えていけば、円弧がのびていくアニメーションもできる。密度が減少する様子は半径の2乗のところに描いていくといいだろう。

メカニカルユニバースでみている通り。電場は少し難しいができないことはないはず。

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS