當(dāng)前位置:機(jī)電之家首頁(yè) >> 電工園地>> 應(yīng)用案例 >> 設(shè)計(jì)參考 >> 基于VHDL語(yǔ)言的模糊控制器的設(shè)計(jì)
基于VHDL語(yǔ)言的模糊控制器的設(shè)計(jì)

 

1 引言
模糊控制不需要控制對(duì)象的精確數(shù)學(xué)模型,是一種基于規(guī)則的控制,依據(jù)操作人員的控制經(jīng)驗(yàn)和專(zhuān)家的知識(shí),通過(guò)查表得到控制量。因此,模糊控制器具有響應(yīng)快、超調(diào)小、魯棒性強(qiáng)等特點(diǎn)。它能夠克服系統(tǒng)中模型參數(shù)變化和非線性等不確定因素,在大滯后、非線性系統(tǒng)中得到廣泛應(yīng)用。
隨著eda技術(shù)得發(fā)展,fpga在數(shù)字邏輯系統(tǒng)中發(fā)揮越來(lái)越重要的作用,采用硬件描述語(yǔ)言的硬件電路設(shè)計(jì)方法得到了廣泛應(yīng)用。本文利用vhdl硬件描述語(yǔ)言在fpga芯片上設(shè)計(jì)了一種簡(jiǎn)化的模糊控制器。

2 模糊控制器的設(shè)計(jì)
2.1 模糊控制器系統(tǒng)框圖
由于一維模糊控制器的動(dòng)態(tài)性能不能令人滿意,三維及三維以上的模糊控制器結(jié)構(gòu)太復(fù)雜,建立模糊控制規(guī)則比較困難,因此一般采用雙輸入單輸出的二維模糊控制器。其系統(tǒng)框圖如圖1所示,輸入為誤差e和誤差變化率ec,輸出為控制量u。

圖1 模糊控制系統(tǒng)框圖
2.2 提取控制總表
論域和模糊狀態(tài)應(yīng)根據(jù)問(wèn)題的實(shí)際情況而定,現(xiàn)在假設(shè)e,ec和u的模糊子集均為{nb,nm,ns,zo,ps,pm,pb},模糊論域均為[-4,4],設(shè)e的基本論域?yàn)閇-2,2],ec的基本論域?yàn)閇-1,1],u的基本論域?yàn)閇-5,5]。則ke=2,kc=4,ku=1.25。打開(kāi)matlab中的模糊邏輯工具箱,在模糊控制單元中輸入以上參數(shù),并選擇合適的隸屬度函數(shù)曲線、模糊推理方法和解模糊化方法,建立模糊控制規(guī)則庫(kù)[2]。模糊推理,解模糊化等過(guò)程由計(jì)算機(jī)完成,打開(kāi)rule view提取模糊控制總表,然后乘上比例因子ku,把論域內(nèi)的模糊值轉(zhuǎn)化為實(shí)際值,得到實(shí)際的控制表[3]。

3 fpga實(shí)現(xiàn)
根據(jù)模糊控制器的特點(diǎn),采用模塊化設(shè)計(jì)方法。模糊控制模塊如圖2所示,clk為全局時(shí)鐘,g和f為輸入給定和反饋,u為輸出控制量,設(shè)g,f和u地位數(shù)為八位。模糊控制模塊內(nèi)部結(jié)構(gòu)分為下四個(gè)模塊:jianfa模塊,lisanhua模塊jianbiao模塊和chuli模塊,如圖3所示。

圖 2 模糊控制模塊

圖 3 模糊控制頂層文件原理圖
jianfaqi模塊主要是利用給定值g和反饋值f計(jì)算誤差e和誤差變化率ec。進(jìn)行減法運(yùn)算時(shí),總是數(shù)值大的減去數(shù)值小的,正負(fù)號(hào)分別由eo和co標(biāo)識(shí),不需要考慮溢出和借位等問(wèn)題。其主要的vhdl語(yǔ)言描述如下所示:
begin
process(clk)
begin
if clk'event and clk='1'then
if f>=g then
a<=f-g;
m<='1';
elsif f<g then
a<=g-f;
m<='0';
end if; --計(jì)算誤差
b<=a;
n<=m;
end if;
end process;
process(clk)
begin
if clk'event and clk='1'then
if m='0' and n='0' then
if a>=b then
ec<=a-b;
co<='0';
elsif a<b then
ec<=b-a;
co<='1';
end if;
elsif m='0'and n='1' then
ec<=a+b;
co<='0';
elsif m='1' and n='0' then
ec<=a+b;
co<='1';
elsif m='1' and n='1' then
if a>=b then
ec<=a-b;
co<='1';
elsif a<b then
ec<=b-a;
co<='0';
end if;
end if; --計(jì)算誤差變化率
lisanhua模塊的作用是把jianfaqi模塊得到的誤差e和誤差變化率ec在各自的論域范圍內(nèi)進(jìn)行離散處理。離散時(shí)把量化因子ke和kc乘入,這樣可以避免編寫(xiě)乘法模塊,簡(jiǎn)化了過(guò)程,減少了占用資源,以下是誤差e離散化的vhdl語(yǔ)言描述,誤差變化率ec與之類(lèi)似。
begin
process(clk)
begin
if clk'event and clk='1'then
if eo='0' then
if e<="0000001" then
elunyu<="0000";

