0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PID控制器VHDL的制作

454398 ? 來(lái)源:wv ? 2019-10-15 09:40 ? 次閱讀

步驟1:基本控制理論

PID控制器VHDL的制作

我認(rèn)為,添加一些基本的控制理論將為想要嘗試實(shí)施此代碼的任何人提供一個(gè)良好的基礎(chǔ)。

所附的圖是一個(gè)單回路控制器。

r-是參考。這確定了控制器需要去的地方。

e-是錯(cuò)誤。這是傳感器上的值與參考值之間的差。例如e = r-(傳感器的d +輸出)。

K-這是控制器。控制器可以由三個(gè)項(xiàng)組成。這些項(xiàng)是P,I和D。所有三個(gè)項(xiàng)的乘數(shù)分別為Kp,Ki和Kd。這些值確定控制器的響應(yīng)。

P比例。嚴(yán)格的P控制器將具有與電流誤差成比例的輸出。 P控制器易于實(shí)現(xiàn)且工作迅速,但永遠(yuǎn)不會(huì)達(dá)到您設(shè)置(參考)的值。

I-積分。嚴(yán)格積分的控制器將總結(jié)先前的誤差,最終將達(dá)到所需的參考值。該控制器通常太慢而無(wú)法實(shí)現(xiàn)。添加P項(xiàng)將減少到達(dá)參考點(diǎn)所需的時(shí)間。必須考慮對(duì)輸入采樣的時(shí)間,積分項(xiàng)是相對(duì)于時(shí)間進(jìn)行積分的。

D導(dǎo)數(shù)。導(dǎo)數(shù)項(xiàng)的輸出取決于誤差的變化率。該術(shù)語(yǔ)通常與P術(shù)語(yǔ)或PI術(shù)語(yǔ)一起使用。由于這與誤差變化率成正比,因此嘈雜的單音會(huì)放大其噪聲,這可能導(dǎo)致系統(tǒng)不穩(wěn)定。還必須考慮時(shí)間,因?yàn)閷?dǎo)數(shù)項(xiàng)也是關(guān)于時(shí)間的。

U-這是控制信號(hào)。該信號(hào)是鉆機(jī)的輸入。在此項(xiàng)目中,u是輸入到風(fēng)扇以改變速度的PWM信號(hào)。

G-這是被控制的系統(tǒng)。該系統(tǒng)可以在S或Z域中進(jìn)行數(shù)學(xué)建模。該系統(tǒng)可以是n階,但是對(duì)于剛開(kāi)始使用控制的人來(lái)說(shuō),應(yīng)該假設(shè)是一階系統(tǒng),因?yàn)檫@很容易計(jì)算。這是有關(guān)在線建模系統(tǒng)的大量信息。根據(jù)傳感器的采樣時(shí)間,系統(tǒng)的模型可以是離散的也可以是連續(xù)的。這會(huì)對(duì)控制器產(chǎn)生巨大影響,因此建議對(duì)兩者進(jìn)行研究。

d-這是添加到系統(tǒng)中的干擾。干擾是外部力量,系統(tǒng)模型無(wú)法解決。一個(gè)簡(jiǎn)單的例子是一架無(wú)人駕駛飛機(jī),您希望將其懸停在5米高的陣風(fēng)處,并將該無(wú)人駕駛飛機(jī)降落1米,在發(fā)生干擾后,控制器將重新定位該無(wú)人駕駛飛機(jī)。這被稱(chēng)為擾動(dòng),因?yàn)轱L(fēng)是不可重復(fù)的,因此無(wú)法建模。

要調(diào)整控制器,需要命名的規(guī)則太多,但我剛開(kāi)始使用的一些好規(guī)則是Cohen Coon和齊格·尼科爾斯(Zieger Nichols)。

在沒(méi)有精確模型的情況下,對(duì)系統(tǒng)建模通常是最重要的部分,因此已設(shè)計(jì)的控制器將無(wú)法根據(jù)需要做出響應(yīng)。

