MxeOctave 圖形化 Windows 界面 以及其他 Octave 工具包的安裝 一直在尋找 Matlab 的替代開源軟體,Octave 是最值得推薦的。除了提供最基本的計算工具包外,Octave Forge 項目還額外提供了很多算法工具,包括自動控制工具包和信号處理工具等,相對于 FreeMat,Octave 的工具更加全面,相對于 Scilab,Octave 的文法更接近 Matlab,這意味着很多為 Matlab 編寫的算法都可以被 Octave 使用。用于 Matlab 的幫助,也可以用于 Octave。 早期的 Octave 沒有圖形化界面,都是指令行式的,但官方預計從 4.0 開始以圖形界面為預設界面。Octave 是 GNU 項目,可用于 Linux 系統,也可用于 Windows 系統。在 Windows 下安裝使用 Octave 有兩種方法,一種是通過 Cywin 環境來安裝使用,另一種是使用 MxeOctave 軟體。 MxeOctave 是官方推薦的用于 Windows 系統的圖形界面程式。Cywin 是不錯的 windows 下使用 linux 程式的環境,但配置稍微複雜,尤其是作者本人在配置使用圖形界面時就卡住了,而沒有圖形界面,Octave 的繪圖輸出是很“醜陋”的。本着簡單易用的原則,這裡推薦大家使用 MxeOctave 軟體。先給出 MxeOctave 的美照一張:
圖1. 接下來講解 MxeOctave 的下載下傳安裝,以及 Octave 工具包的安裝過程。
一、MxeOctave 的下載下傳 如果你覺得下面的叙述過于複雜,可以直接到 http://mxeoctave.osuv.de 進行下載下傳,并跳過本小結内容。 Octave 的官網非常簡潔,我們直接點選“Download”進入下載下傳界面;
圖2. 下載下傳頁面叙述了 Octave 支援的作業系統,沒錯,有 Mac 版本哦~
圖3. 我們看到,Windows 系統下有兩種安裝使用 Octave 的方法,這裡選擇 MinGW 方式,我們進入了 Octave 的 Wiki 頁面;
圖4. 我們選擇第一項”MXE Builds“。
二、MxeOctave 的安裝和使用 下載下傳完 MxeOctave 後即可以輕按兩下安裝,安裝完成後輕按兩下桌面上的”Octave-3.8.2 (Experimental GUI)“圖示運作帶界面的 Octave,或通過”Octave-3.8.2 (Command Line)“開啟指令行模式。
三、工具包的安裝和使用 對于一般應用,到這裡已經足夠了,但是很多使用計算工具的小夥伴們,會發現 Octave 沒有提供給我們更進階的工具,而這才是我們所急需的。此時 Octave Forge 可以隆重登場了。通過點選 圖3 中的”GNU Octave 3.6.4 and Octave Forge Packages“的連接配接 或 在 SourceForge 上通路 Octave Forge 的首頁來下載下傳”Octave Forge Packages“。Octave Forge 提供了“Individual Package Releases”使得我們可以單獨下載下傳每一個算法工具包。 以 Control-2.8.0 工具包為例,我們下載下傳”control-2.8.0.tar.gz“到本地目錄(假設為”D:\OctavePkg\“),運作” Octave-3.8.2 (Experimental GUI)“,輸入以下指令來安裝工具包: >>pkg install D:\OctavePkg\control-2.8.0.tar.gz 注意”>>“是 Octave 的提示符。 安裝成功後會提示使用”news control“指令檢視 control 工具包的更新内容。Octave 不是一開始運作就加載所有的工具包,因為加載過多的在本次計算中不一定會使用上的工具包會影響啟動速度和性能。是以我們需要使用以下指令來手工加載工具包: >>pkg load control 關于 pkg 指令的更多使用方法可以通過”help pkg“來獲得。
四、使用 Octave 和工具包的例子 我們以《Feedback Control of Dynamic Systems 6th》書中2.1節,Fig2.3 所示的例子為作為初涉 Octave 的起點。該例子是為 Matlab 編寫,通過該例子,我們可以看到 Octave 是與 Matlab 完全相容的。在使用該例子之前,需要先加載”control“工具包(下載下傳、安裝和加載該工具包的過程如上文所述)。 接下來在 中輸入: num=1/1000;
den=[1 50/1000];
sys=tf(num*500, den);
step(sys);
輸出結果如下圖所示:
圖5.
書中用 Matlab 輸出的原圖如下:
圖6.
可見,結果是完全一緻的。