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

有偿请教PID设计方案。。。(微信红包)

[复制链接]
林_林_林 提问时间:2018-1-10 14:03 /
设计原理图.jpg
void main(void)
{
   //各类初始化;               
   while(1)
   {
     adc = Get_ADC10bitResult(1); //读取霍尔传感器值
     adc = adc/2; //10位ADC,因4V的ADC值为800,转换成实际电流值
     if(set_current > adc) //如果设定值大于反馈值?
        {
          fb++;if(fb > 1000)fb=1023;WriteTLC5615(fb);//增加占空比,最高加到5V
        }
     if(set_current < adc) //如果设定值小于反馈值?
        {
          fb--;if(fb < 200)fb=200;WriteTLC5615(fb);//增小占空比,最低减到1V
        }     
   }
}
/*整流控制过程如上可实现,但有以下不足,
当设置值与反馈值相差较大时,占空比是逐个增加或减小,
反映时间太慢(>100ms),,,现需要加入PID控制,
当设置值与反馈值相差较大时,大幅度增加或增小占空比,
当设置值与反馈逐渐接近时,再小幅度整占空比,
那样速度会快很多,请问如何实现(<1ms)?
如有方案可私聊我,如果问题解决,必定红包重谢*/

收藏 1 评论10 发布时间:2018-1-10 14:03

举报

10个回答
zhangxu56726 回答时间:2018-1-10 14:11:51
不用PID 都能实现

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

林_林_林 回答时间:2018-1-10 15:21:51

实际应用比这要复杂,
还要考虑关断尖峰,
还是PID为好。。。
不用PID如何实现?
设定值与反馈值相差>300,一次+100?
设定值与反馈值相差100~200,一次+50?
moon-362134 回答时间:2018-1-10 17:18:37
主电路的问题大。1,先学习正激反激桥式变换设计
2,不用DAC 直接数字PWM

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

努力的人 回答时间:2018-1-10 17:49:17
我看出一个问题,不知对否,你想做数字控制,却用的是模拟的PWM,要想提高精度,你使用STM32,只需改变占空比就行了

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

zhangxu56726 回答时间:2018-1-10 17:51:48
刚才我说的不用PID就可以,就是楼上的意思,这样搞,反而复杂了,如果我没有看错,你用的是IGBT,只要用PWM 控制就可以了
林_林_林 回答时间:2018-1-10 18:00:08
moon-362134 发表于 2018-1-10 17:18
主电路的问题大。1,先学习正激反激桥式变换设计
2,不用DAC 直接数字PWM

主电路只是简单画草图,
实际是H桥,能明白意思就行,
因为怕单片机会失效造成灾难性后果,
所在加了模拟PWM芯片(可硬件截流),
即使单片机跑飞或死机,可保证初级IGBT不会过流,

主电路已有成熟的方案,
本贴目的是,PID怎么编写?
能够快速响应?
林_林_林 回答时间:2018-1-10 18:21:57
努力的人 发表于 2018-1-10 17:49
我看出一个问题,不知对否,你想做数字控制,却用的是模拟的PWM,要想提高精度,你使用STM32,只需改变占空 ...

加模拟的PWM怕单片机会失效,
现在模拟电流型PWM芯片有硬件截流功能,
反映速快,
这么大功率的机器,

首先要保证主电路稳定,
再谈后面的控制。。。
szc5b123 回答时间:2018-1-11 08:38:20
DAC输出干嘛? 直接输出PWM不就行了么?
楼上有人貌似连控制方式与信号调制方式都搞不清楚混为一谈
你要做PID  主电路建模算出开环传递函数   再设计补偿器 算闭环传递函数  输出电压与占空比之间的关系求出来后 离散化PID参数去编程就行了

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

林_林_林 回答时间:2018-1-11 12:35:45
szc5b123 发表于 2018-1-11 08:38
DAC输出干嘛? 直接输出PWM不就行了么?
楼上有人貌似连控制方式与信号调制方式都搞不清楚混为一谈
你要做PI ...

主回用的是模拟PWM芯片,
只接收0-5V电平,所以用了DAC,

上面说的开环传递数,闭环传递数,离散化,
都快把我把蒙了,
主贴写fb++;if(fb > 1000)fb=1000;WriteTLC5615(fb)也能实现,
只是逐个增加占空比,太慢了,怎么加快反映速度?
szc5b123 回答时间:2018-1-11 14:34:56
你这样行虽然形成了闭环,但是补偿器明显不对,动态响应速度肯定起不来的。。。你去查一下增量式PID算法吧。。。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版