這里應(yīng)該有足夠的信息來(lái)了解控制器的工作方式以及一些單獨(dú)的研究,并且控制器下面的代碼可以結(jié)合使用這三個(gè)術(shù)語(yǔ)來(lái)實(shí)現(xiàn)。

步驟2:編寫(xiě)PID代碼

該代碼的基本原理位于由于此代碼不起作用,但采用了以下鏈接,并對(duì)其進(jìn)行了修改,但具有許多正確的原則,這些都是很好的起點(diǎn)。原始PID代碼有幾個(gè)錯(cuò)誤,例如

連續(xù)操作-控制器是繼承的離散控制器,因此必須將控制器設(shè)置為僅在有新輸入可用時(shí)才計(jì)算所有3個(gè)項(xiàng)。此模擬的解決方法是檢查自上次以來(lái)輸入是否已更改。這僅能模擬代碼正常工作。

采樣時(shí)間對(duì)積分和微分項(xiàng)沒(méi)有影響-控制器也沒(méi)有考慮采樣的時(shí)間,因此添加了一個(gè)稱(chēng)為時(shí)間除法器的值以確保積分和導(dǎo)數(shù)項(xiàng)在正確的時(shí)間間隔內(nèi)運(yùn)行。

錯(cuò)誤只能是正的-計(jì)算錯(cuò)誤時(shí)還存在一個(gè)問(wèn)題,因?yàn)殄e(cuò)誤永遠(yuǎn)都不能為負(fù),這意味著當(dāng)反饋信號(hào)超過(guò)參考值時(shí),控制器將繼續(xù)增加輸出值應(yīng)該遞減。

3個(gè)項(xiàng)的增益值是整數(shù)-根據(jù)我的經(jīng)驗(yàn),我經(jīng)常發(fā)現(xiàn)控制器中3個(gè)項(xiàng)的值始終是浮點(diǎn)數(shù),這是因?yàn)锽asys 3沒(méi)有必須的浮點(diǎn)數(shù)被賦予一個(gè)分子值和一個(gè)分母值,將作為解決這個(gè)問(wèn)題的工具。

該代碼附在下面,它是代碼主體和用于模擬代碼的測(cè)試平臺(tái)。 zip文件夾包含Vivado中已經(jīng)存在的代碼和測(cè)試臺(tái),因此可以打開(kāi)以節(jié)省時(shí)間。還有一個(gè)代碼的模擬測(cè)試,顯示了跟蹤參考的輸出,這證明該代碼可以正常運(yùn)行。

步驟3:如何為您的系統(tǒng)進(jìn)行修改

首先,并非所有系統(tǒng)都相同,因此必須分析系統(tǒng)的輸入和輸出。就我而言,裝備的輸出為我提供了一個(gè)位置值,它是一個(gè)模擬信號(hào),系統(tǒng)的輸入是一個(gè)PWM信號(hào)。這意味著需要ADC轉(zhuǎn)換。幸運(yùn)的是,Basys 3具有內(nèi)置ADC,因此這沒(méi)問(wèn)題,因?yàn)檫@是板載ADC的最大范圍,因此紅外傳感器的輸出必須縮小至0V-1V。這是通過(guò)使用分壓器電路完成的,該分壓器電路由1k電阻器構(gòu)成,該電阻器設(shè)置為與1k電阻器串聯(lián)的3k電阻器?,F(xiàn)在,模擬信號(hào)在ADC的范圍內(nèi)。風(fēng)扇的PWM輸入能夠由Basys 3上的PMOD端口輸出直接驅(qū)動(dòng)。

步驟4:利用Basys 3上的I/O

Basys 3上有許多I/O,可以在運(yùn)行代碼時(shí)進(jìn)行更輕松的調(diào)試。 I/O設(shè)置如下。

七段顯示-用于顯示基準(zhǔn)值和ADC上以伏特為單位的值。七段顯示的前兩位數(shù)字顯示ADC值的小數(shù)點(diǎn)后兩位,因?yàn)樵撝到橛?-1V之間。七段顯示器上的數(shù)字三和四以伏特表示參考值,這也顯示小數(shù)點(diǎn)后的前兩位,因?yàn)榉秶苍?-1V之間。

