航空宇宙機設計製図Ⅱ 課題1

第1回 (2009/10/2)
航空宇宙機設計製図Ⅱ
2009年度
九州大学 工学部 機械航空工学科 航空宇宙工学コース
3年後期 金曜3限
谷 泰寛
ver. 2009/9/30
2
本日の内容
・講義の概要
・CADについて
・プログラミングの基礎〜行列計算
・課題1の解説
・計算機の利用方法
3
本講義の目的
航空宇宙機の設計で使用されるCAD(コンピュータ支援設計)システ
ムに関して、
・製図に関する3次元空間の理解とその処理方法
・コンピュータグラフィックスの基礎
・Fortranによるプログラム作成方法
を習得することを目的とする。
4
本講義の進め方
講義 + 情報講義室で実際にプログラム作成
+ 各自が作成したCG図についてプレゼンテーション
・情報講義室2は、毎週金曜日3~5限目の間は確保
・講義等で使用されていない時間も自由に使用可能
(講義室に時間割が貼ってある)
5
過去の作品
H20年度 古志悟君の作品 (B767-200ER)
6
過去の作品
H20年度 田川真君の作品 (SpaceShip One)
H20年度 神園仁志君の作品 (EF2000)
7
過去の作品
H20年度 井本鷹重君の作品 (F-14A)
8
講義計画
10/02 講義:課題1 → 10/23提出
11/27 自習
10/09 自習
12/04 講義:課題3 → 1/22プレゼン
10/16 自習
12/11 自習
10/23 講義:課題2 → 12/04提出
12/18 自習
10/30 自習
12/25 自習
11/06 自習
1/08
自習
11/13 自習
1/15
自習
(11/20 九大祭で休講)
1/22
プレゼンテーション
9
講義資料の配付
資料は、web上にて配布 (講義時のスライド、プログラム類)
http://stl-www.aero.kyushu-u.ac.jp/member/tani/seizu2/seizu2.html
・基本的にペーパーレス化
・課題もメールで提出
10
設計・製造におけるコンピュータ利用

航空機製造業務の流れ
図面・部品表
研究開発
製造指示書
生産計画
工程計画
設計・解析
資材計画
資材調達
部品製作組
立
 図面、部品表のデジタル化
検
査
飛行試験
納
品
 各種工学解析(構造解析、熱・流体解析など)
 生産管理業務の合理化・効率化
 NC機械、検査システムのためのデータ自動作成
