磁場のpythonを使った表示法

最初にあるのが超新星のデータ表示。その後、磁場の描き方。

conda activate base 
conda search urllib
conda install urllib3

https://casaguides.nrao.edu/index.php/PlotBasics

python 3.7でやるとエラーになる。コードは2.7用みたい。python3では、urllib.requestにしたりcontinueの前に改行。赤方偏移と距離指数のデータ。

import urllib.request
f = urllib.request.urlopen('http://supernova.lbl.gov/Union/figures/SCPUnion2_mu_vs_z.txt')
for line in f:
   if line[0] == '#':
       continue

それにしても、点状の磁荷の作る磁場の式は教科書にない式だけど、もっともらしくなる。なぜか。気持ちが悪いので普通の式に直した。

電磁波の利用が歴史を変える

https://en.wikipedia.org/wiki/CXAM_radar

poisson方程式はどちらかというとここかな

https://qiita.com/sci_Haru/items/6b80c7eb8d4754fb5c2d

caltechの学生さんの電場計算プログラム

ポアッソン方程式で検索すると出てくるプログラムを動かしてみた。py27ではcython関連のモジュールが入ってこないので、pyhton 3.7でやってみるとエラーになる。どうもnumpyの型があってないようなのでintをdoubleにしたら動作した。alphaやnxでだいぶ違ってくる。

python poisson.py --alpha=1.9 --nt=200 --nx=100
python poisson.py --alpha=1.9 --nt=200

jupyter-notebookの使い方

仮想環境ができてしまえばパッケージの管理はanaconda-navigatorでできます。つまりコマンドプロンプトで

conda create --name tf tensorflow

のようにして仮想環境を作ってから、作業開始となります。後はnavigatorで選択して、jupyter-notebookをinstall, launchします。matplotlibが入っていないと思うので、navigatorでまずsearchして、チェックを入れてinstallします。

pythonのturtle graphicsで電場、電位の勉強

授業ではほぼ「はじめてのニューラルネットワーク」の演習をしていたが、電磁気学の授業であるので以下のコードを作ってみた。メカニカルユニバースの課題3のビデオの球体コンデンサーの電場計算は以下のプログラムの応用でも描ける。導体上の電場がゼロになるのは難しい問題。

windowsのanaconda3でpygame

コマンド端末(Anacondaプロンプト)とIDLEのPython プロンプト、そこから開くエディタについて区別がついいていない人が多いです。Linuxの端末に当たるコマンド端末にも慣れておきましょう。プロンプトというのはコマンドを入れるところです。通常はコマンドプロンプトでライブラリのインストールを行います。Python プロンプトは主にpythonのプリント命令の結果を見るために使います。

pygameを使うとき外部機器のドライバーがpython 2.7向けの場合、以下のようにしてやってみましょう。

conda create -n py27 python=2.7 anaconda

失敗して終わったが再実行すると成功した。python2.7で作業するときは以下のようだが、python2.7環境の作成は異様に時間がかかる。大量にライブラリを入れている模様。

mkdir py27
cd py27
source activate py27
conda install git
git clone https://github.com/dji-sdk/Tello-Python.git

などとすると、python 2.7で動作するライブラリが入ってくる。とりあえずジョイスティックの動作試験をする場合、pygameがcondaのレポジトリにないようなので、pipで入れることになるが、エラーになる。ググると以下のようにすればよいとなる。文字化けを我慢して待つと、pygameが入るようです。

set PYTHONIOENCODING=utf-8
pip install pygame

condaとのマッチングが良くないのでwindowsではビデオの受信は難しそう。H264というのがネックかも。なのでjoystckだけに絞るのがよさそう。

開講までの課題4

京都で前期対面授業は京都教育だけみたいです。リモートの最後になります。アナウンスでは電気双極子の部分を言っていたので教科書を見てみると結構数式があり、texの利用を考えましたがいまいち図の作成が面倒です。大昔に使っていたTgifとかtex用のBeamerというスタイルを使ってpdfの作成にチャレンジしています。tgifはメンテされていないので絵は書いたものの保存ができないという最悪の事態に。ファイル名を指定して新たに別に立ち上げてコピペする羽目になりました。UbuntuのKileでtexを使ったところ更に悲惨な目にあってしまった。Kileのせいか、Beamerが関係しているのか。結局viで編集して、platex, dvipdfmxをたたいてokularで確認してます。原始的。

