找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4374|回复: 0
打印 上一主题 下一主题
收起左侧

用pid算法得到稳定的温度的方法

[复制链接]
跳转到指定楼层
楼主
ID:82781 发表于 2015-6-13 01:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
计算公式:

计算公式有两段,按照PID返回的误差正数和负数进行区分,如果是正,那么是高温段,如果是负或0表示低温段,用略微不同的公式计算如下:


低温段:(温度不足基准点)


    pwm_adjust  =  pwm_criterion  + { pid_err  *  [(pwm_min - pwm_criterion ) /(temp_norma_ad - temp_min_ad)]  }



高温段:(温度超过基准点)


    pwm_adjust  =  pwm_criterion  + { pid_err  *  [(pwm_max - pwm_criterion ) /(temp_norma_ad - temp_max_ad)]  }
核心思想:想要得到稳定的温度,必须有个期望的温度值,无论控制加热功率还是其他的方式,最终目的只有一个,那就是让温度停留在我们标定的温度点,理论上是这样,
现实往往是这样:我们设定一个温度点,然后我们控制加热功率方法来逼近这个点如果不够那么加大功率补充温度,如果足够那么减小功率降温,以达到我们想要的温度,
所以现实中他必定是震荡的,即一会高一会低,这个高和低都是相对于目标温度点来说的,如果按照PID理论来说这个P也就是比例就可以实现这样的震荡,震荡是正常的,也是最初级的
也就是说系统中仅仅有一个比例控制就会震荡,这个微分和积分就是为了消除这种周期的震荡而产生的,这里我只用D来处理,分量不大,因为我不能完全搞明白他的曲线,只是大概知到点趋势。所以主要在系统中占统治地位的是比例闭环控制,到目前为止我只能提供如此的数学模型,比例我还明白的,但是微分项和积分项叠加后的就很难说了,因为那就不是线性系统,目前这个加上了微分项也不是纯线性的,但是由于比例分量较大,所以这里还是可以使曲线很接近于线性,所以这个输出函数就是如此了。网上大量例子,但是都是一个系统一个输出函数
虽然PID算法一样但是找到一个合适的输出函数,绝非易事,系统和系统之间的差异太大了,所以我也是仅仅的参照了PID的计算部分。只是我转化成了浮点运算,对低端单片机来讲浮点非常占空间和CPU时间,但是没有办法,我需要他计算浮点,别的也不会了。故而加大了系统开销,做好一个东西绝对不是简单的事情。至少对我来说是。剩下多部分时间是找这些点,定这些值。
需要大量的数据和测试。没有办法。我没有办法选择。自整定的也有,但是那个更搞不明白了,还不如这个了,嗳气!!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表