lei_yong 发表于 2005-6-22 19:07:06

大家对用AVR实现PID控制是否有兴趣?

我觉得AVR的资源做PID控制很合适,各位大虾的意见呢?

wqhe 发表于 2005-6-22 20:52:59

PID种类很多呀!!!只要好用.....................

avr1008 发表于 2005-6-22 22:44:06

非常有兴趣!大家多讨论!!

fangmcu 发表于 2005-6-23 00:13:51

我也非常有趣,但不知怎入手,例如我很想做一个恒温电路,用PWM控制直流电机调速电路等

等!!!

czgjqaac 发表于 2005-6-23 09:13:51

有兴趣,怎么弄

lei_yong 发表于 2005-6-23 17:02:21

3楼,你在广东什么地方?

我在广州

离散PID的基本算法:



// x = 系统输入值, u = 控制量, y = 系统输出值,error = 误差,

// prev_error = 上一拍误差, integral = 误差积分值, deriv = 误差微分值;

// 可以用u控制PWM的输出

signed int x, u, y, error, prev_error, integral, deriv;



// kp = 比例增益, ki = 积分增益, kd = 微分增益;

// 调整kp, ki, kd的值使系统响应满足要求

unsigned int kp, ki, kd;



//每拍通过以下程序段计算控制量u

error = x - y;                                  //计算误差, y的值取自ADC

integral +=error;                           //计算误差积分值

deriv = (error - prev_error);                   //计算误差微分值

u = kp * (error + ki * integral + kd * deriv);//计算控制量

prev_error = error;                           //保留误差值供下一次计算使用



实现起来很简单吧?
-----此内容被lei_yong于2005-06-23,17:03:50编辑过

fangmcu 发表于 2005-6-23 18:03:51

我是广东江门的!!业余玩单片机的,请楼上多多指教!!

fangmcu 发表于 2005-6-23 18:07:08

如果确定KP、KI、KD啊!!!

lei_yong 发表于 2005-6-24 06:15:39

kp = 比例增益, 过小,系统响应慢;过大,超调大,甚至振荡。

ki = 积分增益,消除静态误差。过小,消除静态误差时间长;过大,超调大,甚至振荡。

kd = 微分增益;过小,超调大,甚至振荡;过大,系统响应慢。

你可以找一本PID控制的书看一看。

hzpyl 发表于 2005-6-24 19:41:02

我开发过PID温度控制器。找遍了网、浙江图书馆、书店,没有资料有具体的价值,或许写书的人是开口君子,或许不愿意公开。自己慢慢试吧!!!或掏钱请别人开发。

lei_yong 发表于 2005-6-25 10:35:34

我们可以一起讨论。你可以谈谈你遇到的问题。

ljd166 发表于 2005-6-25 13:03:06

PID其实并没有想象的那么难,它只需要计算误差既可以与固定参数进行运算即可

lei_yong 发表于 2005-6-25 13:42:19

基本算法很简单,掌握好几个参数(采样频率、分辨率等),就可以解决相当多的实际问题。我觉得AVR的单片机实现PID控制很有优势,发贴主要希望能看到各位大虾的意见!

fangmcu 发表于 2005-6-26 06:29:58

谢谢楼上!!

char 发表于 2005-6-26 10:28:38

希望大家再讨论一下,AVR的模糊控制.

chione 发表于 2005-6-26 10:45:24

恒温控制有那么复杂吗?

ljd166 发表于 2005-6-26 11:00:11

但是拿8位机实现复杂的PID算法,可能对于时间要求较高的项目有点勉强,因为PID运算或多或少的会用到浮点数的运算,加减乘除当然一个都不能少。所以说如果要求频繁地输出的情况下可能所有的8位机都不能以最快的速度来完成繁琐的PID算法。最好是内部带有硬件乘法器,这样可以省好多行的代码,运算速度当然也就很快!

archeng504 发表于 2005-6-26 11:53:24

http://cache.amobbs.com/bbs_upload782111/files_2/armok0154445.JPG

好象错了吧?!

应该是:

u = kp * error + ki * integral + kd * deriv;

1982wjn 发表于 2005-6-26 20:11:15

