情報機器の操作

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

Javaはセキュリティの問題があるらしくIPCでは使えるようになっていません。

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

フリップフロップを作ってみる

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

HC_flipFlop-2.jpg

電磁気学では光速度が重要

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

アナログ回路はSPICEで

LTSPICEが便利

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

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

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

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

電子回路の設計はHDLで行う

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

fileclktest.zip

電磁気学をツールで勉強

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も結構パソコンを選んでしまう。

filemyroot.zip

磁石

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

太陽や地球にも磁場がある。黒点は磁場と関係がある。以下のページから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/

sunAnime100.gif

過渡現象の微分方程式解法

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

・・・(1)
filerlc_runge.f

このプログラムでである。またdeff_eq1はの微分がであることを示す関数となることを記述している。またdeff_eq2はの微分がとなることを記述している。

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

filerc_runge.f

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

誘電体を補色で表現

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

誘電体の影響

filerelax2.f

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

set contour
splot 'relax2.dat' with pm3d

鏡像法による金属面に誘起する反対電荷分布

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

正と負の帯電した導体球のまわりの電位

filepotential.f

poisson方程式をover lelaxation法で解く場合

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

filerelax1.f

g77でコンパイルしてrelax1.exeを作成

gnuplot
set pm3d
splot 'relax1.dat' with pm3d

電子回路への応用

電磁気学を勉強したら、実際のデジタル回路設計をやってみよう。デジタル回路の要素は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で改行が違うせいで、最終行でエラーが出る時がある。最後の文字を消して書き直すなどが必要?

fileMORGAN1-TST.V
fileMORGAN1.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

filetest_ins.v
filetest_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の法則を問題作成で実習

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

電気力線の描画

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

filedenka.f
g77 -o denka denka.f
./denka.exe > denka.dat
gnuplot
plot denka.dat

誘電率が高いと電場が弱くなる

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

filepoissonDi.cc

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

filepoissonDi.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が欲しくなるような図

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

立体表示の例

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

filecircle-anime.gnu
circle-anime.gif

直線電流の周りに磁場

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

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


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS