欢迎来到第一文库网! | 帮助中心 第一文库网-每个人都是第一
第一文库网
全部分类
  • 研究报告>
  • 学术论文>
  • 全科教育>
  • 应用文档>
  • 行业资料>
  • 企业管理>
  • 技术资料>
  • 生活休闲>
  • ImageVerifierCode 换一换
    首页 第一文库网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    模糊PID控制温度系统的C语言设计程式.docx

    • 资源ID:890244       资源大小:50.01KB        全文页数:38页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    扫码关注公众号登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    模糊PID控制温度系统的C语言设计程式.docx

    模糊PID控制温控系统仿真设计C程序代码#inc1ude<reg52.h>#defineucharunsignedchar#defineuintunsignedint#definePU1SE200#definenumber0.035sbitSDO=P20;sbitSDI=P21;sbitCS=P22;sbitC1K=P23;sbitEOC=P24;sbitRS=P25;sbitRW=P26;sbitEN=P27;sbitKEY1=P30;sbitKEY2=P31;sbitKEY3=P32;sbitKEY4=P33;sbitKEY5=P34;sbitIN1=P35;sbitIN2=P36;sbitENA=P37;ucharf1ag;ucharf1ag_start;f1oatS_temp=60.0;f1oatP_temp=20.0;f1oatK;f1oatKi;f1oatKd;f1oatErr=0.0;f1oat1ast_Err=0.0;f1oatD_Err=0.0;f1oatSum_Err=0.0;f1oatU=0.0;函数功能:延时uchari;ucharj;for(i=z;i>0;i-)for(j=360;j>0;j-);)voidde1ay_us(ucharz)(uchari;fbr(i=z;i>O;i-);)void1CD_WriteData(ucharDat)(RS=1;P1=Dat;de1ay_us(10);EN=1;de1ay_us(10);EN=O;)RS=O;P1=com;de1ay_us(10);EN=1;de1ay_us(10);EN=O;voidShow_Num(ucharx,uchary,ucharn,f1oatnum)uchara3;uchari;uintTemp;Temp=(int)num;for(i=0;i<n;i+)fai=Temp%10;Temp=Temp/10;)if(y%2=1)1CD_WriteCOM(0x80+x);e1se1CD_WriteCOM(0x80+0x40+x);for(i=n;i>0;i)1CD_WriteData(ai-1+0x30);voidShow_Ki(ucharnum_Ki)(ucharTemp;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);)voidShow_char(ucharx,uchary,ucharch)(if(y%2=1)1CD_WriteCOM(0x80+x);e1se1CD_WriteCOM(0x80+0x40+x);1CD_WriteData(ch);)void1CD_Init(void)(RW=O;EN=O;1CD_WriteCOM(Ox38);1CD-WriteCOM(OxOc);1CD.WriteCOM(0x06);1CD_WriteCOM(0x01);函数功能:显示函数void1CD_disp1ay(void)(Show_char(1,1,T,);de1ay_us(10);Show_char(0,1,P,);de1ay_us(10);Show-char(1,1,T');de1ay_us(10);ShoW_char(2,1de1ay_us(10);Show-Num(3,1,3,P_temp);de1ay_us(10);Show_char(10,S);de1ay_us(10);Show.char(11,1,T);de1ay-us(10);Show-char(12,1,:');de1ay_us(10);Show_Num(13,1,3,S_temp);de1ay_us(10);Show.char(0,2P,);de1ay_us(10);Show_char(1,2/:');de1ay_us(10);ShoW_Num(2,2,2,KP);de1ay_us(10);Show_char(5,2,T);de1ay_us(10);Show_char(6,27:1);de1ay_us(10);Show_char(8,2/.');de1ay_us(10);Show_Ki(Ki);de1ay_us(10);Show_char(12,2,'D');de1ay_us(10);Show_char(13,2,':');de1ay-us(10);ShOW_Num(14,2,2,Kd);de1ay_us(10);函数功能:定期器2初始化voidTimer2_Init()RCAP2H=(65536-300)/256;RCAP21=(65536-300)%256;TH2=RCAP2H;T12=RCAP21;ET2=1;TR2=1;EA=1;)函数功能:键盘扫描,调整设置温度voidkey_scan(void)(if(KEY1=0)(de1ay_ms(1);if(KEY1=0)(S_temp=S_temp+1;if(S_temp>=200)S_temp=200;whi1e(!KEY1);)if(KEY2=0)(de1ay_ms(1);if(KEY2=0)(if(S-temp>O)S_temp=S_temp-1;e1seif(S_temp<=0)S-temp=O;whi1e(!KEY2);if(KEY3=O)fde1ay_ms(1);if(KEY3=O)(if(S-temp<=190)S_temp=S_temp+10;whi1e(!KEY3);)if(KEY4=0)(de1ay-ms(1);if(KEY4=0)(if(S-temp>=10)S_temp=S_temp-10;whi1e(!KEY4);)if(KEY5=0)(de1ay_ms(1);if(KEY5=0)(f1ag-start=1;whi1e(!KEY5);函数功能:P1D的计算voidPID_Ca1cu1ate()(Err=S_temp-P_temp;Sum_Err+=Err;D_Err=Err-1ast_Err;1ast_Err=Err;U=Kp*Err+Ki*Sum_Err+Kd*D_Err;U=(int)U;if(U>=0)if(U>=200)U=200;f1ag=1;)e1seU=-U;if(U>=200)U=200;f1ag=O;函数功能:PID参数KpB¾计算f1oatfuzzy_kp(f1oate,f1oatec)/e,ec,表达误差,误差变化率f1oatKp-ca1cu;ucharnum,pe,pec;f1oatcodeeRu1e7=-3.0,-2.0,-1.0,0.0,1.0,2.0,3.0;误差EB¾模糊论域f1oatcodeecRu1e7=-3.0,-2.0,-1.0,0.0,1.0,2.0,3.0;误差变化率EC的模糊论f1oateFuzzy2J=0.0,0.0;从属于误差E日勺从属程度f1oatecFuzzy2=0.0,0.0);从属于误差变化率EC的从属程度/KpB模糊子集从属于KPB¾从属程度intcodeKpRu1e77=/Kp的模糊控制表f1oatcodekpRu1e4=0.0,8.0,16.0,24.0;f1oatKpFuzzy4=0.0,0.0,0.0,0.0;3,3,3,3,3,332,2,2,2,122,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,023,3,3,3,3,3,3;/*误差E从属函数描述*/if(e<eRu1e0)(eFuzzyO=1.0;pe=O;)e1seif(eRu1eO<=e&&e<eRu1e1)(eFuzzyO=(eRu1e1-e)(eRu1e11-eRu1eO);pe=0;e1seif(eRu1e1<=e&&e<eRu1e2)eFuzzyO=(eRu1e2-e)(eRuie2-eRu1e1);pe=1;1e1seif(eRu1e12<=e&&e<eRu1e3)(eFuzzyO=(eRu1e3-e)(eRu1e3-eRu1e2);e=2;)e1seif(eRu1e3<=e&&e<eRu1e4)eFuzzyO=(eRu1e4-e)(eRu1e4-eRu1e3);pe=3;)e1seif(eRu1e4<=e&&e<eRu1e5)(eFuzzyO=(eRu1e5-e)(eRu1e5-eRu1e4);pe=4;)e1seif(eRu1e51<=e&&e<eRu1e6)eFuzzyO=(eRu1e6-e)(eRu1e6-eRu1e5);pe=5;e1se(eFuzzyO=O.O;pe=5;)eFuzzy1=1.0-eFuzzyO;/*误差变化率EC从属函数描述*/if(ec<ecRu1eO)(ecFuzzyO=1.0;PeC=0;)e1seif(ecRu1eO<=ec&&ec<ecRu1e1)ecFuzzyO=(ecRu1e1-ec)(ecRu1e1-ecRu1eO);pec=O;)e1seif(ecRu1e1<=ec&&ec<ecRu1e2)ecFuzzyO=(ecRu1e2-ec)(ecRu1e2-ecRu1e1);pec=1;)e1seif(ecRu1ev=ec&&ec<ecRu1e3)(ecFuzzyO=(ecRu1e3-ec)(ecRu1e3-ecRu1e2);pec=2;e1seif(ecRu1e3<=ec&&ec<ecRu1e4)ecFuzzyO=(ecRu1e4-ec)(ecRu1e4-ecRu1e3);pec=3;)e1seif(ecRu1e4<=ec&&ec<ecRu1e5)ecFuzzyO=(ecRu1e5-ec)(ec

    注意事项

    本文(模糊PID控制温度系统的C语言设计程式.docx)为本站会员(lao****ou)主动上传,第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第一文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 001doc.com网站版权所有   

    经营许可证编号:宁ICP备2022001085号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



    收起
    展开