見出し画像

🛠️MatlabクローンScilabと言語体系 ツールから発展したコンピュータ言語 Simulink Octave Xcosかっこええ

Matlab昇格史


MATLABは最も人気のある商用数値計算ソフトウェアパッケージであるが、オープンソースの計算言語GNU Octave、統計プログラミング言語R、計算環境Maple、計算言語Juliaなど、他の選択肢も利用可能である。

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

当初(バージョン1.0以前)、MATLABは「プログラミング言語ではなく、単純な対話型行列計算機だった。プログラムも、ツールボックスも、グラフィックもなかった。また、ODEやFFTもありませんでした」

1980年代、Cleve MolerはJohn N. Littleと出会った。彼らはMATLABをC言語で再プログラムし、当時メインフレームコンピュータに取って代わりつつあったIBMのデスクトップ向けに販売することを決めた[24]。ジョン・リトルとプログラマーのスティーブ・バンガートはMATLABをC言語で再プログラムし、MATLABプログラミング言語を作り、ツールボックスのための機能を開発した。

GuiフロントSimulinkの登場

Simulinkは、マルチドメインダイナミカルシステムのモデリング、シミュレーション、解析のためのMATLABベースのグラフィカルプログラミング環境です。主なインターフェースは、グラフィカルなブロック図作成ツールとカスタマイズ可能なブロックライブラリのセットです。SimulinkはMATLAB環境と密接に統合されており、MATLABを駆動したり、MATLABからスクリプトを実行したりすることが可能です。Simulinkは、自動制御やデジタル信号処理の分野で、マルチドメインシミュレーションやモデルベース設計に広く使用されています。

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

Octave には Simulink のような「ネイティブ」なツールはありませんが,Scilab の xcos と sci_cosim 213 パッケージを使用して,Octave 内からシミュレーションを制御することが可能です.

https://octave.discourse.group/t/question-simulink-alternative/1095

そこでScilab

Scilab は、フリーでオープンソースのクロスプラットフォーム数値計算パッケージであり、高水準の数値指向プログラミング言語です。信号処理、統計解析、画像強調、流体力学シミュレーション、数値最適化、およびモデリング、陽解法および陰解法力学系のシミュレーション、(対応するツールボックスがインストールされている場合)記号操作に使用できます。
Scilab は MATLAB に代わる 2 つの主要なオープンソースの 1 つで,もう 1 つは GNU Octave です. Scilab は Octave よりも MATLAB との構文の互換性を重視していませんが [5][9][10] ,十分に似ているので,2 つのシステム間でスキルを移すのは簡単であると指摘する著者 もいます.

https://en.wikipedia.org/wiki/Scilab
MATLABの価格はパーペチュアルで30万、趣味で買うには高いかな

あなたが学位を授与する機関の教職員または研究者で、ソフトウェアの操作、インストール、および管理を自分で行いたい場合は、このライセンスを選択します。また、お客様の教育機関では、集中管理の利便性のために、ライセンスグループを管理する管理者を指定することができます。

エデュケーションライセンスもある



RSTUDIOみたいな見た目

Scilabに付属のXCOS

Scilabは高水準の数値指向プログラミング言語です。行列を主なデータ型とし、インタプリタ型のプログラミング環境を提供します。行列を用いた計算、動的型付け、自動的なメモリ管理により、Fortran、C、C++などの従来の言語と比較して、多くの数値問題を少ないコード行数で表現することができます。これにより、様々な数学的問題に対するモデルを迅速に構築することができる。Scilabパッケージは、乗算などの単純な行列演算を提供する一方で、相関や複雑な多次元演算などの高水準演算のライブラリも提供しています。
Scilab には Xcos という無償のパッケージも含まれており,連続および離散サブシステムを含む陽解法および陰解法の力学系のモデリングとシミュレーションを行うことができます.Xcos は MathWorks 社の Simulink に相当するオープンソースです.
Scilabの構文はMATLABに似ているため、ScilabにはMATLABからScilabへのコード変換を支援するソースコードトランスレータが含まれています。Scilabは、オープンソースライセンスのもと、無償で利用可能です。ソフトウェアのオープンソースの性質上、いくつかのユーザーの貢献はメインプログラムに統合されています。

これがXcosか、かっこええ!

Xcosは、連続モデルと離散モデルの両方を含むハイブリッド動的システムのモデリングとシミュレーションに特化したScilabツールです。また、明示的な方程式によって支配されるシステムのシミュレーションも可能です。

https://www.scilab.org/sites/default/files/prg/att/1738/Xcos_beginners.pdf
https://help.scilab.org/docs/6.1.1/en_US/section_4834819644bddf2dedeef2520b2ca171.html

ブロックは、いくつかの通常の入出力ポート(データポート 黒)と活性化入出力ポート(制御信号ポート 赤)から構成されています.。ポートとは、あるブロックから他のブロックへデータや制御信号を転送するためにブロックを接続するために使用されます。

https://amzn.to/3Qc96Xo
赤が活性、黒が入出力と
活性から活性につないだところ

シンクパレット
Sinks_pal - シンクパレット
AFFICH_m - ブロックのアイコンに入力された数値を表示する
BARXY - y=f(x)アニメーションのビューア
CANIMXY - y=f(x)アニメーションのビューア
CANIMXY3D - z=f(x,y) アニメーションビューア
CFSCOPE - 浮動小数点スコープ
CMAT3D - マトリックスz値3Dビューア
CMATVIEW - マトリックスカラーマップビューア
CMSCOPE - subplot(N,1)でのマルチ表示スコープ
CSCOPE - シングルディスプレイ・スコープ
CSCOPXY - y = f(x) パーマネントビューア
CSCOPXY3D - z = f(x,y) パーマネントビューア
ENDBLK - END ブロック
END_c - END_c ブロック。
SCALE_CMSCOPE - グラフのオートスケール機能を持つマルチディスプレイ・スコープ
SCALE_CSCOPE - グラフのオートスケール機能を持つシングルディスプレイ・スコープ
TOWS_c - データをScilabワークスペースに送る
TRASH_f - ゴミ箱ブロック
WRITEAU_f - AU サウンドファイルを書き込む
WRITEC_f - C バイナリファイルに書き込む

XcosはScilabの一部として動的システムのモデリングとシミュレーションを行うためのグラフィカルエディターです。以下はXcosで行えるいくつかの一般的なタスクです:

  1. 制御システムの設計とシミュレーション: フィードバックループ、制御器、安定性分析など。

  2. 信号処理: フィルタリング、信号生成、周波数分析。

  3. 力学系のシミュレーション: ロボティクス、機械システムの動的挙動。

  4. 電気回路のシミュレーション: トランジスタ、抵抗、コンデンサなどを含む基本的な電気回路の分析。

  5. 数学的モデリング: 微分方程式やアルゴリズムの実装とシミュレーション。

これらのタスクは、Xcosのブロックダイアグラムを使用してモデル化され、シミュレーションを通じてシステムの動的な挙動を解析します。

Xcosでできること

Xcosでは、例えば「温度制御システム」の設計とシミュレーションが可能です。具体的には、サーモスタットを使用して部屋の温度を制御するシステムをモデル化できます。このシステムでは、温度センサーからの入力信号に基づいて、ヒーターのON/OFFを制御するPIDコントローラ(比例・積分・微分制御)を設定することができます。Xcosを使用して、この温度制御システムの動的挙動をシミュレートし、異なる設定値でのシステムの応答を観察することができます。

お願い致します