溫度PID控制功能塊FB58使用入門_第1頁(yè)
溫度PID控制功能塊FB58使用入門_第2頁(yè)
溫度PID控制功能塊FB58使用入門_第3頁(yè)
溫度PID控制功能塊FB58使用入門_第4頁(yè)
溫度PID控制功能塊FB58使用入門_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 / 26 15-1-22siemens industry online support - automation service, automation support, simatic service, simatic support, technical support, technical consulting 自動(dòng)化技術(shù) 自動(dòng)化技術(shù) 工業(yè)自動(dòng)化系統(tǒng) simatic 工業(yè)軟件 運(yùn)行軟件 loadable function blocks 標(biāo)準(zhǔn) pid 控制溫度 pid 控制功能塊 fb58使用入門1 fb58 基本特性介紹在標(biāo)準(zhǔn)庫(kù)( libraries/standard library

2、/pid control blocks)中的 pid 控制塊中提供了兩個(gè)用于溫度控制的功能塊 fb58和 fb59 。其中,fb58用于具有連續(xù)或脈沖輸入信號(hào)的執(zhí)行器的溫度控制器,而 fb59用于類似于定位電機(jī)的執(zhí)行器的步進(jìn)溫度控制器。除了基本的功能之外, fb58還提供 pid 的參數(shù)自整定功能。pid 功能塊是純軟件控制器,相關(guān)運(yùn)算數(shù)據(jù)存放在相應(yīng)的背景數(shù)據(jù)塊中,對(duì)于不同的回路,應(yīng)該使用不同的背景數(shù)據(jù)塊,否則會(huì)導(dǎo)致pid 運(yùn)算混亂的錯(cuò)誤。fb58可以用在僅加熱的溫度控制回路(例如控制蒸汽的供給量來(lái)控制溫度),也可以用在僅冷卻的溫度控制回路(例如控制冷卻風(fēng)扇的頻率、或者冷媒的供給量來(lái)控制溫度)

3、。如果用于冷卻,則回路工作在反作用狀態(tài),則需要給比例增益參數(shù)gain分配一個(gè)負(fù)數(shù),其他保持不變。和常規(guī) pid 功能塊(例如 fb/sfb41 )對(duì)比, fb58具有如下特性:提供控制帶( control zone )功能;控制輸出提供脈沖方式;過(guò)程值轉(zhuǎn)換增加對(duì)溫度信號(hào)轉(zhuǎn)換(pv_per*0.1/0.01)方式的支持;參數(shù)保存和重新裝載;控制器參數(shù)自整定功能;設(shè)定值變化時(shí)的比例作用弱化功能。2 / 26 2 fb58 基本使用2.1 功能塊調(diào)用在 step 7 中,提供了關(guān)于fb58和 fb59的一個(gè)示例項(xiàng)目,其路徑如下圖所示:圖 1 fb58/59 示例項(xiàng)目該示例項(xiàng)目包含有如下幾個(gè)示例程序:

4、(1)連續(xù)控制器 continuous controller 輸出類型是連續(xù)數(shù)值的一類控制器, 其中的 fb100和 db100是一個(gè)模擬的控制對(duì)象;(2)脈沖控制 pulse control ob35, ob1 輸出類型是單個(gè)脈沖信號(hào)的一類控制,在ob35和 ob1中同時(shí)調(diào)用,其中的fb102 和 db102是一個(gè)模擬的接收脈沖信號(hào)的控制對(duì)象;(3)脈沖控制 pulse control ob35, ob32 3 / 26 輸出類型是單個(gè)脈沖信號(hào)的一類控制,在ob35和 ob32中同時(shí)調(diào)用,其中的fb102 和 db102是一個(gè)模擬的接收脈沖信號(hào)的控制對(duì)象。 和上一個(gè)項(xiàng)目不同, 這個(gè)項(xiàng)目要求運(yùn)

