CAEとMATLABの違いについて

このQ&Aのポイント
  • CAEとMATLABは、それぞれ異なる特徴を持っており、研究や解析において活用されています。
  • MATLABは数値解析や近似式の作成に適しており、構造体の近似式を作って解を出力することができます。
  • 一方、COMSOLは有限要素法を用いて構造体を3次元的に表現し、微小な要素ごとの解を求めることができます。また、可視化によって直感的な理解が可能です。
回答を見る
  • ベストアンサー

CAEとMATLABの違いについて

現在、私立大学工学部の三年になるものです。 これからの研究にCAE(COMSOL)とMATLABを使用して行く状況になっております。 (研究内容は、回転体の軸振動低減です。最終的には3Dでの可視化が出来たらと思っております。) しかしながら、まだ両ソフト共に知識がないためにイメージが掴めておらず質問に上がった次第です。 MATLABはあるブラックボックスが存在し、そこに選択した数値を入力すると解が出力する。 COMSOLは有限要素法を用いて、構造体を3次元的表現することが出来、メッシュによって切り分けた微小な要素ごとの解(圧力・熱量・流量)を求めて、最終的に3次元化によって可視化する。 両者はお互いの不得意な部分を補い合っていて、必要な状況ごとに使い分ける必要がある。 MATLABは構造体の近似式を作り、そこに値を入力し、解を出力する。スピード重視 COMSOLは計算の時間がかかる。しかし、可視化をすることによって構造体の細かい圧力・熱量・流量を直感的に理解することができ、構造体の形を使用状況に合わせて最適化する事ができる。 といった認識であります。 以上のような理解で宜しいでしょうか? 詳細な知見・厳しいご指摘をお持ちの方が居らっしゃればご教授いただければ幸いです。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • my3027
  • ベストアンサー率33% (495/1499)
回答No.1

Matlabしか知りませんが参考に。 CAEというのはかなり広い範囲を含んでいるので、MatlabもCAEソフトの一種と言えるでしょう。理由はコンピュータを工学計算に利用するからです。ブラックボックスが存在し~の説明の意味は私にはわかりませんが、simulinkの事を指しているのかもしれませんね。私はmatlabはプログラムを簡単に書け、可視化も簡単に出来るパッケージという認識です。simulinkではビジュアル的に伝達関数の関係を構築し、全体システムの挙動をシュミレートするという印象です。 COMSOLは有限要素法での汎用パッケージソフトと思われます。プリ、ソルバー、ポスト処理がセットになってプリで作成したモデルをソルバーで解き、ポスト処理で可視化するというのが簡単に出来ます。逆にMatlabは有限要素法でも差分法でも自分で作成したプログラムで結果を出力できますが、自己でプログラムを書く必要があります。 大きな違いは、前者は様々なアプローチが出来るがそれを自分でプログラミングしないといけない。後者は有限要素法で決められた処理法の中で、必要な初期条件と境界条件でそれを決まったソルバーで解く。専門化されている分融通は効かないが、ユーザーは楽という違いです。共通してるのはどの方法(有限要素法、差分法等)を使うのあっても、結果は近似値です。また、matlabはインタプリタなので計算時間は遅いです。

taka41456
質問者

お礼

お礼が遅れてしまい申し訳ございません。 また、わかりやすい回答をありがとうございました。 MATLABとCOMSOLはCAEの同じ括りの中でプログラミングにより様々なアプローチが出来るか (手法にあったプログラミングが出来ないといけいない)、有限要素法という専門家された中で融通が効かない分、ユーザーが楽になる。 このような違いがわかりました。 これを元にこれからの研究を励んでゆこうと思います。

