亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
單片機水位控制雙位+PID源程序+電路圖
[打印本頁]
作者:
luxuana
時間:
2019-7-12 16:09
標題:
單片機水位控制雙位+PID源程序+電路圖
電路原理圖如下:
0.png
(62.11 KB, 下載次數: 62)
下載附件
2019-7-14 01:19 上傳
0.png
(282.35 KB, 下載次數: 70)
下載附件
2019-7-14 01:20 上傳
1 整機設計
1.1 設計要求
1.1.1設計任務
以實驗室的過程對象為控制對象,設計控制系統,完成單容液位的定值控制。要求能夠顯示當前液位。
1.1.2性能指標要求
(1)設計制作系統硬件電路
(2)實現控制、信號檢測(顯示)及調節器控制規律;
(3)參數整定,使系統能夠快速克服擾動作用;
(4)其他功能。
1.2 整機實現的基本原理及框圖
1.2.1基本原理
測量變送器為壓力式液位變送器,輸出信號為0~10V電壓,執行器采用電動調節閥,接收0~10V信號。設計調節器(模擬或數字式),能夠根據用戶設定,將液位控制在要求值(采用雙位控制,PID或PI控制規律)。
具體請下載觀看吧,有說明。
單片機源程序如下:
#include "stc15.h"
#include<TM1638.h>
#include<delay.h>
#include<KeyPro.h>
#include<STC15_AD.h>
#include<STC15_pca_pwm.h>
//定時器初始化
void T0_init(void)
{
TMOD=0x01;
TH0=(0-1000)/256;
TL0=(0-1000)%256;
TR0=1;
ET0=1;
EA=1;
}
unsigned char u;
unsigned char BI_POSCTR(void) //雙位控制
{
if(Para_V[1]<Para_V[2]-2) //當前值<設定值-2
{
u = 200; //開200,最大可到255
}
else if(Para_V[1]>Para_V[2]+2)
{
u = 0;
}
else
u=100; //保持開度為100
return u;
}
float kp,ki,kd;
int ek,ek_1,ek_2;
int uk,uk_1;
unsigned char PID(void)
{
kp=(float)Para_V[3]/10;
ki=(float)Para_V[4]/10;
kd=(float)Para_V[5]/10;
ek_2=ek_1;
ek_1=ek;
ek=(int)Para_V[2]-(int)Para_V[1];
uk_1=uk;
uk=uk_1+kp*(ek-ek_1)+ki*ek+kd*(ek-2*ek_1-ek_2); //增量型PID公式
if(uk>255) uk=255; //限制溢出
if(uk<0) uk=0;
return (unsigned char)uk;
}
unsigned int OneusCNT=0;
unsigned int Ones=0;
unsigned char x=1;
unsigned char s=1;
unsigned char key_value;
float H=0;
float num=0;
void main()
{
P2M0=0;
P2M1=0;
PWM_Init();
InitADC();
T0_init();
delay_ms(10);
delay(10);
while(1)
{
key_value=Read_key();
if(key_value!=0)
{
KeyPro(key_value-1);
Cur_V[0]=Para_V[2]; //顯示區域讀取設定值
while(key_value==Read_key()); //按一次限制只執行一次
}
if(Para_V[0]==0&&x) //對象為0且采樣時間到,運行
{
SetPWM0(0);
x=0; //初始化時間
Para_V[1]=Cur_V[2]=GetADCResult(0);//讀取adc
switch(Para_V[6]) //控制方式選擇
{
case 0:
SetPWM1(Para_V[7]);
break;
case 1:
BI_POSCTR();
SetPWM1(u);
break;
case 2:
PID();
SetPWM1(uk);
break;
default: break;
}
}
if(Para_V[0]==1&&s) //同上
{
SetPWM1(0);
s=0;
num=(float)GetADCResult(6);//獲取adc
H=1314*num-428; //轉化成測量值,
Para_V[1]=Cur_V[1]=(unsigned int)(H*10);
switch(Para_V[6])
{
case 0:
SetPWM0((unsigned char)Para_V[7]);
break;
case 1:
BI_POSCTR();
SetPWM0(u);
break;
case 2:
PID();
SetPWM0(uk);
break;
}
}
if(Setting) //顯示
Display(ptPra,Para_V[ptPra],11,SetV);
else
Display(ptPra,Para_V[ptPra],ptCur,Cur_V[ptCur]);
}
}
void T0_IRQ() interrupt 1//采樣時間
{
TH0=(0-1000)/256;
TL0=(0-1000)%256;
OneusCNT++;
Ones++;
if(OneusCNT>=50)
{
x=1;
OneusCNT=0;
}
if(Ones>=300)
{
s=1;
Ones=0;
}
}
復制代碼
所有資料51hei提供下載:
水位控制雙位+PID.7z
(1.17 MB, 下載次數: 67)
2019-7-12 16:06 上傳
點擊文件名下載附件
程序+硬件+報告
下載積分: 黑幣 -5
作者:
制裁
時間:
2021-1-20 12:39
請問一下前輩,有整套PCB嗎
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1