• PID算法的书 > 遗传算法入门实例:对PID 参数寻优[原创]
  • 遗传算法入门实例:对PID 参数寻优[原创]

    免费下载 下载该文档 文档格式:PDF   更新时间:2010-09-24   下载次数:0   点击次数:1
    遗传算法入门实例:对PID 参数寻优[原创]
    [这乌龟飙得好快啊
    http://sunxflower.blog.163.com]
    开始之前:
    假设你已经:能运用 C 语言,初步了解 PID、遗传算法的原理.
    遗传算法能干什么?
    (我有个毛病:每当遇到一个东东,我首先会设法知道:这个东东能干什么呢?)
    遗传算法可以解决非线性、难以用数学描述的复杂问题.也许这样的陈述让你觉得很抽
    象,把它换成白话说就是:有个问题我不知道甚至不可能用数学的方法去推导、解算,那么
    也许我就可以用遗传算法来解决.遗传算法的优点是:你不需要知道怎么去解决一个问题;
    你需要知道的仅仅是,用怎么的方式对可行解进行编码,使得它能能被遗传算法机制所利用.
    如果你运用过 PID 来控制某个系统,那你一定非常清楚:PID 麻烦就在那三个参量的调
    整上,很多介绍 PID 的书上常搬一些已知数学模型的系统来做实例环节,但事实上我们面
    对的往往是不可能用数学模型描述的系统,这个时候该怎么取 PID 的参值呢?
    1、 可以依靠经验凑试,耗时耗精力.2、离线规划,这就是下文要做的事情 3、在线
    规划,比方说神经网络 PID(后续文章将推出,做个广告先^_^).
    一、 将PID 用在本次试验中
    来个问题先:AVR 怎样利用片上和少量的外围器件快速准确地实现 D/A 输出?(0~5V)
    1、 实验电路的搭建:
    图1:实验原理图
    搭建这样的电路纯粹是为了本次实验的直观(超调、调整不足等现象通过示波器一目了
    然),当然,如果实际工程这么简单那也用不到 PID,更用不到遗传算法了.回归话题,解
    释下上面的电路:M16 单片机的 OC2 输出 0~100%占空比的 PWM,经过 RC,可以得到 0~5V
    的直流电压,这就实现了简易的D/A(实际实验,发现输出电压是 1.XX 伏~4.XX 伏,未
    带负载).用一个图表示:
    这个时候如果我要输出 3.5V(可以是其它值)电压,该加怎样的PWM呢?(有个简单的
    方法:标定,但是这种方法系统调整响应速度较为缓慢,理由见图5下附言)也许我们可以
    把这个输出电压加到A/D反馈到系统,这样就形成了闭环控制:系统输出 PWM——>>
    PWM 转换成电压——>>A/D 采集,获得实际值与目标值的偏差(例如 3.5V)——>>将偏
    差进行 PID 加载到 PWM 输出(然后输出又影响下一次的输入……)
    把示波器加到测试点上,调整扫描周期,使示波器能看到完整的一个调整过程.这样,PID
    调整的过程就可以在示波器上非常直观地显示出来.如下图:
    2、PID 调整的过程(图5):
    a)首先、让OC2 输出一个初始电压(本次试验取 OCR2=100,可以是其它值),当其稳
    定时进入PID调整环节
    b)PID调整:采样输出电压,经过增量PID公式计算得到输入增量,将增量加到输
    入端,再次采样,继续下一次的调整.(这里有必要说明的是:数字 PID 是离散的,就是说,
    不能让程序 while(1)在那不停地执行,因为每次实验 while(1)的周期可能不同,这就会导致P
    ID调整的周期是变化的,而这个变化会导致 ek、 ek 计算错误.正确的做法是设置一个
    时间变量(time_pid),用定时器来使其置位,而循环里就是查询这个变量的值,这样做虽然
    没有在定时中断里直接执行 PID 代码迅速,但推荐的做法还是像上面陈述的一样,虽然时

    下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的
  • c语言实现pid控制算法  pid控制算法  pid算法  pid算法c语言程序  软件pid控制算法  pid算法公式  pid算法c#  pid控制温度算法  电机控制pid算法