蔣繼成 張麗芳 趙孝文 張曉東 王強
摘 要:文章重點探討了visual c#基于dll函數調用matlab程序,進行混合編程的方法。并將該方法在獲得60Co-γ射線輻照白酒的提升其品質的最佳輻照工藝中加以應用。
關鍵詞:60Co-γ射線;白酒;visual c#;matlab;dll函數;混合編程
引言
大量的研究表明,在60Co-γ射線輻照加速白酒陳化的輻照工藝參數和白酒品質的主要參數之間存在著復雜的非線性關系[1],目前工程領域中較為流行的軟件MATLAB提供了現成的神經網絡工具箱,為解決這個矛盾提供了便利條件。神經網絡工具箱提供了很多經典的學習算法,使用它能夠快速實現對實際問題的建模求解。這為建立60Co-γ射線對白酒品質的影響規(guī)律模型提供了方便,根據輻照后檢測的數據,應用MATLAB軟件建立60Co-γ射線對白酒品質的影響規(guī)律模型,利用模型優(yōu)化輻照工藝參數,為科學輻照提供理論依據。
c#是微軟開發(fā)的一種面向對象的編程語言,c#簡單、功能強大、類型安全,可實現應用程序的快速開發(fā)[2]。
1 60Co-γ射線輻照白酒檢測結果
本項目利用60Co-γ射線裝置進行了白酒輻照實驗。每個輻照計量處理為一組,并設空白對照組,每組500ml白酒。實驗結果表明,經60Co-γ射線處理組與對照組相比,總酸、總酯均有不同程度增加。部分數據詳見表1。
表1 白酒輻照后貯存3個月后檢測的指標統(tǒng)計
2 基于dll的visual c#調用matlab
MATLAB和Visual C#混合編程分為通過組件對象模型(COM)和通過DLL兩種形式。文章中通過DLL實現兩者之間的混合編程。
2.1 MATLAB生成dll文件
(1)創(chuàng)建一個簡單的.m文件。在MATLAB中寫一個m文件,輸入如下代碼,將代碼保存為baijiujianmo.m文件。
(2)使用Matlab DeployTool生成.Net組件。在MATLAB7.0中Command Window中輸入deploytool并回車,在圖形界面里選.net組件,然后進入一個工程目錄的界面,新建工程,工程的名字就是.net組件的名字,在其下面的目錄表示.net類名baijiujianmo.net,在類名上點右鍵“Add File”,把MATLAB的baijiujianmo.m函數文件選進去。最后進行編譯,生成的目錄下有以工程名命名的dll文件baijiujianmo.dll。
(3)添加對MATLAB生成的baijiujianmo.dll的引用[3]。導入兩個dll,一個baijiujianmo.dll,一個
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using baijiujianmo;
2.2 C#利用非托管函數方法調用dll
使用C#時調用baijiujianmo.dll,C#調用dll很像VB,下面給出的C#調用dll的方式[4];源代碼如下:
public class Utility
{
[DllImport("kernel32",
EntryPoint="CreateDirectory",
CallingConvention=CallingConvention.StdCall]
public static extern bool Create (string name);
[DllImport("baijiujianmo"]
EntryPoint="MessageBox",
CallingConvention=CallingConvention.StdCall]
public static extern int MsgBox (string msg);
}
class MyClass
{
public static int Main()
{
string myString;
Console.Write("Enter your message: ");
myString = Console.ReadLine();
return Utility.MsgBox(myString);
}
}
3 MATLAB與c#實現可視化的人機界面
結合Matlab運算簡便快速及C#實現可視化人機界面方便美觀的優(yōu)點,通過應用均方差函數比較目標值和預測值的差異,計算目標值與預測值間的誤差,觀察參數優(yōu)化情況,經過232次循環(huán)訓練后,網絡誤差平方和均值為3×10-3,達到了設定的最小訓練目標值。劑量、劑量率、溫度參數優(yōu)化結果如圖1,圖2,圖3,圖4,參數優(yōu)化誤差趨勢如圖5。
4 結束語
文章應用visual c#和MATLAB軟件混合編程建立優(yōu)化60Co-γ射線輻照白酒工藝參數的人機交互、界面友好的用戶界面,同時為科學利用60Co-γ射線輻照輻照白酒提供了理論依據。
參考文獻
[1]宋波.白酒中各種成分對酒質的影響[J].釀酒科技,2011(12):65-67.
[2]秦健,王萍,涂雪偉,等.C#.NET與MATLAB混合編程在探空數據對比中的應用[J].氣象水文海洋儀器,2009(02):34-37.
[3]趙士偉,趙明波,陳平.基于COM的MATLAB與C#.NET混合編程的實現與應用[J].山東理工大學學報(自然科學版),2006(04):57-59.
[4]焦綱領,鄧建輝,韓嘯.MATLAB與Visual C#.NET混合編程[J]. 海軍航空工程學院學報,2008(1):24-28.
作者簡介:蔣繼成(1978-),男,碩士,研究方向:控制理論與控制工程。