我們直接使用三菱FX3U的PID指令進(jìn)行控制。下面我們看一下PID指令的用法: S1是目標(biāo)值:比如目標(biāo)轉(zhuǎn)速40轉(zhuǎn)/分鐘。 S2是測(cè)量值:比如當(dāng)前實(shí)時(shí)測(cè)得的轉(zhuǎn)速38轉(zhuǎn)/分鐘。 S3是參數(shù)數(shù)據(jù)的首個(gè)寄存器地址:例如D100,那么后面D101-D128都是PID指令相關(guān)的參數(shù)數(shù)據(jù)。 D是就是實(shí)際的輸出值。這個(gè)輸出值是有范圍的,需要通過(guò)參數(shù)S3+22(輸出上限)和S3+23(輸出下限)來(lái)限定。這個(gè)范圍是跟模擬量輸出模塊的量程,或者PWM波形周期有關(guān)。比如:4DA模塊輸出0-10V電壓,對(duì)應(yīng)0-32000量程,那么S3+22就設(shè)置成32000即可,因?yàn)榱砍套畲笠簿褪?2000,再大還是輸出10V,沒(méi)有實(shí)際意義。又比如:我們用PWM的占空比控制加熱棒輸出功率時(shí),周期定為1000(單位:ms),那么S3+22就設(shè)置成1000,如果設(shè)的大了,PWM指令反而就不執(zhí)行了。所以,根據(jù)執(zhí)行器的量程來(lái)設(shè)置輸出上下限才行。 下面看下S3的參數(shù)表: 采樣時(shí)間:在本例中,控制對(duì)象是電機(jī)轉(zhuǎn)速,它的實(shí)時(shí)性很強(qiáng),目標(biāo)值可以馬上到達(dá),因此為了提高準(zhǔn)確性,采樣時(shí)間要小一點(diǎn)。而如果是控制的溫度/壓力值等滯后性比較強(qiáng)的對(duì)象,那么采樣時(shí)間可以設(shè)的長(zhǎng)點(diǎn),比如溫度,加熱棒加熱得比較慢,反饋回來(lái)的溫度變化比較滯后,所以沒(méi)必要設(shè)的短,較短的時(shí)間內(nèi)可能測(cè)得的實(shí)時(shí)溫度值基本沒(méi)變化。 動(dòng)作設(shè)定: bit0=0.正動(dòng)作:它的表現(xiàn)是測(cè)量值和目標(biāo)值越接近,輸出值越往上升。如本例測(cè)速,就是要正動(dòng)作,測(cè)量值離目標(biāo)值遠(yuǎn),那么輸出值就要慢慢增大。 bit0=1.逆動(dòng)作:它的表現(xiàn)跟正動(dòng)作相反。測(cè)量值越接近目標(biāo)值,輸出值越小。例如加溫控制,當(dāng)溫度慢慢變大,輸出就要慢慢變小,這樣才不會(huì)過(guò)溫。 bit1和bit2.不管它,設(shè)為0 bit3.不使用,設(shè)為0 bit4.當(dāng)執(zhí)行自整定時(shí),該位設(shè)置為1,當(dāng)自整定結(jié)束后,它會(huì)自動(dòng)范圍。因此用它來(lái)對(duì)動(dòng)作設(shè)定的參數(shù)重新賦值。 bit5.輸出值上下限設(shè)定必須要有效,它有效了,后面的輸出上下限值才能設(shè)定。 bit6=0.階躍響應(yīng)法:它在自整定的時(shí)候,是沒(méi)有輸出的。必須人為地提前給它一個(gè)輸出值,不用太大,一半左右就夠了,也就是說(shuō),讓執(zhí)行機(jī)構(gòu)先動(dòng)起來(lái),然后自整定程序會(huì)根據(jù)運(yùn)行情況或者加熱情況來(lái)進(jìn)行PID運(yùn)算。當(dāng)運(yùn)行一段時(shí)間后,自整定就完成了,并且給出計(jì)算出來(lái)的P,I,D值。另外,在整定期間,PID參數(shù)一直為0。 bit6=1.極限循環(huán)法:當(dāng)測(cè)量值<目標(biāo)值-臨界值時(shí),以LLV輸出;當(dāng)測(cè)量值>目標(biāo)值+臨界值時(shí),以ULV輸出。當(dāng)經(jīng)過(guò)幾個(gè)波形后,就能得到P,I,D值。同樣,在整定期間,PID參數(shù)一直為0。 輸入濾波常數(shù):根據(jù)樣例程序,輸入70即可。 比例增益:太大會(huì)震蕩嚴(yán)重。太小會(huì)達(dá)不到目標(biāo)值。 積分時(shí)間:太大使得到達(dá)穩(wěn)態(tài)的時(shí)間變長(zhǎng)。太小使得系統(tǒng)超調(diào),糾錯(cuò)太快了。 微分增益:自整定到時(shí)候沒(méi)有它整定值。 微分時(shí)間:加入它可以抗拒外界來(lái)的干擾,使得能夠達(dá)到目標(biāo)值。比如,正常情況下開(kāi)車,只要P和I夠了,開(kāi)的好好的,突然遇到上坡,那么此時(shí)按照正常調(diào)節(jié)來(lái)看,無(wú)法到達(dá)之前的速度了,因此引入了D后,可以給車再加點(diǎn)油,然后速度起來(lái),克服斜坡帶來(lái)的影響。 中間參數(shù)省略,一律設(shè)0,或者不管。 輸出上限的設(shè)定值:4DA模塊的最大量程值,或者PWM波形的周期值。 輸出下限的設(shè)定值:4DA模塊的最小量程值,或者0。 報(bào)警輸出:根據(jù)需要設(shè)定。 PV臨界值:它跟極限循環(huán)法有關(guān)。當(dāng)以極限循環(huán)法自整定時(shí),它的作用就是來(lái)控制PID的輸出值什么時(shí)候用輸出值上限ULV,什么時(shí)候用輸出值下限LLV。當(dāng)目標(biāo)值-PV臨界值時(shí),用LLV輸出;當(dāng)目標(biāo)值+PV臨界值時(shí),用ULV輸出。 輸出值上限ULV:它的值最大為輸出上限設(shè)定值。可以根據(jù)實(shí)際情況來(lái)設(shè)定,不一定用最大值。 輸出值下限LLV:它的值最小為輸出下限設(shè)定值。可以根據(jù)實(shí)際情況來(lái)設(shè)定,不一定用最小值。 可以多路使用,也就是說(shuō),即可以控速,同時(shí)也可以控溫 下面進(jìn)入實(shí)操:我們采用FX3U-4DA模塊輸出0-10V來(lái)控制VFD-M變頻器的頻率(0-50HZ)給定。 1.臺(tái)達(dá)VFD-M變頻器與FX3U-4DA接線: 1.1.將FX3U-4DA的V+接到變頻器的AVI,將FX3U-4DA的VI-接到變頻器的GND。有條件的可以在FX3U-4DA模塊的V+和VI-之間并聯(lián)一個(gè)0.1-0.47uf的電容,以增加抗干擾性。 1.2.將編碼器(600線)的A相和B相信號(hào)分別接入到FX3UPLC的X0和X1。 1.3.小型異步電機(jī)是3相220的,而VFD-M變頻器也是輸出3相220V電壓,因此可以直接使用。 2.臺(tái)達(dá)VFD-M的參數(shù)設(shè)置: 將P00設(shè)置為01,表示主頻率輸入模擬信號(hào)由模擬信號(hào)0-10V輸入(AVI) 將P01設(shè)置為00,表示運(yùn)轉(zhuǎn)指令由數(shù)字操作器控制。也就是說(shuō),當(dāng)我們開(kāi)始控制之前,必須提前在操作面板上按一下RUN鍵,一旦有0-10V輸入,變頻器馬上就有輸出。 將P10設(shè)置為0.1,表示第一加速時(shí)間是0.1秒。設(shè)置那么低,是想讓控制可以更加迅速。當(dāng)然,這么做的后果就是需要加一個(gè)制動(dòng)電阻,以快速釋放掉母線電壓。 將P11設(shè)置為0.1,表示第一減速時(shí)間是0.1秒。原因同上。 3.FX3U-4DA的參數(shù)設(shè)置: 緩沖存儲(chǔ)區(qū)我們只需要設(shè)置#0號(hào)存儲(chǔ)區(qū)的輸出模式,以及將PID的輸出值給到#4號(hào)存儲(chǔ)區(qū),讓它輸出0-10V電壓即可。 其他的例如:偏置?。ň褪瞧屏?,用來(lái)平移斜線的),增益?。ň褪歉淖冃甭剩?,上下限啊,都可以不用設(shè)置。 另外,負(fù)載電阻值在出廠的時(shí)候是以30KΩ來(lái)調(diào)節(jié)的,一般情況下夠用了,如果要精確,可以測(cè)量實(shí)際負(fù)載的阻值,然后將#51-#54的負(fù)載電阻值給更改掉。 題外話:FX3U-4AD/4DA模塊買來(lái)后,最好將各個(gè)輸入輸出通道的偏置以及增益的數(shù)據(jù)都保存下來(lái)。這樣一旦出現(xiàn)偏差,在調(diào)整偏置和增益無(wú)果的情況下,還可以重新將初始時(shí)的數(shù)據(jù)輸入進(jìn)去進(jìn)行還原。 另外,F(xiàn)X3U支持直接用“單元號(hào)\存儲(chǔ)區(qū)號(hào)”來(lái)直接訪問(wèn)存儲(chǔ)區(qū),例如:我現(xiàn)在的硬件組態(tài)是這樣的:FX3UPLC+FX3U-4AD模塊+FX3U-4DA模塊,那么4AD模塊的單元號(hào)就是U0,4DA的單元號(hào)是U1。然后,4DA的#4號(hào)存儲(chǔ)區(qū)可以用G4表示。那么連起來(lái)就是U1\G4,我們只要MOV D100 U1\G4,那么我們就可以控制4DA模塊的4號(hào)通道進(jìn)行輸出。 4.設(shè)備實(shí)拍: 從左到右分別是FX3U,F(xiàn)X3U-4AD,F(xiàn)X3U-4DA 臺(tái)達(dá)VFD-M變頻器控制底下的輸送帶,編碼器旋轉(zhuǎn)一圈發(fā)出600個(gè)脈沖 5.程序: 關(guān)于如何測(cè)速,可以看我主頁(yè)里的另一個(gè)視頻。 這里我們用0.5s來(lái)采集速度,算法:0.5s內(nèi)測(cè)得的脈沖數(shù)?(600線?4倍頻)?2?60, 這里的2就是以秒為單位來(lái)計(jì)算的。 H70表示執(zhí)行正動(dòng)作,且采用極限循環(huán)法的自整定 PID指令里的D0實(shí)際應(yīng)該用?2后的值填入 由于PID輸出值在結(jié)束后無(wú)法恢復(fù),因此用PID控制結(jié)束條件的下降沿來(lái)將它復(fù)位 這里同時(shí)需要將4DA模塊的輸出值清零,否則變頻器會(huì)一直運(yùn)轉(zhuǎn) 6.調(diào)試: 這種裝置的自整定很快就結(jié)束了,不像控溫那樣會(huì)比較慢一點(diǎn)。但是這種快速自整定出來(lái)的值,都是有問(wèn)題的。如果用自整定出來(lái)的PID參數(shù)來(lái)運(yùn)行,會(huì)發(fā)現(xiàn)輸送帶一頓一頓的,那是因?yàn)檎ǔ鰜?lái)的P值有20000多,根據(jù)實(shí)際情況來(lái)看,確實(shí)太大了,運(yùn)行一會(huì)馬上就到了目標(biāo)速度,然后肯定過(guò)沖,過(guò)沖后又馬上降低輸出,所以導(dǎo)致輸送帶一頓一頓的,這就是引起了系統(tǒng)的震蕩,因此,我將P值改為4000左右后,就不會(huì)一頓一頓了,運(yùn)行平穩(wěn)。最后,人為的給它施加一個(gè)壓力,輸出值立馬就上去了,變頻器的輸出頻率也相應(yīng)的增加,而且也不會(huì)過(guò)沖很多,穩(wěn)態(tài)還可以。 7.總結(jié):自整定不是一無(wú)是處,至少可以反應(yīng)出一些問(wèn)題,然后我們直接根據(jù)反應(yīng)出來(lái)的問(wèn)題進(jìn)行相應(yīng)的人為的更改PID參數(shù)就可以了。 |
|