三亞市西門(mén)子中國(guó)總代理三亞市西門(mén)子中國(guó)總代理
模糊控制的基本思想是總結(jié)操作人員的操作經(jīng)驗(yàn),用表格的方法實(shí)現(xiàn)非線性控制。模糊控制的精度差,穩(wěn)態(tài)誤差大,一般還需要和PID結(jié)合來(lái)減小誤差。有很多人(大量的雜志上的文章)實(shí)際上并不是這樣做的,他們的模糊控制是建立在書(shū)上現(xiàn)成的模糊控制表或曲線的。我不太看好模糊控制的實(shí)用性,現(xiàn)在實(shí)際使用的閉環(huán)控制絕大多數(shù)還是PID。 用過(guò)S7-200和S7-200 SMART的PID調(diào)節(jié)控制面板和PID參數(shù)自整定功能,被控制對(duì)象采用我編寫(xiě)的子程序來(lái)模擬。被控對(duì)象的參數(shù)如下:增益為3.0,兩個(gè)慣性環(huán)節(jié)的時(shí)間常數(shù)為5s和2s。
搞清楚PID參數(shù)的物理意義,和PID參數(shù)與閉環(huán)系統(tǒng)性能指標(biāo)的關(guān)系,對(duì)于指導(dǎo)我們調(diào)節(jié)PID至關(guān)重要。 PID的控制原理可以用人對(duì)爐溫的手動(dòng)控制來(lái)理解。首先看看比例部分的作用。數(shù)組的一個(gè)很重要的作用是定義數(shù)據(jù)塊的大小。數(shù)據(jù)中的變量需要先定義,后使用。使用數(shù)據(jù)塊中的變量超出了定義的范圍時(shí),將會(huì)出錯(cuò)。假設(shè)需要用數(shù)據(jù)塊來(lái)保存1000個(gè)歷史數(shù)據(jù),分別定義1000個(gè)變量是不可想象的艱巨任務(wù)。在數(shù)據(jù)塊中定義名稱為XYZ的數(shù)組ARRAY[1..1000] INT,就可以輕而易舉的解決這個(gè)難題??梢杂肵YZ[abcd](abcd為數(shù)組元素的下標(biāo))來(lái)訪問(wèn)數(shù)組中的元素。雖然定義的數(shù)組元素的數(shù)據(jù)類型為INT,也可以用數(shù)據(jù)塊中的地址按位、字節(jié)、字和雙字來(lái)訪問(wèn)數(shù)據(jù)塊中的地址。
搞清楚PID參數(shù)的物理意義,和PID參數(shù)與閉環(huán)系統(tǒng)性能指標(biāo)的關(guān)系,對(duì)于指導(dǎo)我們調(diào)節(jié)PID至關(guān)重要。首先看看比例部分的作用。PID的控制原理可以用人對(duì)爐溫的手動(dòng)控制來(lái)理解。操作人員用眼睛讀取數(shù)字儀表檢測(cè)到的爐溫的測(cè)量值,并與爐溫的設(shè)定值比較,得到溫度的誤差值。用手操作電位器,調(diào)節(jié)加熱的電流,使?fàn)t溫保持在設(shè)定值附近。操作人員知道使?fàn)t溫穩(wěn)定在設(shè)定值時(shí)電位器的位置(我們將它稱為位置L),并根據(jù)當(dāng)時(shí)的溫度誤差值調(diào)整電位器的轉(zhuǎn)角。爐溫小于設(shè)定值時(shí),在位置L的基礎(chǔ)上順時(shí)針增大電位器的轉(zhuǎn)角,以增大加熱的電流;爐溫大于設(shè)定值時(shí),在位置L的基礎(chǔ)上反時(shí)針減小電位器的轉(zhuǎn)角,以減小加熱的電流。令調(diào)節(jié)后的電位器轉(zhuǎn)角與位置L的差值與誤差成正比,誤差值越大,調(diào)節(jié)的角度越大。上述控制策略就是比例控制。 閉環(huán)中存在著各種各樣的延遲作用。調(diào)節(jié)電位器轉(zhuǎn)角后,到溫度上升到新的轉(zhuǎn)角對(duì)應(yīng)的穩(wěn)態(tài)值時(shí)有較大的延遲。由于延遲因素的存在,調(diào)節(jié)電位器轉(zhuǎn)角后不能馬上看到調(diào)節(jié)的效果,因此閉環(huán)控制系統(tǒng)調(diào)節(jié)困難的主要原因是系統(tǒng)中的延遲作用。如果增益太小,調(diào)節(jié)的力度不夠,使溫度的變化緩慢,調(diào)節(jié)時(shí)間過(guò)長(zhǎng)。如果增益過(guò)大,調(diào)節(jié)力度太強(qiáng),造成調(diào)節(jié)過(guò)頭,可能使溫度忽高忽低,來(lái)回震蕩。如果閉環(huán)系統(tǒng)沒(méi)有積分作用,單純的比例控制有穩(wěn)態(tài)誤差,穩(wěn)態(tài)誤差與增益成反比。增益越大,穩(wěn)態(tài)誤差越小,但是會(huì)使超調(diào)量增大,振蕩次數(shù)增加,甚至?xí)归]環(huán)系統(tǒng)不穩(wěn)定。因此單純的比例控制很難兼顧動(dòng)態(tài)性能和靜態(tài)性能。
STEP7 V12中的數(shù)據(jù)類型轉(zhuǎn)換 1.?dāng)?shù)據(jù)類型轉(zhuǎn)換的分類 在STEP7 V12中,分配或提供塊參數(shù)的實(shí)參時(shí),必須確保數(shù)據(jù)類型是兼容的。如果操作數(shù)不是同一數(shù)據(jù)類型,則必須進(jìn)行轉(zhuǎn)換。 數(shù)據(jù)類型的轉(zhuǎn)換方式分為隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。 如果操作數(shù)的數(shù)據(jù)類型是兼容的,則自動(dòng)執(zhí)行隱式轉(zhuǎn)換。編程語(yǔ)言 LAD、FBD、SCL 和 GRAPH 支持隱式轉(zhuǎn)換。STL不支持隱式轉(zhuǎn)換。 2.IEC檢查 IEC檢查用于操作數(shù)的數(shù)據(jù)類型兼容性檢查。如果“IEC 檢查”,則應(yīng)用較嚴(yán)格的條件。 1)為項(xiàng)目中的所有新塊設(shè)置IEC檢查: 在設(shè)置窗口的“PLC 編程 > 常規(guī)”組的“新塊的默認(rèn)設(shè)置”組中,選中或清除“IEC檢查”復(fù)選框。 2)為某個(gè)塊設(shè)置IEC檢查: 打開(kāi)塊,打開(kāi)窗口的“屬性”選項(xiàng)卡。在區(qū)域?qū)Ш街羞x擇“常規(guī)”組的“屬性”,選中或清除“IEC檢查”復(fù)選框。 3.隱形轉(zhuǎn)換 隱形轉(zhuǎn)換可以根據(jù)設(shè)定的嚴(yán)格或較寬松的條件來(lái)進(jìn)行兼容性測(cè)試。 1) 進(jìn)行 IEC 檢查 在已經(jīng)設(shè)置了IEC檢查的情況下,下列規(guī)則適用于LAD、FBD和GRAPH 編程語(yǔ)言: 可以進(jìn)行隱式轉(zhuǎn)換的數(shù)據(jù)類型僅有BYTE和WORD。 源數(shù)據(jù)類型的位長(zhǎng)度不能超過(guò)目標(biāo)數(shù)據(jù)類型的位長(zhǎng)度。例如,無(wú)法為預(yù)計(jì)為 BYTE 數(shù)據(jù)類型的參數(shù) WORD 數(shù)據(jù)類型的操作數(shù)。 在已經(jīng)設(shè)置了IEC 檢查的情況下,下列規(guī)則適用于SCL編程語(yǔ)言: 無(wú)法將位字符串隱式轉(zhuǎn)換為其它數(shù)據(jù)類型。例如,無(wú)法為預(yù)計(jì)為 INT 數(shù)據(jù)類型的參數(shù) WORD數(shù)據(jù)類型的操作數(shù)。 源數(shù)據(jù)類型的位長(zhǎng)度不能超過(guò)目標(biāo)數(shù)據(jù)類型的位長(zhǎng)度。例如,無(wú)法為預(yù)計(jì)為 BYTE 數(shù)據(jù)類型的參數(shù) WORD 數(shù)據(jù)類型的操作數(shù)。 2) 不進(jìn)行IEC檢查(默認(rèn)的設(shè)置) 在未設(shè)置 IEC 檢查的情況下,下列規(guī)則適用于 LAD、FBD 和 GRAPH 編程語(yǔ)言: 可以對(duì) BYTE、WORD、DWORD、INT、DINT、TIME、S5TIME、TOD、DATE 和 CHAR 數(shù)據(jù)類型進(jìn)行隱式轉(zhuǎn)換。
源數(shù)據(jù)類型的位長(zhǎng)度不能超過(guò)目標(biāo)數(shù)據(jù)類型的位長(zhǎng)度。 例如,無(wú)法為預(yù)計(jì)為 WORD 數(shù)據(jù)類型的參數(shù) DWORD 數(shù)據(jù)類型的操作數(shù)。 在未設(shè)置 IEC 檢查的情況下,下列規(guī)則適用于 SCL 編程語(yǔ)言: 位字符串可以被隱式轉(zhuǎn)換為其它數(shù)據(jù)類型。例如,可以對(duì)預(yù)期為 WORD 數(shù)據(jù)類型的參數(shù)提供 WORD 數(shù)據(jù)類型的操作數(shù)。 位字符串無(wú)法被隱式轉(zhuǎn)換為浮點(diǎn)數(shù)。例如,無(wú)法為預(yù)計(jì)為 REAL 數(shù)據(jù)類型的參數(shù) WORD 數(shù)據(jù)類型的操作數(shù)。 如果位長(zhǎng)度相同,那么位字符串只能被隱式轉(zhuǎn)換為 TIME、TOD、DATE 和 CHAR 數(shù)據(jù)類型。例如,無(wú)法為預(yù)計(jì)為 DATE 數(shù)據(jù)類型的參數(shù) DWORD 數(shù)據(jù)類型的操作數(shù)。 源數(shù)據(jù)類型的位長(zhǎng)度不能超過(guò)目標(biāo)數(shù)據(jù)類型的位長(zhǎng)度。 例如,無(wú)法為預(yù)計(jì)為 INT 數(shù)據(jù)類型的參數(shù) DINT 數(shù)據(jù)類型的操作數(shù)。 在到達(dá)/離去參數(shù)處輸入的操作數(shù)位長(zhǎng)度必須與為所述參數(shù)設(shè)定的位長(zhǎng)度相同。 4.顯式轉(zhuǎn)換 如果因操作數(shù)不兼容而不能進(jìn)行隱式轉(zhuǎn)換,則可以使用顯式轉(zhuǎn)換指令??梢栽?ldquo;指令”任務(wù)卡中找到轉(zhuǎn)換指令。 在使能輸出 ENO 上將顯示所有溢出。例如,如果源數(shù)據(jù)類型的值大于目標(biāo)數(shù)據(jù)類型的值,則會(huì)發(fā)生溢出。 STEP7 V12的在線幫助給出了S7-300/400、S7-1500和S7-1200設(shè)置或未設(shè)置IEC檢查時(shí),各種數(shù)據(jù)類型相互之間是否允許隱式轉(zhuǎn)換或顯示轉(zhuǎn)換的詳細(xì)信息,并給出了顯式轉(zhuǎn)換使用的指令。 PLC技術(shù)是以計(jì)算機(jī)技術(shù)的發(fā)展為依托的,而高級(jí)語(yǔ)言的變化和發(fā)展恰恰體現(xiàn)和運(yùn)用了計(jì)算機(jī)技術(shù)的進(jìn)步,所以PLC的設(shè)計(jì)和運(yùn)行機(jī)理,也參照了高級(jí)語(yǔ)言的制定規(guī)則以及使用方法.
簡(jiǎn)單的以非安全數(shù)據(jù)類型的C語(yǔ)言舉例說(shuō)明,如C語(yǔ)言中如果在一個(gè)函數(shù)的聲明中不顯示地聲明返回值的類型,它就默認(rèn)返回。具體這個(gè)函數(shù)能不能實(shí)現(xiàn)你原本的預(yù)期,返回一個(gè)你希望看到的“數(shù)據(jù)類型”,那就要取決于編譯器的“心情”。在程序中,不建議使用隱式聲明,一方面它會(huì)有存在“非預(yù)期值”的隱患,另一方面也不利于程序清楚地表達(dá)我們的意圖。再有函數(shù)的返回值問(wèn)題,不管FC執(zhí)行的怎么樣,多少都要給個(gè)確定的值,不管是1是0還是-1,還是多少多少,這有點(diǎn)像人家借了你的錢,到了原本約定的日子,卻什么動(dòng)靜都沒(méi)有,不見(jiàn)錢,也不見(jiàn)句話,這就鬧心了!
而PLC中,如數(shù)據(jù)傳送指令,在S7-200系列中,傳送命令有,MOVB,MOVW,MOVD,對(duì)不同數(shù)據(jù)長(zhǎng)度的數(shù)據(jù)類型作處理,而到了S7-300/400系列,只有一個(gè)MOVE命令,其輸入IN對(duì)應(yīng)數(shù)據(jù)類型有,BYTE,WORD,DOUBLE WORD,在STL模式下,我們知道和MOVE的功能相同的指令是裝載L和傳送T,其中關(guān)鍵是要用到一個(gè)叫“累加器”的類似“中間人”“中介”的32位寄存器,為什么是32位?因?yàn)樗駛€(gè)大口袋一樣,可以把BYTE,WORD,DOUBLE WORD統(tǒng)統(tǒng)裝得下。當(dāng)把一個(gè)雙字D傳送入一個(gè)字W,由于內(nèi)存地址溢出,這時(shí)W中的數(shù)據(jù)是不是我們?cè)鞠胍獋魉偷腄中的數(shù)據(jù),這就要看原本數(shù)據(jù)的大小了,這里我們可以看出,在這里數(shù)據(jù)的類型(或者說(shuō)叫長(zhǎng)度)取決于對(duì)這個(gè)數(shù)據(jù)操作時(shí)存儲(chǔ)它使用的存儲(chǔ)空間有多大。