《模糊PID控制温控系统设计C语言程序代码》由会员分享,可在线阅读,更多相关《模糊PID控制温控系统设计C语言程序代码(17页珍藏版)》请在人人文库网上搜索。

1、模糊PID控制温控系统仿真设计C程序代码#in clude#defi ne uchar un sig ned char#defi ne uint un sig ned int#defi ne PULSE 200#defi ne number 0.035sbit SDO = P2A0;sbit SDI = P2A1;sbit CS = P2A2;sbit CLK = P2A3;sbit EOC = P2A4;sbit RS = P2A5;sbit RW = P2A6;sbit EN = P2A7;sbit KEY仁 P3A0;sbit KEY2=卩3八1;sbit KEY3=卩3八2;sbit 。

2、KEY4=卩3八3;sbit KEY5=卩3八4;sbit IN1 = P3A5;sbit IN2 = P3A6;sbit ENA = P3A7;uchar flag;uchar flag_start;float S_temp=60.0;float P_temp=20.0;float Kp;float Ki;float Kd;float Err=0.0;float Last_Err=0.0;float D_Err=0.0;float Sum_Err=0.0;float U=0.0;/*函数功能:延时*/void delay_ms(uchar z)uchar i;uchar j;for(i=z;。

3、 iO;i-)for(j=360;j0;j-);void delay_us(uchar z)uchar i;for(i=z; i0;i-);void LCD_WriteData(uchar Dat) _RS = 1;P1 = Dat;delay_us(10);EN = 1;delay_us(10);EN = 0;void LCD_WriteCOM(uchar com) _RS = 0;P1 = com;delay_us(10);EN = 1;delay_us(10);EN = 0;void Show_Num(uchar x,uchar y,uchar n, float num) _uchar 。

4、a3;uchar i;uint Temp;Temp=(i nt)num;for(i=0;i 0;i-)LCD_WriteData(ai-1+0x30);void Show_Ki(uchar num _Ki)uchar Temp; num_Ki=Ki*100; Temp=(uchar) num _Ki; Show_Num(10,2,1,Temp%10); Temp=Temp/10;Show_Num(9,2,1,Temp%10);Temp=Temp/10;Show_Num(7,2,1,Temp);_void Show_char(uchar x,uchar y,uchar ch)_if(y%2 = 。

5、1)LCD_WriteCOM(0x80+x);elseLCD_WriteCOM(0x80+0x40+x); LCD_WriteData(ch); _ void LCDni t(void) _RW = 0;EN = 0;LCD_WriteCOM(0x38);LCD_WriteCOM(0x0c);LCD_WriteCOM(0x06);LCD_WriteCOM(0x01); /*函数功能:显示函数*void LCD_display(void) _Show_char(1,1,T); delay_us(10); Show_char(0,1,卩);delay_us(10);Show_char(1,1,T)。

6、;delay_us(10);Show_char(2,1,:);delay_us(10);Show_Num(3,1,3,P_temp);delay_us(10);Show_char(10,1,S);delay_us(10);Show_char(11,1,T);delay_us(10);Show_char(12,1,:);delay_us(10);Show_Num(13,1,3,S_temp);delay_us(10);Show_char(0,2, P);delay_us(10);Show_char(1,2,:);delay_us(10);Show_Num(2,2,2,Kp);delay_us(1。

7、0);Show_char(5,2,T);delay_us(10);Show_char(6,2,:);delay_us(10);Show_char(8,2,.);delay_us(10);Show_Ki(Ki);delay_us(10);Show_char(12,2,D);delay_us(10);Show_char(13,2,:);delay_us(10);Show_Num(14,2,2,Kd); delay_us(10); _/* 函数功能:定时器2初始化 */ void Timer2ni t() _RCAP2H =(65536-300)/256;RCAP2L =(65536-300)%25。