関連するQ&A

  • 流量と圧力は同じ

    洗浄機の配管の構造で悩んでいます。 水の流量と圧力について質問します。 2つのパイプから出る水の流量と圧力を比較した場合です。 1つは、80ミリのパイプから65ミリのパイプにつなぎ さらに40ミリのパイプにつなぎます。 もう一方は、80ミリのパイプから90ミリのパイプにつなぎ さらに40ミリのパイプにつなぎます。 いずれも同じ圧力で水を流したとします。 この場合40ミリのパイプから出る水の量と圧力(水の勢い)は 同じなのでしょうか。 業者の技術者の方は最終的に出口の口径が同じなので、どちらも 同じと言われました。 私としては、途中で口径が広くなるので圧が弱くなるような 気がします。

  • 分からないです(;_;)

    分からないです(;_;) 4 二次関数の係数が格納できる構造体(タグ名equation)、2つの解が格納できる構造体(タグ名answer)を作成する。 さらに、int型ユーザー関数discriminant(struct equation x)と、struct answer型関数calc_ans(struct equation x)を作成する。 ・int型ユーザー関数discriminantは、2次方程式の二次方程式の判別式を計算し、解が存在する場合は0を、存在しない場合は1を返す関数とする。 ・struc answer型関数calc_ansは、2次方程式の解の公式を計算し、2つの解が格納されたanswer型の構造体を返す関数とする。 まず、任意の変数名で構造体equation、answerをそれぞれ宣言し、equation型構造体に2次方程式を格納する。次に、equation型構造体をユーザー関数discriminantに渡して判別させ、解がなければエラーを出力し終了する。 解が存在する場合は、equation型構造体をユーザー関数calc_ansに渡して計算させる。最後に、帰ってたanswer型構造体に含まれる2つの解を出力すること。 <実行結果>  iInput ax^2 + bx + c = 0 Input a:3 Input b:-22.2 Input c:5.32 answer 1 : 7.152053 answer 2 : 0.247947 Input ax^2 + bx + c = 0 Input a:5 Input b:3 Input c:1 Error!!

  • 振動式加工機における機械構造の解析

    振動モーターを利用して、ワークを加工する機械を設計している者です。 機械の構造部が複雑な製缶構造をしており、新規機械を設計する際には過去に作った機械を参照し、実機を作成して実際に運転させて振幅の大きい箇所を補強している状況です。(つまりカンで設計して、だいたいの目安で検証している状況) 振動によるひび、割れ等が発生した際には都度補強をして対応しております。 このままでは、どんどん過剰設計になる傾向で、なおかつ、カンで設計しているので、機械の全体レイアウトに対する設計変更もままならない状況です。 当方はCAEに対する知識も乏しいのですが、振動機器の構造体の強度解析に使えるCAEソフトはどの様なものがあるのでしょうか?

    • 締切済み
    • CAE
  • 転職の悩み相談

    転職の相談です。 私はある家電メーカー子会社で勤めているものですが、現在、より上流工程を目指して、メーカーへの転職を考えており、活動しております。33歳です。 その中で、ある太陽光メーカーから最終面接の案内を頂いたのですが、すごく迷っています。 私の希望としては、経験の長いCAEをメインにやっていきたいと思っていますが、 先方からは、確かに求人票にCAEのことを記載したが、あくまで研究開発として、 設計も評価も全てやってほしいということで、イメージに違いがありました。 だったら、即辞退という判断になるとは思いますが、ここに迷いがあります。 一つは、大卒当時の希望は設計職であり、今もその興味はあること、 二つ目に、CAEが扱える今なら、質の高い設計ができるのではないかという期待があること、 三つ目に、太陽光や先方の会社自体にも魅力を感じているところがあり、 面接も非常に難しいものであったことから、簡単にあきらめきれない状態です。 皆様だったら、このような状況下で、どのような判断をするか、お伺いしてみたく 質問させていただきました。 また、最終面接を受けるつもりなのですが、その後の辞退は、失礼にあたるでしょうか。 以上、重ねて、回答頂けるとありがたいです。 何卒、よろしくお願い致します。

  • 降順・昇順のやり方(初心者)

    現在VB2005を学んでいます。 2次元配列(要素数:10,10)で、それぞれに数字の値を入れておき、特定の列に対して降順・昇順処理をしたいと思っています。そしてそれに合わせて全体の行も入れ替えるようにします。 本当は、構造体配列等でDataGridを使って処理すれば簡単にいくのでしょうが、敢えてそれを2次元配列を使って、並び替えたものをTextBoxに表示したいのですが、中々上手くいきません。 取りあえず、配列の特定の列の値を降順・昇順に並び替えて表示させるという処理だけでも分かるといいのですが、何か良い方法はないでしょうか?

  • C++ vectorに配列をプッシュしたい

    C++のstd::vectorが格納する要素として配列を指定することはできますか vectorを使って2次元配列を表現したいときは,たとえば std::vecor<std::vector<int>> v; とすれば2次元配列が表現できますよね. 2次元配列の列方向の要素数が2で固定されていて,行方向の要素数が不確定のデータを扱いたいので,2次元配列を格納するvectorで扱えればなと思いました. (2個で1組のデータがたくさんあるということなので,vectorの2次元配列ではありません) std::vector<int[2]> v; int a[2]; a[1] = 1; a[0] = 2; v.push_back(a); という書き方ではコンパイルできなかったのですが,vectorに配列要素を格納させることはできないのでしょうか. あるいは,もし可能ならどのように書けばよいのでしょうか. 結局は1組のデータセットを構造体化してそれをvectorにプッシュするやり方に落ち着いたのですが,疑問に思ったままモヤモヤしているので質問させて頂きます. 「vector 配列」などのキーワードで検索してみましたが,vectorの動的配列としての紹介記事が多くヒットしてしまい,自分ではうまく情報を発見することはできませんでした. よろしくお願いします.

  • 時系列の3次元データをリアルタイムにプロットするソフト

    大学の研究で必要なんですが、X-Y平面の圧力分布の時間的な変化を3次元的に可視化したいのですが、そういうことが基本機能だけでできる市販のソフトはありますか? 前にもにた質問をして、そのときはEXCELVBAで作ったんですが、グラフの描画速度が遅すぎてだめでした。 きっとOpenGLとかDirectXとかを使ってプログラムを作ればできるとは思うんですが、そういう知識がないのと、あと2週間で研究発表なので、勉強している時間がありません、いいソフトがあれば紹介して頂きたいのですが、よろしくお願いします。 プロットするデータの詳細: 元データは16列×1万行です。 行は時間に対応し、 16個のデータを元に4×4の三次元ヒストグラムを一万回描画することになります。 リアルタイムなら1行は1msに相当し、全体で10秒になるんですが、一分くらいかかって全部再生できれば問題ないと思っています。 ちなみにWindowsXPHomeSP2,Pentium(3)750MHz,メモリ320MB,グラフィック性能はS3 SavageIX 8MB、という環境です。研究室で使えるソフトはMathematica4やOrigin7.5とかありますが、ちょっと難しそうです。

  • csv読込でVectorに格納した数値を分類したい

    C++について2回目の質問となります。 私、現在CSVファイルの値を取得するコードを書いています。 後々、この値をある計算に使う予定です。 そこで、計算に使う際に使いやすいように分類しながら値を変数に格納したいと考えてます。 CSV1行を分割後にVectorに格納しようと考えています。 このVectorの型に構造体を入れることってできるのでしょうか。 1行を分類したいという意図がありまして、Vector<struct ***>とできないかと思っているのですが、 これは有効なのかがわかりません。 当初は、Vector<int>にするか、Vectorを2次元配列にしてCSVデータを入れていき、計算のときに何番目(何列目)を取り出す、というやりかたにしようと考えていたのですが、分類の仕方は決まりきっているので、分類ごとに構造体を用意し、Vector<struct ***>に順番に入れていく、というやり方を思いつきました。 が、1行を一旦Vector<int>に入れてしまって、あとで必要なところを要素指定したほうがいいのではとまた思い直し、混乱が起こっています。 Vector<struct ***>ということはできるのか、という点、 Vector<int>にして、あとで構造体(変数?)にいれるべきなのか、という点、 または、Vectorに入れるべきではないのか(構造体に入れるならば、リストにすべきか)という点を教えていただけないでしょうか。 わかりにくいようでしたら、随時ご指摘お願いします。 すみません、C++初心者なので、もしかしたらとんでもないことをいっているかもしれませんが、有識者の方、アドバイスをお願いします。

  • CAE

    CAEってなんですか?

    • 締切済み
    • CAE
  • CAEってなに?

     会社の入社前研修でCAEを習うことになったのですが,CAEとは具体的にどんなことをするものなのかわからないので誰か教えてください.また,自力で使えるようになろうというのは無理なんでしょうか?