PWM模拟DAC电压输出-PID仿真贴

2020-02-10 08:56发布

为了学习PID是怎么回事,特别做了此仿真,呵呵, 也可以说是<如何让PID的值转换成PWM的占空比>!

本人之前对PID一点都不懂,此贴主要是和大家分享学习经验!呵呵, 菜鸟贴, 不对的地方请大家拍砖!

此仿真采用的是PIC单片机, 由P1A引脚输出PWM,经过RC滤波后输出电压,AN0  ADC采样


先贴图吧!
PID算法是用的AVR: AVR221: Discrete PID controller 中的源码
//VFER = 2.048v, 10位分辨率(1024),设定稳压电压是1.024v
atmel_1.PNG (29.39 KB, 下载次数: 1) 下载附件 2013-10-26 10:56 上传

最后........
上源码:
ATMEL_ PWM_adc_pid_4.rar (2.24 MB, 下载次数: 348) 2013-10-26 10:58 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
55条回答
usm4glx
1楼-- · 2020-02-13 03:28
rclong 发表于 2013-11-13 21:46
增量式PID算法

以这个为关键词搜索就行了

呵呵,没有用,看了下,PID参数太难调了,直接放弃了
lyl3257
2楼-- · 2020-02-13 03:42
很好,正想学习
R88
3楼-- · 2020-02-13 04:08
skype 发表于 2013-10-26 11:30
下面是两种常见算法的PID仿真图表:
#ifndef __PID_1_H
#define __PID_1_H


楼主,你这块增量式的算法有问题吧,,,微分项那块应该是此次误差-2*上次误差+上上次误差。。

还有你返回的值应该加上次计算出来的值吧。。。
R88
4楼-- · 2020-02-13 09:46
R88 发表于 2013-11-29 10:57
楼主,你这块增量式的算法有问题吧,,,微分项那块应该是此次误差-2*上次误差+上上次误差。。

还有你返 ...

你的位置和增量都混乱了吧:

ScreenShot00519.jpg (38.38 KB, 下载次数: 0)

下载附件

2013-11-29 11:07 上传

R88
5楼-- · 2020-02-13 10:26
 精彩回答 2  元偷偷看……
skype
6楼-- · 2020-02-13 11:15
那两个PID算法是在本坛上找的,拿来就用,没有细研究过,也没有做过相关项目,只是想了解一下PID是怎么回事而已!

一周热门 更多>