用-matlab-连结-zemax-opticstudio-之一:连线与基本操作

上传人:suns****4568 文档编号:95569819 上传时间:2019-08-20 格式:PDF 页数:12 大小:896.93KB
返回 下载 相关 举报
用-matlab-连结-zemax-opticstudio-之一:连线与基本操作_第1页
第1页 / 共12页
用-matlab-连结-zemax-opticstudio-之一:连线与基本操作_第2页
第2页 / 共12页
用-matlab-连结-zemax-opticstudio-之一:连线与基本操作_第3页
第3页 / 共12页
用-matlab-连结-zemax-opticstudio-之一:连线与基本操作_第4页
第4页 / 共12页
用-matlab-连结-zemax-opticstudio-之一:连线与基本操作_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《用-matlab-连结-zemax-opticstudio-之一:连线与基本操作》由会员分享,可在线阅读,更多相关《用-matlab-连结-zemax-opticstudio-之一:连线与基本操作(12页珍藏版)》请在金锄头文库上搜索。

1、摘要:此系列文章共有三篇。 第一篇中,我們會示範如何利用 MATLAB 連結 ZOS-API,並說明相關操作重點。 第二篇中,我們會重點提示撰寫時,幾個常見語法問題。 第三篇中,我們提供幾個有用的範例檔,說明幾個常見應用如何撰寫。 作者:Michael Cheng 發布時間:March 13, 2017 簡介簡介 關於 ZOS-API 本身,請參考知識庫內另一篇ZOS-API.NET 簡介 。 MATLAB在透過ZOS-API連結OpticStudio時, 主要有兩種模式: Standalone (獨立運作) 以及Interactive Extension (互動擴展)。 使用 Standal

2、one 模式運作時,MATLAB 會以背景模式連結到 OpticStudio,然後所有動作都在 Windows 背後進行, 過程中不會看到 OpticStudio 主視窗開啟。 反之,使用 Interactive Extension 模式運作時,必須先開啟 OpticStudio,然後使用者需要先在 OpticStudio 開放連 結,讓 MATLAB 能夠順利接入並控制,控制過程中 OpticStudio 不能手動操作,直到使用者手動在 OpticStudio 取 消互動模式,取回控制權。 以下將分別說明如何用兩種不同模式連線。 使用使用 Standalone 模式連線模式連線 首先是到 O

3、pticStudio 中點選 Programming MATLAB Standalone Application,以產生樣板程式碼。 Click To Enlarge 點擊後,可以看到系統會自動建立一個範例的.m 檔,並且打開存放的資料夾,如果電腦中有安裝 MATLAB,則會 自動被開啟,並顯示範例的.m 檔。 Click To Enlarge 這個.m 檔可以直接被執行,他的設計是讓使用者直接把需要執行的動作的語言,加到以下截圖中的 “% Add your custom code here.” 這行下面的部分中。而不需要去管與 OpticStudio 連結的語法。讓使用者可以專心執行工作。

4、我們可以看到在 “%Add your” 這行前一句是 TheSystem = TheApplication.PrimarySystem; 這行需要這樣解讀:我們呼叫 TheApplication 這個物件的一個叫做 PrimarySystem 的屬性,然後把結果交給一個 叫做 TheSystem 的變數中。 以下是幾個基本說明,請注意這部分與 ZOS-API 並不直接相關,主要是關於 MATLAB,或是大部分程式語言所共 通的語法: 1. TheSystem 僅為物件變數,可以是任何名稱,例如你也可以寫 ABC = TheApplication.PrimarySystem;。這只是 一個存放物

5、件資料的變數名稱。此為重要觀念之一。 2. 這些 TheSystem 或 TheApplication 都對應到一個 “介面 (interface)”。介面就像方向盤或遙控器,你可以利用他 的方法 (method) 或是屬性 (properties) 來下指令,執行各種動作。 3. 這些介面通常實際對應到 OpticStudio 中的某個工具或編輯器,例如 ILensDataEditor 就是鏡頭數據編輯器。有 些介面代表比較模糊的概念,例如 IOpticalSystem 代表整個你正在操作的系統。這裡的 IOpticalSystem 指的是介 面的名稱 (type name),你不能直接使用

6、 IOpticalSystem 這樣的介面名稱,我們必須建立一個變數來代表他才能使 用,前面提到的 TheSystem 就是一個代表 IOpticalSystem 介面的變數。 4. 介面可以呼叫介面, 他們的關係通常在 OpticStudio中也看的到, 例如 IOpticalSystem 可以呼叫 ILensDataEditor。 通常我們會寫為 TheLDE = TheSystem.LDE; 注意 TheSystem 與 TheLDE 都是變數名稱,可以隨意更改。LDE 則是 IOpticalSystem 的一個屬性,名字是固定, 無法隨意更改。 另外前面提到的這段語法也是介面呼叫介面。

