999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的PID控制在液浮陀螺回路中的應(yīng)用

2018-03-10 05:12:53盧雍卿李劍文吳勇李建勛
軟件導(dǎo)刊 2018年2期

盧雍卿+李劍文+吳勇+李建勛

摘 要:PID 控制器的可靠性及實(shí)時(shí)性,是實(shí)現(xiàn)運(yùn)動(dòng)控制系統(tǒng)精確定位或跟蹤的重要環(huán)節(jié)。利用PID控制液浮陀螺再平衡回路,在分析PID 控制算法的基礎(chǔ)上,采用FPGA(現(xiàn)場(chǎng)可編程邏輯門陣列)對(duì)增量型PID控制器進(jìn)行設(shè)計(jì)及仿真實(shí)驗(yàn),使陀螺輸出能及時(shí)響應(yīng)角增量的變化。程序采用VHDL語(yǔ)言編寫,使用軟件Libero v9.0完成PID控制器的設(shè)計(jì)、編譯和仿真,仿真結(jié)果表明該方法有效可行。

關(guān)鍵詞:PID控制;可編程邏輯器件;液浮陀螺回路

DOIDOI:10.11907/rjdk.172232

中圖分類號(hào):TP319

文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2018)002-0140-03

0 引言

PID控制器結(jié)構(gòu)清晰,控制參數(shù)可調(diào),響應(yīng)速度快,能夠廣泛運(yùn)用于各種控制變量,可在現(xiàn)場(chǎng)根據(jù)實(shí)際情況調(diào)節(jié)參數(shù)而得到較好的控制效果,在動(dòng)態(tài)控制系統(tǒng)應(yīng)用廣泛。其核心設(shè)計(jì)思想是通過分析被控對(duì)象的控制需求,建立被控對(duì)象動(dòng)態(tài)特征的數(shù)學(xué)模型,采用調(diào)整比例、積分、微分參數(shù)的控制策略達(dá)到最佳的控制效果和系統(tǒng)響應(yīng)。此類動(dòng)態(tài)控制系統(tǒng)的被控量一般為模擬量,例如速度、角度、水位等。利用目標(biāo)值和輸入值之間的差值,經(jīng)過離散化后僅有數(shù)字PID控制器經(jīng)過運(yùn)算處理,將運(yùn)算結(jié)果由數(shù)模轉(zhuǎn)換變?yōu)槟M量,反饋給被控對(duì)象,這就是PID控制中常用的近似逼近原理。隨著現(xiàn)場(chǎng)可編程邏輯門陣列(FPGA)的興起,數(shù)字PID控制器的設(shè)計(jì)得到了新的發(fā)展。FPGA集成度高、可靠性高、體積小、功耗低、設(shè)計(jì)方法靈活,可進(jìn)行反復(fù)編程、調(diào)試、燒寫,能適應(yīng)嵌入式系統(tǒng)應(yīng)用。

1 液浮陀螺回路設(shè)計(jì)

液浮陀螺利用剛體旋轉(zhuǎn)時(shí)具有定軸性的原理,當(dāng)旋轉(zhuǎn)的轉(zhuǎn)子感到角動(dòng)量時(shí),會(huì)產(chǎn)生一個(gè)和角動(dòng)量成比例的敏感器信號(hào),通過處理敏感器信號(hào)后輸出加矩信號(hào),便可得到陀螺的運(yùn)動(dòng)角速度。離散化的數(shù)字再平衡回路如圖1所示。

圖1中AD轉(zhuǎn)換器用于采集模擬信號(hào),并將其離散化變?yōu)閿?shù)字量信號(hào)。在FPGA中固化的PID算法用于信號(hào)的運(yùn)算處理,DA轉(zhuǎn)換器將經(jīng)過處理的數(shù)字量信號(hào)轉(zhuǎn)化為模擬量信號(hào)反饋給力矩器,這樣便構(gòu)成了一個(gè)完整的數(shù)字量控制的液浮陀螺再平衡回路。

2 PID控制器設(shè)計(jì)

PID是工業(yè)控制中應(yīng)用最廣泛、技術(shù)最成熟的一種控制方法,其基本控制原理如圖2所示。