16個(gè)LED-使用LED來(lái)顯示輸出的值,以確保輸出飽和并正確更改輸出。

步驟5:IR傳感器輸出上的噪聲

傳感器輸出上有噪聲可以解決此問(wèn)題,因此放置了一個(gè)平均塊,因?yàn)檫@足夠了,需要完成的工作很少。

第6步:總體代碼布局

有一部分代碼尚未討論。此代碼是稱(chēng)為觸發(fā)器的時(shí)鐘分頻器。該代碼位觸發(fā)ADC代碼進(jìn)行采樣。 ADC代碼最多需要2us的時(shí)間才能完成,因此將當(dāng)前輸入和先前輸入進(jìn)行平均。求平均值后的1us,控制器將計(jì)算P,I和D項(xiàng)。臨時(shí)連接圖中顯示了代碼和接口的總體布局。

步驟7:測(cè)試

該代碼已部署在Basys 3上,并記錄了以下響應(yīng)。參考值在2個(gè)值之間變化。在隨附的完整項(xiàng)目代碼中就是這種情況。隨附的視頻實(shí)時(shí)顯示了此響應(yīng)。由于控制器是為此區(qū)域設(shè)計(jì)的,因此振蕩在管的上部衰減得更快,但由于系統(tǒng)是非線性的,因此控制器在管的下方無(wú)法正常工作。

第8步:修改以改進(jìn)項(xiàng)目

該項(xiàng)目按預(yù)期工作,但如果可以擴(kuò)展該項(xiàng)目,我將進(jìn)行一些修改

實(shí)施數(shù)字濾波器以完全衰減噪聲

設(shè)置ADC代碼,平均代碼和積分代碼以依次觸發(fā)。

使用其他傳感器進(jìn)行反饋,因?yàn)樵搨鞲衅鞯姆蔷€性響應(yīng)在該項(xiàng)目中引起了各種各樣的問(wèn)題,但更多的是控制方面而不是編碼方面。

步驟9:額外的工作

在整個(gè)暑假期間,我為級(jí)聯(lián)控制器編寫(xiě)了代碼,并實(shí)現(xiàn)了我為單回路PID控制器推薦的修改方案。

對(duì)常規(guī)PID控制器所做的修改

·FIR過(guò)濾器模板實(shí)施的系數(shù)必須進(jìn)行更改以實(shí)現(xiàn)所需的截止頻率。當(dāng)前的實(shí)現(xiàn)是一個(gè)5抽頭的fir濾波器。

·已經(jīng)設(shè)置了代碼計(jì)時(shí),以便該濾波器將新的樣本傳播通過(guò),并在輸出準(zhǔn)備就緒時(shí)觸發(fā)積分項(xiàng),該積分項(xiàng)將被觸發(fā)。

·驅(qū)動(dòng)程序的主for循環(huán)也已減少,因?yàn)閒or循環(huán)之前花費(fèi)了7個(gè)周期,因此變慢了。降低了控制器的最大運(yùn)行速度,但是通過(guò)減小for循環(huán)t 4狀態(tài),這意味著代碼的主要塊可以在4個(gè)時(shí)鐘周期內(nèi)運(yùn)行。

測(cè)試

此控制器已按預(yù)期進(jìn)行測(cè)試和執(zhí)行,我沒(méi)有為此證明拍照,因?yàn)樵擁?xiàng)目的這一部分只是為了保持頭腦活躍。用于測(cè)試的代碼以及測(cè)試平臺(tái)將在此處提供,因此您可以在實(shí)現(xiàn)之前測(cè)試程序。

為什么要使用級(jí)聯(lián)控制器

級(jí)聯(lián)控制器控制系統(tǒng)的兩個(gè)部分。在這種情況下,級(jí)聯(lián)控制器將具有外部回路,該外部回路是具有來(lái)自紅外傳感器的反饋的控制器。內(nèi)環(huán)具有來(lái)自轉(zhuǎn)速計(jì)的脈沖之間的時(shí)間形式的反饋,該反饋確定風(fēng)扇的轉(zhuǎn)速。通過(guò)實(shí)施控制,可以從系統(tǒng)中獲得更好的響應(yīng)。