上次搞PLC都没搞成,可惜。

大家加油吧,都是业余时间别太着急呀。

armok 发表于 2005-6-27 01:34:17

lei_yong 发表于 2005-6-27 06:06:55

17楼

好象错了吧?!

应该是:

u = kp * error + ki * integral + kd * deriv;   



你列的是算法的另一种变形,本质是相同的,计算量也相同,只是参数的定义不同。



16楼

AVR本身有硬件乘法指令,8位乘8位一个指令周期可以完成。大量的PID控制,如温度控制,水位控制,对响应速度的要求并非很高(通常以秒计算),这对于AVR并不困难。

用AVR做PID,对控制对象是线性时不变并且特性不是很复杂的系统,响应速度在几十毫秒以上的应该能够应付。这已经可以解决大量的实际问题。而且,AVR的实验环境非常容易建立,成本很低,加上本网站提供的条件,对初学者入门很合适。掌握了基本原理后,对于有特殊要求的系统,如高精度、快速响应、控制对象特性复杂的应用,选用16、32甚至64位的芯片也就容易多了。



以上,请各位大虾指教!



对于斑竹的意见,我认为的确很有道理。究其原因,我感觉是部分网友动脑不足,总希望直接得到答案。此时,直接提供一个现成的方案固然是一种解决方法。但对于希望由浅入深从原理上掌握的网友,似乎仍感不足。因此,充分利用本论坛提供的条件,吸引愿意积极动脑的初学者一起讨论,也不失为一种尝试。当然,此时也特别需要各位大虾能够贡献出宝贵的知识,对我们这些后来者给予指导,在此多谢了!!!

再次谢谢斑竹的辛勤劳动!!!

谢谢各位网友的支持!!!

lanxieyu 发表于 2005-6-27 18:25:17

不知道大家有没有关于PID参数自整定的资料,有的话在这里共享一下啦!!

小弟先谢过了!

hzpyl 发表于 2005-6-27 19:32:24

ATmega8用4MHz,计算一次PID,不到5ms。

lei_yong 发表于 2005-6-28 03:59:36

关于PID中浮点计算的问题:

AVR中的ADC精度是十位或八位,相应的PWM也应该按相同的精度做。限于精度问题,用AVR做PID控制应该不需要用浮点计算。

各位大虾的意见呢?

bluerain 发表于 2005-6-28 07:58:18

国内的PID控制算法不知道为什么不好,比国外的差很多

lei_yong 发表于 2005-6-28 08:57:17

有具体的比较吗?

bluerain 发表于 2005-6-28 09:13:52

可以去工厂车间看看温控表,好的国外的表温度能控制在正负0.5度,而同样的条件下国内表是无法达到的。

ljd166 发表于 2005-6-28 10:03:07

TO:23楼

简单的PID算法拿AVR或者是任何一款8位机都可以实现。但是如果是对象比较复杂时,就不得不考虑单片机的选型问题了。

打个比方,我两年前做过的一个项目,被控对象是普通的工业炉,通过K型热电偶测温将数据转换,然后输出到阀门来控制燃料流量。但是系统设计的要求是要做到最小的超调量(也就是说温度只能升温且到达设定点后最好不要有超调),那么普通的PID参数可能无法满足,我选用的IBM的一个叫大林(DaLin)的人发明的一种改进的PID算法,这个算法可以让系统达到理想的设定值而不需要有超调或者是较小的超条。那么实现这个算法而得出的PID值是一个小数(好像是一串小数点后N多位),输入是一个12位的数据。当时选择用PIC16F877,可是这个单片机的指令只有30多条,实现复杂的浮点算法很累,记得程序好像有几万行(包括送显,通讯等),采样周期好像是0.5S(记不大得了),结果调试后慢的要命。

所以辛辛苦苦拿汇编实现后却不能用,要迅速移植又不可行,郁闷了好多天。

lei_yong 发表于 2005-6-28 11:45:54

TO:27楼

首先谢谢您提供了宝贵的经验。8位机确实不适用于高精度、高速度的复杂控制系统。

由于我没有做PID控制系统的经验,所以对于前辈所提供的例子非常感兴趣。前辈能否进一步提供该例子详细一点的资料:

   1)温度可设定的范围、精度;

   2)温度控制的精度要求;

   3)阀门开度的控制精度;

   4)控制对象的阶跃响应类型(飞升曲线);   

   5)控制要求指标(稳定时间、超调比);

我想以前辈提供的例子作为试题来自我测试一下。

以前辈已经提供的信息,我初步估计,用AVR来做还是可行的。

采样周期0.5s还是有足够的时间进行PID计算的。500MS用20MHZ的时钟可以执行1千万条指令。另外,AVR用C来编程,可移植性很好(关键的程序段可以用汇编优化)。当然,最终能否实现还要看对象特性和控制指标要求。

以上不当之处还望前辈的指教。

lei_yong 发表于 2005-6-29 04:50:25

本站有网友PID控制温度做到过冲1.0摄氏度,稳定+-0.2摄氏度。

ljd166 发表于 2005-6-29 09:19:07

TO:29楼

   我当时设计的整个系统只需要三个芯片,非常简洁,但是保证精度,由于和导师合作(属于被剽窃的项目),所以并没有考虑成本问题(当时的预算是硬件成本500块以内),具体的资料我再给你找找。我记得的一些信息如下:

   1)温度可设定的范围、精度;从0升温到700度,要求有一定的升温速度(惯性很大,所以无法用简单的PID实现小超调),然后保持一段时间,最后自然降温。

   2)温度控制的精度要求;这个是不记得了。

   3)阀门开度的控制精度; 阀门选用的是上海大田的一种蝶阀,它接收4-20MA的电流,D/A是16位的

   4)控制对象的阶跃响应类型(飞升曲线);这个我给你找找,设计要求是在一张纸上。   

   5)控制要求指标(稳定时间、超调比);好长时间没有接触自控的东西了,所以超调的度量我都有点忘记了。

   我现在还保留着整个系统的详细设计资料(程序,电路图是电子版,绝大多数设计思路在纸上,因为当时是非典,所有的机房都关了),包括程序,图纸等,稍后会共享。

   你若在设计中发现任何问题,可以随时贴帖子,大家互相交流,共同进步!

lei_yong 发表于 2005-6-29 12:25:02

TO:30楼

谢谢前辈的支持!

lei_yong 发表于 2005-6-30 08:32:22

ljd166为我们提供了一个真实的范例,我想以它为基础展开PID控制设计的讨论。希望有兴趣的网友积极参加。

下面将ljd166提供的信息归纳如下(未能提供的作了假设):

项目名称:工业用加热炉的温度控制器

热源:燃油/燃气

检测器:电压输出温度传感器(假设在700度+-125度范围内线性无时滞,575度至825度电压输出0至4.5V)

控制器输出量:电压0至4.5V,对应阀门开度0%至100%,由V-I变换器转换成4-20MA电流控制阀门开度。

控制对象特性:具有较大时滞的一阶惯性系统,时滞5S,惯性时间常数20S。最大阀门开度炉温1200度

控制要求:温度设定范围600至800度,1度步距,稳态误差+-0.5度,超调小于2度。在较短的时间达到设定温度,在设定温度保温到规定时间后自然冷却。

用AVR mega系列微控制器实现。
-----此内容被lei_yong于2005-06-30,08:41:02编辑过

fly0123 发表于 2005-6-30 17:02:34

控温系统没有你们说的那么难吧

哈哈

fangmcu 发表于 2005-6-30 17:59:28

哗!!有好东西!!顶顶!!!严重关注!!!

lei_yong 发表于 2005-6-30 20:04:44

任何事情都可以说难,也可以说不难。看你的要求如何。26楼告诉我们,国外的温控表能把温度控制在+-0.5度,国内的却做不到。你说难不难。温控的难度与控制对象的特性、控制要求关系很大,在某些情况下很难,甚至是无法实现的。我们所讨论的是如何用最优的方法实现一个可实现的系统。要达到最优,难度一定是很大的。

lei_yong 发表于 2005-7-1 06:49:28

控制对象是一个有较大时滞和时间常数的一阶惯性系统,用5楼的算法不能达到要求。就我所知,可选的改进算法有Smith预报器和Dahlin算法。对我们的项目哪种算法更好呢?

appleboy 发表于 2005-7-1 08:35:30

下个月就要做这个了



要求控制精度<=0.1度,控制对象200W的加热带!



主要是环境温度有突变(如冷风等)



还没着手做,不知道会遇到什么问题

ljd166 发表于 2005-7-1 08:58:44

TO:79楼

   更正一点,我记得我的那个项目对象的传递函数是二阶的,而且带有一个大滞后环节(大惯性环节),这几天在出差,所以没有时间来整理资料。



   希望阿莫挑个头,我们一起做一个具体的温控项目项目。

   

   项目可以采用lei_yong楼主的想法,现在归纳如下:



   项目名称:工业用加热炉的温度控制器

   热源:燃油/燃气

   检测器:电压输出温度传感器(假设在700度+-125度范围内线性无时滞,575度至825度电压输出0至4.5V)

   控制器输出量:数字量输出或PWM输出,对应阀门开度0%至100%,由V-I变换器转换成4-20MA电流控制阀门开度。

   控制对象特性:具有较大时滞的一阶惯性系统,时滞5S,惯性时间常数20S。最大阀门开度炉温1200度

   控制要求:温度设定范围600至800度,1度步距,稳态误差+-0.5度,超调小于2度。在较短的时间达到设定温度,在设定温度保温到规定时间后自然冷却。

lei_yong 发表于 2005-7-1 21:45:43

实现工业用加热炉温度控制器项目步骤:

1)确定控制对象特性和控制要求;(正在进行中)

2)确定控制算法和控制参数;

3)软件仿真校验控制算法和控制参数;

3)确定控制器MCU型号和电原理图;

4)确定控制对象硬件仿真器电原理图;

5)完成控制对象硬件仿真器的硬件、软件;

6)完成控制器硬件、软件;

7)控制器和控制对象硬件仿真器联调。

以上步骤请各位网友积极参与意见。

baplmqj 发表于 2005-7-2 09:22:33

普通的PID做得再好也只能针对一种工作特性.

关键是要给它一个聪明的大脑.

为什么老外的比较好?因为老外有足够的研发时间,和经费,设备!

我做过智能温控.体验:做实验的时间是写程序的确10-50倍长(也许更多).如果没有公司在后面支持,个人如不烧钱,也很难做出好东东来!

一个人花了那么多精力,物力的东东他们会毫无保 写在书上,发在网上?

我现在没在公司上班了,成了盲流(没工作单位),所以也帮不到忙了!

lei_yong 发表于 2005-7-2 12:55:59

一个人的能力是有限的,但大家团结起来呢?

看看WINAVR、LINUX...

再看看本网站崇尚的精神。

我不认为老外的产品就一定好,只不过是经过激烈的市场竞争,优胜劣汰后进入中国市场,我们才觉得好。对国家对本土PID产品并无特别保护政策,所以我相信能够生存下来的本土产品一定不会差,因为不好的产品是一定被市场淘汰的。

violit 发表于 2005-7-3 12:19:56

建议使用模糊——PID控制

模糊控制的优势是阶跃响应速度快,而且对于大时滞的系统也控制很好,但是稳态误差有点大,所以用PID中的积分来消除,或者可以调整论域来消除稳态误差。

总之多结构、可变结构的控制器比单纯的PID效果要好




-----此内容被violit于2005-07-03,12:29:15编辑过

baplmqj 发表于 2005-7-3 15:41:50

看来:【42楼】 violit是模糊控制高手!句句经典!

向大虾学习!

大家想做什么用的PID啊? 温控专用?万金油型?

要是能做出万金油来多好啊!

lei_yong 发表于 2005-7-4 14:41:34

我认为PID控制器的种类很多,适用于不同的场合。如果说存在一种万能的PID控制器,那么世界上将只存在一种PID产品,这显然不是正确的看法。我认为我们应该从2个角度看问题:1)针对某一具体应用,应该用什么PID控制器最好?2)AVR系列的MCU实现哪一类PID控制器最有优势,具备在市场上生存的条件。

