久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AVR單片機atmega32的PID和PWM液體流量控制系統研究

基于AVR單片機atmega32的PID和PWM液體流量控制系統研究

作者: 時間:2013-12-12 來源:網絡 收藏

4.2 算法

基于AVR單片機atmega32的PID和PWM液體流量控制系統研究

常規的算法的基本原理如下圖4-1所示,模擬控制器的控制規律為

基于AVR單片機atmega32的PID和PWM液體流量控制系統研究

——比例系數; ——積分常數; ——微分常數; ——控制常量。
由于單片機控制是一種采樣控制,它只能根據采樣時刻的偏差值計算控制量,而不能像模擬控制那樣連續輸出控制量,進行連續控制。并且單片機處理數據的量有限,綜合考慮該系統采用增量式PID控制,其算法如式4-3:

基于AVR單片機atmega32的PID和PWM液體流量控制系統研究

其中 為本次采樣誤差; 為上次采樣誤差; 為上上次采樣誤差。其控制程序的流程圖如圖4-2所示

基于AVR單片機atmega32的PID和PWM液體流量控制系統研究

用C編程實現程序如下所示:
void PID()
{float u; //電壓差值
sint z; //本次輸出增量
sint temp1; //臨時記錄值
float t;
t=itime*T;
Speed_change(); //將流速轉化為數字量
if (Ek==(0-Sheding_liusu)) //當Ek大于某一值時直接加最大
{temp1=0x0000;
SetOutputOCR1A(temp1); }//設置輸出比較寄存器值
else{
Ek=Sheding_liusu-Celiang_liusu;
u=A*((Ek-Ek_1)+(t/B)*Ek+(C/t)*(Ek-2*Ek_1+Ek_2)); //增量式PID算法
z=u/U1*0x03FF;
temp1=GetOutputOCR1A(); //讀取輸出比較寄存器值
temp1=temp1+z;
SetOutputOCR1A(temp1);
Ek_2=Ek_1;
Ek_1=Ek;}
TCNT1=0x00;}
5. Matlab下的仿真
Matlab是控制系統的一種分析和仿真軟件,利用它可以方便準確的對控制系統進行仿真,為了驗證數字PID算法的可靠性,采用Matlab6.5下的simulink組件對增量數字PID算法進行了仿真,仿真程序如圖5-1所示,仿真結果如圖5-2所示.。

基于AVR單片機atmega32的PID和PWM液體流量控制系統研究

如圖5-2Kp=0.5,Ki=0.001,Kd=0.001
仿真結果表明運用PID對方波進行調解具有良好的動態性和穩定性,從而證明了該得可行性。
6.結束語
本文介紹了運用數字PID算法結合AVR單片機的功能實現液體流量控制的方案,并運用Matlab軟件進行了仿真,證明了系統的可行性。數字PID算法調整控制參數較之硬件PID控制器操作簡便,系統設置靈活。該控制系統可應用于工業、農業等領域的液體流量控制中,也可用于液壓系統的電磁閥控制。
本文作者創新點:
傳統的液體流量控制大多采用高速開關電磁閥,電磁閥的頻繁開關會產生很大滯后性,不利于控制的系統的實時性。該系統利用信號控制比例電磁閥開口的大小,實現了流量的連續控制,減少了滯后性同時采用了增量式數字PID算法調節實現了閉環控制,使系統調節更準確,更穩定。
參考文獻:
[1] 劉金坤,先進PID控制Matlab仿真(第2版)電子工業出版社 2004。
[2] 王曉明,電動機的單片機控制 北京:北京航空航天大學出版社 2002
[3] 王正林等 過程控制與Simulink應用 電子工業出版社 2006。
[4] 聶慧萍 基于ARM 和uCOS—II的固體科氏流量計測控系統 微計算機信息 2005第21卷第7-2期。

pwm相關文章:pwm原理



上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