這是理想的目標。從VB.Net讀取MatLab Simulink的值
我們有一個simulink模型,當它運行時,我們希望所有結果值都發送到我們的vb.net應用程序。
我想我已經找到了一些方法,但在潛水之前想要一些輸入。我過去並沒有使用matlab或simulink,這使得它比現在更難。
有一個用於matlab的COM對象,但不允許在simulink運行時實時訪問變量。 Simulink完成後僅將其數據轉儲到matlab。
選項#1:回調? 我一直在閱讀,似乎我能夠添加一個回調塊,以便值發送到matlab基於計時器。然後我必須不斷地調用vb中的matlab來獲取這些值。這看起來效率不高,並可能在同時運行simulnk時佔用大量資源? How do I get data from a Simulink block into a MATLAB GUI?
選項#2: 我發現了一個「Simulink的編碼器」 The MathWorks公司的網站上,似乎是理想的解決方案,但想澄清,如果有人在這裏使用了它。我已經申請了一次審判,但在獲得之前還有幾圈可以跳過。
在我看來,編碼器會採用simulink模型並在C/C++代碼中創建算法?這是否意味着我可以創建一個C應用程序並將該代碼用作源代碼?所以不是運行simulink與我的應用程序,我只是運行代碼並輸入參數給我們輸出變量?
我也讀過一些關於matlab輸出DLL或多路複用器的信息?所以可以與.net應用程序一起使用?
任何輸入/意見讚賞:)
非常感謝您的回覆。首先,是的,我的意思是mex,我的錯誤。我今天剛剛收到了Simulink Coder的試用版,所以其中一些現在更有意義。它現在看起來也是最可行的選擇。 我不確定是否應該爲此創建一個新問題,但我無法找出其他某些功能。是否可以定義輸入和輸出,以便生成的代碼具有接受輸入變量並返回輸出變量的函數?或者我會不得不創建某種包裝來做到這一點? –
它確實需要一個新的問題。但簡而言之,生成的代碼反映了模擬過程中發生的情況:有代碼用於初始化,代碼用於逐步調整模型(通過調用用於更新狀態和塊輸出的代碼,以及代碼終止),輸入和輸出端口位於模型用於輸入和輸出信號,爲了具有可調用的功能,需要將模型的相關部分放入原子子系統,並將塊參數的「代碼生成」選項設置爲適當的值。 –