我认为,模糊PID有适用的场合,不然就不会在市场上存在了。但也有不适用的场合,这也就是市场上还有其他PID控制器的原因。对于我们来说,应该做的事是:弄清楚在哪种应用中适用哪种PID控制器。

lei_yong 发表于 2005-7-5 07:18:23

TO:37楼

可以将你的项目要求贴出来,让大家一起讨论吗?

lei_yong 发表于 2005-7-6 12:05:05

ATMEL的Tiny13已经具有4通道10位ADC和2路8位PWM,可以组成基本得PID控制器。
-----此内容被lei_yong于2005-07-06,12:07:49编辑过

appleboy 发表于 2005-7-6 13:50:13

to lei_yong



负载:阻性加热带

负载功率:200W

负载电压:DC130V

目标温度:37度(绝对温度要求不严格)

要求控制精度<=0.1度

加热带不是绝对密闭,而是有物品流水线式的不停的更换!

计划用LM35传感器

12位A/D或ATmega48内部的10位A/D(需要抬高传感器0点)

输出用PWM调压

为了适应不同的环境,最好能实现参数自整定PID

lei_yong 发表于 2005-7-10 19:51:51

to : appleboy

设计前还需要得到以下参数

   1)温度可设定的范围、精度;   

   2)控制对象的阶跃响应类型(飞升曲线);   

   3)控制要求指标(稳定时间、超调比);

如不能提供2),就需要自己测试

appleboy 发表于 2005-7-11 09:16:39

lei_yong

您好!

主要目标就是37度,所以范围应该是0到40度

下面两个参数还不好确定,因为机械部分还没有到位

只是眼下先筹备一下框架和控制思想



真诚希望以后能通过E_Mail联系

我的cmele@126.com

    cmele@sohu.com

baplmqj 发表于 2005-7-11 12:28:17

【49楼】 appleboy

你好!我最近在做一个温控器,目标值也是0-40度,还有别了要求!医疗设备!同时要控制加热棒和压缩机.

要是:可以话我可以为你设计一个专用的控制器.我不挣你的钱.就当交个朋友!

我只想问一个要求:"主要是环境温度有突变(如冷风等)"出现频率有多高?

uusky 发表于 2005-7-11 14:13:19

TO 50:给我也来一分资料吧!我也正在做PID控制器。具体对象也不清楚,上头只是让我研究PID。也只有我一个人搞,也没有前人的资料。真是郁闷呀!我最想知道就是控制算法。什么样系统用什么样的算法。我想是不是有一个系统分类什么的呀!一般的书上没讲分类。

zhouchunhua1314@163.com

lei_yong 发表于 2005-7-11 15:53:34

我的EMAIL:lei_yong@163.com

本网站的宗旨是无私交流,所以希望各位网友多交流自己的思路,哪怕是问题,也请尽量提出来。

从appleboy谈的情况看,37度应该是控制目标,而且精度要求比较高(0.1度)。那么目标范围通常应该没有那么大。高精度大范围实现起来难度大。所以还是尽量将控制目标的要求了解清楚。设计指标参数应该由应用需求来确定。通过了解应用需求,应该能把设计指标参数确定下来。比如说控制对象特性,主要由控制对象的物理特性决定,了解到要保持温度的物体是什么材质、体积多大,什么形状,与周围环境的热交换情况等,就基本可以确定下来了。稳定时间和超调比更是由应用需求决定的,当出现扰动,温度偏离了设定值,需要在多长时间内控制到设定值,在调整过程中温度超过设定值会不会造成损害等。了解应用需求是开始设计第一步。

tlxw 发表于 2005-7-13 20:55:44

泼一点冷水:如果不是项目的特殊性,就用现成的数字智能调节仪表进行PID控制吧!成熟,稳定、功能强大又设置灵活,没必要再做重复的事!

lei_yong 发表于 2005-7-15 04:37:45

1)如果你有兴趣自己实现PID;

2)如果你有批量产品需要用PID;

yanwang 发表于 2005-7-22 09:05:39

支持.正准备做这方面的研究

lahuaga 发表于 2005-7-25 08:11:23

