专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
PIC单片机
有没有人贡献一个可以用的PID程序,,,,我写的跑起来老出问题
2020-02-08 09:32
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
7871
26
26
有没有人贡献一个可以用的PID程序,,,,我写的跑起来老出问题
PWM老在动,,而且,,PID系数方面也没搞过
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
26条回答
xkdwangcs
2020-02-10 17:26
用我的经验告诉大家:
上面的PI调整,思路没有问题
实现有问题
1.就是符号:我相信你要的那些PI设计到的变量最好都弄成有符号的变量。
除非你非常肯定他是个正的。
2.你调节时候,居然知道进行舍弃,为什么不进行门限的判断了。溢出了怎么办呢。
或是调节占空比的占空比寄存器如果出现负数怎么办呢?
3.就是比较常见的问题了。也是我如果用C语言一定会加上的。
积分的误差累计。累计的不是积分。而是每次积分贡献给PI调节的只能是整数部分。那么小数部分。咱们需要累计
比如;A是通过误差*积分常数算出来的。B呢,为A的整数部分。C呢为A的小数部分。类似A=B+C;
这样你可以进入PI调节的只有B部分加到占空比上(在电机控制上。)如果呢,你下次算出来的积分是A1那么
积分小数累计的话,就可以把C+A1得到的一个数再分为整数部分B1和小数部分C1。然后B1作为调节。C1继续保留
这样一直下去,我相信,你的一个简单系统的会调节的比较好了。
我在无刷电机控制当中,基本是这样做的。还算可以了。
当然设计小数计算了。只能靠个人能力去发挥了。
我也帮不了了。
定标一种。
如果对于响应能力很要求,然后单片机的运算速度还可以了。存储器也够用
直接用FLOAT
实在不行就用定标了。
加载中...
查看其它26个回答
一周热门
更多
>
相关问题
PIC单片机不同的IO口驱动74HC573驱动共阴极的数码管,有的段不亮
1 个回答
一种简单精确的pic延时方法
21 个回答
谁熟悉PIC的产品发布时间的,帮看看PIC18F47K40啥版本IDE能开发
12 个回答
求AN1078对应的源代码下载地址
5 个回答
PIC单片机应用技巧
4 个回答
相关文章
一种用PIC单片机主时钟驱动的老式挂钟
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
PIC单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
上面的PI调整,思路没有问题
实现有问题
1.就是符号:我相信你要的那些PI设计到的变量最好都弄成有符号的变量。
除非你非常肯定他是个正的。
2.你调节时候,居然知道进行舍弃,为什么不进行门限的判断了。溢出了怎么办呢。
或是调节占空比的占空比寄存器如果出现负数怎么办呢?
3.就是比较常见的问题了。也是我如果用C语言一定会加上的。
积分的误差累计。累计的不是积分。而是每次积分贡献给PI调节的只能是整数部分。那么小数部分。咱们需要累计
比如;A是通过误差*积分常数算出来的。B呢,为A的整数部分。C呢为A的小数部分。类似A=B+C;
这样你可以进入PI调节的只有B部分加到占空比上(在电机控制上。)如果呢,你下次算出来的积分是A1那么
积分小数累计的话,就可以把C+A1得到的一个数再分为整数部分B1和小数部分C1。然后B1作为调节。C1继续保留
这样一直下去,我相信,你的一个简单系统的会调节的比较好了。
我在无刷电机控制当中,基本是这样做的。还算可以了。
当然设计小数计算了。只能靠个人能力去发挥了。
我也帮不了了。
定标一种。
如果对于响应能力很要求,然后单片机的运算速度还可以了。存储器也够用
直接用FLOAT
实在不行就用定标了。
一周热门 更多>