一種用于轉(zhuǎn)臺的分層虛閉環(huán)控制方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及伺服系統(tǒng)控制技術(shù)領(lǐng)域,具體涉及一種用于轉(zhuǎn)臺的分層虛閉環(huán)控制方法及系統(tǒng)。
【背景技術(shù)】
[0002]轉(zhuǎn)臺作為一種典型的伺服控制系統(tǒng),也是由典型的位置環(huán)、速度環(huán)、電流環(huán)三環(huán)閉環(huán)系統(tǒng)組成,具有高精度、高帶寬的特點(diǎn)。其典型的控制回路結(jié)構(gòu)如圖1所示,可以看到,位置環(huán)的輸出作為速度環(huán)的輸入,速度環(huán)的輸出作為電流環(huán)的輸入。因而位置環(huán)是速度環(huán)的外環(huán),速度環(huán)是位置環(huán)的內(nèi)環(huán);速度環(huán)是電流環(huán)的外環(huán),電流環(huán)是速度環(huán)的內(nèi)環(huán);電流環(huán)正常工作是速度環(huán)正常工作的前提,而速度環(huán)正常工作又是位置環(huán)正常工作的前提。
[0003]傳統(tǒng)的轉(zhuǎn)臺閉環(huán)控制方法的流程如圖2所示,可以看到,位置環(huán)閉環(huán)函數(shù)Task_Pos_Ctrl在內(nèi)部調(diào)用速度環(huán)閉環(huán)函數(shù)Task_Vel_Ctrl,速度環(huán)閉環(huán)函數(shù)調(diào)用數(shù)模轉(zhuǎn)換函數(shù)DA(數(shù)模轉(zhuǎn)換函數(shù)用于電流環(huán)閉環(huán)),閉環(huán)函數(shù)之間存在嵌套關(guān)系。在調(diào)試過程中,在內(nèi)環(huán)還沒有完成閉環(huán)的情況下,貿(mào)然進(jìn)行外環(huán)的閉環(huán),就極有可能造成飛車。在調(diào)試過程中,如果某環(huán)的閉環(huán)性能不佳,可能還要反過頭來重新調(diào)試內(nèi)環(huán),必須對外環(huán)進(jìn)行屏蔽,調(diào)試過程中必須要修改程序。另外,傳統(tǒng)轉(zhuǎn)臺閉環(huán)方法在模式切換中存在著問題。當(dāng)從內(nèi)環(huán)閉環(huán)模式向外環(huán)閉環(huán)模式進(jìn)行切換的時候,例如速度環(huán)模式向位置環(huán)模式切換,位置環(huán)閉環(huán)函數(shù)的參數(shù)沒有跟隨轉(zhuǎn)臺的運(yùn)動狀態(tài)進(jìn)行更新,位置環(huán)的輸出和當(dāng)前狀態(tài)不匹配,有可能會引起控制的波動。
[0004]綜上所述,現(xiàn)有技術(shù)中存在伺服系統(tǒng)中轉(zhuǎn)臺的閉環(huán)函數(shù)多環(huán)嵌套調(diào)試復(fù)雜、不同閉環(huán)模式之間切換時控制器參數(shù)突變會引起控制波動的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是提供一種用于轉(zhuǎn)臺的分層虛閉環(huán)控制方法,解決了現(xiàn)有技術(shù)中的多環(huán)函數(shù)嵌套調(diào)試復(fù)雜的問題。
[0006]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種用于轉(zhuǎn)臺的分層虛閉環(huán)控制方法,包括:
[0007]S1,編寫閉環(huán)系統(tǒng)中各個環(huán)的閉環(huán)函數(shù),使各個閉環(huán)函數(shù)分層獨(dú)立,所述各個環(huán)包括位置環(huán)、速度環(huán)和電流環(huán);
[0008]S2,確定閉環(huán)模式和根據(jù)相應(yīng)閉環(huán)模式選擇閉環(huán)函數(shù)進(jìn)行閉環(huán),所述閉環(huán)模式包括位置環(huán)閉環(huán)模式、速度環(huán)閉環(huán)模式和電流環(huán)閉環(huán)模式。
[0009]本發(fā)明的有益效果是:通過將各個環(huán)的閉環(huán)函數(shù)編寫為各自分層獨(dú)立的閉環(huán)函數(shù),使得各個閉環(huán)函數(shù)之間不再為嵌套調(diào)用關(guān)系,而是分層獨(dú)立,在使用時就可以根據(jù)確定的閉環(huán)模式選擇不同的閉環(huán)函數(shù)進(jìn)行閉環(huán)。因此,能夠避免現(xiàn)有技術(shù)中由于各個閉環(huán)函數(shù)之間嵌套調(diào)用,而造成內(nèi)環(huán)閉環(huán)未完成,外環(huán)開始閉環(huán)出現(xiàn)的飛車現(xiàn)象,以及調(diào)試過程中需要修改程序帶來的調(diào)試復(fù)雜的問題。
[0010]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn):
[0011]進(jìn)一步,所述步驟S1中采用有返回值的函數(shù)編寫位置環(huán)和速度環(huán)的閉環(huán)函數(shù)。
[0012]進(jìn)一步,所述步驟S2具體為:按照閉環(huán)模式選擇不同閉環(huán)函數(shù)進(jìn)行級聯(lián)。
[0013]進(jìn)一步,所述步驟S2中通過值的傳遞將各個閉環(huán)函數(shù)級聯(lián)完成相應(yīng)閉環(huán)模式下的閉環(huán),具體為:當(dāng)所述閉環(huán)模式為位置環(huán)閉環(huán)模式時,將位置環(huán)閉環(huán)函數(shù)的輸出值傳遞給速度環(huán)閉環(huán)函數(shù),同時將速度環(huán)閉環(huán)函數(shù)的輸出值傳遞給電流環(huán)閉環(huán)函數(shù);
[0014]當(dāng)閉環(huán)模式為速度環(huán)閉環(huán)模式時,將速度環(huán)閉環(huán)函數(shù)的輸出值傳遞給電流環(huán)閉環(huán)函數(shù);
[0015]當(dāng)閉環(huán)模式為電流環(huán)閉環(huán)模式時,直接調(diào)用電流環(huán)閉環(huán)函數(shù)。
[0016]采用上述進(jìn)一步方案的有益效果是:采用值傳遞的方式完成各個閉環(huán)函數(shù)的級聯(lián),從而使得各個閉環(huán)函數(shù)之間不再需要嵌套調(diào)用,而出現(xiàn)內(nèi)環(huán)閉環(huán)未完成,外環(huán)開始閉環(huán)出現(xiàn)的飛車現(xiàn)象,以及調(diào)試過程中需要修改程序帶來的調(diào)試復(fù)雜的問題。
[0017]進(jìn)一步,所述當(dāng)閉環(huán)模式為電流環(huán)閉環(huán)模式時,手動輸入電流值作為電流環(huán)的輸入值;
[0018]當(dāng)閉環(huán)模式為速度環(huán)閉環(huán)模式時,手動輸入速度值作為速度環(huán)的輸入值;
[0019]當(dāng)閉環(huán)模式為位置環(huán)閉環(huán)模式時,手動輸入位置值作為位置環(huán)的輸入值。
[0020]進(jìn)一步,所述當(dāng)閉環(huán)模式為電流環(huán)閉環(huán)模式時,將轉(zhuǎn)臺的當(dāng)前速度值作為速度環(huán)的輸入值和將轉(zhuǎn)臺的當(dāng)前位置值作為位置環(huán)的輸入;
[0021]當(dāng)閉環(huán)模式為速度環(huán)閉環(huán)模式時,將轉(zhuǎn)臺的當(dāng)前位置值作為位置環(huán)的輸入。
[0022]采用上述進(jìn)一步方案的有益效果是:由于在某些閉環(huán)模式下,位置環(huán)和速度環(huán)閉環(huán)函數(shù)雖然不起作用,但依然參與運(yùn)算,因此,通過將這些閉環(huán)模式下,位置環(huán)和速度環(huán)的參數(shù)置為當(dāng)前參數(shù),這樣,在模式切換瞬間,由于系統(tǒng)的位置值和速度值都不會突變,就能夠保證切換過程中沒有跳變,轉(zhuǎn)臺的運(yùn)動不會發(fā)生波動,避免了不同閉環(huán)模式之間切換時控制器參數(shù)突變會弓I起控制波動的問題。
[0023]本發(fā)明解決上述技術(shù)問題的另一種技術(shù)方案如下:一種用于轉(zhuǎn)臺的分層虛閉環(huán)控制系統(tǒng),包括:
[0024]編寫模塊,用于編寫閉環(huán)系統(tǒng)中各個環(huán)的閉環(huán)函數(shù),使各個閉環(huán)函數(shù)分層獨(dú)立,所述各個環(huán)包括位置環(huán)、速度環(huán)和電流環(huán);
[0025]確定和調(diào)用模塊,用于確定閉環(huán)模式和根據(jù)相應(yīng)閉環(huán)模式選擇閉環(huán)函數(shù)進(jìn)行閉環(huán),所述閉環(huán)模式包括位置環(huán)閉環(huán)模式、速度環(huán)閉環(huán)模式和電流環(huán)閉環(huán)模式。
[0026]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn):
[0027]進(jìn)一步,所述確定和調(diào)用模塊包括傳遞單元,用于通過值的傳遞將各個閉環(huán)函數(shù)級聯(lián),當(dāng)所述閉環(huán)模式為位置環(huán)閉環(huán)模式時,將位置環(huán)閉環(huán)函數(shù)的輸出值傳遞給速度環(huán)閉環(huán)函數(shù),同時將速度環(huán)閉環(huán)函數(shù)的輸出值傳遞給電流環(huán)閉環(huán)函數(shù);和當(dāng)閉環(huán)模式為速度環(huán)閉環(huán)模式時,將速度環(huán)閉環(huán)函數(shù)的輸出值傳遞給電流環(huán)閉環(huán)函數(shù);以及當(dāng)閉環(huán)模式為電流環(huán)閉環(huán)模式時,直接調(diào)用電流環(huán)閉環(huán)函數(shù)。
[0028]進(jìn)一步,所述確定和調(diào)用模塊包括第一輸入單元,用于當(dāng)閉環(huán)模式為電流環(huán)閉環(huán)模式時,手動輸入電流值作為電流環(huán)的輸入值;和當(dāng)閉環(huán)模式為速度環(huán)閉環(huán)模式時,手動輸入速度值作為速度環(huán)的輸入值;以及當(dāng)閉環(huán)模式為位置環(huán)閉環(huán)模式時,手動輸入位置值作為位置環(huán)的輸入值。
[0029]進(jìn)一步,所述確定和調(diào)用模塊還包括第二輸入單元,用于當(dāng)閉環(huán)模式為電流環(huán)閉環(huán)模式時,將轉(zhuǎn)臺的當(dāng)前速度值作為速度環(huán)的輸入值和將當(dāng)前位置值作為位置環(huán)的輸入;和當(dāng)閉環(huán)模式為速度環(huán)閉環(huán)模式時,將轉(zhuǎn)臺的當(dāng)前位置值作為位置環(huán)的輸入。
【附圖說明】
[0030]圖1為現(xiàn)有技術(shù)中伺服控制系統(tǒng)中控制回路的結(jié)構(gòu)示意圖;
[0031]圖2為現(xiàn)有技術(shù)中轉(zhuǎn)臺閉環(huán)控制方法的流程示意圖;
[0032]圖3為本發(fā)明一種用于轉(zhuǎn)臺的分層虛閉環(huán)控制方法的流程示意圖;
[0033]圖4為本發(fā)明中根據(jù)閉環(huán)模式選擇分層閉環(huán)方法的流程示意圖;
[0034]圖5為本發(fā)明中引入虛閉環(huán)后的流程示意圖;
[0035]圖6為本發(fā)明一種用于轉(zhuǎn)臺的分層虛閉環(huán)控制系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0036]以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0037]如圖3所示,一種用于轉(zhuǎn)臺的分層虛閉環(huán)控制方法,包括:
[0038]S1,編寫閉環(huán)系統(tǒng)中各個環(huán)的閉環(huán)函數(shù),使各個閉環(huán)函數(shù)分層獨(dú)立,所述各個環(huán)包括位置環(huán)、速度環(huán)和電流環(huán);具體為采用有返回值的函數(shù)編寫位置環(huán)和速度環(huán)的閉環(huán)函數(shù)。這樣,各個閉環(huán)函數(shù)之間分層獨(dú)立。這里,對于電流環(huán)閉環(huán)函數(shù)不做限定,電流環(huán)閉環(huán)函數(shù)可以采用傳統(tǒng)的無返回值的閉環(huán)函數(shù),也可以將其重新編寫為有返回值的函數(shù)。
[0039]其中,位置環(huán)的閉環(huán)函數(shù)為:
[0040]double Task_Pos_Ctrl(fAngle_Aim)
[0041 ] {
[0042]根據(jù)目標(biāo)位置fAngle_Aim計(jì)算出位置環(huán)輸出fout ;
[0043]return (fout);
[0044]}
[0045]速度環(huán)的閉環(huán)函數(shù)為:
[0046]double Task_Vel_Ctrl(fVel_Aim)
[0047]{
[0048]根據(jù)目標(biāo)速度fVel_Aim計(jì)算出速度環(huán)輸出fout ;
[0049]return (fout);
[0050]}
[0051]S2,確定閉環(huán)模式和根據(jù)相應(yīng)閉環(huán)模式選擇閉環(huán)函數(shù)進(jìn)行閉環(huán),所述閉環(huán)模式包括位置環(huán)閉環(huán)模式、速度環(huán)閉環(huán)模式和電流環(huán)閉環(huán)模式。
[0052]步驟S2中在確定了閉環(huán)模式之后,根據(jù)閉環(huán)模式選擇不同的閉環(huán)函數(shù)進(jìn)行級聯(lián),可以采用值傳遞的方式將選擇好的函數(shù)級聯(lián),具體為:當(dāng)所述閉環(huán)模式為位置環(huán)閉環(huán)模式時,將位置環(huán)閉環(huán)函數(shù)的輸出值傳遞給速度環(huán)閉環(huán)函數(shù),同時將速度環(huán)閉環(huán)函數(shù)的輸出值傳遞給電流環(huán)閉環(huán)函數(shù);
[0053]當(dāng)閉環(huán)模式為速度環(huán)閉環(huán)模式時,將速度環(huán)閉環(huán)函數(shù)的輸出值傳遞給電流環(huán)閉環(huán)函數(shù);
[0054]當(dāng)閉環(huán)模式為電流環(huán)閉環(huán)模式時,直接調(diào)用電流環(huán)閉環(huán)函數(shù),即電流環(huán)閉環(huán)函數(shù)的輸出值直接輸出給負(fù)載。
[0055]在以上三種閉環(huán)模式下,具體的閉環(huán)工作狀態(tài)為:
[0056]①電流環(huán)閉環(huán)模式下只有電流環(huán)起作用,位置環(huán)和速度環(huán)不起作用;數(shù)模轉(zhuǎn)換函數(shù)DA的輸入直接置目標(biāo)電流值fCur_Aim,速度環(huán)閉環(huán)函數(shù)Task_Vel_Ctrl和位置環(huán)閉環(huán)函數(shù)Task_P0S_Ctrl不起作用;這里需要說明的是,電流環(huán)閉環(huán)函數(shù)也叫數(shù)模轉(zhuǎn)換函數(shù)DA。
[0057]②速度環(huán)閉環(huán)模式下速度環(huán)和電流環(huán)起作用,位置環(huán)不起作用;速度環(huán)閉環(huán)函數(shù)Task_Vel_Ctrl的輸入為目標(biāo)速度fVel_Aim,速度環(huán)閉環(huán)Task_Vel_Ctrl的函數(shù)輸出為數(shù)模轉(zhuǎn)換函數(shù)DA的輸入,位置環(huán)閉環(huán)函數(shù)Task_P0S_Ctrl不起作用;
[0058]③位置環(huán)閉環(huán)模式下位置環(huán)、速度環(huán)和電流環(huán)都起作用,位置環(huán)閉環(huán)函數(shù)Task_Pos_Ctrl的輸入為目標(biāo)位置fAngle_Aim,位置環(huán)閉環(huán)函數(shù)Task_Pos_Ctrl的輸出為速度環(huán)閉環(huán)函數(shù)Task_Vel_Ctrl的輸入,速度環(huán)閉環(huán)函數(shù)Task_Vel_Ctrl的輸出為數(shù)模轉(zhuǎn)換函數(shù)DA的輸入。
[0059]在以上三種閉環(huán)模式下,內(nèi)環(huán)的輸入值為外環(huán)的輸出值,但是外環(huán)的輸入值需要手動輸入。
[0060]當(dāng)閉環(huán)模式為電流環(huán)閉環(huán)模式時,手動輸入電流值作為電流環(huán)的輸入值;
[0061]當(dāng)閉環(huán)模式為速度環(huán)閉環(huán)模式時,手動輸入速度值作為速度環(huán)的輸入值;
[0062]當(dāng)閉環(huán)模式為位置環(huán)閉環(huán)模式時,手動輸入位置值作為位置環(huán)的輸入值。
[0063]虛閉環(huán)是指在某些閉環(huán)模式下,位置環(huán)和速度環(huán)的控制函數(shù)雖然不起作用,但依然參與運(yùn)算,通過將當(dāng)前值置為位置環(huán)和速度環(huán)的輸入值,保持控制器參數(shù)實(shí)時更新。這樣,雖然位置環(huán)和速度環(huán)沒有工作,但是其參數(shù)卻保持實(shí)時更新,因此,稱為虛閉環(huán)。虛閉環(huán)的實(shí)現(xiàn)如下:
[0064]當(dāng)閉環(huán)模式為電流環(huán)閉環(huán)模式時,將轉(zhuǎn)臺的當(dāng)前速度值作為速度環(huán)的輸入值和將轉(zhuǎn)臺的當(dāng)前位置值作為位置環(huán)的輸入;
[0065]當(dāng)閉環(huán)模式為速度環(huán)閉環(huán)模式時,將轉(zhuǎn)臺的當(dāng)前位置值作為位置環(huán)的輸入。
[0066]具體為:在速度環(huán)閉環(huán)模式下,位置環(huán)閉環(huán)函數(shù)Task_Pos_Ctrl不起作用,但是將位置環(huán)閉環(huán)函數(shù)Task_Pos_Ctrl的輸入--目標(biāo)位置fAngle_Aim置為當(dāng)前位置fAngle_
Cur ;
[0067]在電流環(huán)閉環(huán)模式下,位置環(huán)閉環(huán)函數(shù)Task—Pos—Ctrl和速度環(huán)閉環(huán)函數(shù)Task—Vel_Ctrl都不起作用,但將位置環(huán)閉環(huán)函數(shù)Task_Pos_Ctrl的輸入一一目標(biāo)位置fAn