有偿请教PID设计方案。。。(微信红包)
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)?
如有方案可私聊我,如果问题解决,必定红包重谢*/
不用PID 都能实现 zhangxu56726 发表于 2018-1-10 14:11
不用PID 都能实现
实际应用比这要复杂,
还要考虑关断尖峰,
还是PID为好。。。
不用PID如何实现?
设定值与反馈值相差>300,一次+100?
设定值与反馈值相差100~200,一次+50?
主电路的问题大。1,先学习正激反激桥式变换设计
2,不用DAC 直接数字PWM
我看出一个问题,不知对否,你想做数字控制,却用的是模拟的PWM,要想提高精度,你使用STM32,只需改变占空比就行了 刚才我说的不用PID就可以,就是楼上的意思,这样搞,反而复杂了,如果我没有看错,你用的是IGBT,只要用PWM 控制就可以了 moon-362134 发表于 2018-1-10 17:18
主电路的问题大。1,先学习正激反激桥式变换设计
2,不用DAC 直接数字PWM
主电路只是简单画草图,
实际是H桥,能明白意思就行,
因为怕单片机会失效造成灾难性后果,
所在加了模拟PWM芯片(可硬件截流),
即使单片机跑飞或死机,可保证初级IGBT不会过流,
主电路已有成熟的方案,
本贴目的是,PID怎么编写?
能够快速响应? 努力的人 发表于 2018-1-10 17:49
我看出一个问题,不知对否,你想做数字控制,却用的是模拟的PWM,要想提高精度,你使用STM32,只需改变占空 ...
加模拟的PWM怕单片机会失效,
现在模拟电流型PWM芯片有硬件截流功能,
反映速快,
这么大功率的机器,
首先要保证主电路稳定,
再谈后面的控制。。。 DAC输出干嘛? 直接输出PWM不就行了么?
楼上有人貌似连控制方式与信号调制方式都搞不清楚混为一谈
你要做PID主电路建模算出开环传递函数 再设计补偿器 算闭环传递函数输出电压与占空比之间的关系求出来后 离散化PID参数去编程就行了 szc5b123 发表于 2018-1-11 08:38
DAC输出干嘛? 直接输出PWM不就行了么?
楼上有人貌似连控制方式与信号调制方式都搞不清楚混为一谈
你要做PI ...
主回用的是模拟PWM芯片,
只接收0-5V电平,所以用了DAC,
上面说的开环传递数,闭环传递数,离散化,
都快把我把蒙了,
主贴写fb++;if(fb > 1000)fb=1000;WriteTLC5615(fb)也能实现,
只是逐个增加占空比,太慢了,怎么加快反映速度?
页:
[1]
2