級(jí)聯(lián)控制器的工作原理是什么?

控制器外環(huán)會(huì)向內(nèi)部環(huán)控制器饋送一個(gè)在波利之間的時(shí)間值。然后,該控制器將增加或減少占空比,以達(dá)到脈沖之間的期望時(shí)間。

在鉆機(jī)上實(shí)施修改。

很遺憾,我無(wú)法在我無(wú)法訪問(wèn)的情況下在鉆機(jī)上實(shí)施這些修改。我測(cè)試了修改后的單環(huán)控制器,該控制器可以按預(yù)期工作。我尚未測(cè)試級(jí)聯(lián)控制器。我相信控制器可以正常工作,但可能需要進(jìn)行一些細(xì)微的修改才能按預(yù)期工作。

測(cè)試

我無(wú)法像以前那樣測(cè)試控制器難以模擬兩個(gè)輸入源。我在級(jí)聯(lián)控制器上看到的唯一問(wèn)題是,當(dāng)外環(huán)試圖增加提供給內(nèi)環(huán)的設(shè)定點(diǎn)時(shí),較大的設(shè)定點(diǎn)實(shí)際上是風(fēng)扇的較低RPS,但這可以輕松解決。從設(shè)定值信號(hào)的最大值(4095-設(shè)定值-tacho_result)中取設(shè)定值。

第10步:結(jié)論