⇒ コンピュータ利用により、品質向上、期間短縮、
失敗による後戻り防止、などが可能となる
11
CADの例
http://www.systemplan.co.jp/plan_jpn/handling/cadcam/mc/mc_top.htm
12
CADの例
http://www.systemplan.co.jp/plan_jpn/handling/cadcam/mc/mc_top.htm
13
2次元CADの例
AutoCAD
14
3次元CAD
CATIA
 仏、Dassault Systems社(http://www.3ds.com/jp/)が開発


航空宇宙分野で標準 → 他分野でも幅広く使用

製品開発の全工程を支援
⇒ コンカレント・エンジニアリング
その他の3次元CAD; Pro/Engineer, NX, AutoCAD など
15
CATIAの使用例
http://www.erau.edu/pr/technology/software.html
16
CATIAの使用例
http://www.nextcraft.com/technology_index.html
用語
17
 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より一部抜粋
18
プログラミングの基礎
手始めに、3次元座標変換のために必要となる、
行列計算のプログラミングを行う。
対象物
投影面
視点
19
プログラミング言語

言語の種類 : Fortran, c, Pascal, Java など

コンパイラとインタプリタの違い
Compiler: プログラムを機械語に翻訳した実行ファイルを作成
Interpreter: プログラムを逐次解釈しながら実行

Fortran



Formula Translator
科学技術計算に適した言語として広く使用
FORTRAN66, FORTRAN77, Fortran90, Fortran95,
Fortran2003, (Fortran2008)・・・

20
ベクトルの内積

ベクトルとの内積
B  b1 b2 b3 b4 
A  a1 a2 a3 a4 
ベクトル A,B の内積 :

A B  a1 a2a3
A B d
b1 
 
b2 

a4 
b3 
 
b4 
4
d  aibi
i1
21
ベクトルの内積
program dproduct
! Dot Product of A and B
implicit none
integer i, n
double precision d, a(10), b(10)
write
read
write
read
write
read
(*,*)
(*,*)
(*,*)
(*,*)
(*,*)
(*,*)
"No. of Elements = "
n
"A(i) = "
(a(i), i = 1, n)
"B(i) = "
(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
22
わかりやすいプログラム
プログラムがいくつかのまとまった部分から出来ている場合、各部分
をパッケージ化しておくと分かりやすいプログラムとなる。
作業A
call a
作業A
サブルーチン a
作業B
call b
作業B
作業C
作業C*
作業A
call c
サブルーチン b
call a
作業C
call c*
サブルーチン c
主プログラム
作業の流れ
パッケージ化
作業C*
サブルーチン c*
23
ベクトルの内積
program dproduct
! Dot Product of A and B
subroutine vmul ( d, a, b, n )
implicit none
integer i, n
double precision d, a(10), b(10)
implicit none
integer i, n
double precision d, a(10), b(10)
write
read
write
read
write
read
d = 0.0D0
do i = 1, n
d = d + a(i) * b(i)
end do
(*,*)
(*,*)
(*,*)
(*,*)
(*,*)
(*,*)
"No. of Elements = "
n
"A(i) = "
(a(i), i = 1, n)
"B(i) = "
(b(i), i = 1, n)
call vmul ( d, a, b, n )
write(*,'(" AB = ", 1P, E15.5)') d
end program
end subroutine
24
行列演算(1)

行列とベクトルとの掛け算
a11 a12   a1n 
 c1 
 





 
A 

  c


 
  


an1    ann 
cn 
Ac  d
di 
 d1 

 
d   
 

dn 
n
a c
ij j
j 1
課題(1)
25
行列演算(2)

n元連立一次方程式の解法
a11x1  a12x2   a1n xn  b1
a21x1  a22x2   a2n xn  b2

an1 x1  an 2 x2   annxn  bn
Ax  b

A: 係数行列、x:解ベクトル、b:定数項ベクトル
各種の解法



ガウスの消去法
ガウス・ジョルダン法
ガウス・ザイデル法
a


A  


a
11
n1
a   a 
x 
b 



 
 
 

 , x    , b    


  
 
 
 x 
b 
   a 
12
1n
1
1
nn
n
n
26
行列演算(2)

ガウスの消去法 (前進消去、後退代入)
a11x1  a12x2   a1n xn  b1
a21x1  a22x2   a2n xn  b2

an1 x1  an 2 x2   annxn  bn
a11x1  a12x2   a1n xn  b1
1
a22
x2   a21n xn  b21

1
1
1
an 2 x2   ann xn  bn
aij1  aij  a1 j a11ai1
bi1  bi  b1 a11ai1
i  2, 3,, n; j  2, 3,, n
第1式に ai1 / a11 を乗じたものを
第 i 番目の式より引く。
(第1式を用いて第2 ~ n 式から x1 を
消去することに相当する。)
27
行列演算(2)

ガウスの消去法 (前進消去、後退代入)
a11x1  a12x2   a1n xn  b1
1
a22
x2   a21n xn  b21

1
an12 x2   ann
xn  bn1
・
・
・  a x  b
a11x1  a12x2  
1n n
1
1
a22
x2    a21n xn  b21

ann1n2 1 xn1  ann1n2  xn  bnn2
n1
ann
xn  bnn1

n1
b
xn  nn1
ann
課題(2)
28
課題 1
(1) 行列[A]とベクトル{c}のかけ算を行い、ベクトル{d}を求め
るプログラムを作成せよ。また、実際に数値を与えた計算を
実行し、その計算結果を示しなさい。
[A]{c}={d}
(2) ガウスの消去法により連立一次方程式の解を求めるプログ
ラムを作成せよ。また、実際に数値を与えた計算を実行し、
その計算結果を示しなさい。
[A]{x}={b}
・提出日: 2009年10月23日(金)講義開始前まで
・提出物: プログラム説明書、プログラムリスト、計算結果をまとめて
Microsoft Word形式のファイルとして提出
・提出先:
[email protected] 宛てに電子メールにより提出のこと.
ファイル名は「自分の氏名1.doc」とすること.例えば、「谷泰寛1.doc」
29
計算機の利用方法
本講義における使用計算機
・情報講義室 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上での操作として講義を進めます。
30
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 )
31
PCからネットワーク接続
①ssh
「Terminal」「Tera Term」
network
アプリケーションサーバ
ah.s.kyushu-u.ac.jp
通信
② X Window System
「X11」
NEC Express5800/120Rh-1
通信
32
教育情報システムのハードウエア
計 算 機 の 種 類
機
種
主 な 仕 様
利用者用端末パソコン
Apple iMac MB323J/A
CPU
Intel Core 2 Duo E8135(2.4GHz)
GPU
ATI Radeon HD 2400XT
メモリ
4GB
HDD
250GB
光学式ドライブ
SuperDrive
画面解像度
1680×1050
空きUSB端子
2
ネットワーク
10BASE-T/100BASE-TX/1000BASE-T
その他
Apple Keyboard,Apple Mighty Mouse,ヘッドセット
アダプタ
ホスト
計算機
アプリケーション
用サーバ
NEC
Express5800/120Rh-1
CPU
Intel Xeon E5205(1.86GHz)×2
メモリ
8GB
ネットワーク
10BASE-T/100BASE-TX/1000BASE-T
情報提供用サー
バ
NEC
Express5800/120Rh-1
CPU
Intel Xeon E5205(1.86GHz)×2
メモリ
9GB
ネットワーク
10BASE-T/100BASE-TX/1000BASE-T
ファイルサーバ
NEC iStorage NV5400
CPU
Intel Xeon 5110(1.6GHz)×2×2ノード
メモリ
4GB×2ノード
HDD
2.5TB(実効)
ネットワーク
10BASE-T/100BASE-TX/1000BASE-T
詳細は、九州大学情報統括本部(http://www.cc.kyushu-u.ac.jp/ec/info/)を参照のこと。
33
計算機の利用方法
パソコン(iMac)のログイン・ログアウト方法 (利用ガイド, pp.6)
34
計算機の利用方法
アプリケーションの起動方法① : Dockから起動 (利用ガイド, pp.7)
35
計算機の利用方法
アプリケーションの起動方法② : Finderから起動
36
計算機の利用方法
ホスト計算機へのログイン方法 (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キー。
・いずれの場合も、接続されたら、パスワードの入力を行う。
37
基本的なLinux(UNIX)のコマンド(1)
ls
ls [ファイル1] [ファイル2]
ls [ディレクトリ]
ls -l [ディレクトリ]
現在のディレクトリの内容を表示
指定したファイル名の一覧を表示
指定したディレクトリの内容を表示
指定したディレクトリ内のファイルの属性の表示
pwd
cd [ディレクトリ]
cd
現在のディレクトリ名を表示
指定したディレクトリにカレントディレクトリを変更
ホームディレクトリへ移動
cat [ファイル]
more [ファイル]
指定したファイルの内容を表示
指定したファイルの内容をenterキーで進めながら表示
cp [ファイル1] [ファイル2]
rm [ファイル1]
rmdir [ディレクトリ]
rm -r [ディレクトリ]
ファイル1の内容をファイル2にコピー
指定したファイルを削除
指定したディレクトリを削除(ディレクトリが空の場合)
指定したディレクトリを削除する。(ディレクトリ内の内容も削除)
38
基本的なLinux(UNIX)のコマンド(2)
mv [ファイル1] [ファイル2]
mv [ファイル] [ディレクトリ]
mkdir [ディレクトリ]
ファイル名を[ファイル1]から[ファイル2]へ変更
指定したファイルを指定したディレクトリへ移動
ディレクトリを指定したディレクトリ名で作成
chmod
ファイル・ディレクトリのパーミッション変更
ps
kill [プロセス番号]
プロセスの状態を表示
指定したプロセスを強制終了
ex [ファイル]
emacs [ファイル]
vi [ファイル]
view [ファイル]
ラインエディタ
テキストエディタ
テキストエディタ
テキストエディタ (Read only mode)
man [コマンド名]
指定したコマンドのマニュアルの表示
39
エディタについて
プログラムの編集にあたっては、エディタソフトを利用する。
Linux(UNIX)上のエディタ ・・・ vi, emac など
Macのエディタ ・・・ テキストエディット, emacs, Wordなど
使用上の注意
vi
「X11」からは日本語表示できないため、表示が崩れる模様
emacs 「ターミナル」から使用する場合は、現在のウインドウ内での
編集となる。FinderからMac上のemacsやテキストエディット
で編集することも可能。
40
エディタviの基本的なコマンド(1)
vi <ファイル名> ファイルを読み込んで起動
:q
:wq
:q!
ZZ
:w
:w <ファイル名>
終了
保存して終了
保存せずに強制終了
終了(変更は保存して終了)
上書保存
編集中のデータを<ファイル名>の
ファイルに保存
ESC
:
i
a
I
A
O
o
コマンドモードへ移行
exモードへ移行
カーソルの左隣へ挿入
カーソルの右隣へ挿入
行の先頭に挿入
行の末尾に挿入
カーソル行の上に1行空けて挿入
カーソル行の下に1行空けて挿入
h
j
k
l
0
b
w
H
M
L
nG
カーソルを1文字左へ移動
カーソルを1行下へ移動
カーソルを1行上へ移動
カーソルを1文字右へ移動
カーソル行の左端へ移動
左隣の単語の先頭へ移動
右隣の単語の先頭へ移動
画面最上行へ移動
画面中央行へ移動
画面最下行へ移動
ファイルの先頭からn行目へ移動
cntl+f
cntl+b
cntl+d
cntl+u
cntl+l
cntl+g
1ページ分下に画面を移動
1ページ分上に画面を移動
半ページ分下に画面を移動
半ページ分上に画面を移動
画面を再描画
行数、カーソル行位置を表示
41
エディタviの基本的なコマンド(2)
/<文字列>
<文字列>を順方向に検索
x
X
dd
dw
shift+d
d^
カーソル上一文字削除
カーソル左一文字削除
カーソル行削除
カーソル位置から現単語末尾ま
で削除
カーソル位置から左削除
カーソル位置から右削除
r
R
カーソル上一文字置換
カーソル位置から複数文字置換
yw
yy
P
p
カーソル位置の単語をコピー
カーソル行をコピー
カーソル行の上にペースト
カーソル行の下にペースト
.
u
:set number
:set nonumber
:h
直前のコマンドの繰返し
直前に実行したコマンドの取消し
行番号を表示
行番号を非表示
ヘルプを表示
42
Fortranプログラムのコンパイル
ホスト計算機上には、以下のFortranコンパイラが用意されています。
ifort
: Intel Fortran 77/90/95 コンパイラ
f77
: GNU Fortran 77 コンパイラ
f95
: GNU Fortran 95 コンパイラ
コンパイル・リンク方法(ソースプログラムを計算機が実行可能な形式に翻訳)
ifort test.f90
test.f90をFortran90でコンパイルし、a.outを作成
ifort test.f90 -o test.x test.f90をFortran90でコンパイルし、test.xを作成
f77 test.f
test.fをFortran77でコンパイルし、a.outを作成
f95 test.f90
test.f90をFortran95をコンパイルし、a.outを作成
f95 test.f90 test2.f90 test.f90とtest2.f90をFortran95でコンパイルし、a.outを作成
f95 test.f90 test2.o
実行方法
a.out または test.x
test.f90をFortran95でコンパイルしtest2.oとリンク、a.outを作成
あるいは、 ./a.out または
./test/x
43
計算機の利用上の注意
・講義室の機材は丁寧に扱うこと。
・人の迷惑や邪魔にならないように注意すること。(特に自習時)
・IDやパスワードは他人に教えない/忘れないこと。
・利用を終えたら、必ずlogoutすること。(電源はそのまま)
・ホスト計算機は多くの人が同時に利用しているので、無限ループ等
に陥ったプログラムは停止すること。