找回密码
 立即注册
楼主: 梁工

三相无刷电机驱动-32G系列-无HALL-PID控制-OLED显示-串口绘图 启动改进版本

  [复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14127
发表于 2025-6-9 14:42:14 | 显示全部楼层
haimin*** 发表于 2025-6-9 11:52
谢谢梁工!期待修改后的程序。

主楼程序已更新,请下载测试。
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14127
发表于 2025-6-9 14:42:29 | 显示全部楼层
haimin*** 发表于 2025-6-9 12:58
PID加入后,电机启动转1圈就停下来了,再启动仍然如此

主楼程序已更新,请下载测试。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-09-16 15:18:31

0

主题

139

回帖

1198

积分

金牌会员

积分
1198
发表于 2025-6-11 09:15:40 | 显示全部楼层
梁工您好!不知道怎么回事,这个程序经过调测,PID积分限幅调整在10000时,不管用电位器调整速度还是串口调整速度,都是电机一旦启动,就会上升到最高转速,中间无论怎么调速度都不受控制,只有调到停止才行,若把积分限幅设为1000时,电位器调速速度跟踪效果都不错,只是最高转速偏低,但是用串口发指令调整电机速度时存在的问题:在发送转速低时(比如:25可以启动,若发送转速50时就无法启动),电机在低速下启动后逐渐升高至50,没升高5转需要等待几秒时间,若是快速提升速度,电机就会停止在抖动状态,转不起来。若不加人PID时,电位器调速及串口发指令调速都正常,若不加人PID就是不能形成速度稳定,请梁工再给于指点。谢谢!

点评

你将曲线贴出看看。限幅只是限制幅度,避免溢出,如果失控,说明你的计算还是有问题,你是否修改了算法、PID参数?  详情 回复 发表于 2025-6-11 09:51
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14127
发表于 2025-6-11 09:51:08 | 显示全部楼层
haimin*** 发表于 2025-6-11 09:15
梁工您好!不知道怎么回事,这个程序经过调测,PID积分限幅调整在10000时,不管用电位器调整速度还是串口调 ...

你将曲线贴出看看。限幅只是限制幅度,避免溢出,如果失控,说明你的计算还是有问题,你是否修改了算法、PID参数?
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-09-14 22:03:40
已绑定手机

0

主题

9

回帖

108

积分

注册会员

积分
108
发表于 2025-7-1 10:20:12 来自手机 | 显示全部楼层
你好梁工,NMOS管我用NCE3080K,6080K都能都正常转动,但是换成高压管NCE65T260K转起来很卡顿,是什么原因呢,后来我修改了启动时两次换相最大间隔时间和判断启动结束时间可以转动了,但是怎么调电位器也上不了高速

点评

我的例子,电位器给定的转速最高是204.7转/秒=12282转/分,这是由下面的代码给出的: POT_VR = adc_filter[2] >> 5; //使用电位设置的转速, 电位器VR读数11位, 0~2047代表转速0.0~204.7转/秒 你根据自己的要求,修  详情 回复 发表于 2025-7-1 11:02
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14127
发表于 2025-7-1 11:02:39 | 显示全部楼层
ct1*** 发表于 2025-7-1 10:20
你好梁工,NMOS管我用NCE3080K,6080K都能都正常转动,但是换成高压管NCE65T260K转起来很卡顿,是什么原因 ...

我的例子,电位器给定的转速最高是204.7转/秒=12282转/分,这是由下面的代码给出的:
POT_VR = adc_filter[2] >> 5; //使用电位设置的转速, 电位器VR读数11位, 0~2047代表转速0.0~204.7转/秒
你根据自己的要求,修改代码得到你想要的转速,adc_filter[2]是16位的:
POT_VR = adc_filter[2] /32; //使用电位设置的转速, 0~204.7转/秒, 12282转/分
POT_VR = adc_filter[2] /16; //使用电位设置的转速, 0~409.5转/秒, 24570转/分
POT_VR = adc_filter[2] /8;  //使用电位设置的转速, 0~819.1转/秒, 49146转/分
POT_VR = adc_filter[2] /4;  //使用电位设置的转速, 0~1638.3转/秒, 98298转/分
POT_VR = adc_filter[2] /10; //使用电位设置的转速, 0~655.3转/秒, 39318转/分



回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:68
  • 最近打卡:2025-09-16 14:12:32
已绑定手机

6

主题

46

回帖

490

积分

中级会员

积分
490
发表于 2025-7-1 15:33:41 | 显示全部楼层
梁工,有时间能更新个顺逆风启动判断的例程吗,自己尝试添加没有弄好,

点评

空了我试试。  详情 回复 发表于 2025-7-1 16:17
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14127
发表于 2025-7-1 16:17:31 | 显示全部楼层
月亮*** 发表于 2025-7-1 15:33
梁工,有时间能更新个顺逆风启动判断的例程吗,自己尝试添加没有弄好,

空了我试试。
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:68
  • 最近打卡:2025-09-16 14:12:32
已绑定手机

6

主题

46

回帖

490

积分

中级会员

积分
490
发表于 2025-7-4 11:32:33 | 显示全部楼层


梁工,我现在尝试使用比较器进行检测反电动势,一相上的反电动势和中性点比较,但是比较器没有中断,这个方法可以吗,还是使用其他的方法,而且判断方向的是如何判断的,用比较器好像不容易判断。下面是风扇没通电时旋转的反电动势的波形

点评

我的程序就是使用比较器检测反电动势的。  详情 回复 发表于 2025-7-4 16:54
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-09-15 11:00:40

76

主题

6717

回帖

1万

积分

超级版主

积分
14127
发表于 2025-7-4 16:54:43 | 显示全部楼层
月亮*** 发表于 2025-7-4 11:32
梁工,我现在尝试使用比较器进行检测反电动势,一相上的反电动势和中性点比较,但是比较器没有中断,这 ...

我的程序就是使用比较器检测反电动势的。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-9-16 19:05 , Processed in 0.120494 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表