5、行的cpu 能夠支持 ob32定時(shí)中斷,例如s7-400 cpu ;(4)脈沖控制器 pulse controller 輸出類型是單個(gè)脈沖信號(hào)的一類控制,只在ob35中調(diào)用,其中的 fb102和 db102 是一個(gè)模擬的接收脈沖信號(hào)的控制對(duì)象。和前面兩個(gè)項(xiàng)目不同,這個(gè)項(xiàng)目只在ob35中調(diào)用一次 fb58即可;(5)步進(jìn)控制器 step controller 輸出類型是兩個(gè)脈沖信號(hào)的一類控制,只在ob35中調(diào)用,其中的 fb101和 db101 是一個(gè)模擬的控制對(duì)象,例如步進(jìn)電動(dòng)閥門。這是一個(gè)fb59的應(yīng)用示例。通過(guò)示例項(xiàng)目可以測(cè)試fb58的各項(xiàng)功能。在具體的編程過(guò)程中,可以從示例項(xiàng)目中將相關(guān)功

6、能塊、組織塊、背景數(shù)據(jù)塊拷貝過(guò)來(lái),也可以直接編程調(diào)用。在 step 4 / 26 7 中創(chuàng)建一個(gè) ob35 ,打開(kāi)并在其中添加fb58 :圖 2 調(diào)用 fb58 如上圖所示,在左側(cè)的總覽列表中,依次進(jìn)入“l(fā)ibraries”“standard library ”“pid control blocks”,在其中拖拽 fb58到右側(cè)編程窗口中。填寫一個(gè)背景數(shù)據(jù)塊(例如db58 ),由于是新建的一個(gè) db塊,軟件會(huì)彈出如下窗口:圖 3 生成背景數(shù)據(jù)塊點(diǎn)擊“yes”即可生成一個(gè)用于fb58的背景數(shù)據(jù)塊。5 / 26 在塊(“ blocks ”)中找到剛生成的db塊,雙擊打開(kāi):圖 4 背景數(shù)據(jù)塊在背景數(shù)

7、據(jù)塊中可以直接修改相關(guān)的控制參數(shù),然后點(diǎn)擊工具欄上的按鈕來(lái)下載參數(shù)。如果需要查看更加具體的參數(shù)信息,可以切換到數(shù)據(jù)視圖:圖 5 切換到數(shù)據(jù)視圖在數(shù)據(jù)視圖中,可以點(diǎn)擊工具欄上的來(lái)進(jìn)行在線監(jiān)控。2.2 過(guò)程值的處理在 fb58中,對(duì)模擬量的處理遵照如下流程圖:圖 6 過(guò)程值處理流程如圖中所示, fb58提供有兩個(gè)過(guò)程值的輸入通道:pv_in和 pv_per ,這兩個(gè)通道用 pvper_on來(lái)選擇:表 1 pvper_on 參數(shù)過(guò)程值輸入true 模擬量輸入通道的數(shù)值直接從pv_per 輸入false 過(guò)程量以浮點(diǎn)型數(shù)據(jù)從pv_in輸入注:pvper_on的默認(rèn)值為 false 。對(duì)于 pv_per

8、 的輸入,根據(jù)溫度測(cè)量方式的不同,從模擬量輸入通道過(guò)來(lái)的數(shù)據(jù)格式也有所不同,因此,6 / 26 fb58提供過(guò)程值格式轉(zhuǎn)換的環(huán)節(jié)crp_in ,其中涉及到參數(shù)per_mode:表 2 per_mode 參數(shù)轉(zhuǎn)換方式單位0pv_per*0.1 / 1pv_per*0.01 / 2pv_per*100/27648/ 電流百分?jǐn)?shù) % 注:per_mode的默認(rèn)值為 0。從圖 1 中的處理流程中可以看到經(jīng)過(guò)crp_in之后,還有一個(gè)規(guī)格化( normalize)的環(huán)節(jié) pv_norm。該環(huán)節(jié)可以對(duì)過(guò)程值進(jìn)行修正,對(duì)于溫度值,可以規(guī)格化為百分比值,同樣地,百分比的值也可以規(guī)格化為溫度值。其轉(zhuǎn)換公式是:p

9、v_norm的輸出 = cpr_in 的輸出 *pv_fac+pv_offs 例如,通過(guò)溫度變送器將一個(gè) - 2001000范圍里的溫度值以420ma 的信號(hào)送至模擬量輸入通道piw256中。在 fb58中設(shè)置pv_per = piw256 pvper_on = true per_mode = 2 7 / 26 pv_fac = 1.2 pv_offs = -200.0 通過(guò)如上的參數(shù)設(shè)置,則在“pv ”參數(shù)中得到一個(gè)溫度值。同樣地,此時(shí)的設(shè)定值 sp_int可以直接設(shè)置為溫度值。設(shè)定值 sp_int的取值由過(guò)程值的處理過(guò)程所決定,如果過(guò)程值經(jīng)過(guò)處理得到一個(gè)百分比的值,那么sp_int就是一個(gè)