8、6;TH2 = RCAP2H;TL2 = RCAP2L;ET2 = 1;TR2 = 1;EA = 1;/* 函数功能:键盘扫描,调整设置温度 */ void key_sca n(v oid) _if(KEY1=0)delay_ms(1);if(KEY1=0)S_temp=S_temp+1; if(S_temp=200) S_temp=200;while(!KEY1);if(KEY2=0)delay_ms(1);if(KEY2=0)if(S_temp0) S_temp=S_temp-1;else if(S_temp=10) S_temp=S_temp-10;while(!KEY4); if(KE。

9、Y5=0) delay_ms(1); if(KEY5=0) flag_start=1; while(!KEY5); /*函数功能:PID的计算*/void PID_Calculate() _Err = S_temp - P_temp; Sum_Err += Err; D_Err = Err - Last_Err; Last_Err = Err; U=Kp*Err+Ki*Sum_Err+Kd*D_Err; U=( in t)U;if(U=0) if(U=200) U=200;flag=1;elseU=-U;if(U=200)U=200;flag=0;函数功能:PID参数Kp的计算float fu。

10、zzy_kp(float e, float ec)e,ec 表示误差,误差变化率float Kp_calcu;uchar nu m,pe,pec;float code eRule7=-3.0,-2.0,-1.0,0.0,1.0,2.0,3.0;误差 E 的模糊论域float code ecRule7=-3.0,-2.0,-1.0,0.0,1.0,2.0,3.0; /误差变化率 EC 的模糊论 域float eFuzzy2=0.0,0.0;float ecFuzzy2=0.0,0.0;float code kpRule4=0.0,8.0,16.0,24.0;float KpFuzzy4=0.0,。

11、0.0,0.0,0.0;in t code KpRule77=3,3,3,3,3,3,3,/隶属于误差E的隶属程度/隶属于误差变化率EC的隶属程度/Kp的模糊子集/隶属于Kp的隶属程度/Kp的模糊控制表222,2,1,2,2,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,0,1,0,0,1,0,0,1,0,1,0,0,2,3,3,3,3,3,3,3;/*误差E隶属函数描述*/if(e2)PORT = port; return AD_value; _float AD_deal(void) _ui nt AD_value;float temp;AD_value = read_tlc2。

12、543(0x00); temp = AD_value* nu mber; return temp;主函数*void ma in (void)uchar AD_value=0; flag=0;flag_start=0;ENA=1;IN 仁0;IN2=0;LCDni t(); LCD_display(); Timer2_I ni t();while(1) if(flag_start=0) _key_sca n();Show_Num(13,1,3,S_temp);Show_Num(3,1,3,P_temp); 一 一else if(flag_start=1) P_temp=AD_deal();Sho。

13、w_Num(3,1,3,P_temp); PID_Calculate();/E量化因子5Kp=fuzzy_kp(Err/5,D_Err);Ki=fuzzy_ki(Err/5,D_Err);Kd=fuzzy_kd(Err/5,D_Err);Show_Num(2,2,2,Kp); Show_Ki(Ki);Show_Num(14,2,2,Kd); key_sca n();Show_Num(13,1,3,S_temp); void timer2() in terrupt 5 定时器2中断*/static uchar nu m1=0;TF2 = 0;nu m1+;if(n um1PULSE)num仁 0;ENA=1。

