
發(fā)布
注冊(cè)
/
登錄lua腳本
關(guān)注創(chuàng)建者:于成 創(chuàng)建時(shí)間:2015-07-01

lua腳本的實(shí)例教程
其自帶了Lua腳本語言的輸入窗口和編譯器,可以直接執(zhí)行Lua命令。
或者也可以耦合Matlab、Mathematica、Octave(類似Matlab的免費(fèi)軟件)
Femm軟件的幫助文件中有詳細(xì)講解如何進(jìn)行接口參數(shù)調(diào)用。Femm官網(wǎng)也有對(duì)應(yīng)的案例參考。
操作流程
step1:天線結(jié)構(gòu)參數(shù)輸入,并運(yùn)行程序,生成建模腳本.lua。
step2:在CADfeko中的腳本編輯器script editor中打開建模腳本,并運(yùn)行腳本,完成貼片/饋線/多求解項(xiàng)等的建模。
step3:依據(jù)天線口徑以及基板材料等參數(shù),完成介質(zhì)基板建模,最終完成微帶相控陣天線自動(dòng)建模。
總結(jié)
本文介紹了一種微帶相控陣天線自適應(yīng)建模方法,其依據(jù)天線口徑/貼片與饋線的結(jié)構(gòu)參數(shù)/波束掃描角范圍,可實(shí)現(xiàn)微帶相控陣天線的自適應(yīng)建模,相較于原模塊,建模效率更高,操作更加便捷。
關(guān)注公眾號(hào)“電磁CAEer”了解更多有關(guān)FEKO/HFSS/CST使用技巧。
展開 %% 建立相位梯度表面
%1)讀取單元位置和尺寸分布isunitflg
%2)結(jié)合feko圓面建模API,建立內(nèi)圓陣列
%%
clc;clear all;
%% 添加路徑
addpath('C:\Users\liubing\Desktop\Radome_toolbox(公開)\相位梯度表面建模(公開)\FEKO_matlab_API');%接口函數(shù)路徑
filepath='C:\Users\liubing\Desktop\Radome_toolbox(公開)\相位梯度表面建模(公開)';%腳本文件路徑
%% 讀取單元位置和尺寸分布isunitflg
m=10;n=10;%
x方向單元數(shù)目和y方向上單元數(shù)目分別為m和n
x=xlsread('isunitflg.xls',1);
y=xlsread('isunitflg.xls',2);
r2_A=xlsread('isunitflg.xls',3);
fid=fopen('ellips_array.lua','wt');
%%
GetApplication(fid);
Setunit(fid,'Millimetres');
%%
kk=0;
for ii=1:m
for jj=1:n
kk=kk+1;
AddEllipsel(fid,[x(ii,jj),y(ii,jj),0],[r2_A(ii,jj),r2_A(ii,jj)],['ellipesel_',num2str(ii),'_',num2str(jj)],kk)
end
end
fclose all;
將建模腳本.lua文件Copy至腳本編輯器Script editor,運(yùn)行即可完成相位調(diào)控單元內(nèi)圓的自動(dòng)建模。
展開 3.3.8 可選的其它風(fēng)格
“虛擬機(jī)/解釋器”風(fēng)格
這里的“虛擬機(jī)”指的是受控的代碼執(zhí)行環(huán)境,比如 JavaScript 虛擬機(jī),Lua腳本解釋器等。服務(wù)器向客戶端下發(fā)一段代碼,客戶端在嚴(yán)格受控的執(zhí)行環(huán)境中執(zhí)行代碼。這個(gè)受控的環(huán)境只能訪問指定的資源,對(duì)資源的訪問權(quán)限被限制在預(yù)定義的范圍內(nèi)。
對(duì)車載應(yīng)用來說,對(duì)這種方式的需求往往出現(xiàn)在與云端有交互的場(chǎng)景。因?yàn)椤疤摂M器/解釋器”可以先部署到車上,易變的需求可以后續(xù)由云端下發(fā)代碼來滿足,這在車載娛樂系統(tǒng)中會(huì)很常見。我們舉一個(gè)為自動(dòng)駕駛服務(wù)的數(shù)據(jù)采集場(chǎng)景來說明。
自動(dòng)駕駛的很多算法以及測(cè)試場(chǎng)景非常依賴對(duì)數(shù)據(jù)的收集,相對(duì)于專業(yè)的采集車,量產(chǎn)汽車可以提供更為真實(shí)的數(shù)據(jù)案例,更廣的覆蓋范圍。采集并上傳哪些數(shù)據(jù)需要一些規(guī)則進(jìn)行控制,否則沒有針對(duì)性的大量數(shù)據(jù)上傳會(huì)對(duì)帶寬占用、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)分析帶來不利的影響。
可以在車輛量產(chǎn)時(shí)內(nèi)置數(shù)據(jù)采集和上傳的能力,以及檢查采集規(guī)則的規(guī)則引擎。具體的采集規(guī)則由云端根據(jù)需要下發(fā)。比如視覺算法需要改進(jìn)對(duì)雨霧天氣的識(shí)別效果,就對(duì)出現(xiàn)雨霧天氣的區(qū)域車輛下發(fā)采集規(guī)則的更新。車輛數(shù)據(jù)采集服務(wù)接收規(guī)則本地執(zhí)行,觸發(fā)數(shù)據(jù)采集事件。這樣采集的數(shù)據(jù)內(nèi)容可以根據(jù)需要隨時(shí)調(diào)整,帶來了較好的靈活性。這時(shí)規(guī)則引擎就相當(dāng)與一個(gè)受限的解釋器,下發(fā)的規(guī)則內(nèi)容就是被執(zhí)行的代碼。
“遠(yuǎn)程求值”風(fēng)格
“遠(yuǎn)程求值”風(fēng)格跟“虛擬機(jī)/解釋器”風(fēng)格正好相反,是客戶端把代碼送到服務(wù)端執(zhí)行。同樣,這種方式的需求也出現(xiàn)在與云端有交互的場(chǎng)景。之所以把代碼送到服務(wù)端執(zhí)行,是因?yàn)閳?zhí)行所需要的數(shù)據(jù)在服務(wù)端。這些數(shù)據(jù)或者是因?yàn)閿?shù)據(jù)量大不便傳輸,或者是因?yàn)閿?shù)據(jù)安全或數(shù)據(jù)隱私的原因,不能被下發(fā)給客戶端。
展開 幸好現(xiàn)在設(shè)計(jì)一門新的語言不算太難,還有Lua這樣的“專用二次開發(fā)”語言的支持。
性能損失。不過相比開發(fā)成本的節(jié)約,在非性能核心部分使用LOP還是很值得的。
5.3. 在嵌入式系統(tǒng)中的應(yīng)用
舉例,嵌入式設(shè)備的Web服務(wù)器。很多設(shè)備都提供Web服務(wù)用于配置,比如路由器,ADSL貓等等。這種設(shè)備所提供的web服務(wù)的典型用例是用戶填寫一些參數(shù),提交給Web服務(wù)器,Web 服務(wù)器將這些參數(shù)寫入硬件,并將操作結(jié)果或者其他信息生成頁面返回給瀏覽器。由于典型的Apache,Mysql,PHP組合體積太大且不容易移植,通常嵌入式系統(tǒng)的Web服務(wù)都是用C/C++直接寫就的。從socket管理,http協(xié)議到具體操作硬件,生成頁面,都一體負(fù)責(zé)。然而對(duì)于功能復(fù)雜,Web界面要求較高的情況,用C來寫頁面效率就太低了。
shttpd是一個(gè)小巧的web服務(wù)器,小巧到只有一個(gè).c文件,4000余行代碼。雖然體積很小,卻具備了最基本的功能,比如CGI。它既可以獨(dú)立運(yùn)行,也可以嵌入到其他的應(yīng)用程序當(dāng)中。shttpd在大多數(shù)平臺(tái)上都可以順利編譯、運(yùn)行。lua是一個(gè)小巧的腳本語言,專用于嵌入和擴(kuò)展。它和C/C++代碼有著良好的交互能力。
將Lua引擎嵌入到shttpd中,再使用C編寫一個(gè)(一些)驅(qū)動(dòng)硬件的擴(kuò)展,注冊(cè)成為Lua的函數(shù),形成的系統(tǒng)結(jié)構(gòu)如下圖:
這樣的應(yīng)用在嵌入式系統(tǒng)中是有一定代表性的,即,以C實(shí)現(xiàn)底層核心功能,而把系統(tǒng)的易變部分以腳本實(shí)現(xiàn)。大家可以思考在自己的開發(fā)過程中是否可以使用這種技術(shù)。這是LOP的一種具體應(yīng)用模式。(沒有創(chuàng)造一種全新的語言,而是使用Lua)
6. 測(cè)試
6.1. 可測(cè)試性是軟件質(zhì)量的一個(gè)度量指標(biāo)
好的軟件是設(shè)計(jì)出來的,好的軟件也一定是便于測(cè)試的。一個(gè)難于測(cè)試的軟件的質(zhì)量是難以得到保障的。
展開 
lua腳本的相關(guān)專題、標(biāo)簽、搜索
lua腳本的最新內(nèi)容
.lua文件Copy至腳本編輯器Script editor,運(yùn)行即可完成相位調(diào)控單元內(nèi)圓的自動(dòng)建模。
Lua或者類似的腳本則被嵌入到游戲內(nèi)部,用來編寫武器,技能,任務(wù)等等。Lua本身不具備獨(dú)立開發(fā)應(yīng)用程序的能力,然而游戲引擎的設(shè)計(jì)者通過給Lua提供一系列的,各種層次上的接口,將領(lǐng)域知識(shí)密集的賦予了腳本,從而大大提高了游戲二次開發(fā)的效率。網(wǎng)絡(luò)游戲的鼻祖MUD則是設(shè)計(jì)了LPC來作為游戲的開發(fā)語言。
3.3.8 可選的其它風(fēng)格
“虛擬機(jī)/解釋器”風(fēng)格
這里的“虛擬機(jī)”指的是受控的代碼執(zhí)行環(huán)境,比如 JavaScript 虛擬機(jī),Lua腳本解釋器等。服務(wù)器向客戶端下發(fā)一段代碼,客戶端在嚴(yán)格受控的執(zhí)行環(huán)境中執(zhí)行代碼。這個(gè)受控的環(huán)境只能訪問指定的資源,對(duì)資源的訪問權(quán)限被限制在預(yù)定義的范圍內(nèi)。
操作流程
step1:天線結(jié)構(gòu)參數(shù)輸入,并運(yùn)行程序,生成建模腳本.lua。
step2:在CADfeko中的腳本編輯器script editor中打開建模腳本,并運(yùn)行腳本,完成貼片/饋線/多求解項(xiàng)等的建模。
其自帶了Lua腳本語言的輸入窗口和編譯器,可以直接執(zhí)行Lua命令。
或者也可以耦合Matlab、Mathematica、Octave(類似Matlab的免費(fèi)軟件)
Femm軟件的幫助文件中有詳細(xì)講解如何進(jìn)行接口參數(shù)調(diào)用。Femm官網(wǎng)也有對(duì)應(yīng)的案例參考。