• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      開源軟件Scilab在自控原理教學(xué)中的仿真應(yīng)用

      2015-05-30 18:55:22董南萍廖文江周冠玲
      大學(xué)教育 2015年4期

      董南萍 廖文江 周冠玲

      [摘 要]《自動(dòng)控制原理》課程是自動(dòng)化相關(guān)專業(yè)本科教育中一門重要專業(yè)課,課程涉及較多公式和數(shù)學(xué)知識(shí)、比較抽象,因此學(xué)習(xí)過(guò)程中都會(huì)感到難于理解和掌握相關(guān)理論。用戶基于Scilab開發(fā)自己所需的Toolkit,并將此功能成功應(yīng)用到《自動(dòng)控制原理》課程的教學(xué)過(guò)程中,可以增強(qiáng)課程教學(xué)內(nèi)容的趣味性,激發(fā)學(xué)生的學(xué)習(xí)興趣和實(shí)踐能力,提高課程教學(xué)質(zhì)量。

      [關(guān)鍵詞]Scilab 自由開源軟件 Toolkit 教學(xué)仿真

      [中圖分類號(hào)] TP31;G642 [文獻(xiàn)標(biāo)識(shí)碼] A [文章編號(hào)] 2095-3437(2015)04-0119-02

      一、引言

      《自動(dòng)控制原理》課程是自動(dòng)化相關(guān)本科專業(yè)中一門非常重要的專業(yè)課程,課程中涉及的公式和數(shù)學(xué)知識(shí)比較多、比較抽象,因此多數(shù)同學(xué)在學(xué)習(xí)過(guò)程中都會(huì)感到理解和掌握課程的相關(guān)理論很難。有些教師嘗試在課程中引入Matlab軟件,但是Matlab是商業(yè)工程計(jì)算軟件,本身要收費(fèi)且安裝費(fèi)時(shí),影響正常課堂教學(xué),而Scilab是一款自由開源的工程計(jì)算軟件,軟件功能基本和Matlab軟件差不多,軟件本身開源,學(xué)生可以在課余閱讀這款軟件是如何編寫出來(lái)的,同時(shí)該軟件有用戶接口,用戶可以自己獨(dú)立編寫自己需要的Toolkit,開發(fā)新應(yīng)用很方便,值得推廣和使用。

      二、基于Scilab的編程

      在許多領(lǐng)域特別是控制系統(tǒng)建模與仿真時(shí),有許多計(jì)算程序是用其他語(yǔ)言編寫,一般是用C語(yǔ)言或者Fortran語(yǔ)言編寫,Scilab不可能提供這些特定的程序,需要用戶基于Scilab自己編寫這些程序,并在Scilab里得以應(yīng)用從而擴(kuò)展了Scilab的功能,這也就是Scilab做成開源軟件的要旨所在。用戶可以根據(jù)自己的需要在Scialb下依據(jù)自己的需求開發(fā)出自己所需的相應(yīng)功能,而這些開發(fā)出來(lái)的功能通常是以庫(kù)的形式存在的,一般都是用C語(yǔ)言編寫完成,Scilab把這些代碼集合稱之為ToolKit箱。

      可以基于此項(xiàng)特點(diǎn)結(jié)合自動(dòng)控制原理課程實(shí)際所需編寫一些典型控制系統(tǒng)案例做成庫(kù)安裝在Scilab系統(tǒng)里供Scilab和SciCos調(diào)用,具體開發(fā)ToolKit Box流程如下所述:

      (一)編寫基于C語(yǔ)言的專用庫(kù)

      這一步比較簡(jiǎn)單,調(diào)用Scilab自帶的編輯器SciNote軟件,在其中編寫所需調(diào)用典型控制系統(tǒng)方程函數(shù)。圖1的C代碼范例即為用編輯器SciNote軟件所編寫的函數(shù)示例。

      #include

      #include“stack-c.h”

      extern int C2F(dlaswp)(int*n,double*A,int*lda,int*k1,int*k2,int*ipiv,int*step);

      int dlaswp1(double*A,int*m,int*n,int*mipiv,int*ipiv)

      {const int un =1;C2F(dlaswp)(n,A,m,&un,mipiv,ipiv,&un);}

      (二)在Scilab里編譯、連接代碼

      Scilab提供兩種方式可以將其他語(yǔ)言編寫的功能代碼程序連接到Scilab里供Scilab自帶的函數(shù)或者模塊調(diào)用執(zhí)行。

      1.把新編寫的程序作為Scilab外部程序被Scilab內(nèi)部函數(shù)調(diào)用執(zhí)行,上邊的示例代碼即是這類編譯連接方式。

      2.把新編寫的程序代碼作為Scilab新增加的內(nèi)置函數(shù),像Scilab內(nèi)部函數(shù)一樣可以任意被執(zhí)行,但這種方式方法有個(gè)問(wèn)題就是C語(yǔ)言的返回值通常是整形或者是指針類型,而Scilab軟件的返回類型多數(shù)為矩陣,所以用這種方式編寫工具箱模塊時(shí)要注意數(shù)據(jù)轉(zhuǎn)換問(wèn)題。

      (三)生成動(dòng)態(tài)庫(kù)

      生成動(dòng)態(tài)庫(kù)寫代碼是第一步,編譯連接代碼是第二步,要想在Scilab里使用這些庫(kù)(工具箱)還需要進(jìn)行第三步就是加載共享庫(kù)。如果選用的系統(tǒng)平臺(tái)是Windows那么共享庫(kù)可以以.dll結(jié)尾,如果選用類Unix系統(tǒng)平臺(tái)那么共享庫(kù)的名字后綴常采用.so結(jié)尾。在Linux下通常采用Gcc工具將上邊編譯好的代碼生成動(dòng)態(tài)共享庫(kù),示例如下圖2所示。

      (四)加載動(dòng)態(tài)共享庫(kù)

      在生成動(dòng)態(tài)共享庫(kù)以后還需將庫(kù)加載到Scilab里,供正在運(yùn)行的Scilab/SciCos調(diào)用。Scilab支持TCL語(yǔ)言,可以編寫腳本文件將庫(kù)調(diào)入到Scilab里,運(yùn)行這個(gè)腳本文件即可創(chuàng)建一個(gè)工具箱(庫(kù)),腳本文件示例代碼如下圖3所示。

      ilib_name =liblapack;

      files=[lapack.o];

      libs=[];

      t=[dgetrf,int_dgetrf;dlaswp,dlaswp];

      ilib_build(ilib_name,t,files,libs)

      三、SciCos創(chuàng)建交互式界面

      用SciCos創(chuàng)建交互式界面,可以依據(jù)設(shè)計(jì)需要在窗口體上直接調(diào)用窗口控件例如滾動(dòng)條、按鈕、菜單欄、文本框等來(lái)設(shè)計(jì)交互界面,Scilab用戶只需在對(duì)話框里鍵入工具箱里的函數(shù)名字即可使用工具箱的功能,如下圖4所示。

      四、在自控原理教學(xué)中應(yīng)用Scilab

      《自動(dòng)控制原理》課程是自動(dòng)化相關(guān)專業(yè)教師和學(xué)生公認(rèn)的專業(yè)知識(shí)最核心、同時(shí)又是最難教與學(xué)的課程,教學(xué)難度大主要因?yàn)樵撜n程有三多一少的特點(diǎn):一多是涉及的理論知識(shí)內(nèi)容多,二多是涉及的數(shù)學(xué)公式推導(dǎo)多,三多是抽象的概念和模型多;一少是理論與實(shí)際應(yīng)用的直接聯(lián)系少。為此,在自控原理教學(xué)中采用現(xiàn)代化教學(xué)方法,應(yīng)用Scilab改進(jìn)教學(xué)內(nèi)容、教學(xué)方式和教學(xué)手段,讓學(xué)生在Scilab下對(duì)控制系統(tǒng)建模、仿真,使學(xué)生逐步了解一個(gè)控制系統(tǒng)是如何組成的,系統(tǒng)各個(gè)環(huán)節(jié)的模型是怎樣建立的,系統(tǒng)各個(gè)環(huán)節(jié)又是如何運(yùn)作的,加強(qiáng)學(xué)生對(duì)整個(gè)控制系統(tǒng)模型概念的理解。

      在Scilab下的CACSD工具箱中有許多自動(dòng)控制相關(guān)專用函數(shù),如線性系統(tǒng)定義函數(shù)syslin0、線性系統(tǒng)時(shí)域響應(yīng)函數(shù)csim()、離散系統(tǒng)分析等命令函數(shù)等等。教師和學(xué)生共同參與進(jìn)行二次開發(fā),作出適合于自動(dòng)控制原理課程展示、控制系統(tǒng)分析的可視化數(shù)值實(shí)驗(yàn)箱。開發(fā)過(guò)程中根據(jù)已有的經(jīng)典控制理論和教材的內(nèi)容,應(yīng)用Scilab及其CACSD和SciCos工具箱實(shí)現(xiàn)連續(xù)線性控制系統(tǒng)分析(包括穩(wěn)定性分析、時(shí)域分析、根軌跡分析、頻域分析等),典型環(huán)節(jié)動(dòng)態(tài)特性仿真,PID控制仿真編程等。用TCL語(yǔ)言開發(fā)GUI界面,通過(guò)按鈕、滾動(dòng)條、輸入文本框的GUI界面元素實(shí)現(xiàn)對(duì)自動(dòng)控制系統(tǒng)的各項(xiàng)參數(shù)的輸入、調(diào)整、結(jié)果實(shí)時(shí)顯示等功能。工具箱的PID仿真結(jié)果如圖5所示。

      五、結(jié)束語(yǔ)

      在《自動(dòng)控制原理》課程教學(xué)中通過(guò)Scilab進(jìn)行仿真和分析,解決了該課程三多一少的難題,增強(qiáng)了課程教學(xué)內(nèi)容的趣味性和可理解性,激發(fā)了學(xué)生的學(xué)習(xí)興趣和實(shí)踐能力,極大提高了課程教學(xué)效果。

      [ 參 考 文 獻(xiàn) ]

      [1] 胡壽松.自動(dòng)控制原理(第5版)[M].北京:科學(xué)出版社,2007.

      [2] 秦世飛.Scilab / Scicos在建模與仿真中的應(yīng)用[M].北京:北京郵電大學(xué)出版社,2007.

      [責(zé)任編輯:張 雷]

      灌阳县| 靖远县| 乃东县| 福鼎市| 阳东县| 南宁市| 抚松县| 阿拉善盟| 利津县| 恩施市| 同仁县| 西乌珠穆沁旗| 铅山县| 柳江县| 江西省| 南漳县| 棋牌| 科技| 寿阳县| 山西省| 山阴县| 兴业县| 镇雄县| 瓮安县| 盐边县| 开远市| 金堂县| 青州市| 尚志市| 台中县| 定边县| 台山市| 陆丰市| 金川县| 南丰县| 衡阳县| 安化县| 台前县| 抚远县| 米易县| 元谋县|