PID控制器是一種線性控制器,它根據(jù)給定值r(t)與實(shí)際輸出值y(t)構(gòu)成控制偏差:

將偏差進(jìn)行比例、積分、微分運(yùn)算并通過一定規(guī)律的線性組合構(gòu)成控制量u(t),對(duì)被控量進(jìn)行控制,滿足:

式(2)中,KP為比例放大系數(shù);K1為積分時(shí)間常數(shù);KD為微分時(shí)間常數(shù)。數(shù)字PID控制算法的實(shí)現(xiàn)必須用數(shù)值逼近方法。當(dāng)采樣周期相當(dāng)短時(shí),用求和代替積分,用差商代替微商,使PID算法離散化。將PID算法的微分方程離散化、差分、歸并處理后可得:

根據(jù)遞推原理得到:

從式(4)可以看出,增量式數(shù)字PID算法,只要儲(chǔ)存最近3個(gè)誤差采樣值e(k)、e(k-1)、e(k-2)就足夠了。

將式(3)減去式(4)可得:

3 FPGA源程序設(shè)計(jì)

典型的數(shù)字PID控制系統(tǒng)由A/D轉(zhuǎn)換、PID控制算法和D/A轉(zhuǎn)換3個(gè)關(guān)鍵環(huán)節(jié)構(gòu)成。為了協(xié)調(diào)3個(gè)環(huán)節(jié)之間的工作流程,系統(tǒng)工作控制部件必不可少。這里使用狀態(tài)機(jī)來完成不同運(yùn)算步驟之間的協(xié)調(diào),在高速運(yùn)算和運(yùn)動(dòng)控制方面,有限狀態(tài)機(jī)有著獨(dú)特的優(yōu)勢(shì)。

有限狀態(tài)機(jī)從信號(hào)輸出方式上分,有Moore型和Mealy型兩類。前者的輸出狀態(tài)只和當(dāng)前狀態(tài)有關(guān),而后者的輸出不僅與當(dāng)前狀態(tài)有關(guān)還與輸入量有關(guān)。Moore型狀態(tài)機(jī)的輸出則僅為當(dāng)前狀態(tài)的函數(shù),這類狀態(tài)機(jī)在輸入發(fā)生變化時(shí)必須等待時(shí)鐘的到來。時(shí)鐘使?fàn)顟B(tài)發(fā)生變化時(shí)才導(dǎo)致輸出變化,所以比Mealy機(jī)要多等待一個(gè)時(shí)鐘周期,但是能有效避免毛刺現(xiàn)象。Mealy型狀態(tài)機(jī)的輸出是當(dāng)前狀態(tài)和所有輸入信號(hào)的函數(shù),它的輸出是在輸入變化后立即發(fā)生的,不依賴于時(shí)鐘的同步。從輸出時(shí)序上看,前者屬于同步輸出狀態(tài)機(jī),后者屬于異步輸出狀態(tài)機(jī)。本設(shè)計(jì)所用的狀態(tài)機(jī)為單進(jìn)程Moore型狀態(tài)機(jī)。

對(duì)數(shù)模轉(zhuǎn)化的控制算法如下:

circulation:process(state)

begin

case state is

when s1=>ado<=”00000”;

addr<=0000;

next_state<=s2;

when s2=>ado<=”11000”;

addr<=0001;

next_state<=s3;

when others=>ado<=”00000”;

next_state<=s1;

end process Circulation;

control:process(clk,dir)

begin

if dir=1then state<=s1;

elsif clk event and clk+1then

state<=next_state;

end if;

end process control;

這里給出了一段式狀態(tài)機(jī)設(shè)計(jì),硬件語(yǔ)言設(shè)計(jì)簡(jiǎn)潔,便于快速實(shí)現(xiàn)功能架構(gòu)。

PID控制的硬件語(yǔ)言程序如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;endprint

use ieee.std_logic_unsigned.all;

entity pid_regulator_verl is