10、量程的百分比;如果處理得到一個(gè)實(shí)際溫度值,那么設(shè)定值sp_int 也必須是一個(gè)溫度值。sp_int必須要有和過(guò)程值一樣的基本單位。2.3 pid 運(yùn)算pid 運(yùn)算是 fb58的運(yùn)算核心,主要通過(guò)對(duì)偏差信號(hào)(設(shè)定值s p_int-過(guò)程值 pv )進(jìn)行比例、積分、微分運(yùn)算來(lái)得到對(duì)閥門、變頻器等執(zhí)行機(jī)構(gòu)的控制信號(hào)。具體流圖如下圖所示:圖 7 pid 運(yùn)算流程從上述流程圖中有如下幾點(diǎn)信息:- 比例、積分和微分都是對(duì)比例和增益參數(shù)的乘積之積的運(yùn)算,其在時(shí)間域上的表達(dá)式為:8 / 26 - 特殊地,在積分時(shí)間 ti 和微分時(shí)間 td為 0 的時(shí)候,積分作用和微分作用被取消激活,此時(shí)為純比例控制;- 對(duì)于反

11、作用方式,需要將增益gain設(shè)置為負(fù)數(shù);- pfac_sp為比例弱化功能。 在設(shè)定值 sp_int發(fā)生階躍變化時(shí), 設(shè)置比例因子 pfac_sp ,從而達(dá)到減弱因?yàn)樵O(shè)定值修改而導(dǎo)致的不穩(wěn)定,該比例因子pfac_sp 的取值范圍是 0.01.0 ;- 對(duì)于積分作用,在 i_itl_on 為 1 的時(shí)候,積分結(jié)果就是i_itlval;- 積分功能中的 int_hpos 和 int_hneg 參數(shù)為正向積分功能保持和反向積分功能保持,如果此時(shí)偏差er 和增益 gain的乘積為正,且 int_hpos 為 true,那么此次運(yùn)算周期中積分的增加量為 0,即積分項(xiàng) lmn_i 的輸出不會(huì)改變。 int_

12、hneg 的作用與此類似。- 微分功能中的 d_f參數(shù)是微分因子,在微分運(yùn)算中和周期時(shí)間cycle 作用類似。2.4 手動(dòng)/ 自動(dòng)切換fb58的手動(dòng) / 自動(dòng)切換是通過(guò)參數(shù)man_on來(lái)完成的, 在 man_on 為 true 的時(shí)候,pid 處在手動(dòng)工作狀態(tài),此時(shí),手動(dòng)值通過(guò)參數(shù)man 給出。圖 8 控制輸出默認(rèn)情況下, lmn_hlm 和 lmn_llm 分別是 100.0 和 0.0 ,從上圖中可以看出,手動(dòng)值的有效數(shù)值范圍也應(yīng)該是 0.0100.0 。在參數(shù) man_on 為 false 的情況下, pid 投入運(yùn)行,控制回路處于自動(dòng)工作狀態(tài)。9 / 26 為了降低手動(dòng) / 自動(dòng)切換過(guò)

13、程中擾動(dòng),算法通過(guò)如下措施來(lái)實(shí)現(xiàn)無(wú)擾切換:- 在自動(dòng)的狀態(tài)下, 比例和積分的運(yùn)算結(jié)果之和會(huì)寫入到單元man 中,這樣在由自動(dòng)切換到手動(dòng)的過(guò)程中不會(huì)引起控制輸出波動(dòng);- 在手動(dòng)的狀態(tài)下,積分項(xiàng)的輸出等于man 的值減去比例項(xiàng)的值(偏差er*增益gain),而在自動(dòng)狀態(tài)中,積分項(xiàng)是一個(gè)累計(jì)的結(jié)果, 這樣在切換到自動(dòng)狀態(tài)時(shí)積分項(xiàng)不會(huì)有太大的突變。從上面的分析可以知道,fb58 已經(jīng)集成了相應(yīng)的無(wú)擾切換的功能,不需要編寫額外的程序來(lái)實(shí)現(xiàn)。2.5 保存和重新裝載參數(shù)保存和重新裝載控制器參數(shù)是fb58中的新功能,主要用來(lái)實(shí)現(xiàn)在多套參數(shù)之間的切換。圖 9 控制參數(shù)保存和重新裝載從上圖中可以看出,控制參數(shù)的處

