2008-10-03[n年前へ]
■Simulink と Ada
「いつか触れてみたい Ada」で書いたように、「ボーイング777やF-22戦闘機、あるいは、ニューヨークやパリの地下鉄を動かしている」プログラミング言語Adaを使ってみたい、と思うことがある。
Simulinkを使っていると、CやC++でSimulink の MEX(ユーザーが他言語で作った拡張機能)を作ることが多い。Simulinkは、グラフィカルにコンポーネントをワイヤーで結んでいくのが大きな特徴の一つであるとはいえ、細かな部分分はコードを書く方が楽でわかりやすかったりするからである。
Simulink の MEX 関連サンプルを読んでいると、FORTRAN,C,C++,そして、Ada によるMEXの作り方が書いてある。Adaをよく知らない頃は、なぜAdaが・・・?と思っていた。だけれど、「Adaは信頼性・保守性に優れ主として組み込みシステム向けの言語」ということを知ると、なるほど何より先にAdaの例が登場するのが当然なのだな、と納得することができる。
2008-10-14[n年前へ]
■SumulinkのMex S-Function をどう書くか
「SumulinkのMex S-Functionで非線形なモデルををどのように書くか」よく考える。考えるけれど、いつも、連続的なモデルでなく離散的なモデルとして書いてしまう。最終的には離散モデルとして書き下さなければならないのなら、最初から離散モデルとして書き始めた方が作業が少ないような気がするからである。
それに、連続モデルとして書くにせよ、各状態量の微分量は計算しておいてやらなければならない。それなら、精度が低くても、自分なりのコードで離散時間に対する処理を書いた方が、どのように動いているかを自分なりに単純に把握できて良いような気持ちになる。
他の人たちは一体どのようなスタイルでMEX S-Function を書くのだろうか。特に、C++でMEXを書いたりすることがある人たちのアドバイスを聞いてみたい。