port (clk: in std_logic;

sample: in std_logic;

reset: in std_logic;

rk: in std_logic_vector(7 downto 0);

yk: in std_logic_vector(7 downto 0);

kp:in std_logic_vector(3 downto 0);

ki: in std_logic_vector(3 downto 0);

kd:in std_logic_vector(3 downto 0);

out:out std_logic_vector(7 downto 0);

end pid_regulator_verl

architecture behavioral of pid_regulator_verl is

signal error: integer range -65535 to 65535:=0;

signal prev_error: integer range -65535 to 65535:=0;

signal integrator: std_logic_vector(17 downto 0):=(others=>0);

alias integ: std_logic_vector(15 downto 0) is integrator(17 downto 2);

signal int_integ: integer range -65535 to 65535:=0;

signal actuator: integer range -65535 to 65535:=0;

signal p_bidrag: integer range -65535 to 65535:=0;

signal i_bidrag: integer range -65535 to 65535:=0;

signal d_bidrag: integer range -65535 to 65535:=0;

signal saturation:std_logic;

begin

int_integ<=conv_integer(integ);

integration:

process(sample)

variable err:integer;

begin

if rising_edge(sample) then

if reset=1 then

integrator<=(others=>0);

error<=0;

else

err:=(conv_integer(ref)-conv_integer(act));

if abs(err)>1 then

if saturation=0 then

integrator<= integrator+err/2;

end if;

if conv_integer(integrator)<0 then

integrator<=(others=>0);

enf if;

prev_error<=error;

error<=err;

end if;

end if;

end if;

end process;

p_bidrag<=conv_integer(kp)*error;

i_bidrag<=conv_integer(ki)*int_integ;

d_bidrag<=conv_integer(kd)*(error-prev_error);

regulator:

process(p_bidrag, i_bidrag, d_bidrag)

variable yact:integer;

begin

yact:=p_bidrag+i_bidrag,+d_bidrag;

actuator<=yact;

saturation<=0;

if yact<0 then

yact:=0;

elsif yact>255 then

yact:=255;

saturation<=1;

end if;

out<=conv_std_logic_vector(yact,8);

end process;

end behavioral;

4 綜合仿真

PID控制器系統(tǒng)設(shè)計(jì)圍繞算法實(shí)現(xiàn),即先由PTD控制器的硬件語(yǔ)言描述得到VHDL的控制算法描述,然后對(duì)系統(tǒng)分解為誤差模數(shù)變換、選通控制部件、PID運(yùn)算部件、控制狀態(tài)機(jī)模塊。

Actel公司專用EDA軟件Libero支持原理圖與VHDL語(yǔ)言混合輸入設(shè)計(jì)方式,除PID運(yùn)算部件采用原理圖輸入設(shè)計(jì)方式外,其余3個(gè)部件均采用VHDL輸入設(shè)計(jì)方式。系統(tǒng)仿真時(shí),將系統(tǒng)的最高工作速率設(shè)定為22.1184MHz。功能仿真波形如圖3所示。endprint

PID控制原理能夠運(yùn)用于大量閉環(huán)回路控制系統(tǒng)設(shè)計(jì)中,使得力矩器輸出量能及時(shí)反映陀螺角速度變化,以高響應(yīng)速度完成對(duì)陀螺傳感器輸出變化量的跟蹤。

5 結(jié)語(yǔ)

以FPGA為代表的高速系統(tǒng)已經(jīng)在數(shù)字信號(hào)處理領(lǐng)域表現(xiàn)出獨(dú)特的優(yōu)勢(shì),尤其是極高的穩(wěn)定性和可靠性,使其在嵌入式系統(tǒng)發(fā)揮越來越大的作用。本文以FPGA為載體,PID控制為手段,實(shí)現(xiàn)了液浮陀螺再平衡回路控制。通過仿真驗(yàn)證,在保持原有響應(yīng)速度的前提下,解決了原有模擬電路無法避免的、由于器件溫度漂移導(dǎo)致的信號(hào)失真問題。

參考文獻(xiàn):

[1] ACTEL INC.FPGA data book[EB/OL]. http://noel.feld.cvut.cz/vyu/apo/actel/s04_01.pdf 1994.

[2] ALTERA INC.Data book[EB/OL]. http://ebook.pldworld.com/_Semiconductors/Altera/literature/_nv/98nvq1.pdf 1996.

[3] 康華光.電子技術(shù)基礎(chǔ)(數(shù)字部分)[M].北京:高等教育出版社,2006.

[4] 姜雪松.VHDL設(shè)計(jì)實(shí)例與仿真[M].北京:機(jī)械工業(yè)出版社,2007.

[5] 程佩青.數(shù)字信號(hào)處理教程[M].北京:清華大學(xué)出版社,2007.

[6] 侯伯亨,顧新.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2009.

[7] 張春生.FPGA數(shù)字信號(hào)處理與工程應(yīng)用實(shí)踐[M].北京:中國(guó)鐵道出版社,2013.

[8] 楊毅明.數(shù)字信號(hào)處理[M].北京:機(jī)械工業(yè)出版社,2008.

[9] 譚曉.數(shù)字PID控制器的實(shí)驗(yàn)研究[J].武漢紡織工學(xué)院學(xué)報(bào),1999,12(3):68-72.

[10] MOHAMED ABDELATI.FPGA-Based PID controller implementation[D].Gaza:University of Gaza,2005.

[11] 陸重陽(yáng),盧東華.FPGA技術(shù)及其發(fā)展趨勢(shì)[J].微電子技術(shù),2003,31(1):5-7.

[12] 張焱,余海龍,羅進(jìn)川.超高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].安徽大學(xué)學(xué)報(bào),2006,30(4):44-47.endprint

