




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)控制技術(shù)實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)一 信號(hào)的采樣與保持一、實(shí)驗(yàn)?zāi)康?熟悉信號(hào)的采樣和保持過(guò)程。2學(xué)習(xí)和掌握香農(nóng)(采樣)定理。3學(xué)習(xí)用直線(xiàn)插值法和二次曲線(xiàn)插值法還原信號(hào)。二、實(shí)驗(yàn)設(shè)備PC 機(jī)一臺(tái),TD-ACS實(shí)驗(yàn)系統(tǒng)一套,i386EX 系統(tǒng)板一塊。三、實(shí)驗(yàn)原理香農(nóng)(采樣)定理:若對(duì)于一個(gè)具有有限頻譜()的連續(xù)信號(hào)進(jìn)行采樣,當(dāng)采樣頻率滿(mǎn)足時(shí),則采樣函數(shù)能無(wú)失真地恢復(fù)到原來(lái)的連續(xù)信號(hào)。為信號(hào)的最高頻率,為采樣頻率。四實(shí)驗(yàn)內(nèi)容 1采樣與保持編寫(xiě)程序,實(shí)現(xiàn)信號(hào)通過(guò) A/D 轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字量送到控制計(jì)算機(jī),計(jì)算機(jī)再把數(shù)字量送到 D/A 轉(zhuǎn)換器輸出。實(shí)驗(yàn)線(xiàn)路圖如圖2-1所示,圖中畫(huà)“”的線(xiàn)需用戶(hù)在實(shí)驗(yàn)中自行接好
2、,其它線(xiàn)系統(tǒng)已連好。圖2-1 采樣保持線(xiàn)路圖控制計(jì)算機(jī)的“OUT1”表示386EX內(nèi)部1#定時(shí)器的輸出端,定時(shí)器輸出的方波周期定時(shí)器時(shí)常,“IRQ7”表示386EX內(nèi)部主片8259的“7”號(hào)中斷,用作采樣中斷。正弦波單元的“OUT”端輸出周期性的正弦波信號(hào),通過(guò)模數(shù)轉(zhuǎn)換單元的“IN7”端輸入,系統(tǒng)用定時(shí)器作為基準(zhǔn)時(shí)鐘(初始化為10ms),定時(shí)采集“IN7”端的信號(hào),轉(zhuǎn)換結(jié)束產(chǎn)生采樣中斷,在中斷服務(wù)程序中讀入轉(zhuǎn)換完的數(shù)字量,送到數(shù)模轉(zhuǎn)換單元,在“OUT1”端輸出相應(yīng)的模擬信號(hào)。由于數(shù)模轉(zhuǎn)換器有輸出鎖存能力,所以它具有零階保持器的作用。采樣周期T= TK10ms,TK的范圍為01 FFH,通過(guò)修改
3、TK就可以靈活地改變采樣周期,后面實(shí)驗(yàn)的采樣周期設(shè)置也是如此。零階采樣保持程序流程圖如圖2-2所示。圖2-2 零階采樣保持程序流程圖實(shí)驗(yàn)步驟:(1)參考流程圖2-2編寫(xiě)零階保持程序,編譯、鏈接。(2)按照實(shí)驗(yàn)線(xiàn)路圖2-1接線(xiàn),檢查無(wú)誤后開(kāi)啟設(shè)備電源。(3)用示波器的表筆測(cè)量正弦波單元的“OUT”端,調(diào)節(jié)正弦波單元的調(diào)幅、調(diào)頻電位器及撥動(dòng)開(kāi)關(guān),使得“OUT”端輸出幅值為3V,周期1S的正弦波。(4)加載程序到控制機(jī)中,將采樣周期變量“Tk”加入到變量監(jiān)視中,運(yùn)行程序,用示波器的另一路表筆觀察數(shù)模轉(zhuǎn)換單元的輸出端“OUT1”。(5)增大采樣周期,當(dāng)采樣周期0.5S時(shí),即Tk32H時(shí),運(yùn)行程序并觀測(cè)
4、數(shù)模轉(zhuǎn)換單元的輸出波形應(yīng)該失真,記錄此時(shí)的采樣周期,驗(yàn)證香農(nóng)定理。2信號(hào)的還原編寫(xiě)程序,分別用直線(xiàn)插值法和二次曲線(xiàn)插值法還原信號(hào)。從香農(nóng)定理可知,對(duì)于信號(hào)的采集,只要選擇恰當(dāng)?shù)牟蓸又芷冢筒粫?huì)失去信號(hào)的主要特征。在實(shí)際應(yīng)用中,一般總是取實(shí)際采樣頻率比大,如:。但是如果采用插值法恢復(fù)信號(hào),就可以降低對(duì)采樣頻率的要求,香農(nóng)定理給出了采樣頻率的下限,但是用不同的插值方法恢復(fù)信號(hào)需要的采樣頻率也不相同。(1)直線(xiàn)插值法(取)利用式1.2 -1在點(diǎn)(X0,Y0)和(X1,Y1)之間插入點(diǎn)(X,Y)。其中:X1X0為采樣間隔,Y1Y0分別為X1和X0采樣時(shí)刻的AD采樣值。(2)二次曲線(xiàn)插值法(?。浩渲?,
5、直線(xiàn)插值與二次曲線(xiàn)插值程序流程圖如圖2-3所示。圖2-3 直線(xiàn)插值與二次曲線(xiàn)插值程序流程圖實(shí)驗(yàn)步驟:(1)參考流程圖2-3分別編寫(xiě)直線(xiàn)插值和二次曲線(xiàn)插值程序,并編譯、鏈接。(2)按照線(xiàn)路圖2-1接線(xiàn),檢查無(wú)誤后,開(kāi)啟設(shè)備電源。調(diào)節(jié)正弦波單元的調(diào)幅、調(diào)頻電位器,使正弦波單元輸出幅值為3V,周期1S的正弦波。(3)分別裝載并運(yùn)行程序,運(yùn)行程序前將采樣周期變量Tk加入到變量監(jiān)視中,方便實(shí)驗(yàn)中觀察和修改。用示波器觀察數(shù)模轉(zhuǎn)換單元的輸出,和零階保持程序的運(yùn)行效果進(jìn)行比較。由上述結(jié)果可以看出:在采樣頻率Ws =10Wmax時(shí),用三種方法還原信號(hào),直線(xiàn)插值要好于零階保持,二次曲線(xiàn)插值好于直線(xiàn)插值。采用合理的
6、插值算法可以降低信號(hào)的失真度,在允許的范圍內(nèi)可以有效地降低對(duì)采樣頻率的要求。(4)(3)中是在同一采樣頻率下,比較三種方法還原信號(hào)的效果,實(shí)驗(yàn)中也可比較一種還原方法在不同采樣頻率下的效果。對(duì)于零階保持來(lái)說(shuō):當(dāng)采樣頻率信號(hào)頻率的10倍時(shí),即信號(hào)的還原效果較好。對(duì)于直線(xiàn)插值來(lái)說(shuō):當(dāng)采樣頻率信號(hào)頻率的5倍時(shí),即信號(hào)的還原效果較好。對(duì)于二次曲線(xiàn)插值來(lái)說(shuō):當(dāng)采樣頻率信號(hào)頻率的3倍時(shí)。信號(hào)的還原效果較好。五實(shí)驗(yàn)結(jié)果 采樣周期Tk=05H時(shí)的輸出波形:采樣周期Tk=33H時(shí)的輸出波形為:由得到的實(shí)驗(yàn)結(jié)果可以看出:采樣周期 Tk=05H時(shí),輸出波形與原來(lái)基本相同;Tk32H時(shí)輸出波形產(chǎn)生失真。信號(hào)還原實(shí)驗(yàn)結(jié)果
7、:Tk=0AH時(shí),三種方法還原得到的結(jié)果:直線(xiàn)差值的輸出波形:二次曲線(xiàn)插值的輸出波形:零階保持輸出波形:實(shí)驗(yàn)二 數(shù)字濾波一、實(shí)驗(yàn)?zāi)康?學(xué)習(xí)和掌握一階慣性濾波。2學(xué)習(xí)和掌握四點(diǎn)加權(quán)濾波。二、實(shí)驗(yàn)設(shè)備PC 機(jī)一臺(tái),TD-ACS實(shí)驗(yàn)系統(tǒng)一套,i386EX 系統(tǒng)板一塊。三、實(shí)驗(yàn)原理一般現(xiàn)場(chǎng)環(huán)境比較惡劣,干擾源比較多,消除和抑制干擾的方法主要有模擬濾波和數(shù)字濾波兩種,由于數(shù)字濾波方法成本低、可靠性高、無(wú)阻抗匹配、靈活方便等特點(diǎn)被廣泛應(yīng)用。圖3-1數(shù)字濾波方框圖(1)一階慣性濾波:相當(dāng)于傳函的數(shù)字濾波器,由一階差分法可得近似式: 其中,為當(dāng)前采樣時(shí)刻的輸入,為當(dāng)前采樣時(shí)刻的輸出,為前一采樣時(shí)刻的輸出,為采
8、樣周期,。(2)四點(diǎn)加權(quán)濾波:四點(diǎn)加權(quán)濾波算法公式:其中,為當(dāng)前采樣時(shí)刻的輸入,為前一采樣時(shí)刻的輸入,為前一采樣時(shí)刻的輸出。數(shù)字濾波程序流程圖如圖3-2所示。圖3-2 數(shù)字濾波程序流程圖實(shí)驗(yàn)中的參數(shù):1a、a、A1、A2、A3、A4為十進(jìn)制2位小數(shù)(BCD碼),取值范圍:0.00 0.99,只須對(duì)應(yīng)存入0099。程序中將其轉(zhuǎn)換成二進(jìn)制小數(shù),再按算式進(jìn)行定點(diǎn)小數(shù)運(yùn)算。四實(shí)驗(yàn)內(nèi)容分別編寫(xiě)一階慣性濾波程序和四點(diǎn)加權(quán)濾波程序,將混合干擾信號(hào)的正弦波送到數(shù)字濾波器,并用示波器觀察經(jīng)過(guò)濾波后的信號(hào)。實(shí)驗(yàn)線(xiàn)路圖如圖3-3所示,圖中畫(huà)“”的線(xiàn)需用戶(hù)在實(shí)驗(yàn)中自行接好,運(yùn)放單元需用戶(hù)自行搭接。圖3-3 數(shù)字濾波實(shí)
9、驗(yàn)線(xiàn)路圖控制計(jì)算機(jī)的“OUT1”表示386EX內(nèi)部1定時(shí)器的輸出端,定時(shí)器輸出的方波周期定時(shí)器時(shí)常,“IRQ7”表示386EX 內(nèi)部主片8259的7號(hào)中斷,用作采樣中斷。電路中用RC電路將S端方波微分,再和正弦波單元產(chǎn)生的正弦波疊加。注意R點(diǎn)波形不要超過(guò)5V,以免數(shù)字化溢出。計(jì)算機(jī)對(duì)有干擾的正弦信號(hào)R通過(guò)模數(shù)轉(zhuǎn)換器采樣輸入,然后進(jìn)行數(shù)字濾波處理,去除干擾,最后送至數(shù)模轉(zhuǎn)換器變成模擬量C輸出。五、實(shí)驗(yàn)步驟1. 參照流程圖3-2分別編寫(xiě)一階慣性和四點(diǎn)加權(quán)程序,檢查無(wú)誤后編譯、鏈接。2. 按實(shí)驗(yàn)線(xiàn)路圖3-3接線(xiàn),檢查無(wú)誤后開(kāi)啟設(shè)備電源。調(diào)節(jié)正弦波使其周期約為2S,調(diào)信號(hào)源單元使其產(chǎn)生周期為100ms
10、的干擾信號(hào)(從“NC”端引出),調(diào)節(jié)接線(xiàn)圖中的兩個(gè)47K電位器使正弦波幅值為3V,干擾波的幅值為0.5V。3. 分別裝載并運(yùn)行程序,運(yùn)行前可將“TK”加入到變量監(jiān)視中,方便實(shí)驗(yàn)中觀察和修改。用示波器觀察R點(diǎn)和C點(diǎn),比較濾波前和濾波后的波形。4. 如果濾波效果不滿(mǎn)意,修改參數(shù),再運(yùn)行程序,觀察實(shí)驗(yàn)效果。六實(shí)驗(yàn)結(jié)果一階慣性濾波輸出波形:四點(diǎn)加權(quán)濾波輸出波形:由實(shí)驗(yàn)結(jié)果可以得到此實(shí)驗(yàn)一階慣性濾波的效果更好,其更有效的濾去了噪聲干擾信號(hào)。實(shí)驗(yàn)四 積分分離法PID控制一、實(shí)驗(yàn)?zāi)康?了解PID參數(shù)對(duì)系統(tǒng)性能的影響2學(xué)習(xí)湊試法整定PID參數(shù)3掌握積分分離法PID控制規(guī)律二、實(shí)驗(yàn)設(shè)備PC 機(jī)一臺(tái),TD-ACS
11、實(shí)驗(yàn)系統(tǒng)一套,i386EX 系統(tǒng)板一塊三、 實(shí)驗(yàn)原理根據(jù)系統(tǒng)偏差的比例(P)、積分(I)和微分(D)進(jìn)行控制的調(diào)節(jié)器簡(jiǎn)稱(chēng)為PID調(diào)節(jié)器(也稱(chēng)為PID控制器),是連續(xù)系統(tǒng)中技術(shù)成熟、應(yīng)用最為廣泛的一種調(diào)節(jié)器,其控制規(guī)律為:在計(jì)算機(jī)控制系統(tǒng)中,PID控制規(guī)律的實(shí)現(xiàn)必須用數(shù)值逼近的方法。當(dāng)采樣周期相當(dāng)短時(shí),用求和代替積分、用后向差分代替微分,使模擬PID離散化變?yōu)椴罘址匠?。?shù)字 PID 控制算法可以表示為位置式 PID和增量式 PID兩種。(1)位置式 PID 控制算法為:(2)增量式 PID 控制算式為:其中,為采樣周期,為采樣序號(hào),為第次采樣調(diào)節(jié)器輸出,為第次采樣誤差值,為第次采樣誤差值。增量式
12、與位置式相比具有以下優(yōu)點(diǎn):1增量式算法與最近幾次采樣值有關(guān),不需要進(jìn)行累加,因此,不易產(chǎn)生累積誤差,控制效果較好。2增量式中,計(jì)算機(jī)只輸出增量,誤動(dòng)作(計(jì)算機(jī)故障或干擾)影響小。3在位置式中,由手動(dòng)到自動(dòng)切換時(shí),必須使輸出值等于執(zhí)行機(jī)構(gòu)的初始值,而增量式只與本次的誤差值有關(guān),更易于實(shí)現(xiàn)手動(dòng)到自動(dòng)的無(wú)擾動(dòng)切換。4增量式控制算法因其特有的優(yōu)點(diǎn)在控制系統(tǒng)中應(yīng)用比位置式更加廣泛。為了便于實(shí)驗(yàn)參數(shù)的調(diào)整,下面討論P(yáng)ID參數(shù)對(duì)系統(tǒng)性能的影響:(1)增大比例系數(shù)KP一般將加快系統(tǒng)的響應(yīng),在有靜差的情況下有利于減小靜差。但過(guò)大的比例系數(shù)會(huì)使系統(tǒng)有較大的超調(diào),并產(chǎn)生振蕩,使系統(tǒng)穩(wěn)定性變壞。(2)增大積分時(shí)間參數(shù)
13、TI有利于消除靜差、減小超調(diào)、減小振蕩,使系統(tǒng)更加穩(wěn)定,但系統(tǒng)靜差的消除將隨之減慢。(3)增大微分時(shí)間參數(shù)TD有利于加快系統(tǒng)響應(yīng),使超調(diào)量減小,系統(tǒng)穩(wěn)定性增加,但系統(tǒng)對(duì)擾動(dòng)的抑制能力減弱,對(duì)擾動(dòng)有較敏感的響應(yīng)。在調(diào)整參數(shù)時(shí),采用湊試法。參考以上參數(shù)對(duì)控制過(guò)程的影響趨勢(shì),對(duì)參數(shù)實(shí)行“先比例,后積分,再微分”的步驟。(1)首先整定比例部分。將比例系數(shù)KP由小變大,并觀察相應(yīng)的系統(tǒng)響應(yīng),直到響應(yīng)曲線(xiàn)超調(diào)小、反應(yīng)快。如果系統(tǒng)沒(méi)有靜差,或者靜差小到允許的范圍內(nèi),那么只需比例調(diào)節(jié)器即可。(2)如果在比例調(diào)節(jié)的基礎(chǔ)上系統(tǒng)的靜差不能滿(mǎn)足要求,則須加入積分作用。整定時(shí)首先置積分時(shí)間TI為一較大值,并將第1步整定
14、得到的比例系數(shù)KP縮小(80),然后減小積分時(shí)間,使靜差得到消除。如果動(dòng)態(tài)性能(過(guò)渡時(shí)間短)也滿(mǎn)意,則需PI調(diào)節(jié)器即可。(3)若動(dòng)態(tài)性能不好,則需加入微分作用。整定時(shí),使微分時(shí)間TD從0變大,并相應(yīng)的改變比例系數(shù)和積分時(shí)間,逐步湊試,直到滿(mǎn)意結(jié)果。由于PID三個(gè)參數(shù)有互補(bǔ)作用,減小一個(gè)往往可由幾個(gè)增大來(lái)補(bǔ)償,因此參數(shù)的整定值不唯一,不同的參數(shù)組合完全有可能得到同樣的效果。四實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)中,采用位置式PID。在一般的PID控制中,當(dāng)有較大的擾動(dòng)或大幅度改變給定值時(shí),會(huì)有較大的偏差,以及系統(tǒng)有慣性和滯后,因此在積分項(xiàng)的作用下,往往會(huì)使系統(tǒng)超調(diào)變大和長(zhǎng)時(shí)間的波動(dòng),過(guò)渡時(shí)間變長(zhǎng)。特別對(duì)于溫度、成份等
15、變化緩慢的過(guò)程,這一現(xiàn)象更為嚴(yán)重。為此,可采用積分分離PID控制算法,即:當(dāng)偏差e(k)較大時(shí),取消積分作用;當(dāng)誤差e(k)較小時(shí)才加入積分作用。系統(tǒng)方塊圖如圖4-1所示, 是一個(gè)典型的 PID 閉環(huán)控制系統(tǒng)方塊圖,其硬件電路原理及接線(xiàn)圖如圖4-2所示,圖中畫(huà)“”的線(xiàn)需用戶(hù)在實(shí)驗(yàn)中自行接好,對(duì)象需用戶(hù)在運(yùn)放單元搭接。圖4-1 PID控制系統(tǒng)方塊圖圖4-2 積分分離法PID控制實(shí)驗(yàn)線(xiàn)路圖控制計(jì)算機(jī)的“OUT1”表示386EX內(nèi)部1定時(shí)器的輸出端,定時(shí)器輸出的方波周期定時(shí)器時(shí)常,“IRQ7”表示386EX內(nèi)部主片8259的7號(hào)中斷,用作采樣中斷,“DIN0”表示386EX的I/O管腳P1.0,在這
16、里作為輸入管腳用來(lái)檢測(cè)信號(hào)是否同步。這里,系統(tǒng)偏差信號(hào)E通過(guò)模數(shù)轉(zhuǎn)換單元“IN7”端輸入,控制機(jī)的定時(shí)器作為基準(zhǔn)時(shí)鐘(初始化為10ms),定時(shí)中斷采集“IN7”端的信號(hào)E,并進(jìn)行PID計(jì)算,得到相應(yīng)的控制量,再把控制量送到數(shù)模轉(zhuǎn)換單元,由“OUT1”端輸出相應(yīng)的模擬信號(hào),來(lái)控制對(duì)象系統(tǒng)。圖4-3是積分分離法 PID控制程序流程圖。圖4-3 積分分離法PID控制程序流程圖五、實(shí)驗(yàn)步驟1根據(jù)參考流程圖4-3編寫(xiě)實(shí)驗(yàn)程序,檢查無(wú)誤后編譯、鏈接。2按照實(shí)驗(yàn)線(xiàn)路圖4-2接線(xiàn),檢查無(wú)誤后開(kāi)啟設(shè)備電源。3調(diào)節(jié)信號(hào)源中的電位器及撥動(dòng)開(kāi)關(guān),使信號(hào)源輸出幅值為2V、周期6S的方波。確定系統(tǒng)的采樣周期以及積分分離值
17、。4裝載程序,將全局變量TK(采樣周期)、EI(積分分離值)、KP(比例系數(shù))、TI (積分系數(shù))和TD(微分系數(shù))加入變量監(jiān)視,以便實(shí)驗(yàn)過(guò)程中觀察和修改。5運(yùn)行程序,將積分分離值設(shè)為最大值7FH(相當(dāng)于沒(méi)有引入積分分離),用示波器分別觀測(cè)輸入端R和輸出端C。6如果系統(tǒng)性能不滿(mǎn)意,用湊試法修改PID參數(shù),直到響應(yīng)曲線(xiàn)滿(mǎn)意,并記錄響應(yīng)曲線(xiàn)的超調(diào)量和過(guò)渡時(shí)間。7修改積分分離值為20H,記錄此時(shí)響應(yīng)曲線(xiàn)的超調(diào)量和過(guò)渡時(shí)間,并和未引入積分分離值時(shí)的響應(yīng)曲線(xiàn)進(jìn)行比較。8將第6和第7步驟中較滿(mǎn)意的響應(yīng)曲線(xiàn)記錄下來(lái)。六實(shí)驗(yàn)結(jié)果采樣周期TK =05H;比例系數(shù)KP=6100H;積分系數(shù)TI=0018H;微分系
18、數(shù)TD=000BH。未引入積分分離值的響應(yīng)曲線(xiàn)(即EI(積分分離值)=7FH時(shí)):積分分離值為20H時(shí)的響應(yīng)曲線(xiàn):由得到的實(shí)驗(yàn)結(jié)果可以看到,引入積分分離法后,降低了系統(tǒng)輸出的超調(diào)量,并縮短了調(diào)節(jié)時(shí)間。積分分離值為10H時(shí)的響應(yīng)曲線(xiàn):實(shí)驗(yàn)五 直流電機(jī)閉環(huán)調(diào)速控制系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?了解閉環(huán)調(diào)速控制系統(tǒng)的構(gòu)成。2熟悉PID控制規(guī)律與算法實(shí)現(xiàn)。二、實(shí)驗(yàn)設(shè)備PC 機(jī)一臺(tái),TD-ACC+實(shí)驗(yàn)系統(tǒng)一套,i386EX 系統(tǒng)板一塊。三、實(shí)驗(yàn)內(nèi)容典型的直流電機(jī)調(diào)速實(shí)驗(yàn)的系統(tǒng)方框圖如圖11-1所示:圖11-1 典型的直流電機(jī)調(diào)速實(shí)驗(yàn)的系統(tǒng)方框圖根據(jù)系統(tǒng)方框圖,直流電機(jī)閉環(huán)調(diào)速控制系統(tǒng)實(shí)驗(yàn)線(xiàn)路圖設(shè)計(jì)如圖11
19、-2所示,實(shí)驗(yàn)中將圖中畫(huà)“”的線(xiàn)接好??刂茩C(jī)算機(jī)的“DOUT0”表示386EX的I/O管腳P2.0,輸出PWM脈沖經(jīng)驅(qū)動(dòng)后控制直流電機(jī),“IRQ7”表示386EX內(nèi)部主片8259的7號(hào)中斷,用作測(cè)速中斷。圖11-2 直流電機(jī)閉環(huán)調(diào)速控制系統(tǒng)實(shí)驗(yàn)線(xiàn)路圖實(shí)驗(yàn)中,用系統(tǒng)的數(shù)字量輸出端口“DOUT0”來(lái)模擬產(chǎn)生PMW脈寬調(diào)制信號(hào),構(gòu)成系統(tǒng)的控制量,經(jīng)驅(qū)動(dòng)電路驅(qū)動(dòng)后控制電機(jī)運(yùn)轉(zhuǎn)?;魻枩y(cè)速元件輸出的脈沖信號(hào)記錄電機(jī)轉(zhuǎn)速構(gòu)成反饋量。在參數(shù)給定情況下,經(jīng)PID運(yùn)算,電機(jī)可在控制量作用下,按給定轉(zhuǎn)速閉環(huán)運(yùn)轉(zhuǎn)。系統(tǒng)定時(shí)器定時(shí)1ms,作為系統(tǒng)采樣基準(zhǔn)時(shí)鐘;測(cè)速中斷用于測(cè)量電機(jī)轉(zhuǎn)速。圖11-3直流電機(jī)閉環(huán)調(diào)速控制系統(tǒng)
20、程序流程圖四、實(shí)驗(yàn)步驟1參照?qǐng)D11-3的程序流程圖,其中的PID子程序采用積分分離法PID,編寫(xiě)實(shí)驗(yàn)程序,編譯、鏈接。2按圖11-2接線(xiàn),檢查無(wú)誤后開(kāi)啟設(shè)備電源,將編譯鏈接好的程序裝載到控制機(jī)中。3打開(kāi)專(zhuān)用圖形界面,運(yùn)行程序,觀察電機(jī)轉(zhuǎn)速,分析其響應(yīng)特性。4若不滿(mǎn)意,改變參數(shù):積分分離值Iband、比例系數(shù)KPP、積分系數(shù)KII、微分系數(shù) KDD的值后再觀察其響應(yīng)特性,選擇一組較好的控制參數(shù)并記錄下來(lái)。表11-1 控制參數(shù)表項(xiàng)目 參數(shù)IBANDKPPKIIKDD超調(diào)穩(wěn)定2%時(shí)間1例程中參數(shù)響應(yīng)特性0060H1060H0010H0020H15%48秒2去掉IBAND0000H1060H0010H
21、0020H20%5.2秒3自測(cè)一組較好參數(shù)0010H6100H0018H000BH8%2.5秒5注意:在程序調(diào)試過(guò)程中,有可能隨時(shí)停止程序運(yùn)行,此時(shí)DOUT0的狀態(tài)應(yīng)保持上次的狀態(tài)。當(dāng)DOUT0為1時(shí),直流電機(jī)將停止轉(zhuǎn)動(dòng);當(dāng)DOUT0為0時(shí),直流電機(jī)將全速轉(zhuǎn)動(dòng),如果長(zhǎng)時(shí)間讓直流電機(jī)全速轉(zhuǎn)動(dòng),可能會(huì)導(dǎo)致電機(jī)單元出現(xiàn)故障,所以在停止程序運(yùn)行時(shí),最好將連接DOUT0的排線(xiàn)拔掉或按系統(tǒng)復(fù)位鍵。五、實(shí)驗(yàn)結(jié)果電機(jī)響應(yīng)曲線(xiàn):實(shí)驗(yàn)總結(jié)及建議: 此實(shí)驗(yàn)是我們的課程實(shí)驗(yàn),實(shí)驗(yàn)的內(nèi)容是我們課堂上學(xué)習(xí)的相關(guān)知識(shí)的應(yīng)用,對(duì)我們來(lái)說(shuō)這些知識(shí)是我們應(yīng)該好好掌握的。運(yùn)用書(shū)本所學(xué),好好分析得到結(jié)論,有利于我們對(duì)知識(shí)的理解。由于
22、實(shí)驗(yàn)的時(shí)間有限,我們無(wú)法對(duì)所有的內(nèi)容有很好的理解,我希望老師可以在試驗(yàn)前給我們以很好的引導(dǎo),不要把時(shí)間浪費(fèi)在不必要的事情上,而要有所著重點(diǎn),在有限的時(shí)間里使我們盡可能學(xué)習(xí)更多的知識(shí)。在此,要謝謝老師在我們出現(xiàn)問(wèn)題時(shí)的耐心解答。附錄資料:不需要的可以自行刪除 perl函數(shù)應(yīng)用一、進(jìn)程處理函數(shù)1、進(jìn)程啟動(dòng)函數(shù)函數(shù)名eval調(diào)用語(yǔ)法eval(string)解說(shuō)將string看作Perl語(yǔ)句執(zhí)行。正確執(zhí)行后,系統(tǒng)變量$為空串,如果有錯(cuò)誤,$中為錯(cuò)誤信息。例子$print = print (hello,worldn);eval ($print);結(jié)果輸出hello, world函數(shù)名system調(diào)用語(yǔ)法
23、system(list)解說(shuō)list中第一個(gè)元素為程序名,其余為參數(shù)。system啟動(dòng)一個(gè)進(jìn)程運(yùn)行程序并等待其結(jié)束,程序結(jié)束后錯(cuò)誤代碼左移八位成為返回值。例子proglist = (echo, hello,world!);system(proglist);結(jié)果輸出hello, world!函數(shù)名fork調(diào)用語(yǔ)法procid = fork();解說(shuō)創(chuàng)建程序的兩個(gè)拷貝-父進(jìn)程和子進(jìn)程-同時(shí)運(yùn)行。子進(jìn)程返回零,父進(jìn)程返回非零值,此值為子程序的進(jìn)程ID號(hào)。例子$retval = fork();if ($retval = 0) # this is the child process exit; # th
24、is terminates the child process else # this is the parent process結(jié)果輸出無(wú)函數(shù)名pipe調(diào)用語(yǔ)法pipe (infile, outfile);解說(shuō)與fork合用,給父進(jìn)程和子進(jìn)程提供通信的方式。送到outfile文件變量的信息可以通過(guò)infile文件變量讀取。步驟:1、調(diào)用pipe2、用fork將程序分成父進(jìn)程和子進(jìn)程3、一個(gè)進(jìn)程關(guān)掉infile,另一個(gè)關(guān)掉outfile例子pipe (INPUT, OUTPUT);$retval = fork();if ($retval != 0) # this is the parent p
25、rocess close (INPUT); print (Enter a line of input:n); $line = ; print OUTPUT ($line); else # this is the child process close (OUTPUT); $line = ; print ($line); exit (0);結(jié)果輸出$programEnter a line of input:Here is a test lineHere is a test line$函數(shù)名exec調(diào)用語(yǔ)法exec (list);解說(shuō)與system類(lèi)似,區(qū)別是啟動(dòng)新進(jìn)程前結(jié)束當(dāng)前程序。常與fork
26、合用,當(dāng)fork分成兩個(gè)進(jìn)程后,子進(jìn)程用exec啟動(dòng)另一個(gè)程序。例子 結(jié)果輸出函數(shù)名syscall調(diào)用語(yǔ)法syscall (list);解說(shuō)調(diào)用系統(tǒng)函數(shù),list第一個(gè)元素是系統(tǒng)調(diào)用名,其余為參數(shù)。如果參數(shù)是數(shù)字,就轉(zhuǎn)化成C的整型數(shù)(type int)。否則傳遞字符串的指針。詳見(jiàn)UNIX的幫助或Perl文檔。使用syscall必須包含文件syscall.pl,即:require (syscall.ph); 例子結(jié)果輸出2、進(jìn)程終止函數(shù)函數(shù)名Die調(diào)用語(yǔ)法die (message);解說(shuō)終止程序并向STDERR輸出錯(cuò)誤信息。message可以為字符串或列表。如果最后一個(gè)參數(shù)不包含換行符,則程序文
27、件名和行號(hào)也被輸出。例子die (Cannot open input file);結(jié)果輸出Cannot open input file at myprog line 6.函數(shù)名warn調(diào)用語(yǔ)法warn (message);解說(shuō)與die類(lèi)似,區(qū)別是不終止程序。例子warn(Danger! Danger!n);結(jié)果輸出Danger! Danger!函數(shù)名exit調(diào)用語(yǔ)法exit (retcode);解說(shuō)終止程序并指定返回值。例子exit(2);結(jié)果輸出無(wú)函數(shù)名kill調(diào)用語(yǔ)法kill (signal, proclist);解說(shuō)給一組進(jìn)程發(fā)送信號(hào)。signal是發(fā)送的數(shù)字信號(hào),9為殺掉進(jìn)程。proc
28、list是進(jìn)程ID列表。詳見(jiàn)kill的UNIX幫助。例子結(jié)果輸出3、進(jìn)程控制函數(shù)函數(shù)名sleep調(diào)用語(yǔ)法sleep (time);解說(shuō)將程序暫停一段時(shí)間。time是停止的秒數(shù)。返回值為實(shí)際停止的秒數(shù)。例子sleep (5);結(jié)果輸出無(wú)函數(shù)名wait調(diào)用語(yǔ)法procid = wait();解說(shuō)暫停程序執(zhí)行,等待子進(jìn)程終止。不需要參數(shù),返回值為子進(jìn)程ID,如果沒(méi)有子進(jìn)程,返回-1。例子結(jié)果輸出函數(shù)名waitpid調(diào)用語(yǔ)法waitpid (procid, waitflag);解說(shuō)暫停程序執(zhí)行,等待特定的子進(jìn)程終止。procid為等待的進(jìn)程ID例子$procid = fork();if ($proci
29、d = 0) # this is the child process print (this line is printed firstn); exit(0); else # this is the parent process waitpid ($procid, 0); print (this line is printed lastn);結(jié)果輸出$ programthis line is printed firstthis line is printed last$4、其它控制函數(shù)函數(shù)名caller調(diào)用語(yǔ)法subinfo = caller();解說(shuō)返回調(diào)用者的程序名和行號(hào),用于Perl D
30、ebugger。返回值為三元素的列表:1、調(diào)用處的包名2、調(diào)用者文件名3、調(diào)用處的行號(hào)例子結(jié)果輸出函數(shù)名chroot調(diào)用語(yǔ)法chroot (dir);解說(shuō)改變程序的根目錄,詳見(jiàn)chroot幫助。例子結(jié)果輸出函數(shù)名local調(diào)用語(yǔ)法local($variable);解說(shuō)在語(yǔ)句塊(由大括號(hào)包圍的語(yǔ)句集合)中定義局域變量,僅在此語(yǔ)句塊中起作用,對(duì)其的改變不對(duì)塊外同名變量造成影響。千萬(wàn)不要在循環(huán)中使用,否則每次循環(huán)都定義一個(gè)新的局域變量!例子結(jié)果輸出函數(shù)名times調(diào)用語(yǔ)法timelist = times解說(shuō)返回該程序及所有子進(jìn)程消耗的工作時(shí)間。返回值為四個(gè)浮點(diǎn)數(shù)的列表:1、程序耗用的用戶(hù)時(shí)間2、程序
31、耗用的系統(tǒng)時(shí)間3、子進(jìn)程耗用的用戶(hù)時(shí)間4、子進(jìn)程耗用的系統(tǒng)時(shí)間例子結(jié)果輸出二、數(shù)學(xué)函數(shù)函數(shù)名sin調(diào)用語(yǔ)法retval = sin (value);解說(shuō)參數(shù)為弧度值。函數(shù)名cos調(diào)用語(yǔ)法retval = cos (value);解說(shuō)參數(shù)為弧度值。函數(shù)名atan2調(diào)用語(yǔ)法retval = atan2 (value1, value2);解說(shuō)運(yùn)算并返回value1除以value2結(jié)果的arctan值,單位為弧度,范圍在-PIPI。應(yīng)用例:角度轉(zhuǎn)化成弧度子程序。sub degrees_to_radians local ($degrees) = _; local ($radians);11: $radi
32、ans = atan2(1,1) * $degrees / 45;函數(shù)名sqrt調(diào)用語(yǔ)法retval = sqrt (value);解說(shuō)平方根函數(shù)。value為非負(fù)數(shù)。函數(shù)名exp調(diào)用語(yǔ)法retval = exp (value);解說(shuō)返回e的value次方。函數(shù)名log調(diào)用語(yǔ)法retval = log (value);解說(shuō)以e為底的自然對(duì)數(shù)。函數(shù)名abs調(diào)用語(yǔ)法retval = abs (value);解說(shuō)絕對(duì)值函數(shù)。(Perl 4中沒(méi)有)函數(shù)名rand調(diào)用語(yǔ)法retval = rand (num);解說(shuō)隨機(jī)數(shù)函數(shù),返回0和整數(shù)num之間的一個(gè)浮點(diǎn)數(shù)。函數(shù)名srand調(diào)用語(yǔ)法srand (va
33、lue);解說(shuō)初始化隨機(jī)數(shù)生成器。保證每次調(diào)用rand真正隨機(jī)。三、字符串處理函數(shù)函數(shù)名index調(diào)用語(yǔ)法position = index (string, substring, position);解說(shuō)返回子串substring在字符串string中的位置,如果不存在則返回-1。參數(shù)position是可選項(xiàng),表示匹配之前跳過(guò)的字符數(shù),或者說(shuō)從該位置開(kāi)始匹配。函數(shù)名rindex調(diào)用語(yǔ)法position = rindex (string, substring, position);解說(shuō)與index類(lèi)似,區(qū)別是從右端匹配。函數(shù)名length調(diào)用語(yǔ)法num = length (string);解說(shuō)返
34、回字符串長(zhǎng)度,或者說(shuō)含有字符的數(shù)目。函數(shù)名pos調(diào)用語(yǔ)法offset = pos(string);解說(shuō)返回最后一次模式匹配的位置。函數(shù)名substr調(diào)用語(yǔ)法substr (expr, skipchars, length)解說(shuō)抽取字符串(或表達(dá)式生成的字符串)expr中的子串,跳過(guò)skipchars個(gè)字符,或者說(shuō)從位置skipchars開(kāi)始抽取子串(第一個(gè)字符位置為0),子串長(zhǎng)度為length,此參數(shù)可忽略,意味著取剩下的全部字符。當(dāng)此函數(shù)出現(xiàn)在等式左邊時(shí),expr必須為變量或數(shù)組元素,此時(shí)其中部分子串被等式右邊的值替換。函數(shù)名study調(diào)用語(yǔ)法study (scalar);解說(shuō)用一種內(nèi)部格式提
35、高變量的訪(fǎng)問(wèn)速度,同一時(shí)刻只對(duì)一個(gè)變量起作用。函數(shù)名lcuc調(diào)用語(yǔ)法retval = lc(string);retval = uc(string);解說(shuō)將字符串全部轉(zhuǎn)換成小/大寫(xiě)字母。函數(shù)名lcfirstucfirst調(diào)用語(yǔ)法retval = lcfirst(string);retval = ucfirst(string);解說(shuō)將第一個(gè)字母轉(zhuǎn)換成小/大寫(xiě)。函數(shù)名quotameta調(diào)用語(yǔ)法newstring = quotemeta(oldstring);解說(shuō)將非單詞的字母前面加上反斜線(xiàn)()。語(yǔ)句 : $string = quotemeta($string);等效于:$string = s/(W)
36、/$1/g;常用于模式匹配操作中,確保字符串中沒(méi)有字符被看作匹配操作符。函數(shù)名join調(diào)用語(yǔ)法join (joinstr, list);解說(shuō)把字符串列表(數(shù)組)組合成一個(gè)長(zhǎng)的字符串,在每?jī)蓚€(gè)列表元素間插入串joinstr。函數(shù)名sprintf調(diào)用語(yǔ)法sprintf (string, fields);解說(shuō)與printf類(lèi)似,區(qū)別是結(jié)果不輸出到文件,而作為返回值賦給變量。例子$num = 26;$outstr = sprintf(%d = %x hexadecimal or %o octaln,$num, $num, $num);print ($outstr);結(jié)果輸出26 = 1a hexade
37、cimal or 32 octal四、標(biāo)量轉(zhuǎn)換函數(shù)函數(shù)名chop調(diào)用語(yǔ)法$lastchar = chop (var);解說(shuō)var可為變量或數(shù)組,當(dāng)var為變量時(shí),最后一個(gè)字符被刪除并賦給$lastchar,當(dāng)var為數(shù)組/列表時(shí),所有元素的最后一個(gè)字符被刪除,最后一個(gè)元素的最后一個(gè)字母賦給$lastchar。函數(shù)名chomp調(diào)用語(yǔ)法result = chomp(var);解說(shuō)檢查字符串或字符串列表中元素的最后一個(gè)字符是否為由系統(tǒng)變量$/定義的行分隔符,如果是就刪除。返回值為實(shí)際刪除的字符個(gè)數(shù)。函數(shù)名crypt調(diào)用語(yǔ)法result = crypt (original, salt);解說(shuō)用DES算
38、法加密字符串,original是將要加密的字符串,salt是兩個(gè)字符的字符串,定義如何改變DES算法,以使更難解碼。返回值為加密后的串。函數(shù)名hex調(diào)用語(yǔ)法decnum = hex (hexnum);解說(shuō)將十六進(jìn)制數(shù)(字符串形式)轉(zhuǎn)化為十進(jìn)制數(shù)。函數(shù)名int調(diào)用語(yǔ)法intnum = int (floatnum);解說(shuō)將浮點(diǎn)數(shù)舍去小數(shù)部分轉(zhuǎn)化為整型數(shù)。函數(shù)名oct調(diào)用語(yǔ)法decnum = oct (octnum);解說(shuō)將八進(jìn)制數(shù)(字符串形式)或十六進(jìn)制數(shù)(0 x.形式)轉(zhuǎn)化為十進(jìn)制數(shù)。函數(shù)名ord調(diào)用語(yǔ)法asciival = ord (char);解說(shuō)返回單個(gè)字符的ASCII值,與PASCAL中
39、同名函數(shù)類(lèi)似。函數(shù)名chr調(diào)用語(yǔ)法$char = chr (asciival);解說(shuō)返回ASCII值的相應(yīng)字符,與PASCAL中同名函數(shù)類(lèi)似。函數(shù)名pack調(diào)用語(yǔ)法formatstr = pack(packformat, list);解說(shuō)把一個(gè)列表或數(shù)組以在實(shí)際機(jī)器存貯格式或C等編程語(yǔ)言使用的格式轉(zhuǎn)化(包裝)到一個(gè)簡(jiǎn)單變量中。參數(shù)packformat包含一個(gè)或多個(gè)格式字符,列表中每個(gè)元素對(duì)應(yīng)一個(gè),各格式字符間可用空格或tab隔開(kāi),因?yàn)閜ack忽略空格。除了格式a、A和外,重復(fù)使用一種格式多次可在其后加個(gè)整數(shù),如: $twoints = pack (i2, 103, 241);把同一格式應(yīng)用于所
40、有的元素則加個(gè)*號(hào),如: $manyints = pack (i*, 14, 26, 11, 83);對(duì)于a和A而言,其后的整數(shù)表示要?jiǎng)?chuàng)建的字符串長(zhǎng)度,重復(fù)方法如下: $strings = pack (a6 x 2, test1, test2);格式的情況比較特殊,其后必須加個(gè)整數(shù),該數(shù)表示字符串必須的長(zhǎng)度,如果長(zhǎng)度不夠,則用空字符(null)補(bǔ)足,如: $output = pack (a 6 a, test, test2);pack函數(shù)最常見(jiàn)的用途是創(chuàng)建可與C程序交互的數(shù)據(jù),例如C語(yǔ)言中字符串均以空字符(null)結(jié)尾,創(chuàng)建這樣的數(shù)據(jù)可以這樣做: $Cstring = pack (ax, $
41、mystring);下表是一些格式字符與C中數(shù)據(jù)類(lèi)型的等價(jià)關(guān)系:字符 等價(jià)C數(shù)據(jù)類(lèi)型CcharddoubleffloatiintIunsigned int (or unsigned)llongLunsigned longsshortSunsigned short完整的格式字符見(jiàn)下表。 格式字符 描述a用空字符(null)補(bǔ)足的字符串A用空格補(bǔ)足的字符串b位串,低位在前B位串,高位在前c帶符號(hào)字符(通常-128127)C無(wú)符號(hào)字符(通常8位)d雙精度浮點(diǎn)數(shù)f單精度浮點(diǎn)數(shù)h十六進(jìn)制數(shù)串,低位在前H十六進(jìn)制數(shù)串,高位在前i帶符號(hào)整數(shù)I無(wú)符號(hào)整數(shù)l帶符號(hào)長(zhǎng)整數(shù)L無(wú)符號(hào)長(zhǎng)整數(shù)n網(wǎng)絡(luò)序短整數(shù)N網(wǎng)絡(luò)序長(zhǎng)整數(shù)
42、p字符串指針s帶符號(hào)短整數(shù)S無(wú)符號(hào)短整數(shù)u轉(zhuǎn)化成uuencode格式vVAX序短整數(shù)VVAX序長(zhǎng)整數(shù)x一個(gè)空字節(jié)X回退一個(gè)字節(jié)以空字節(jié)(null)填充函數(shù)名unpack調(diào)用語(yǔ)法list = unpack (packformat, formatstr);解說(shuō)unpack與pack功能相反,將以機(jī)器格式存貯的值轉(zhuǎn)化成Perl中值的列表。其格式字符與pack基本相同(即上表),不同的有:A格式將機(jī)器格式字符串轉(zhuǎn)化為Perl字符串并去掉尾部所有空格或空字符;x為跳過(guò)一個(gè)字節(jié);為跳過(guò)一些字節(jié)到指定的位置,如4為跳過(guò)4個(gè)字節(jié)。下面看一個(gè)和X合同的例子: $longrightint = unpack (*
43、X4 L, $packstring);此語(yǔ)句將最后四個(gè)字節(jié)看作無(wú)符號(hào)長(zhǎng)整數(shù)進(jìn)行轉(zhuǎn)化。下面看一個(gè)對(duì)uuencode文件解碼的例子:1 : #!/usr/local/bin/perl2 : 3 : open (CODEDFILE, /u/janedoe/codefile) |4 : die (Cant open input file);5 : open (OUTFILE, outfile) |6 : die (Cant open output file);7 : while ($line = ) 8 : $decoded = unpack(u, $line);9 : print OUTFILE (
44、$decoded);10: 11: close (OUTFILE);12: close (CODEDFILE); 當(dāng)將pack和unpack用于uuencode時(shí),要記住,雖然它們與UNIX中的uuencode、uudecode工具算法相同,但并不提供首行和末行,如果想用uudecode對(duì)由pack的輸出創(chuàng)建的文件進(jìn)行解碼,必須也把首行和末行輸出(詳見(jiàn)UNIX中uuencode幫助)。函數(shù)名vec調(diào)用語(yǔ)法retval = vec (vector, index, bits);解說(shuō)顧名思義,vec即矢量(vector)函數(shù),它把簡(jiǎn)單變量vector的值看作多塊(維)數(shù)據(jù),每塊含一定數(shù)目的位,合起來(lái)
45、即一個(gè)矢量數(shù)據(jù)。每次的調(diào)用訪(fǎng)問(wèn)其中一塊數(shù)據(jù),可以讀取,也可以寫(xiě)入。參數(shù)index就象數(shù)組下標(biāo)一樣,提出訪(fǎng)問(wèn)哪一塊,0為第一塊,依次類(lèi)推,要注意的是訪(fǎng)問(wèn)次序是從右到左的,即第一塊在最右邊。參數(shù)bits指定每塊中的位數(shù),可以為1,2,4,8,16或32。例子1 : #!/usr/local/bin/perl2 : 3 : $vector = pack (B*, 11010011);4 : $val1 = vec ($vector, 0, 4);5 : $val2 = vec ($vector, 1, 4);6 : print (high-to-low order values: $val1 and
46、 $val2n);7 : $vector = pack (b*, 11010011);8 : $val1 = vec ($vector, 0, 4);9 : $val2 = vec ($vector, 1, 4);10: print (low-to-high order values: $val1 and $val2n); 結(jié)果high-to-low order values: 3 and 13low-to-high order values: 11 and 12函數(shù)名defined調(diào)用語(yǔ)法retval = defined (expr);解說(shuō)判斷一個(gè)變量、數(shù)組或數(shù)組的一個(gè)元素是否已經(jīng)被賦值。e
47、xpr為變量名、數(shù)組名或一個(gè)數(shù)組元素。如果已定義,返回真,否則返回假。函數(shù)名undef調(diào)用語(yǔ)法retval = undef (expr);解說(shuō)取消變量、數(shù)組或數(shù)組元素甚至子程序的定義,回收其空間。返回值始終為未定義值,此值與空串等效。五、數(shù)組和列表函數(shù)函數(shù)名grep調(diào)用語(yǔ)法foundlist = grep (pattern, searchlist);解說(shuō)與同名的UNIX查找工具類(lèi)似,grep函數(shù)在列表中抽取與指定模式匹配的元素,參數(shù)pattern為欲查找的模式,返回值是匹配元素的列表。例子list = (This, is, a, test);foundlist = grep(/tT/, lis
48、t);結(jié)果foundlist = (This, test);函數(shù)名splice調(diào)用語(yǔ)法retval = splice (array, slipelements, length, newlist);解說(shuō)拼接函數(shù)可以向列表(數(shù)組)中間插入元素、刪除子列表或替換子列表。參數(shù)skipelements是拼接前跳過(guò)的元素?cái)?shù)目,length是被替換的元素?cái)?shù),newlist是將要拼接進(jìn)來(lái)的列表。當(dāng)newlist的長(zhǎng)度大于length時(shí),后面的元素自動(dòng)后移,反之則向前縮進(jìn)。因此,當(dāng)length=0時(shí),就相當(dāng)于向列表中插入元素,而形如語(yǔ)句splice (array, -1, 0, Hello);則向數(shù)組末尾添加元素。而當(dāng)newlist為空時(shí)就相當(dāng)于刪除子列表,這時(shí),如果length為空,就從第skipelements個(gè)元素后全部刪除,而刪除最后一個(gè)元素則為:splice (array, -1);這種情況下,返回值為被刪去的元素列表。函數(shù)名shift調(diào)用語(yǔ)法element = shift (arrayvar);解說(shuō)刪去數(shù)組第一個(gè)元素
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 全國(guó)安徽版初中信息技術(shù)七年級(jí)上冊(cè)第一單元活動(dòng)1《初識(shí)我的電腦》教學(xué)設(shè)計(jì)
- 五年級(jí)體育上冊(cè) 第三十二課長(zhǎng)繩和短繩教學(xué)設(shè)計(jì)
- 船舶項(xiàng)目可行性研究報(bào)告
- 麗江2025年云南麗江玉龍縣第一中學(xué)急需緊缺教師招聘筆試歷年參考題庫(kù)附帶答案詳解
- 臨滄2024年云南臨滄雙江自治縣醫(yī)療保障局公益性崗位招聘筆試歷年參考題庫(kù)附帶答案詳解
- 二零二五技術(shù)服務(wù)費(fèi)簡(jiǎn)單合同范例
- 二零二五版股權(quán)轉(zhuǎn)讓協(xié)議書(shū)樣書(shū)
- 人力資源事務(wù)代理服務(wù)協(xié)議書(shū)二零二五年
- 物流公司的運(yùn)輸合同書(shū)
- 臨滄2024年云南臨滄市第二中學(xué)選聘教師筆試歷年參考題庫(kù)附帶答案詳解
- 鮮肉切片機(jī)設(shè)計(jì)說(shuō)明書(shū)
- 2018年USB數(shù)據(jù)線(xiàn)檢驗(yàn)規(guī)范資料
- 廠(chǎng)房及配套設(shè)施工程建設(shè)項(xiàng)目施工組織設(shè)計(jì)方案
- 校園管制刀具排查記錄表
- 3 春夜喜雨課件(共16張PPT)
- DB32∕T 3921-2020 居住建筑浮筑樓板保溫隔聲工程技術(shù)規(guī)程
- 基樁低應(yīng)變檢測(cè)2
- 中長(zhǎng)期人才隊(duì)伍建設(shè)戰(zhàn)略規(guī)劃
- 圖解副熱帶高壓
- 鋁合金腳手架操作規(guī)程
- 視覺(jué)形象設(shè)計(jì)VIS清單
評(píng)論
0/150
提交評(píng)論