開講までの課題3

 今回は電位のビデオです。一番不思議なのは負の仕事という説明ですね。実際には試験電荷が加速されて運動エネルギーを得るわけです。または仕事が外に取り出されたりします。なぜ、外部の仕事の式に負の符号をつけるかは、内積が開き角が90度を超えると負になることを考えると納得できるはずです。

http://natsci.kyokyo-u.ac.jp/~takasima/BMU/PotentialAndCapacitace.avi

開講までの課題2

電磁気学で重要なマックスウェル方程式のうち二つの式がガウスの法則。逆二乗の法則、電気力線、足場などの英語が聞き取れれば大体わかるはず。

http://natsci.kyokyo-u.ac.jp/~takasima/BMU/TheElectricField.avi

開講までの課題1

カルテックのグッドスタイン教授の「力学の世界を越えて」のビデオの「静電気」、英語で大変ですが。キャプションのファイルは単なるテキスト(ElectroStatic.txt)ですがMechanicalUniverseにあります。かつらをのっけるところとか、契約がどうのこうのとかのギャグが聞き取りにくいはず。

http://natsci.kyokyo-u.ac.jp/~takasima/BMU/StaticElectricity.avi

F11室の電子黒板

シャープのPN-L702BのHDMIの入力はCH-501TX/RXのレシーバー側のHDMIがつながっている。もともと3大学の通信の画像出力用だったがイーサネットのケーブルが抜いてある状態。たぶん3大学システムにトランシーバーがついてる。なので、音声入りで使うとするとHDMIにパソコンをつないでリモコンの音量つまみで切り替える。謎が解けました。

電気容量で地球を使ってることについて

大気、電場で検索すると以下のページがあった。これについて考察する。

https://ci.nii.ac.jp/els/contentscinii_20180604095507.pdf?id=ART0000564810

キルヒホッフの法則

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

export JAVA_HOME=/cygdrive/c/Program\ Files/Java/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH

高圧回路の実験

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

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

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に変更

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

これは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について勉強してみよう。

電磁気学をツールで勉強

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

磁石

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

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

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

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

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

誘電体を補色で表現

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

誘電体の影響

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

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

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

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

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

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で改行が違うせいで、最終行でエラーが出る時がある。最後の文字を消して書き直すなどが必要?

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

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を利用する。はさみツールを利用して隠れ線をカットすること。

電気力線の描画

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

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'

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

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

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

以上のファイルを自分の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を使って、アニメのファイルに変換する。

circle-anime.gif

直線電流の周りに磁場

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

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


添付ファイル: fileMagnetic_Needle_Example2.py 20件 [詳細] filetridiagonal.pyx 28件 [詳細] filepoisson.py 26件 [詳細] filemirror.py 74件 [詳細] filekadai4beamer.pdf 134件 [詳細] fileblockingOsc.asc 529件 [詳細] fileHC_flipFlop-2.jpg 615件 [詳細] fileHC_flipFlop.JPG 310件 [詳細] fileclktest.zip 474件 [詳細] filemyroot.zip 508件 [詳細] filerc_runge.f 651件 [詳細] filerlc_runge.f 699件 [詳細] filesunAnime100.gif 862件 [詳細] filerelax2.f 746件 [詳細] filetest_tb2.v 745件 [詳細] filetest_ins.v 733件 [詳細] fileMORGAN1.V 761件 [詳細] fileMORGAN1-TST.V 742件 [詳細] filerelax1.f 857件 [詳細] filepotential.f 788件 [詳細] filedenka.f 892件 [詳細] filepoissonDi.gnu 842件 [詳細] filepoissonDi.cc 1048件 [詳細] filecircle-anime.gnu 1124件 [詳細] filecircle-anime.gif 1077件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-14 (火) 14:34:50 (29d)