14、理有三種方式:(1)從 pid_con/pi_con 中裝載要實(shí)現(xiàn)此裝載,必須滿足如下幾種條件:手動(dòng)控制狀態(tài)( man_on=true);pid_con.gain 或者 pi_con.gain 不為 0;load_pid 為 1 如果參數(shù) pid_on 為 1,則從 pid_con 中裝載如下參數(shù):gain 、ti 、td ,并計(jì)算 conzone=250.0/gain 10 / 26 如果參數(shù) pid_on 為 0,則從 pi_con 中裝載如下參數(shù):gain 、ti、td ,并計(jì)算 conzone=250.0/gain。特殊地,此時(shí)會(huì)關(guān)閉控制帶功能,即設(shè)置 con_zone 參數(shù)為 0,并

15、讓微分參數(shù)td設(shè)置為 0.0 。裝載完成之后,參數(shù)load_pid 會(huì)自動(dòng)復(fù)位。值得注意的是,如果pid_con 中保存的增益參數(shù)pid_con.gain 為 0,則自動(dòng)會(huì)修改 pid_on為 0,并轉(zhuǎn)而從 pi_con 中獲取參數(shù)。注:pid_con/pi_con 中的參數(shù)來(lái)自于自整定過(guò)程。(2)保存參數(shù)保存參數(shù)可以在任何工作狀態(tài)下進(jìn)行,只需設(shè)置參數(shù)save_par 為 1 即可??梢詫⑷缦聟?shù)保存找par_save 結(jié)構(gòu)體中:pfac_sp 、gain 、ti、td 、d_f 、conz_on、con_zone 在保存結(jié)束之后,參數(shù)位save_par 會(huì)自動(dòng)復(fù)位。(3)重新裝載參數(shù)重新裝載

16、是“保存參數(shù)”的逆過(guò)程,但其執(zhí)行是需要條件的:手動(dòng)控制狀態(tài)( man_on=true);par_save.gain 不為 0;參數(shù) undo_par為 1。在重新裝載完成之后,參數(shù)undo_par會(huì)自動(dòng)復(fù)位。3 高級(jí)功能3.1 控制帶溫度控制回路是一個(gè)有明顯滯后特性的對(duì)象,這給實(shí)際的調(diào)節(jié)過(guò)程帶來(lái)了很多的問(wèn)題,最顯著的困難就是11 / 26 在過(guò)程值偏離設(shè)定值較大時(shí), 調(diào)節(jié)過(guò)程過(guò)于緩慢, 而在接近設(shè)定值時(shí)容易出現(xiàn)較大的超調(diào)。從上述的兩個(gè)問(wèn)題出發(fā),pid應(yīng)該滿足這樣的功能:- 在偏差超過(guò)一定的范圍時(shí), pid 輸出最大或者最小的調(diào)節(jié)量,讓溫度值快速回到一個(gè)小的范圍中,以縮短回路的調(diào)節(jié)時(shí)間;- 在設(shè)

17、定值附近時(shí),越靠近調(diào)節(jié)量變化越小,以防止超調(diào)。為此,fb58提供了一個(gè)“控制帶 (control zone)”功能,其工作原理是這樣的:- 當(dāng)過(guò)程值 pv大于設(shè)定值 sp_int ,且偏差的絕對(duì)值超過(guò)con_zone,則以輸出下限 lmn_llm 作為輸出值;- 當(dāng)過(guò)程值 pv小于設(shè)定值 sp_int ,且偏差的絕對(duì)值超過(guò)con_zone,則以輸出上限 lmn_hlm 作為輸出值;- 如果偏差的絕對(duì)值小于co n_zone,則以實(shí)際 pid 的計(jì)算結(jié)果作為輸出值。圖 10 控制帶(正作用情況下,即gain0.0)默認(rèn)參數(shù)中 lmn_llm 是 0.0 ,lmn_hlm 是 100.0,控制帶使

