一、前言
Truetime的安裝是為了完成課程相關需求,但在安裝過程中遇到一些問題,想到自己之前注冊了博客所以打算把這個作為第一篇的內容。請放心這個的安裝過程並不困難,可以放心食用。
二、准備
- Truetime 2.0 http://www.control.lth.se/research/tools-and-software/truetime/
- matlab (version >= 7.0)
- visual studio
注:Visual Studio版本需要使用Matlab支持版本,可以通過(https://ww2.mathworks.cn/support/requirements/previous-releases.html)查看自己的Matlab版本支持的c/c++編譯器版本,然后下載安裝即可,注意truetime只能用visual studio編譯。
比如我的matlab版本是2015b,點擊Support Compilers下的對應鏈接,在pdf中找到"For MEXfile..."的項下有對號的是支持的compiler:


可以看到Matlab2015b支持VS2015-VC2008之間的版本。
三、安裝過程
假設Matlab的安裝路徑為${MATLABPATH} (eg: C:\Program Files\MATLAB\R2015b),如果為了圖方便可以把這個作為環境變量
Step1:將TrueTime壓縮包解壓到matlab安裝包下的toolbox文件夾下,即 ${MATLABPATH}\toolbox 中
Step2:添加環境變量TTKERNEL,值為 ${MATLABPATH}\toolbox\truetime-2.0\kernel(注意:如果沒有設置環境變量MATLABPATH的話需要用絕對路徑)
如果設置的變量為用戶變量則需要重啟計算機,如果為系統變量則直接使用
Step3:以管理員方式打開Matlab,將TrueTime添加到Matlab路徑中
添加路徑:
${MATLABPATH}\toolbox\truetime-2.0\kernel
${MATLABPATH}\toolbox\truetime-2.0\kernel\matlab
${MATLABPATH}\toolbox\truetime-2.0\kernel\matlab\help
保存關閉即可,可以選擇添加這三個文件夾,當然圖方便也可以直接選擇添加並包含子文件夾。

Step4:設置Matlab路徑為 ${MATLABPATH}\toolbox\local ,打開 ${MATLABPATH}\toolbox\local\startupsav.m ,在文件頭添加並保存:
addpath(getenv('TTKERNEL')) init_truetime;
(如果無法保存說明沒有用管理員模式打開)
Step5:打開 ${MATLABPATH}\toolbox\local\matlabrc.m ,用Save WorkSpace保存為matlab.mat
Step6:將 ${MATLABPATH}\toolbox\truetime\kernel 文件夾下的init_truetime.m文件拷到matlab安裝目錄下的toolbox下local文件夾中,注意是kernel文件夾下的init_truetime.m,然后在復制的init_truetime.m末尾添加代碼
addpath(getenv('TTKERNEL'))

Step7:在matlab命令行輸入下面,選擇自己的編譯器
mex -setup c++
我的結果如下所示,直接點擊即可或輸入提示命令,顯示配置完成即可。

Step8:執行編譯腳本開始編譯
make_truetime

最終得到Successful證明你成功了,可以直接到第五部分執行例程
如果不那么幸運的話我們會得到這樣的結果 Compilation using MEX failed! (Run ''mex -setup C++'' to configure your C++ compiler)
我們可以這樣做,首先在matlab命令行輸入:
open make_truetime
在腳本中我們用‘%’注釋掉異常處理代碼try...catch...end,保存后再次執行make_truetime,就會顯示運行中出現的真實錯誤,根據提示處理問題。

四、處理問題
1. 找不到stdin.h,找不到UINT32_C
將 ${MATLABPATH}\toolbox\truetime-2.0\kernel\include_msc 中的.h文件復制到 ${MATLABPATH}\extern\include,我們打開復制過去的stdint.h,找到INT32_C,然后將它的宏條件注釋掉:
2. 找不到make_truetime
沒能把truetime的路徑添加到matlab中
3. 路徑錯誤
環境變量TTKERNEL配置出錯
4. 找不到SDK
沒有安裝matlab相應版本的visual studio
5. 無法打開XXX.mexw64
編譯過程中出錯,可以刪除truetime文件夾,然后將新的truetime文件夾放到toolbox中
......其他問題可以留言學習
五、執行例程
設置matlab路徑為truetime下的example中選擇的例程路徑,打開模型文件然后運行測試即可。

六、總結
本來打算隨便寫一點,結果發現自己對很多步驟都遺忘了,看來以后做實驗之類的還是需要用錄屏方法記錄,寫這種文章可能沒什么價值但是如果能夠幫到你那是我的榮幸,僅此而已。
如果有更好的方法或有問題,歡迎留言交流,祝好。
