烧水done.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实习目的 增强自己动手实践能力,掌握最基本得pid控制 实习单位及岗位介绍 陕西科技大学:国家一本院校 灞桥电厂:隶属大唐电力公司 实习安排 6.20-7.01热水杯恒温控制系统的设计与制作 7.04-7.08灞桥电厂参观实习,听讲座,完成实习报告 硬件系统的设计: 1、温度测控系统的结构框图: 2、主要硬件介绍: 主要硬件设备:STC89C52单片机、数字温度传感器DS18B20、LED1602、7805、BTA06、MOC3022。 STC89C52 是一种低功耗、高性能CMOS8位微控制器,与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、全静态操作:0Hz~33Hz 、三级加密程序存储器 、 32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针、掉电标识符 。三端稳压集成电路。 (2-1) 理想的数字PID是上述连续PID控制规律的离散化的实现。为了用软件程序实现PID控制规律,当采样周期足够小时,我们可以求和代替积分、用向后差分代替微分,上述方程式离散化为差分方程,可做如下近似 (2-2) 由上述三式可得数字PID控制算式 =++ (2-3) PID控制算法实质是根据反馈后计算得到的输入偏差,按比例、积分、微分的函数关系进行运算,其运算结果用以输出控制。 PID是周期性地控制操作。假定控制器的执行频率足够高,以使系统得到真确控制。误差信号是通过将被控参数的期望设定值减去该参数的实际测量值来获得的。误差的符号表明控制输入所需的变化方向。 P项 由误差信号乘以一个P增益因子形成,使PID控制响应为误差幅值的函数。当误差信号增大时,控制器的P项将变大以提供更大的校正量。 I项 对全部误差信号进行连续积分。因此,小的静态误差随时间累计为一个较大的误差值。累计误差信号乘以一个I增益因子即成为PID控制器的I输出项。 D项 D项输入是计算前次误差值与当前误差值的差来获得的。该误差乘以一个D项增益因子即成为D输出项。系统误差变化的越快,控制器的D项将产生更大的控制输出#includereg52.h #includedelay.h #includeLCD_1602.h #includeds18b20.h #includemath.h #define uchar unsigned char #define uint unsigned int #define Sample_time 3 //定义采样时间 #define Derivative 0.005 sbit kaitong=P2^0; int i,setPoint,Error,SumError,dError,LastError,num_counter,open_duty,PP,II; float real_error,Proportion,Integral; void auto_adjust(int NextPoint) { //Proportion=PP/100,Integral=II/1000; Error = setPoint - NextPoint; // 偏差 if(Error 100) { open_duty = 60;//全开通 } else if(Error = 100) { SumError += Error; // 积分 dError = Error - LastError; // 当前微分 LastError = Error; real_error = Proportion*Error+ Integral * SumError+ Derivative * dError; open_duty = (int)(real_error+0.5); } } (2)定时器程序: 定时初始值的计算:T=2^16-50ms/1us=15536=3CB0H /***************************** 函数功能:定时器初始化,50ms 进入中断一次。 *****************************/ STC_init() { TMOD=0x01;//定时器0,工作方式1; EA=1; ET0=1; TH0=0x3C; TL0=0xB0; //50ms进入中断一次 TR0=1; } (3)按键程序: /*========================

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档