主站蜘蛛池模板: 欧美日本激情| 精品伊人久久久大香线蕉欧美| 欧美国产日韩在线观看| 欧美不卡在线视频| 国产福利不卡视频| 亚洲一级毛片在线播放| 秘书高跟黑色丝袜国产91在线| 国产高清不卡| 中文字幕乱码二三区免费| 亚洲国产综合精品一区| 成人国产一区二区三区| 久久永久精品免费视频| 91丨九色丨首页在线播放| 强奷白丝美女在线观看| 亚洲美女视频一区| 久久成人免费| 亚洲天堂.com| 亚洲色图另类| 免费精品一区二区h| 亚洲bt欧美bt精品| 第一区免费在线观看| 色综合网址| 日韩成人高清无码| 亚洲热线99精品视频| 中国一级毛片免费观看| 久久美女精品| 久久中文字幕2021精品| 亚洲成人www| 91成人在线观看视频| 国产精品香蕉| 无码人妻热线精品视频| 99视频精品全国免费品| 人与鲁专区| 无码又爽又刺激的高潮视频| 亚洲成人网在线播放| 国产欧美高清| 欧美精品成人一区二区在线观看| 丁香婷婷激情网| 99视频在线免费| 亚洲最大看欧美片网站地址| 国产在线麻豆波多野结衣| 亚洲日本中文综合在线| 天天视频在线91频| 国产精品视频导航| a欧美在线| 亚洲性日韩精品一区二区| 国产精品人人做人人爽人人添| 亚洲欧美成人在线视频| 亚洲不卡无码av中文字幕| 午夜啪啪网| 国产91av在线| 久久久久免费精品国产| 国产精品大白天新婚身材| 人妻中文字幕无码久久一区| 国产成人亚洲综合a∨婷婷| 亚欧乱色视频网站大全| 久久精品视频一| 97视频精品全国在线观看| 青青久久91| 亚洲中文精品人人永久免费| 久久亚洲国产视频| 免费国产高清视频| 一级福利视频| 久久人搡人人玩人妻精品一| 婷婷激情亚洲| 亚洲免费播放| 色AV色 综合网站| V一区无码内射国产| 九色综合视频网| 亚洲日本中文综合在线| 国产精品真实对白精彩久久| 亚洲—日韩aV在线| 国产网站免费看| 色综合天天视频在线观看| 成人另类稀缺在线观看| 欧美日韩国产成人在线观看| 成人国产精品视频频| 夜夜操国产| 最新国产网站| 中文字幕在线看| 国产成人高清精品免费| 亚洲男人的天堂久久香蕉|