7、 TheSystem = TheApplication.PrimarySystem; 就是我們呼叫 TheApplication 這個物件中的 PrimarySystem,而此物件會回傳 IOpticalSystem 介面,最後我們用 一個等號 “指定” 給 TheSystem 這個變數來代表這個介面的實體。 5. 每個介面有哪些屬性以及方法, 這些屬性以及方法分別有什麼功能, 會回傳什麼物件, 都可以在我們的 Interface Document 中找到詳細說明,開啟位置如下圖: 下圖是一個很好的例子,可以看到在 IOpticalSystem 的 Properties (屬性) 列表中,就有

8、一個 LDE。只要存在,就 可以呼叫,因此我們當然也可以撰寫如下: TheMCE = TheSystem.MCE; TheAnalyses = TheSystem.Analyses; Click To Enlarge 至於上面令好的 TheAnalyses 變數可以做什麼,則可以點擊上圖中的 Analyses 連結,就可以看到如下的畫面: Click To Enlarge 可以看到原來 IOpticalSystem 的 Analyses 屬性會回傳 I_Analyses 介面。讓我們再點一下 I_Analyses 的連結,然 後可以看到如下: Click To Enlarge 因此在這裡我們可

9、以知道 I_Analyses 有哪些屬性、方法可以使用。 例如我可以用 TheAnalyses.NumberOfAnalyses 得知目前系統中開啟了幾個分析視窗。 我也可以用 FFTMTF = TheAnalyses.FftMtf()來開啟一個 FFT MTF 分析視窗的控制介面,並指定給 FFTMTF 這個 變數。 或用 TheAnalyses.CloseAnalysis(3)來關閉編號 3 的分析視窗。 依此類推。 請注意技術支援服務能協助你瞭解這些物件如何被設計,預期要如何操作,但是並不能協助你從最基本的程式語言 操作開始。 使用使用 Interactive Extension 模式運

10、作模式運作 此部分將僅說明跟 Standalone 模式不同的部分,關於語法的操作上,前面關於 Standalone 的說明都適用,因此建 議讀者仍然閱讀前面的說明。 跟 Standalone 的模板代碼不同,Interactive Extension 的模板程式碼幾乎只需要建立一個,之後就可以一值沿用, 建立方法跟 Standalone 一樣,都是到 Programming MATLAB Interactive Extension 開啟。 Click To Enlarge 下圖中可以看到因為我已經是第三次按這個按鈕產生,因此產生的.m 檔後面有後綴一個編號 2,名字叫做 MATLABZOSC

11、onnection2。 Click To Enlarge 在執行這段程式碼之前,我們需要先到 OpticStudio 中開放接口,如下圖: Click To Enlarge 然後我們就可以執行這個.m 檔,你會看到如下圖,MATLAB 會自動用 ans 這個變數名稱來承接產生出來的物件, 而這個物件就是 ZOSAPI_Application 介面。也就是我們習慣用命名為 TheApplication 的變數來承接的介面。 Click To Enlarge 並且可以看到 OpticStudio 中介面顯示為 Connected,表示已經正確連結: 由於 ans 這個變數名稱是 MATLAB 預設

12、的結果儲存區, 因此任何沒有變數承接的數值或物件, 都會預設儲存到 ans 之中。這會造成問題,如果 ans 被儲存的其他內容,則我們就再也沒辦法呼叫 ZOSPI_Application 了!你可以試著 在執行這個.m 檔之後,隨意在計算須中輸入任一數字看看,例如 123,我們會發現現在 ans 是一個整數變數,內 容存放的是 123: Click To Enlarge 解決這個問題的方法很簡單:首先我們要把該.m 的資料夾加入到 MATLAB 的 “Path” 中,然後直接在呼叫這個.m 檔的時候,指定把產生的結果儲存到變數之中。 聽起來很複雜,其實很容易,首先加入 Path 的方法如下。

13、1. 來到 MATLAB 主畫面,選擇 Set Path: Click To Enlarge 2. 然後選擇你的 Interactive Extension 的.m 檔資料夾加入,並按 OK,如下: Click To Enlarge 然後你就可以直接輸入如下,把 ZOSAPI_Application 介面設定給 TheApplication 這個變數存放。 TheApplication = MATLABZOSConnection2(); Click To Enlarge 接著你就可以呼叫 IOpticalSystem、ILensDataEditor、I_Analyses 等等,如下: Click To Enlarge 你也可以把這些計算等語法寫入另一個.m 檔之中,進行一些更複雜的工作,如下: Click To Enlarge

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号