430 likes | 585 Views
第1回 (2009/10/2). 航空宇宙機設計製図 Ⅱ. 2009 年度 九州大学 工学部 機械航空工学科 航空宇宙工学コース 3年後期 金曜3限 谷 泰寛. ver. 2009/9/30. 本日の内容. ・講義の概要 ・ CAD について ・プログラミングの基礎 〜 行列計算 ・課題1の解説 ・計算機の利用方法. 本講義の目的. 航空宇宙機の設計で使用される CAD (コンピュータ支援設計)システムに関して、 ・製図に関する3次元空間の理解とその処理方法 ・コンピュータグラフィックスの基礎 ・ Fortran によるプログラム作成方法
E N D
第1回 (2009/10/2) 航空宇宙機設計製図Ⅱ 2009年度 九州大学工学部機械航空工学科航空宇宙工学コース 3年後期 金曜3限 谷 泰寛 ver. 2009/9/30
本日の内容 ・講義の概要 ・CADについて ・プログラミングの基礎〜行列計算 ・課題1の解説 ・計算機の利用方法
本講義の目的 航空宇宙機の設計で使用されるCAD(コンピュータ支援設計)システムに関して、 ・製図に関する3次元空間の理解とその処理方法 ・コンピュータグラフィックスの基礎 ・Fortranによるプログラム作成方法 を習得することを目的とする。 3
本講義の進め方 講義 + 情報講義室で実際にプログラム作成 + 各自が作成したCG図についてプレゼンテーション ・情報講義室2は、毎週金曜日3~5限目の間は確保 ・講義等で使用されていない時間も自由に使用可能 (講義室に時間割が貼ってある)
過去の作品 H20年度古志悟君の作品 (B767-200ER)
過去の作品 H20年度田川真君の作品 (SpaceShip One) H20年度神園仁志君の作品 (EF2000)
過去の作品 H20年度井本鷹重君の作品 (F-14A)
講義計画 10/02 講義:課題1 → 10/23提出 10/09 自習 10/16 自習 10/23 講義:課題2 → 12/04提出 10/30 自習 11/06 自習 11/13 自習 (11/20 九大祭で休講) 11/27 自習 12/04 講義:課題3 → 1/22プレゼン 12/11 自習 12/18 自習 12/25 自習 1/08 自習 1/15 自習 1/22 プレゼンテーション
講義資料の配付 資料は、web上にて配布 (講義時のスライド、プログラム類) ・基本的にペーパーレス化 ・課題もメールで提出 http://stl-www.aero.kyushu-u.ac.jp/member/tani/seizu2/seizu2.html
設計・製造におけるコンピュータ利用 製造指示書 • 航空機製造業務の流れ • 図面、部品表のデジタル化 • 各種工学解析(構造解析、熱・流体解析など) • 生産管理業務の合理化・効率化 • NC機械、検査システムのためのデータ自動作成 ⇒ コンピュータ利用により、品質向上、期間短縮、 失敗による後戻り防止、などが可能となる 図面・部品表 生産計画 工程計画 部品製作組 立 検 査 研究開発 設計・解析 資材計画 資材調達 飛行試験 納 品
CADの例 http://www.systemplan.co.jp/plan_jpn/handling/cadcam/mc/mc_top.htm
CADの例 http://www.systemplan.co.jp/plan_jpn/handling/cadcam/mc/mc_top.htm
2次元CADの例 AutoCAD
3次元CAD • CATIA • 仏、Dassault Systems社(http://www.3ds.com/jp/)が開発 • 航空宇宙分野で標準 → 他分野でも幅広く使用 • 製品開発の全工程を支援 ⇒コンカレント・エンジニアリング その他の3次元CAD; Pro/Engineer, NX, AutoCAD など
CATIAの使用例 http://www.erau.edu/pr/technology/software.html
CATIAの使用例 http://www.nextcraft.com/technology_index.html
用語 • CAD Computer Aided Design 製品の形状、その他の属性データからなるモデルをコンピュータ内部に作成し、解析・処理することによって進める設計。 • CAE Computer Aided Engineering CADの過程でコンピュータ内部に作成されたモデルを利用して各種シミュレーション、技術解析など工学的な検討を行うこと。MSC/NASTRAN、ANSYS、PATRAN、Fluent、STAR-CDなど。 • CAM Computer Aided Manufacturing コンピュータ内部に表現されたモデルに基づいて生産に必要な各種情報を生成すること、およびそれに基づいて進める生産の方式。NC工作機械用プログラムの出力など。 • CAT Computer Aided Testing コンピュータによって製品又はその一部分を試験したり検査したりすること。CNC化された3次元測定機など。 ※JIS B3401, JIS X0024より一部抜粋
プログラミングの基礎 手始めに、3次元座標変換のために必要となる、 行列計算のプログラミングを行う。 対象物 投影面 視点
プログラミング言語 • 言語の種類 : Fortran, c, Pascal, Java など • コンパイラとインタプリタの違い Compiler: プログラムを機械語に翻訳した実行ファイルを作成 Interpreter: プログラムを逐次解釈しながら実行 • Fortran • Formula Translator • 科学技術計算に適した言語として広く使用 • FORTRAN66, FORTRAN77, Fortran90, Fortran95, Fortran2003, (Fortran2008)・・・
ベクトルの内積 • ベクトルとの内積 ベクトルA,B の内積 :
ベクトルの内積 program dproduct ! Dot Product of A and B implicit none integer i, n double precision d, a(10), b(10) write (*,*) "No. of Elements = " read (*,*) n write (*,*) "A(i) = " read (*,*) (a(i), i = 1, n) write (*,*) "B(i) = " read (*,*) (b(i), i = 1, n) d = 0.0D0 do i = 1, n d = d + a(i) * b(i) end do write(*,'(" AB = ", 1P,E15.5)') d end program 変数、配列の型宣言 ベクトルの要素の読み込み ベクトルの内積の計算 計算結果の出力
プログラムがいくつかのまとまった部分から出来ている場合、各部分をパッケージ化しておくと分かりやすいプログラムとなる。プログラムがいくつかのまとまった部分から出来ている場合、各部分をパッケージ化しておくと分かりやすいプログラムとなる。 わかりやすいプログラム 作業A 作業B 作業C 作業C* 作業A call a call b call c call a 作業A サブルーチン a 作業B サブルーチン b 作業C call c* 作業C* サブルーチン c* サブルーチン c 主プログラム パッケージ化 作業の流れ
program dproduct ! Dot Product of A and B implicit none integer i, n double precision d, a(10), b(10) write (*,*) "No. of Elements = " read (*,*) n write (*,*) "A(i) = " read (*,*) (a(i), i = 1, n) write (*,*) "B(i) = " read (*,*) (b(i), i = 1, n) call vmul ( d, a, b, n ) write(*,'(" AB = ", 1P, E15.5)') d end program subroutine vmul ( d, a, b, n ) implicit none integer i, n double precision d, a(10), b(10) d = 0.0D0 do i = 1, n d = d + a(i) * b(i) end do end subroutine ベクトルの内積
行列演算(1) • 行列とベクトルとの掛け算 課題(1)
行列演算(2) • n元連立一次方程式の解法 • 各種の解法 • ガウスの消去法 • ガウス・ジョルダン法 • ガウス・ザイデル法 A: 係数行列、x:解ベクトル、b:定数項ベクトル
行列演算(2) • ガウスの消去法 (前進消去、後退代入) 第1式にai1 / a11 を乗じたものを 第 i 番目の式より引く。 (第1式を用いて第2~n 式からx1 を 消去することに相当する。)
行列演算(2) • ガウスの消去法 (前進消去、後退代入) ・・・ 課題(2)
課題 1 (1) 行列[A]とベクトル{c}のかけ算を行い、ベクトル{d}を求めるプログラムを作成せよ。また、実際に数値を与えた計算を実行し、その計算結果を示しなさい。 [A]{c}={d} (2) ガウスの消去法により連立一次方程式の解を求めるプログラムを作成せよ。また、実際に数値を与えた計算を実行し、その計算結果を示しなさい。 [A]{x}={b} ・提出日:2009年10月23日(金)講義開始前まで ・提出物:プログラム説明書、プログラムリスト、計算結果をまとめてMicrosoft Word形式のファイルとして提出 ・提出先: tani@aero.kyushu-u.ac.jp 宛てに電子メールにより提出のこと. ファイル名は「自分の氏名1.doc」とすること.例えば、「谷泰寛1.doc」
計算機の利用方法 本講義における使用計算機 ・情報講義室 iMac G5, OS: Mac OS X 10.5 ・ホスト計算機 ah.s.kyushu-u.ac.jp OS : Redhat Enterprise Linux Version 5 ・ホスト計算機は、学内LANを経由してiMacから接続する。 (同様に、自宅等のPCからも接続可能だが、X環境が必要) ・計算は、ホスト計算機上で実行。(iMacは端末として利用) ・ホスト計算機上に各人に割り当てられたディレクトリは、Mac上のディレクトリとしてマウントされている。 情報講義室のiMacではVMwareという仮想環境ソフトウエア上でWindows Vistaも利用できますが、ここではMac OS X上での操作として講義を進めます。
Operating System (OS)について • Operating System • ワークステーション(WS) Unix, Linuxなど • パーソナルコンピュータ(PC) MS-DOS, Windows Vista, XP, Mac OS Xなど • その他 OS/360, TRONなど • 本講義で使用する計算機 • ホスト計算機( Red Hat Enterprise Linux ) • 情報講義室 iMac ( Mac OS X )
PCからネットワーク接続 ①ssh 「Terminal」「Tera Term」 network アプリケーションサーバ ah.s.kyushu-u.ac.jp 通信 ② X Window System 「X11」 NEC Express5800/120Rh-1 通信
教育情報システムのハードウエア 詳細は、九州大学情報統括本部(http://www.cc.kyushu-u.ac.jp/ec/info/)を参照のこと。
計算機の利用方法 パソコン(iMac)のログイン・ログアウト方法(利用ガイド, pp.6)
計算機の利用方法 アプリケーションの起動方法① : Dockから起動(利用ガイド, pp.7)
計算機の利用方法 アプリケーションの起動方法② : Finderから起動
計算機の利用方法 ホスト計算機へのログイン方法(Mac OS X上) ① 文字端末としての利用 ・「アプリケーション」→「ユーティリティ」→「ターミナル」を起動 「ssh ah.s.kyushu-u.ac.jp」と打ち込み、enterキー ② X端末としての利用 ・「アプリケーション」→「ユーティリティ」→「X11」を起動 → xtermが開く 「ssh -X ah.s.kyushu-u.ac.jp」と打込み、enterキー 情報講義室では、ログインIDの入力が不要だが、自宅等からの接続には必要。 「ssh -X -l loginID ah.s.kyushu-u.ac.jp」と打ち込み、enterキー。 ・いずれの場合も、接続されたら、パスワードの入力を行う。
基本的なLinux(UNIX)のコマンド(1) ls 現在のディレクトリの内容を表示 ls [ファイル1][ファイル2]指定したファイル名の一覧を表示 ls [ディレクトリ]指定したディレクトリの内容を表示 ls -l [ディレクトリ]指定したディレクトリ内のファイルの属性の表示 pwd 現在のディレクトリ名を表示 cd [ディレクトリ]指定したディレクトリにカレントディレクトリを変更 cd ホームディレクトリへ移動 cat [ファイル]指定したファイルの内容を表示 more [ファイル]指定したファイルの内容をenterキーで進めながら表示 cp [ファイル1][ファイル2]ファイル1の内容をファイル2にコピー rm [ファイル1]指定したファイルを削除 rmdir [ディレクトリ]指定したディレクトリを削除(ディレクトリが空の場合) rm -r [ディレクトリ]指定したディレクトリを削除する。(ディレクトリ内の内容も削除)
基本的なLinux(UNIX)のコマンド(2) mv [ファイル1][ファイル2]ファイル名を[ファイル1]から[ファイル2]へ変更 mv [ファイル][ディレクトリ]指定したファイルを指定したディレクトリへ移動 mkdir [ディレクトリ]ディレクトリを指定したディレクトリ名で作成 chmod ファイル・ディレクトリのパーミッション変更 ps プロセスの状態を表示 kill [プロセス番号]指定したプロセスを強制終了 ex [ファイル]ラインエディタ emacs [ファイル]テキストエディタ vi [ファイル]テキストエディタ view [ファイル]テキストエディタ (Read only mode) man [コマンド名]指定したコマンドのマニュアルの表示
エディタについて プログラムの編集にあたっては、エディタソフトを利用する。 Linux(UNIX)上のエディタ ・・・ vi, emac など Macのエディタ ・・・ テキストエディット, emacs, Wordなど 使用上の注意 vi 「X11」からは日本語表示できないため、表示が崩れる模様 emacs 「ターミナル」から使用する場合は、現在のウインドウ内での編集となる。FinderからMac上のemacsやテキストエディットで編集することも可能。
エディタviの基本的なコマンド(1) h カーソルを1文字左へ移動 j カーソルを1行下へ移動 k カーソルを1行上へ移動 l カーソルを1文字右へ移動 0 カーソル行の左端へ移動 b 左隣の単語の先頭へ移動 w 右隣の単語の先頭へ移動 H 画面最上行へ移動 M 画面中央行へ移動 L 画面最下行へ移動 nG ファイルの先頭からn行目へ移動 cntl+f 1ページ分下に画面を移動 cntl+b 1ページ分上に画面を移動 cntl+d 半ページ分下に画面を移動 cntl+u 半ページ分上に画面を移動 cntl+l 画面を再描画 cntl+g 行数、カーソル行位置を表示 vi <ファイル名> ファイルを読み込んで起動 :q 終了 :wq 保存して終了 :q! 保存せずに強制終了 ZZ 終了(変更は保存して終了) :w 上書保存 :w <ファイル名> 編集中のデータを<ファイル名>のファイルに保存 ESC コマンドモードへ移行 : exモードへ移行 i カーソルの左隣へ挿入 a カーソルの右隣へ挿入 I 行の先頭に挿入 A 行の末尾に挿入 O カーソル行の上に1行空けて挿入 o カーソル行の下に1行空けて挿入
エディタviの基本的なコマンド(2) . 直前のコマンドの繰返し u 直前に実行したコマンドの取消し :set number 行番号を表示 :set nonumber 行番号を非表示 :h ヘルプを表示 /<文字列> <文字列>を順方向に検索 x カーソル上一文字削除 X カーソル左一文字削除 dd カーソル行削除 dw カーソル位置から現単語末尾まで削除 shift+d カーソル位置から左削除 d^ カーソル位置から右削除 r カーソル上一文字置換 R カーソル位置から複数文字置換 yw カーソル位置の単語をコピー yy カーソル行をコピー P カーソル行の上にペースト p カーソル行の下にペースト
Fortranプログラムのコンパイル ホスト計算機上には、以下のFortranコンパイラが用意されています。 ifort : Intel Fortran 77/90/95 コンパイラ f77 : GNU Fortran 77 コンパイラ f95 : GNU Fortran 95 コンパイラ コンパイル・リンク方法(ソースプログラムを計算機が実行可能な形式に翻訳) ifort test.f90test.f90をFortran90でコンパイルし、a.outを作成 ifort test.f90 -o test.xtest.f90をFortran90でコンパイルし、test.xを作成 f77 test.f test.fをFortran77でコンパイルし、a.outを作成 f95 test.f90test.f90をFortran95をコンパイルし、a.outを作成 f95 test.f90 test2.f90test.f90とtest2.f90をFortran95でコンパイルし、a.outを作成 f95 test.f90 test2.otest.f90をFortran95でコンパイルしtest2.oとリンク、a.outを作成 実行方法 a.out または test.x あるいは、 ./a.out または ./test/x
計算機の利用上の注意 ・講義室の機材は丁寧に扱うこと。 ・人の迷惑や邪魔にならないように注意すること。(特に自習時) ・IDやパスワードは他人に教えない/忘れないこと。 ・利用を終えたら、必ずlogoutすること。(電源はそのまま) ・ホスト計算機は多くの人が同時に利用しているので、無限ループ等 に陥ったプログラムは停止すること。