你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 4536|回复: 4

stm32上用DAC和ADC实现PID控制问题

[复制链接]

4

主题

5

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-8-6 20:14:21 | 显示全部楼层 |阅读模式
整体思路就是利用stm32的DAC输出电压,经过外围电路反馈电压通过ADC采样,想利用PID算法达到输出值与设定值的一致,但是达不到效果,不知道是不是我的程序是不是出问题了,还是我对PID的理解还不明白,新手,望指教,贴上主要程序····

//DA输出函数
void DA_Output(void)
{
 vPID.SetPoint=v_set;//外部定义的电压指定值
 vPID.Proportion=0.1;
 vPID.Integral =0;
 vPID.Derivative=0;
 DA_value = PIDCalc ( &vPID,(ADC_ConvertedValue*(VREF*1000))/4095 );
 Stepvalue=((DA_value/*-DA_zero*/)*4095)/(VREF*1000);
 DAC_SetChannel1Data(DAC_Align_12b_R,Stepvalue);//12位右对齐,DAC1输出电压
            DAC_SetChannel2Data(DAC_Align_12b_R,Stepvalue);//12位右对齐,DAC2输出电压
 DAC_DualSoftwareTriggerCmd(ENABLE);//使能软件触发,更新DAC的值
}

/*****************************************************/
/*         PID控制算法              */
/*****************************************************/
//PID计算函数
float PIDCalc( PID *pp, float NextPoint )
{
float dError
Error;  
Error = pp->SetPoint - NextPoint; 
pp->SumError += Error; 
dError = pp->LastError - pp-&gtrevError; 
pp-&gtrevError = pp->LastError;
pp->LastError = Error;
return (pp-&gtroportion * Error 
+ pp->Integral * pp->SumError 
+ pp->Derivative * dError
);
}

/*****************************************************/
/*****************************************************/
<
回复

使用道具 举报

0

主题

5

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2013-8-16 09:24:43 | 显示全部楼层

回复:stm32上用DAC和ADC实现PID控制问题

mark
 
回复 支持 反对

使用道具 举报

1

主题

34

回帖

0

蝴蝶豆

中级会员

最后登录
2019-9-14
发表于 2013-8-21 09:13:18 | 显示全部楼层

RE:stm32上用DAC和ADC实现PID控制问题

PID中应该直接对ADC采样值(不转换为实际电压)和设定电压对应的十六进制值进行修正,修正结果就可以直接给DAC了,你这样转来转去太麻烦,而且你要对PID中的比例积分微分项的值进行微调才能得到理想效果。而且PID中返回值是小数,你要注意PID返回值是否合理(太小的话转为整数时小数部分就被割掉了,太大的话你DAC就爆表了)
回复 支持 反对

使用道具 举报

2

主题

8

回帖

0

蝴蝶豆

初级会员

最后登录
2019-9-10
发表于 2019-9-1 22:13:27 | 显示全部楼层
楼主,您好,你这个最后调试出来了吗?
回复 支持 反对

使用道具 举报

0

主题

11

回帖

0

蝴蝶豆

新手上路

最后登录
2019-9-15
发表于 2019-9-13 10:34:34 | 显示全部楼层
很棒
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版