完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
单片机PID调速控制直流无刷电机附部分源码
目前正在学习pid调速控制直流无刷电机,留下笔记。 具备知识,stm32基础,了解无刷直流电机原理,pid控制原理 工具: 无刷直流电机:12v电源驱动,50HZ,占空比为5%的pwm波2秒以上解锁电调,再将占空比改为6%,则电机正常运行,改变占空比到9%接近全速转动。 (在网上摸索了一上午此信息,因为没有直接参考资料,标签都没有) 电调:电调接收了pwm信号,根据信号控制电机的电压,由此控制转速。 12v电源:供电 stm32单片机:输出pwm波 st-link调试模块:调试用,主要调pwm波和pid参数 u***转串口模块:可获取单片机打印的串口信息(可有可无) 霍尔测速传感器:测转速,5v供电,信号线为方波,捕获单位时间方波个数可测转速,由于其他条件一定,方波频率与转速为线性关系,可直接用频率代替。 检测设备:万能表或者示波器,主要检测pwm波和故障时候的电压。 步骤: 1,stm32中配置pwm,延时函数,外部中断(捕捉信号用),系统rtc时钟(用于较精确确定时间)等 2,电调接好电机和12v电源,电调信号接单片机,注意电调别用12v供电,所有设备共地,程序正常运行 3,若不转,则按以下方式调试, 1)用示波器或万能表检测单片机是否发出符合要求的pwm波。 2)检测连线是否正确, 3)测电机电压是否是12v左右。 4,若电机能转动,则可以在电机上安装霍尔传感器,离里面的磁铁大概1-2毫米,太远了测不到信号,(这个问题又摸索了半天)。 5,用示波器测霍尔传感器的信号,显示为方波,记录此时的频率 6,将霍尔传感器的信号线接到单片机的外部中断引脚上,捕获其频率。 此时电机配置及测速基本完成。 PID参数整定 具体原理可自行百度。说说个人的理解,比如给出pwm占空比为6%,此时测出频率稳定在600,我想让霍尔元件传回来的频率变为1000,当然是加大pwm的占空比,但是加大多少呢,其频率与占空比又不是线性关系,不能一次解决,但可以用差值逐次逼近,如 误差=设定速度(1000)-实际速度(600) 占空比=占空比+P*误差(400); 。。。。。。。 如此循环下去,会发现速度在1000左右抖动,而且从600到接近1000的这段时间比较长。因此加入积分,将每次的误差对时间积分, 如 Integral=Σ误差 则占空比更正为 占空比=占空比+P*误差+I*Σ误差; 但是还是有一定的震荡,当需要其平稳时,还需要加入误差的微分,阻止其超调的变化,有超前调节的作用。 则 占空比=占空比+P*误差+I*Σ误差+D*(本次误差-上次误差) PID初步调试就到这里了,由于条件有限,我就没有继续整定PID的值。 err[0]=setv-v;//设定速度-当前速度 isum+=err[0]*0.2;//积分值 dd=err[0]-err[1];//微分 pwm=p*err[0]+i*isum+d*dd;//计算变化值 currentpwm+=pwm;//换算成占空比 currentpwm=currentpwm》=1800?1800:currentpwm;//极限速度限制,测得高速运行时占空比为1800/20000=9% err[1]=err[0];//保存本次误差,下次使用 |
|
|
|
只有小组成员才能发言,加入小组>>
2434 浏览 0 评论
9096 浏览 4 评论
36765 浏览 19 评论
5025 浏览 0 评论
24737 浏览 34 评论
1525浏览 2评论
1740浏览 1评论
2189浏览 1评论
1550浏览 0评论
521浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 20:15 , Processed in 1.228591 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号