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

查看: 4533|回复: 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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版