亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C#與MATLAB混合編程在水閘數(shù)字化設(shè)計系統(tǒng)中的應(yīng)用

        2017-01-10 12:54:57劉廷
        河北水利 2016年5期
        關(guān)鍵詞:優(yōu)化設(shè)計

        □劉廷

        C#與MATLAB混合編程在水閘數(shù)字化設(shè)計系統(tǒng)中的應(yīng)用

        □劉廷

        為了實現(xiàn)水閘的優(yōu)化設(shè)計,本文在分析C#和MATLAB各自編程優(yōu)缺點的基礎(chǔ)上,結(jié)合MATLAB遺傳算法工具箱在水閘數(shù)字化設(shè)計系統(tǒng)中的應(yīng)用,詳細(xì)介紹了C#與MATLAB混合編程的過程,并用具體的工程實例證明了該方法的可行性及正確性。

        C#;MATLAB;混合編程;水閘;遺傳算法

        Microsoft Visual C#和MATLAB分別是Microsoft公司和Math Works公司開發(fā)的兩種高級編程語言,在程序設(shè)計上優(yōu)勢各異,為了最大程度上實現(xiàn)二者的優(yōu)勢互補,提高編程效率,本文以MATLAB 2011與VS2010作為開發(fā)環(huán)境,以MATLAB遺傳算法工具箱在水閘數(shù)字化設(shè)計系統(tǒng)中的應(yīng)用為例詳細(xì)講解了MATLAB 2011與VS2010混合編程的流程和其中應(yīng)注意的問題。

        1.C#與MATLAB混合編程

        C#與MATLAB混合編程有多種實現(xiàn)方法,本文采用靈活性較好、集成度較高的動態(tài)鏈接庫技術(shù)實現(xiàn)C#對MATLAB函數(shù)的調(diào)用。

        1.1 MATLAB創(chuàng)建動態(tài)鏈接庫(DLL)

        在MATLAB 2011版本中,已經(jīng)對.NET混合編程提供了良好的接口和編程向?qū)В唧w步驟為:在Command Window窗口內(nèi)輸入“deploytool”,在彈出的Deployment Project對話框中輸入工程名稱、存儲位置等,并在Type下拉框中選擇“.Net Assembly”類型,然后,在彈出的.Net Assembly對話框中,點擊[Add class]創(chuàng)建新類ycsf,并將提前準(zhǔn)備好的遺傳算法函數(shù)主文件(ycsf.m)添加到新建的ycsf類中,單擊Build按鈕等待編譯完成即可生成ycsf.dll文件。

        1.2 C#調(diào)用動態(tài)鏈接庫(DLL)

        在已經(jīng)創(chuàng)建的C#項目工程的解決方案資源管理器中,添加引用,選擇

        1.1 中創(chuàng)建好的ycsf.dll文件,并在程序代碼的頭文件部分添加using ycsf。因為ycsf.dll本質(zhì)上是把ycsf.m函數(shù)封裝在ycsf類中生成的一個類庫,所以,使用該函數(shù)前必須首先進(jìn)行實例化。

        1.3 數(shù)據(jù)類型轉(zhuǎn)換

        由于C#與MATLAB的數(shù)據(jù)類型不同,所以為實現(xiàn)二者之間數(shù)據(jù)類型的相互轉(zhuǎn)換,需要按照1.2的步驟添加對MWArray的引用,并在C#的頭文件中添加using MathWorks.MATLAB.NET. Arrays和using MathWorks.MATLAB. NET.Utility。

        優(yōu)化前后結(jié)果表

        C#數(shù)據(jù)向MATLAB數(shù)據(jù)轉(zhuǎn)換:若C#數(shù)據(jù)是int、double、float、char等非數(shù)組型的變量則可以直接傳遞給MATLAB,若C#數(shù)據(jù)是數(shù)組類型,則再根據(jù)是什么類型的數(shù)組變量先傳遞給對應(yīng)的MWArray子類(如MWNumericArray、MWCharArray等),再通過這些子類傳遞給MWArray類型的變量。

        MATLAB數(shù)據(jù)向C#數(shù)據(jù)轉(zhuǎn)換:MATLAB輸出的數(shù)據(jù)與輸入的數(shù)據(jù)一樣,都是MWArray類型,所以C#中接收到的MATLAB返回的數(shù)據(jù)必須先強制轉(zhuǎn)換為MWArray對應(yīng)的子類型,再轉(zhuǎn)換成C#中的數(shù)據(jù)類型。

        2.應(yīng)用實例

        本文以位于清涼江側(cè)江河干渠渠首的某水閘為例,設(shè)計流量45m3/s,閘下設(shè)計水位17.731m,上游設(shè)計擋水位為清涼江10年一遇洪水位17.88m,將過閘總凈寬(x1)、閘墩厚度(x2)、閘室長度(x3)、閘門位置(x4)、閘底板厚度(x5)、鋪蓋長度(x6)6個變量作為基本優(yōu)化變量,以水閘總造價最小為目標(biāo)函數(shù)F(x),考慮了規(guī)范所規(guī)定的各種約束條件,優(yōu)化時對典型剖面做了適當(dāng)簡化,通過C#與MATLAB混合編程建立了水閘的優(yōu)化設(shè)計模型,并實現(xiàn)了預(yù)期的效果。優(yōu)化結(jié)果見下表。

        3.結(jié)論

        本文以MATLAB遺傳算法工具箱在水閘數(shù)字化設(shè)計系統(tǒng)閘室的優(yōu)化計算中的應(yīng)用為例,詳細(xì)講解了MATLAB與C#混合編程的流程以及應(yīng)注意的問題,并通過實例驗證了整個流程的可行性和正確性,這對非計算機專業(yè)的技術(shù)人員來說具有很大的實用價值,因此,C#與MATLAB混合編程的思路具有一定的參考價值和較好的應(yīng)用范圍。□

        2016-05-06

        劉廷,男,漢族,河北省水利水電第二勘測設(shè)計研究院,工程師。

        猜你喜歡
        優(yōu)化設(shè)計
        超限高層建筑結(jié)構(gòu)設(shè)計與優(yōu)化思考
        民用建筑防煙排煙設(shè)計優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        由“形”啟“數(shù)”優(yōu)化運算——以2021年解析幾何高考題為例
        何為設(shè)計的守護(hù)之道?
        《豐收的喜悅展示設(shè)計》
        流行色(2020年1期)2020-04-28 11:16:38
        瞞天過海——仿生設(shè)計萌到家
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        动漫在线无码一区| 国产做国产爱免费视频| 国产午夜无码片在线观看影院| 国产不卡一区二区三区免费视| 特级毛片a级毛片在线播放www| 国产一区二区三区免费av| 成品人视频ww入口| 久久午夜无码鲁丝片直播午夜精品| 亚洲精品美女自拍偷拍| 精品国产av一区二区三区| 亚洲综合网国产精品一区| 亚洲日韩中文字幕一区| 亚洲一区二区欧美色妞影院 | 免费国产在线精品一区 | 美腿丝袜网址亚洲av| 亚洲成a∨人片在线观看无码| 精品午夜福利无人区乱码一区| 日本一区二区三区激情视频| 99视频一区二区日本| 欧美大屁股xxxx高潮喷水| 亚洲欧美精品aaaaaa片| 亚洲精品美女久久久久99| 精品人妻久久一日二个| 女人张开腿让男桶喷水高潮| 国产亚洲欧美在线| 亚洲一区二区三区ay| 国产精品午夜福利视频234区 | 荡女精品导航| 亚洲精品视频免费在线| 91超精品碰国产在线观看| 欧美饥渴熟妇高潮喷水水 | 小宝极品内射国产在线| 五月婷婷影视| 在线观看的a站免费完整版| 免费观看羞羞视频网站| 日韩另类在线| 久久精品国语对白黄色| 精品露脸国产偷人在视频 | 国产成人喷潮在线观看| 国产成人精品自在线无码| 国产成人亚洲精品一区二区三区|