
發(fā)布
注冊(cè)
/
登錄Matlab變量
關(guān)注創(chuàng)建者:王靖雯 創(chuàng)建時(shí)間:2023-04-21

Matlab變量的實(shí)例教程
Isight提供了MATLAB接口,可用于操作MATLAB腳本(.m)、模型以及工具箱的各種功能。
下面以拉壓彈簧分析模型來(lái)說(shuō)明MATLAB組件的使用,其中輸入?yún)?shù)為線圈直徑d(實(shí)型)、螺旋外徑D(實(shí)型)、圈數(shù)n(整型),輸出參數(shù)為重量(SpringWeight)、變形(SpringDeflection)、剪切應(yīng)力(ShearStress)、共振頻率(SurgeFrequency)、尺寸(SizeLimit)。使用MATLAB組件的步驟如下:
(1)MATLAB環(huán)境變量設(shè)置:為了保證Isight能夠調(diào)用Matlab,需要在系統(tǒng)環(huán)境變量Path中添加Matlab文件的路徑,操作如下:
通過(guò)選擇“我的電腦”(或計(jì)算機(jī))à“屬性”à“高級(jí)”à“環(huán)境變量”選項(xiàng),加入Matlab變量,指定matlab.exe的路徑,比如:D:\Program Files\MATLAB\R2013a\bin\win64\MATLAB.exe,如圖1所示。
圖 1 Windows環(huán)境變量設(shè)置
(2)新建一個(gè)空的任務(wù)Task,將Matlab組件拖動(dòng)到Task的工作流中,如圖2所示。
圖 2 Matlab工作流
(3)雙擊Matlab組件,彈出Matlab Component Editor編輯界面。
(4)在ContentsàExecution Order屬性頁(yè)左側(cè)的表格中,單擊第一行MappingàInput Mappings。在右側(cè)的文本框中直接輸入變量名“d”或者單擊按鈕創(chuàng)建變量d。
(5)單擊按鈕,確認(rèn)變量d是Matlab的輸入變量。單擊按鈕,建立變量d與Matlab的映射關(guān)系,Isight默認(rèn)認(rèn)為Matlab中的變量名也為d,用戶(hù)也可以實(shí)現(xiàn)Isight與Matlab中不同名稱(chēng)的變量映射。
展開(kāi) 在某些特定場(chǎng)景中,我們需要在一個(gè)循環(huán)中生成一系列的數(shù)據(jù),并把這些數(shù)據(jù)保存到特定的變量中,這個(gè)時(shí)候我們就需要實(shí)現(xiàn)自動(dòng)給變量命名,同時(shí)賦給變量數(shù)值。下面提供2種方法。
方法1
通過(guò)eval函數(shù)實(shí)現(xiàn),舉個(gè)例子
clear
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
R=[1 2 3;4 5 6; 7 8 9];
for i=1:3
eval(['T',num2str(i),'=','R(i,:)',';']);
end
T1
T2
T3
在上面的例子中,matlab自動(dòng)定義了三個(gè)變量,其名稱(chēng)分別為T(mén)1、T2和T3;并自動(dòng)給這三個(gè)變量賦值,其值為矩陣R相應(yīng)的每一行,即
T1=[1 2 3]
T2=[4 5 6]
T3=[7 8 9]
ps:eval還有其他強(qiáng)大的作用,后續(xù)的文章單獨(dú)講解。
方法2(推薦)
通過(guò)sprintf函數(shù)
numFiles = 3;
for n = 1:numFiles
randomData = rand(n);
currentFile = sprintf('myfile%d.mat',n);
save(currentFile,'randomData')
end
生產(chǎn)了3個(gè)有規(guī)律名稱(chēng)的mat文件,
來(lái)源:MATLAB學(xué)習(xí)
展開(kāi) 基于matlab的螢火蟲(chóng)算法多變量尋優(yōu),通過(guò)設(shè)置變量范圍,用于尋找多目標(biāo)時(shí)的最優(yōu)值,效果比較理想,未陷于局部最大值。結(jié)果可以通過(guò)動(dòng)圖展示出來(lái)。顯示二維和三維尋優(yōu)結(jié)果。程序已調(diào)通,可直接運(yùn)行。
基于matlab的改進(jìn)的量子遺傳算法對(duì)多變量函數(shù)尋優(yōu)完整代碼,內(nèi)容詳細(xì),包含運(yùn)行說(shuō)明,該代碼在量子旋轉(zhuǎn)門(mén)調(diào)整中做了一些改進(jìn),在“Qgate1”中可以看到,旋轉(zhuǎn)角度并不是固定不變的,而是將其與適應(yīng)度以及根的值聯(lián)系起來(lái),使得計(jì)算更為精確。程序已調(diào)通,可直接運(yùn)行。
圖4建立輸出變量
3.建立MATLAB命令:在Contents下首先切換到Commands,然后點(diǎn)擊Open,打開(kāi).m文件,導(dǎo)入MATLAB文件,如圖5所示。
圖5導(dǎo)入MATLAB文件
4.設(shè)置MATLAB路徑:進(jìn)入Options菜單欄,在Matlab Command處設(shè)置啟動(dòng)MATLAB的可執(zhí)行文件。具體路徑:Matlab安裝路徑\bin\matalb.exe。
圖6配置MATLAB啟動(dòng)執(zhí)行程序位置
5.Optimaztion模塊優(yōu)化設(shè)置
圖7 優(yōu)化模塊設(shè)置
圖8為優(yōu)化迭代過(guò)程圖,其最優(yōu)值為5.1302,而理論值通過(guò)公式可計(jì)算出為5.1302,這說(shuō)明通過(guò)優(yōu)化算法獲得的解和理論解是一樣的。
圖8優(yōu)化流程
3.制作模板文件導(dǎo)入變量
在第2節(jié)中,變量是手動(dòng)建立的,這對(duì)設(shè)置多個(gè)變量不太友好,在Isight中能否批量產(chǎn)生變量呢?當(dāng)然可以,我們可通過(guò)制作變量的模板文件,在模板中先建立好變量,然后再導(dǎo)進(jìn)Isight。接下來(lái),我們聊聊怎么制作模板文件。
先在Model Selection中點(diǎn)擊Parameters,當(dāng)顯示了所有變量情況后,選擇exportàfrom all parameters。
圖9模板文件的制作方法示意圖
圖10為保存的變量模板文件,可以看出文件第一行為關(guān)鍵詞,第一列為變量。當(dāng)有多個(gè)變量時(shí)只要按照此模板,添加相應(yīng)的變量便可。
圖10 模板文件內(nèi)容
同樣,當(dāng)有了模板文件后,可直接將變量導(dǎo)入模型中,導(dǎo)入位置見(jiàn)圖9中的import。Isight關(guān)鍵詞目前還不支持Mapped,因此還需要進(jìn)入MATLAB模塊為所有變量進(jìn)行映射以及連接MATLAB啟動(dòng)文件。
展開(kāi) 
Matlab變量的相關(guān)專(zhuān)題、標(biāo)簽、搜索
Matlab變量的最新內(nèi)容
繪制Abaqus場(chǎng)變量云圖,如果我們想更改,那就可以在該區(qū)域?qū)?yīng)的Excel部分進(jìn)行修改,即可操作成功。
其可以直接導(dǎo)出full文件中的矩陣數(shù)據(jù),而通過(guò)我下面給大家提供的源代碼便可以直接將導(dǎo)出的質(zhì)量矩陣與剛度矩陣直接轉(zhuǎn)化為matlab中可使用變量,實(shí)現(xiàn)我們的矩陣提取操作。
Hbmat法:
! 提取剛度矩陣
/AUX2
FILE,'file',full !
基于matlab的螢火蟲(chóng)算法多變量尋優(yōu),通過(guò)設(shè)置變量范圍,用于尋找多目標(biāo)時(shí)的最優(yōu)值,效果比較理想,未陷于局部最大值。結(jié)果可以通過(guò)動(dòng)圖展示出來(lái)。顯示二維和三維尋優(yōu)結(jié)果。程序已調(diào)通,可直接運(yùn)行。
基于matlab的改進(jìn)的量子遺傳算法對(duì)多變量函數(shù)尋優(yōu)完整代碼,內(nèi)容詳細(xì),包含運(yùn)行說(shuō)明,該代碼在量子旋轉(zhuǎn)門(mén)調(diào)整中做了一些改進(jìn),在“Qgate1”中可以看到,旋轉(zhuǎn)角度并不是固定不變的,而是將其與適應(yīng)度以及根的值聯(lián)系起來(lái),使得計(jì)算更為精確。程序已調(diào)通,可直接運(yùn)行。
在變量名稱(chēng)中鍵入MATLAB_RESERVE_LO,在變量值中鍵入0。
點(diǎn)擊確定,關(guān)閉對(duì)話(huà)框。
第二種解決方案
在少數(shù)極端情況下,首選方案可能解決不了問(wèn)題,則可按下面的步驟進(jìn)行嘗試:
試著啟動(dòng)一次COMSOL with MATLAB,可能會(huì)失敗,但將向COMSOL 安裝目錄中寫(xiě)入一個(gè)文件。
繪制Abaqus場(chǎng)變量云圖,如果我們想更改,那就可以在該區(qū)域?qū)?yīng)的Excel部分進(jìn)行修改,即可操作成功。
變量設(shè)置,還有visual stdio的設(shè)置。
變量設(shè)置,還有visual stdio的設(shè)置。
為了便于數(shù)值積分,將物理坐標(biāo)系(x, y)中的剛度矩陣變換到自然坐標(biāo)系(ξ, η)中進(jìn)行計(jì)算,即有:
式中:|J2|為2階Jacobian行列式,這里用到了物理坐標(biāo)與自然坐標(biāo)之間的變換關(guān)系:
這里,與普通等參元不同的地方只是Jacobian矩陣的求解:
同樣基于MATLAB的符號(hào)變量求偏導(dǎo)功能,可以得到各個(gè)節(jié)點(diǎn)的映射函數(shù)Mi對(duì)自然坐標(biāo)ξ和η的偏導(dǎo)分別為:
圖2集成流程框圖
打開(kāi)MATLAB模塊,建立Isight和MATLAB變量傳遞關(guān)系。
1.建立輸入變量:在Contents下首先切換到InputMappings,然后新建一個(gè)變量theta,并為其設(shè)置初始值,最后建立映射關(guān)系,如圖3所示。