elsif "00000001"<e and e<="00000011" then
elunyu<="0001";

elsif "00000011"<e and e<="00000101" then
elunyu<="0010";

elsif "00000101"<e and e<="00000111" then
elunyu<="0011";

elsif "00000111"<e and e<="11111111" then
elunyu<="0100";

end if;

elsif eo='1' then
if e<="00000001" then
elunyu<="0000";

elsif "00000001"<e and e<="00000011" then
elunyu<="1001";

elsif "00000011"<e and e<="00000101" then
elunyu<="1010";

elsif "00000101"<e and e<="00000111" then
elunyu<="1011";

elsif "00000111"<e and e<="11111111" then
elunyu<="1100";

end if;
end if;
jianbiao模塊的作用是把控制總表用vhdl語(yǔ)言的形式描述,此控制表是模糊控制表乘上比例因子ku后的實(shí)際值,表格描述采用case…when結(jié)構(gòu),如下所示:
begin
process(elunyu,eclunyu)
variable tmp: std_logic_vector(7 downto 0);
begin
tmp:=elunyu&eclunyu;
case tmp is
when"11001100"=>
result<="00000101";
co<='1';
when"11001011"=>
result<="00000010";
co<='1';
……
when others =>
result<="00000000";
co<='0';
end case;
end process;
由于控制表中的數(shù)是當(dāng)前控制變化量,還不能直接作用于被控對(duì)象,chuli模塊的作用就是根據(jù)當(dāng)前控制變化量,在前一次控制量的基礎(chǔ)上進(jìn)行運(yùn)算得到此次控制量。同時(shí)規(guī)定控制量的上下限,上限根據(jù)具體情況而定,下限是零。主程序如下:
begin
process(clk)
begin
if clk'event and clk='1'then
if ci='0' then
if b>="01010000"then
b<="01010000";
elsif b<"01010000"then
b<=a+b;
end if;
elsif ci='1' then
if b>=a and b<="01010000"then
b<=b-a;
elsif b>"01010000"then
b<="01010000"-a;
elsif b<a then
b<="00000000";
end if;
end if;
end if;
end process;
process(clk)
begin
if b>="01001101"then
u<="01010000";
else
u<=b;
end if;
end process;

4 仿真結(jié)果
該模糊控制系統(tǒng)在maxplusⅱ10.2下編譯仿真[4],仿真結(jié)果如下:

圖4 模糊控制系統(tǒng)仿真波形
由圖4中波形可以看出,在給定值g不變的情況下,控制量u隨著反饋值f的變化而變化,變化規(guī)律與理論上模糊控制系統(tǒng)的輸出規(guī)律完全一致。

5 結(jié)束語(yǔ)
本設(shè)計(jì)采用flex10k10lc84-4芯片,用硬件描述語(yǔ)言vhdl設(shè)計(jì)了模糊控制器,根據(jù)程序資源的大小,可以靈活的選擇芯片,也可以根據(jù)實(shí)際情況很方便地進(jìn)行修改和調(diào)整。經(jīng)仿真表明,該設(shè)計(jì)符合模糊控制系統(tǒng)的要求。

 

作者:未知 點(diǎn)擊:778次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:基于VHDL語(yǔ)言的模糊控制器的設(shè)計(jì)
* 由于無(wú)法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《基于VHDL語(yǔ)言的模糊控制器的設(shè)計(jì)》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊(cè)
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購(gòu)

楊異乾 【求購(gòu)】  電涌保護(hù)器  2025-11-28
趙焱 【求購(gòu)】  電氣溫控閥  2025-11-28
張揚(yáng)瓊 【求購(gòu)】  ABB火檢...  2025-11-27
張雪根 【求購(gòu)】  固體除垢劑  2025-11-26
趙經(jīng)理 【求購(gòu)】  變壓器  2025-11-26
羅經(jīng)理 【求購(gòu)】  巡邏車(chē)跟蹤...  2025-11-26
趙經(jīng)理 【求購(gòu)】  柴油發(fā)電機(jī)  2025-11-26
沈雙 【求購(gòu)】  柴油過(guò)濾紙  2025-11-26
VIP公司推薦