項(xiàng)目開(kāi)始時(shí)我的總體項(xiàng)目功能符合我的預(yù)期,因此我對(duì)結(jié)果感到滿(mǎn)意。感謝您抽出寶貴的時(shí)間閱讀我在VHDL中開(kāi)發(fā)PID控制器的嘗試。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    817

    瀏覽量

    128139
  • PID控制
    +關(guān)注

    關(guān)注

    10

    文章

    460

    瀏覽量

    40096
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何選擇合適的PID控制器

    在工業(yè)自動(dòng)化領(lǐng)域,PID控制器因其簡(jiǎn)單、高效和廣泛應(yīng)用而備受青睞。PID代表比例(Proportional)、積分(Integral)和微分(Derivative)三個(gè)控制作用,它們共
    的頭像 發(fā)表于 11-13 14:34 ?507次閱讀

    如何調(diào)節(jié)PID參數(shù) PID控制器的調(diào)試方法

    在現(xiàn)代工業(yè)自動(dòng)化控制系統(tǒng)中,PID控制器因其簡(jiǎn)單、高效而被廣泛使用。PID控制器的三個(gè)參數(shù)——比例(P)、積分(I)和微分(D)——共同決定
    的頭像 發(fā)表于 11-13 14:31 ?2111次閱讀

    什么是PID控制器的原理 PID算法在自動(dòng)化中的應(yīng)用

    (Derivative)三個(gè)單詞的首字母縮寫(xiě),分別對(duì)應(yīng)控制器的三種基本控制作用。 PID控制器的原理 比例(P)控制 :比例
    的頭像 發(fā)表于 11-13 14:27 ?849次閱讀

    PID控制器的類(lèi)型和選擇指南

    PID控制器是一種廣泛應(yīng)用于工業(yè)控制系統(tǒng)中的控制器,它根據(jù)系統(tǒng)的偏差來(lái)計(jì)算控制量,以實(shí)現(xiàn)對(duì)系統(tǒng)的精確控制
    的頭像 發(fā)表于 11-06 10:37 ?551次閱讀

    什么是PID控制器及其應(yīng)用

    PID控制器,全稱(chēng)比例-積分-微分控制器(Proportional-Integral-Derivative Controller),是工業(yè)控制領(lǐng)域中一種極為重要的
    的頭像 發(fā)表于 11-06 10:27 ?1042次閱讀

    PID調(diào)節(jié)中的d指的是什么控制器

    (Proportional)、積分(Integral)和微分(Derivative),這三個(gè)參數(shù)分別對(duì)應(yīng)控制器的三種基本控制作用。 在PID控制器中,D代表微分(Derivative)
    的頭像 發(fā)表于 09-12 14:48 ?965次閱讀

    工業(yè)控制中常用的pid控制器是什么

    PID控制器是一種廣泛應(yīng)用于工業(yè)控制領(lǐng)域的控制器,其全稱(chēng)為比例-積分-微分控制器(Proportional-Integral-Derivat
    的頭像 發(fā)表于 06-30 10:41 ?1003次閱讀

    PID控制器與PWM控制器的區(qū)別

    在工業(yè)自動(dòng)化和控制系統(tǒng)設(shè)計(jì)中,PID控制器(比例-積分-微分控制器)和PWM控制器(脈沖寬度調(diào)制控制器
    的頭像 發(fā)表于 06-05 18:25 ?3172次閱讀

    PID控制器在工業(yè)自動(dòng)化中的應(yīng)用

    在工業(yè)自動(dòng)化領(lǐng)域中,控制器的應(yīng)用至關(guān)重要,它直接決定了生產(chǎn)過(guò)程的穩(wěn)定性和效率。PID(比例-積分-微分)控制器作為工業(yè)自動(dòng)化控制的核心組件之一,因其結(jié)構(gòu)簡(jiǎn)單、參數(shù)可調(diào)、適用性強(qiáng)等優(yōu)點(diǎn),
    的頭像 發(fā)表于 06-05 16:24 ?1720次閱讀

    PID控制器與電阻的區(qū)別

    在電子技術(shù)和控制系統(tǒng)中,PID控制器和電阻都扮演著重要的角色。然而,它們?cè)诠δ?、工作原理和?yīng)用領(lǐng)域等方面存在顯著的差異。本文將從多個(gè)角度對(duì)PID
    的頭像 發(fā)表于 06-05 16:01 ?944次閱讀

    PID控制器與開(kāi)關(guān)控制器的區(qū)別

    在工業(yè)自動(dòng)化控制系統(tǒng)中,PID控制器和開(kāi)關(guān)控制器是兩種常見(jiàn)的控制策略。它們各自具有獨(dú)特的工作原理、應(yīng)用場(chǎng)景和優(yōu)缺點(diǎn)。本文旨在詳細(xì)探討
    的頭像 發(fā)表于 06-05 15:50 ?840次閱讀

    PID控制器和PLC的區(qū)別

    在工業(yè)自動(dòng)化和過(guò)程控制領(lǐng)域,PID控制器(比例-積分-微分控制器)和PLC(可編程邏輯控制器)是兩個(gè)非常重要的組成部分。它們各自擁有獨(dú)特的功
    的頭像 發(fā)表于 06-05 15:32 ?3518次閱讀

    什么是PID控制器?有哪些作用?

    在現(xiàn)代工業(yè)自動(dòng)化控制系統(tǒng)中,PID(比例-積分-微分)控制器無(wú)疑是最常見(jiàn)且重要的控制算法之一。PID控制
    的頭像 發(fā)表于 06-05 15:30 ?3240次閱讀

    什么是pid控制,其控制作用是什么

    信號(hào)進(jìn)行比例、積分和微分運(yùn)算,從而實(shí)現(xiàn)系統(tǒng)的穩(wěn)定控制和性能優(yōu)化。 PID控制器由三個(gè)部分組成:比例控制器(P),積分控制器(I)和微分
    的頭像 發(fā)表于 02-01 14:51 ?2441次閱讀

    什么是PID控制器?PID控制器控制器中的積分控制是什么?

    PID,就是“比例(proportional)、積分(integral)、微分(derivative)”,是一種很常見(jiàn)的控制算法。 一、PID控制器
    的頭像 發(fā)表于 01-11 08:35 ?1903次閱讀
    什么是<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>?<b class='flag-5'>PID</b><b class='flag-5'>控制器</b><b class='flag-5'>控制器</b>中的積分<b class='flag-5'>控制</b>是什么?