温控系统c语言源代码,模糊PID控制温控系统设计C语言程序代码相关推荐

  1. 温控仪C语言程序,模糊PID控制温控系统设计C语言程序代码

    <模糊PID控制温控系统设计C语言程序代码>由会员分享,可在线阅读,更多相关<模糊PID控制温控系统设计C语言程序代码(17页珍藏版)>请在人人文库网上搜索. 1.*模糊PID ...

  2. 单片机自动调光C语言,基于51单片机的DS18B20水温PID控制调节系统设计C语言程序...

    #include 'reg52.h' #include 'stdio.h' #define uchar unsigned char #define uint unsigned int sbit s1= ...

  3. 模糊pid控制的温度系统matlab源代码_变风量空调模糊 PID 控制系统的仿真研究

    一般在负荷变化较大的大型中央空调系统中,采用温度恒定和改变风量的调节方式,从而使控制房间的送风量随系统负荷的变化而变化的中央空调系统叫做变风量空调系统.该系统最大优点就是a节能,如果全年运行,可节约能 ...

  4. 模糊PID控制在自动光电整纬装置中的应用

    模糊PID控制在自动光电整纬装置中的应用 摘要:针对纺织品在运行过程中的变形是非线性.时变的特点,提出一种新型自动整纬装置的设计方法.采用高性能的TMS320LF2407A芯片作为主处理单元,软件采用 ...

  5. 基于SIMULINK的燃烧过程模糊PID控制系统仿真

    基于SIMULINK的燃烧过程模糊PID控制系统仿真 1 燃烧过程控制系统 在许多的工业生产过程中,燃烧都是必需的一环.燃烧过程有燃油.燃煤.燃气等区别.虽然燃烧应用场合和燃料各异,但是燃烧过程的控制 ...

  6. 模糊PID控制双容水箱液位控制-模糊控制

    资源: 双容水箱液位模糊PID控制MATLAB仿真-电子商务文档类资源-CSDN文库 模糊控制原理 水流入量Qi由调节阀R1(FV101)控制,流出量Q2由用户通过负载阀R2来改变,被调量为下水箱水位 ...

  7. matlab 模糊pid mimo 对应,双关节机械手的模糊PID控制系统设计.doc

    双关节机械手的模糊 PID 控制系统设计 摘 要 为了实现高阶.非线性.强耦合的机械手运动系统的控制,本文选用能够充分 体现机械手特性并且结构较为简单的 2 自由度机械手--双关节机械手,作为被控 对 ...

  8. 汽车防抱死系统_ABS_建模与模糊PID控制研究

    本文旨在设计一种利用模糊控制理论优化的pid控制器,控制abs系统,达到对滑移率最佳控制范围的要求 ,所提出的方案采用级联控制架构:设计用于外环中的车轮打滑控制的具有Takagi-Sugeno-Kan ...

  9. 双容水箱液位模糊PID控制系统设计与仿真(Matlab/Simulink)

    前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看.(点击跳转人工智能学习资料) 微信公众号:创享日记 发送:双容模糊 获取完整无水印报告+仿真源文件+ ...

最新文章

  1. 改善FLEX/FLASH性能的小技巧(转)
  2. 转:Webkit Flex伸缩盒模型属性备忘
  3. Matlab 数字图像处理1---图像的收缩和放大
  4. C++类指针类型的成员变量的浅复制与深复制
  5. 蓝桥杯扫盲之int, char, unsigned int, unsigned char的使用
  6. 第七章 进程环境 | 001 命令形参、gcc与g++的使用
  7. Ppt2010中HTML是什么,2010dw1html简介.ppt
  8. 【华为云技术分享】华为云HiLens全面升级,端云协同多模态AI应用开发利器
  9. mysql启动失败 linux_如何解决MySQL内存不足启动失败的问题
  10. linux git hook,前端通过githook一键自动部署项目
  11. bat 下 字符串拆分 类似 split 可以使用 for /f delims
  12. 成品app直播源码,Android自屏幕底部滑出更多面板的实现
  13. Hexagon DSP系列记录(二)——写Hexagon DSP程序流程
  14. 人机对弈黑白棋游戏用Python tkinter的Canvas实现图形界面
  15. linux虚拟串口控制器实现---适用于无开发板学习tty driver
  16. 用python来开发webgame服务端系列
  17. 怎样写一封得体的电子邮件
  18. 《数字图像处理(第三版)》 第二章 数字图像基础 笔记1(视觉与电磁波谱)
  19. ACM求多边形重心和面积问题
  20. 破解神器Hashcat使用简介

热门文章

  1. MacOS AssetCache 占用网速原因以及解决办法
  2. Revit插件实现【快速扣减】的两种操作
  3. matlab 读取voi文件,VOI虚拟化下的Windows网卡驱动加载方法与流程
  4. <<Linux基础环境常用工具—yum、vim、gcc/g++、gdb、git等>>
  5. 磁敏感加权成像(SWI):技术要点和临床神经学应用
  6. linux网络编程—7层网络以及5种Linux IO模型以及相应IO基础
  7. 数据库(一)键值约束
  8. 如何将一个矩阵化为行阶梯形矩阵
  9. 数据结构之堆(大顶堆)实现
  10. Golang实现的大顶堆demo