18、能位 conz_on是 false,控制帶范圍是100.0 。12 / 26 如上圖所示的控制帶解決了在偏差較大時(shí)pid 調(diào)節(jié)過(guò)于緩慢的問(wèn)題, 但在控制帶范圍中要避免因大滯后導(dǎo)致的超調(diào), 需要弱化 pid 的輸出,要實(shí)現(xiàn)這個(gè)功能, 可以通過(guò)降低比例參數(shù)和增加微分作用。在同樣的偏差情況下,比例增益越小, pid輸出變化越緩慢。微分作用簡(jiǎn)單來(lái)看就是通過(guò)偏差的變化量來(lái)調(diào)節(jié),在接近設(shè)定值的過(guò)程中, 溫度變化速度在逐步變慢, 此時(shí)的微分作用可以起到弱化控制輸出的功能,進(jìn)而達(dá)到減少超調(diào)的目的。 因此,推薦控制帶在有微分作用的前提下使用。參數(shù)裝載的過(guò)程也體現(xiàn)了這一點(diǎn):- 如果是裝載 pi_con下的參數(shù),因

19、為沒(méi)有微分功能,所以會(huì)設(shè)置conz_on為 false 。在使用過(guò)程中,控制帶參數(shù)con_zone應(yīng)該始終設(shè)置為一個(gè)大于等于0.0 的值,否則會(huì)導(dǎo)致 pid 運(yùn)算結(jié)果永遠(yuǎn)不會(huì)被執(zhí)行的故障現(xiàn)象。3.2 脈沖輸出方式和 fb41不同,fb58中集成有脈寬調(diào)制輸出的功能,通過(guò)將pid 的運(yùn)算結(jié)果換算成對(duì)應(yīng)的脈沖占空比來(lái)達(dá)到加熱 / 冷卻的控制。在 fb58的脈沖輸出環(huán)節(jié)中涉及到的關(guān)鍵參數(shù)有:pulse_on:脈沖輸出使能;per_tm:輸出脈沖的周期時(shí)間;cycle_p :脈沖輸出的刷新時(shí)間,推薦per_tm/cycle_p50,即將周期時(shí)間分為時(shí)間長(zhǎng)度為cycle_p 的“片”,在每個(gè) cycle

20、_p 時(shí)間間隔里,脈沖輸出單元運(yùn)算一次以判斷下一個(gè) cycle_p 中應(yīng)該輸出高電平還是低電平, per_tm 和 cycle_p 的比值越大,說(shuō)明輸出脈沖的精度就也高;例如當(dāng) pid 的計(jì)算輸出接近于100.0 時(shí),那么輸出的脈沖中低電平時(shí)間13 / 26 接近于 0,針對(duì)執(zhí)行機(jī)構(gòu)而言,其需要在極短的時(shí)間里關(guān)斷,然后再打開(kāi),這會(huì)嚴(yán)重縮短設(shè)備的工作壽命,為此,通過(guò)設(shè)置最小脈沖斷開(kāi)/ 脈沖時(shí)間就可以避免此問(wèn)題。當(dāng)需要輸出的高電平時(shí)間小于 p_b_tm 時(shí),則不會(huì)輸出這個(gè)高電平;當(dāng)需要輸出的高電平時(shí)間大于周期時(shí)間per_tm-p_b_tm 時(shí),則整個(gè)周期都輸出高電平。 p_b_tm 設(shè)置的過(guò)長(zhǎng),可

21、以降低對(duì)執(zhí)行機(jī)構(gòu)的沖擊,但會(huì)影響輸出脈沖和整個(gè)回路的控制精度;設(shè)置的過(guò)短,則對(duì)執(zhí)行機(jī)構(gòu)不利。圖 11 脈沖輸出如上圖所示, lmnn 為 pid 的運(yùn)算結(jié)果,通過(guò)和脈沖周期時(shí)間per_tm 相乘得到高電平的輸出時(shí)間:脈寬=lmnn*per_tm/100 脈沖輸出單元每次執(zhí)行都累加一個(gè)cycle_p ,通過(guò)判斷累加值和脈寬,或者和周期與脈寬差值的比較來(lái)改變輸出點(diǎn)的狀態(tài)。3.2.1 脈沖輸出和 pid 運(yùn)算在 fb58中,脈沖輸出和 pid 計(jì)算是兩個(gè)相對(duì)獨(dú)立的過(guò)程,各自有自己的計(jì)算周期。對(duì)于 pid 計(jì)算來(lái)說(shuō),cycle 參數(shù)可以看成是 pid 計(jì)算的循環(huán)周期時(shí)間,例如pid在 ob35每次執(zhí)行