to lei_yong:我不知道你作这个有什么特殊的要求,你所说的国外的表能达到0.5度而国内的表达不到?这句话是从那里来得,我可以负责任的说,国内的表达到0.5度也不是什么难事。目前国内国外的区别主要在于稳定性,这个牵掣到元器件等等诸多问题,但是单论精度0.5度是什么问题的。

lei_yong 发表于 2005-7-25 09:20:26

to:56楼 lahuaga



可以去工厂车间看看温控表,好的国外的表温度能控制在正负0.5度,而同样的条件下国内表是无法达到的。(这句话是26楼说的,我无这方面的经验,仅引用了他的观点。同时我在此声明,我并非认为国内表就不能控制在0.5度以内,因为我同样引用了本站网友实现了+-0.2度控制的事例(29楼)。)

希望大家在方案实现的实质性问题上发表自己的看法:

如:

1)实现一个项目必须掌握有关项目的哪些信息;

2)如何根据项目的有关信息确定实现方案;

3)AVR MCU 实现PID控制有哪些长处、有哪些限制;

再次感谢网友们的支持!!!

ljd166 发表于 2005-7-25 21:20:45

to 57楼:

http://cache.amobbs.com/bbs_upload782111/files_3/armok0158866.JPG

这是系统模型

lei_yong 发表于 2005-7-26 16:36:51

谢谢ljd166:

遗憾的是照片不太清楚;

是不是带有纯滞后的一阶惯性环节?

具体参数看不清楚。

能否描述一下,谢谢!

ljd166 发表于 2005-7-26 16:39:38

对,是带有一阶惯性环节。是我记错了。昨晚摄像头被摔坏了,所以只能这么一副图了。

lei_yong 发表于 2005-7-26 18:48:25

纯滞后的一阶惯性环节的标准表达式为:

            K * exp(-ts)

   G(s) = -----------------

             Ts   +1

其中:t为被控对象的滞后时间常数,T为被控对象的时间常数。

能否提供式中的参数:K、t、T

谢谢!

xwyjianghu 发表于 2006-7-19 10:13:19

好长时间没有人来讨论了,顶一下。

wuly 发表于 2006-7-19 10:29:27

个人认为avr做PID还是比较不错的,可惜AD位数低一些,精度不高,只能外加AD,这一点比8051F差点,但运算速度不比他差。

xiaobendan 发表于 2006-7-19 11:19:33

我也非常赶兴趣,我主要做直流调速的,目前都用一些普通芯片,我也想能用单片机实现该多好啊,可以很容易实现显示,遥控等功能。

lxwm1983 发表于 2006-7-20 11:27:37

版主加条裤子吧!!

wgxrc 发表于 2006-7-21 12:33:25

这样就想加裤子了!!?都是说了些理论,PID的计算周期和控制的输出都没提到,还有PID系数.这些都很难弄的.等有谁真正把这些东西说清楚了在加裤子吧.

bluerain 发表于 2006-7-21 15:48:19

提到PID,大家做技术的是否感觉到国内的技术比国外差?

主要的温控方面用的全是进口的,而国产表只能用在显示温度上,而不是控制上(原因:控制精度差)。

什么原因使国内的PID如此之差?

czzhouyun 发表于 2006-12-27 00:39:52

国内高手很多,高精度PID控制我就做过,0-400度范围,0-100度内控温精度0.01度,100度以上0.1度,只要你花工夫这不是什么难事,当然国内最高精度的比不上国外的,我记的看过一个恒稳箱的控稳精度,在小数点后5、6个0,这种技术在正常的测控领域是用不上的,也没办法完成(我考虑了很久,始终想不通),我的控温的加热也是200W的加热带,外用石棉隔热保温,内部传热是铝锅,上加盖,内部有搅拌器,是个大滞后,最先调程序时用的电烙铁,稳住后有风刮过来就超调了,后来保温措施上去后基本没问题了,用51做的

gdf78 发表于 2006-12-27 02:11:47

好久没来,支持下各位论题

菜鸟也学习下

feitianhou 发表于 2006-12-27 14:40:53