22、過(guò)程中都會(huì)被調(diào)用,而硬件組態(tài)過(guò)程中 ob35的周期時(shí)間被設(shè)置成了500ms ,則 cycle 應(yīng)該填寫為 0.5 。對(duì)于脈沖輸出來(lái)說(shuō),其循環(huán)周期時(shí)間是 cycle_p。這兩個(gè)時(shí)間參數(shù)可以一樣,也可以不一樣。pid 的計(jì)算周期主要由被測(cè)量的變化規(guī)律決定的,而脈沖輸出的cycle_p 參數(shù)由要求的脈沖輸出精度決定。為了協(xié)調(diào) pid 和脈沖輸出之間的矛盾,fb58提供了“ select ”參數(shù),其具體使用如下所示:表 3 select的參數(shù)配置14 / 26 塊調(diào)用功能s7-300 和 s7-在周期性中斷 ob中通過(guò)在同一個(gè)周期性中斷ob中中,脈沖發(fā)生器采樣時(shí)間select=0 進(jìn)行調(diào)用執(zhí)行控制程序

23、段和脈沖輸出cycle_p=100 毫秒)s7-300 中, 脈沖發(fā)生器采在 ob1中通過(guò) select=1 執(zhí)行在 ob1中執(zhí)行控制程序段條件調(diào)用cycle_p=10 毫秒)( qc_act=true)在周期性中斷 ob中通過(guò)在周期性中斷ob中執(zhí)行脈select=2 進(jìn)行調(diào)用沖輸出s7-400 中,脈沖發(fā)生器采在低速周期性中斷ob中通過(guò)在低速周期性中斷ob中執(zhí)(例 select=3 進(jìn)行調(diào)用行控制程序段cycle_p=10 毫秒)在高速周期性中斷ob中通過(guò)在高速周期性中斷ob中執(zhí)select=2 進(jìn)行調(diào)用行控制程序段根據(jù)上表描述, fb58的調(diào)用可以有如下三種情況:(1)select=0 ,

24、fb58只在周期中斷 ob (例如 ob35 )中調(diào)用15 / 26 此時(shí)的參數(shù)配置應(yīng)該將cycle_p 和周期中斷 ob的中斷時(shí)間保持一致。因?yàn)閜id計(jì)算的執(zhí)行條件是cycle_p 的累計(jì)值和 cycle 參數(shù)一致,而脈沖輸出周期per_tm 則應(yīng)該 cycle_p的整數(shù)倍,和 cycle 無(wú)關(guān)。例如,在 ob35中調(diào)用 fb58 ,ob35的周期時(shí)間為 50ms ,fb58中的 cycle_p 是 0.05s,cycle 是 1.0s ,per_tm 是 3.0s 。觀察參數(shù)之間的關(guān)系, cycle 是 cycle_p 的 20 倍,即 ob35每 20個(gè)周期執(zhí)行一次 fb58里的 pid

25、 計(jì)算,而輸出的脈沖周期是3 秒鐘。(2)fb58分別在 ob1和周期中斷 ob (例如 ob35 )中調(diào)用在兩個(gè) ob塊中調(diào)用的 fb58使用同樣的背景數(shù)據(jù)塊和參數(shù),只是select 參數(shù)有所不同,在 ob1中調(diào)用,select 設(shè)置為 1;在周期中斷 ob中調(diào)用, select 設(shè)置為 2。為了縮短 ob1執(zhí)行時(shí)間,可以通過(guò) fb58背景數(shù)據(jù)塊中的“ qc_act”來(lái)選擇是否執(zhí)行fb58 ,當(dāng) qc_act 為 true 時(shí),執(zhí)行,否則跳過(guò)。在這種方式下,處理原理同(1)一致,不同的是pid 運(yùn)算總是在 ob1中執(zhí)行罷了。ob1的執(zhí)行周期對(duì) pid 運(yùn)算、脈沖輸出均沒(méi)有影響。(3)fb58

26、在兩個(gè)不同周期時(shí)間的周期中斷ob (例如 ob32和 ob35 )中調(diào)用fb58分別在兩個(gè)周期中斷ob中調(diào)用,其中周期時(shí)間長(zhǎng)的ob中調(diào)用的 fb58的 select 參數(shù)設(shè)置為 3,時(shí)間短的設(shè)置為 2。同前面兩種情況不一樣, select 選擇為 3 時(shí),pid 的運(yùn)算只和調(diào)用周期有關(guān)。 例如 ob32定義的周期時(shí)間是 1000ms ,ob35的周期時(shí)間是 100ms ,cycle_p 是 0.02s ,per_tm 是 1.0s 。這樣在 ob32中定義16 / 26 select 參數(shù)為 3,則每 1 秒鐘就執(zhí)行一次 pid運(yùn)算,并不是由 cycle 和 cycle_p的關(guān)系來(lái)決定。3.2

27、.2 參數(shù)設(shè)置的經(jīng)驗(yàn)法則前面的描述說(shuō)明了cycle/cycle_p/per_tm之間的關(guān)系,對(duì)于具體的參數(shù)設(shè)置,可以有如下幾條法則:( 1)cycle 時(shí)間不能超過(guò)積分時(shí)間ti 的 10% ;(2)為了保證控制精度,脈沖周期時(shí)間per_tm 應(yīng)該至少是 cycle_p 的 50 倍;(3)脈沖周期時(shí)間 cycle 不能超過(guò)積分時(shí)間ti 的 5% 。4 自整定功能fb58的背景數(shù)據(jù)塊中集成了控制器參數(shù)整定的功能,打開(kāi)db塊,點(diǎn)擊工具欄的按鈕,使 db塊在線:17 / 26 圖 12 背景數(shù)據(jù)塊的參數(shù)分配視圖的在線背景數(shù)據(jù)塊在線之后,可以看到,相關(guān)的參數(shù)均能讀取。點(diǎn)擊菜單項(xiàng)“options ”下的

28、“controller tuning.”,即可開(kāi)始整定:圖 13 選擇控制器整定菜單控制器整定的向?qū)б还灿? 步,第一步是簡(jiǎn)單的功能介紹:圖 14 功能介紹點(diǎn)擊“next”,進(jìn)入下一步:圖 15 控制器類型選擇18 / 26 在該窗口中選擇是pid 控制還是 pi 控制,該選項(xiàng)對(duì)應(yīng)“ pid_on ”參數(shù),如果選擇“pid parameters ”,則在點(diǎn)擊“next”之后, pid_on 會(huì)置位。圖 16 整定激勵(lì)方法選擇19 / 26 fb58提供兩種整定激勵(lì),一種是修改設(shè)定值,接近工作點(diǎn)(tune by approaching the operating point with a set

29、point step change),另一種是沒(méi)有設(shè)定值階躍變化, 只在工作點(diǎn)整定 (tune at the operting point by setting a start bit )。選擇第一種,然后點(diǎn)擊“ next”:圖 17 修改設(shè)定值下的激勵(lì)參數(shù)選擇修改設(shè)定值的激勵(lì)方式, 則需要在上圖所示的窗口中填寫新的設(shè)定值和手動(dòng)值偏差,其中的手動(dòng)值偏差對(duì)應(yīng)的就是參數(shù)tun_dlmn。 默認(rèn)情況下,設(shè)定值是當(dāng)前 db塊中的實(shí)際設(shè)定值,所以要觸發(fā)整定,必須修改這個(gè)設(shè)定值!這種修改設(shè)定值的激勵(lì)方式的工作原理如下圖所示:20 / 26 圖 18 修改設(shè)定值的激勵(lì)方式尋找拐點(diǎn)是整定過(guò)程中的關(guān)鍵, 如果設(shè)

30、定值的階躍變化過(guò)小, 則可能在過(guò)程值(圖中虛線)變化過(guò)程中不會(huì)出現(xiàn)拐點(diǎn);相反地,如果設(shè)定值的階躍變化過(guò)大,則可能會(huì)造成大的超調(diào),對(duì)系統(tǒng)不利。如果選擇沒(méi)有設(shè)定值階躍變化的整定方式,則激勵(lì)參數(shù)是這樣的:圖 19 無(wú)設(shè)定值階躍變化下的激勵(lì)參數(shù)對(duì)比兩種窗口, 可以發(fā)現(xiàn)在無(wú)設(shè)定值階躍變化的方式下,設(shè)定值是不可設(shè)的, 而且手動(dòng)值偏差也是默認(rèn)為20% 。這種方式下的整定按照如下圖所示的流程:21 / 26 圖 20 無(wú)設(shè)定值階躍變化的激勵(lì)方式從上圖中可以清楚地看到, 整個(gè)整定過(guò)程中, 設(shè)定值并沒(méi)有發(fā)生改變, 只是輸出值 lmn 有一個(gè)變化量tun_dl 22 / 26 mn ,在這個(gè)變化量的促使下, 過(guò)程中