我做了一个VAV控制器,里面有两路PID回路,一路控制室内温度,一路控制CO2浓度。

PID控制理论被讨论的很复杂。因为这些是论文,一定要有学术性,但我认为真正应用不用太理会这些东西,不要让这些理论把自己提前带入这些负责的东西里面。我们做的东西不是看里面运用了多少新技术,而是是不是实用。我用mega 128做的通用DDC控制器,在一个军工研究所里面控制温度精度达到了0.1。而pid算法并不负责。而是在控制时在pid算法外面加了很多判断来决定现场设备的运行。故pid+外围算法才是关键。而外围算法就是根据现场的实际情况得来的。

deepin 发表于 2009-6-3 11:37:08

MARK

coldwind 发表于 2009-9-15 14:52:16

【29楼】 lei_yong
积分:169
派别:
等级:------
来自:        本站有网友PID控制温度做到过冲1.0摄氏度,稳定+-0.2摄氏度。
 

哪个网友

贴名?

dragonathust1 发表于 2009-9-15 15:30:13

学过控制理论的应该知道PID控制是最简单的一种控制算法了,适合被控对象为2阶线性系统,控制算法和系统模型都是从实际对象中简化出来的,早期数字技术不发达的时候很适合用模拟的运放来实现。实际的控制对象数学模型没有这么简单,所以仅仅用PID是难以达到很好的指标的。

guocai 发表于 2010-2-5 10:14:51

小弟最近也是做一个控温控湿的箱子希望大虾们能指教一下啊,
硬件资源如下:AVR M8来控制,四个电池阀来控制降温的,一个发热管做加热作用。有一个数字式的温湿度传感器,因为我完全没接触过这些东西,望大虾们给个方案谢谢了。

linyongzhan 发表于 2010-10-21 13:37:29

温度循环控制系统,半导体制冷加热,MEGA128,用户设定任意几个温度(比如30,90,70,40)和相应的保持时间(50s,50s,50s,50s),如此循环运行,可设定循环数,温度准确度<=(+ -0.2),到达设定值稳定时间在30s以内.用模糊PID控制完成.目前高温区(100-50)降温控制,低温区(0-30)升温控制部分效果不太理想.过冲太大.大家有兴趣的话可以探讨探讨...

lajiji 发表于 2011-6-10 08:09:53

回复【楼主位】lei_yong
-----------------------------------------------------------------------

都是扯淡,没涉及一点具体的可参考细细讨论的东西,废话这么多国内国外做毛啊

mys4110 发表于 2011-8-11 20:38:59

最近正要用温控器,mark下

luomofuhua 发表于 2011-8-13 19:11:52

mark

bailangcn 发表于 2012-3-7 16:17:17

mark...0.0

vala 发表于 2012-7-28 21:19:42

怎么弄阿,我现在正在搞pid

fc23fcevff23 发表于 2012-7-29 00:37:20

ljd166 发表于 2005-6-26 11:00 static/image/common/back.gif
但是拿8位机实现复杂的PID算法,可能对于时间要求较高的项目有点勉强,因为PID运算或多或少的会用到浮点数 ...

直接用序列实现。MATLAB写程序生成序列,然后用CPLD之类的东西硬件实现。

weixinal 发表于 2012-7-29 01:18:55

有空学习

coleyao 发表于 2012-7-29 08:02:38

建议大家有空试试预测式负反馈控制(全部整数或字节实现,无浮点数),我用AT89S52+11.0592M晶振实现3路同时控温,稳态精度控温点达到正负0.15度(无干扰时控温精度),过冲温度小于3度,当时无软件仿真,因此实验时间很长,没有精细调节参数。

gaobao_1 发表于 2012-7-30 16:04:39

只做过简单的象恒流充电之类,还能用

jiabin1024 发表于 2012-7-30 16:24:27

这个讨论很好,目前还没搞个PID,来学习

yfgww 发表于 2012-7-31 08:53:57

{:smile:}{:smile:}mark

angel_gph 发表于 2012-9-10 12:19:03

Cool!!!!!!!!!!!!!!!
页: [1]
查看完整版本: 大家对用AVR实现PID控制是否有兴趣?