31、出現(xiàn)波動(dòng), 等檢測(cè)到拐點(diǎn)之后, 變化量消失,系統(tǒng)重新恢復(fù)到設(shè)定值上來(lái)。不論哪一種激勵(lì)方式,在完成配置后點(diǎn)擊“next”,都是開(kāi)始控制器整定:圖 21 控制器整定過(guò)程整定過(guò)程分為 7 個(gè)階段,從參數(shù) phase 的值中可以讀出, 不同階段的工作內(nèi)容有所不同:描述無(wú)整定檢查參數(shù)、等待激勵(lì)、測(cè)量采樣時(shí)間檢測(cè)過(guò)程值上的拐點(diǎn)過(guò)程參數(shù)的計(jì)算,保存整定前的參數(shù)控制器設(shè)計(jì)處理新的調(diào)節(jié)量檢測(cè)過(guò)程類型注意,整定過(guò)程沒(méi)有階段6。整定過(guò)程中的狀態(tài)在變量status_h 中顯示,具體錯(cuò)誤代碼對(duì)應(yīng)的含義如下表所示:表 5 整定狀態(tài)代碼status_h 診斷消具體的錯(cuò)誤信息可以查看相關(guān)手冊(cè)。除了 status_h 之外,從

32、參數(shù) status_d 中可以顯示出整定到的系統(tǒng)類型,具體的參數(shù)數(shù)值和系統(tǒng)類型的對(duì)應(yīng)關(guān)系,請(qǐng)參看具體手冊(cè)描述。如果整定順利完成,即status_h 為 10000,優(yōu)化得到的 pid 參數(shù)會(huì)自動(dòng)寫入到相應(yīng)單元中,原有的參數(shù)23 / 26 會(huì)自動(dòng)保存到 par_save 的結(jié)構(gòu)體中。在圖 10 中如果選擇為“pid parameters ” ,那整定得到的參數(shù)同時(shí)還會(huì)保存到 pid_con 結(jié)構(gòu)體中,同樣地,選擇為“pi parameters ”,則會(huì)保存在pi_con 中。5 背景數(shù)據(jù)塊如下是 fb58常用參數(shù)表:名稱類型初始值注釋pv_in輸入 0.0 實(shí)數(shù)類型過(guò)程值輸入pv_per 輸入

33、0整數(shù)類型過(guò)程值輸入disv輸入 0.0 干擾補(bǔ)償int_hpos 輸入 false 正向積分保持開(kāi)啟int_hneg 輸入 false 反向積分保持開(kāi)啟select 輸入 0pid功能和脈沖功能的選擇pv輸入 0.0 過(guò)程值lmn 輸出 0.0 實(shí)數(shù)類型的 pid輸出控制量lmn_per 輸出 0 整數(shù)類型的 pid輸出控制量qpulse 輸出 false 輸出脈沖信號(hào)qlmn_hlm輸出 false 控制量到達(dá)上限qlmn_llm輸出 false 控制量到達(dá)下限qc_act 輸出 true 下一周期 pid是否執(zhí)行cycle 輸入_輸出 0.1pid 計(jì)算的周期時(shí)間cycle_p 輸入_輸出 0.02 脈沖輸出的刷新時(shí)間sp_int輸入_輸出 0 設(shè)定值com_rst輸入_輸出 false 復(fù)位24 / 26 man_on 輸入_輸出 true 手/ 自動(dòng),默認(rèn)為手動(dòng)deadb_w靜態(tài)變量 0.0 偏差死區(qū)i_itlval 靜態(tài)變量 0.0 初始積分值lmn_hlm 靜態(tài)變量 100.0 控制量上限lmn_llm 靜態(tài)變量 0.0 控制量下限pv_fac 靜態(tài)變量 1.0 過(guò)程值轉(zhuǎn)換因子pv_offs 靜態(tài)變量 0.0 過(guò)程值轉(zhuǎn)換偏移量lmn_fac 靜態(tài)變量 1.0 輸出控制量轉(zhuǎn)換因子l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論