OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3793|回复: 10

STM32F103FOC控制启动失败求高手指点,2.0的电机库

[复制链接]

2

主题

10

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2019-9-21
在线时间
4 小时
发表于 2019-11-12 08:29:08 | 显示全部楼层 |阅读模式
1金钱
最近研究无感电机的矢量控制,从网上下载的程序,用的是2.0的电机库,单电阻电流检测,启动能运转,但不能进入运行模式,DAC显示看不到观测的反电势波形(一条直线),可以看到电流波形,调整了观测器的K1,K2,F1,F2都没有效果。关于电机参数方面也不是很理解,我目前输入RS为单u相电阻25.2欧,LS为uv二相间的电感145mh,反电动势常数为uv二相间1000转时的反电势的有效值67v,高手帮看看输入的这三个参数有没有问题,本人对电感有怀疑。拖动阶段电流波形不是正常的正弦波形,有点变形,用电流探头测的,DAC观察到的ia。ib波形和电流探头测到的波形一致,能够观测到电机转速,但不稳定,请高手教我调试步骤,愿意的可以加我微信聊聊(13814460401),谢谢!(准备使用140v或280v供电,控制100w左右,3500转以下的直流无刷电机)

最佳答案

查看完整内容[请看2#楼]

电机的参数很多时候都是观测器用的,电机参数不对,你进入闭环观测角度跟速度肯定不对。你电机电感145mH,这是有点大,除非你电机很大。 你可以查查软件问题: 1,看看三相电流是不是相差120°正弦波 2,看看Iα,Iβ是不是相差90°正弦波 3,然后你拖动时候打开观测器,看看观测的角度和你拖动的角度误差大不大
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
240
金钱
240
注册时间
2016-8-4
在线时间
71 小时
发表于 2019-11-12 08:29:09 | 显示全部楼层
电机的参数很多时候都是观测器用的,电机参数不对,你进入闭环观测角度跟速度肯定不对。你电机电感145mH,这是有点大,除非你电机很大。
你可以查查软件问题:
1,看看三相电流是不是相差120°正弦波
2,看看Iα,Iβ是不是相差90°正弦波
3,然后你拖动时候打开观测器,看看观测的角度和你拖动的角度误差大不大
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-11-13 02:28:42 | 显示全部楼层
帮顶
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2019-9-21
在线时间
4 小时
 楼主| 发表于 2019-11-15 07:53:32 | 显示全部楼层
好冷清呀,没人回答吗?
回复

使用道具 举报

14

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
240
金钱
240
注册时间
2016-8-4
在线时间
71 小时
发表于 2019-11-16 21:40:25 | 显示全部楼层
电机参数一般跟你FOC的观测器有关,电感145mH这已经是很大的电感了,你的电机估计很大。你可以在拖动的时候看看相电流是不是正确的正弦波。可以看到软件的话,查查软件问题:
回复

使用道具 举报

12

主题

101

帖子

0

精华

高级会员

Rank: 4

积分
963
金钱
963
注册时间
2016-3-16
在线时间
109 小时
发表于 2019-11-16 21:44:47 | 显示全部楼层
顶!!!!!!!!!!!!!!!
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2019-9-21
在线时间
4 小时
 楼主| 发表于 2019-11-19 08:15:09 | 显示全部楼层
代号_47k 发表于 2019-11-16 21:43
电机的参数很多时候都是观测器用的,电机参数不对,你进入闭环观测角度跟速度肯定不对。你电机电感145mH, ...

1、软件直接用的2.0的电机库,没有大的修改,三相电流不是理想的正弦波,有点变形。
2、三相电流相差我再确认下。
3、现在观测器只能观测到速度,角度观测到的是正弦波,很奇怪,应该是三角波的。
4、反电势观测不到。
5、Iα,Iβ是正弦波,相差没确认
6、先帮我确认电机参数怎么确定,RS是二相UV、UW、VW间的电阻吗?LS呢,反电势呢?我电机不大,挂壁空调室内风机哦
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2019-9-21
在线时间
4 小时
 楼主| 发表于 2019-11-22 08:11:14 | 显示全部楼层
上图来了,请大家帮帮忙,RS我用的是单相电阻。LS我用b相接在电源正极,a相接在电源负极,用LCR数测量电感Lab,Ls=Lab/2。反电势我采1000转时u相与中性点间的有效值电压,我做的对吗?
#define I_A           (u8)(1)               
#define I_B           (u8)(2)
#define I_ALPHA       (u8)(3)
#define I_BETA        (u8)(4)
#define I_Q           (u8)(5)
#define I_D           (u8)(6)
#define I_Q_REF       (u8)(7)
#define I_D_REF       (u8)(8)
#define V_Q           (u8)(9)
#define V_D           (u8)(10)
#define V_ALPHA       (u8)(11)
#define V_BETA        (u8)(12)
#define SENS_ANGLE    (u8)(13)
#define SENS_SPEED    (u8)(14)
#define LO_ANGLE      (u8)(15)
#define LO_SPEED      (u8)(16)
#define LO_I_A        (u8)(17)
#define LO_I_B        (u8)(18)
#define LO_BEMF_A     (u8)(19)
#define LO_BEMF_B     (u8)(20)
图名与上面序号对应,请高手帮看看
1-2.jpg
3-4.jpg
5-6.jpg
7-8.jpg
9-10.jpg
11-12.jpg
13-14.jpg
15-16.jpg
17-18.jpg
19-20.jpg
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2019-9-21
在线时间
4 小时
 楼主| 发表于 2019-11-24 19:02:07 | 显示全部楼层
今天用示波器观测DAC输出,看到13-14的波形,觉得像是观测出的角度信号,然后看看程序查数据来源,发现我一个错误:u8 OutputVar[21]={0,1,2,3,4,5,6,7,8,9,10,11,12,15,16,17,18,19,20,21,22};这里没有13,14,所以我测试的13-14图片中的波形就是15和16的波形,角度和速度,以此类推,反电势也能观察到。好开心,总算观测器可以用了,但新问题来了,电机偶尔才能进入RUN运行状态,且直接停止了。继续研究中。。。。。对了,上面的启动波形调整参数后还是很好的,下次拍了上传。目前我在启动程序中加入一个变量来显示观测器测量到的转速,但是很怪,这个转速数据不能实时刷新,按下设置按钮时会偶尔显示转速,对了,不接电机它也会偶尔显示转速,晕了
   
    Stat_Volt_alfa_beta = Rev_Park(Stat_Volt_q_d);
  
    /*Valpha and Vbeta finally drive the power stage*/
    CALC_SVPWM(Stat_Volt_alfa_beta);
   
    STO_Calc_Rotor_Angle(Stat_Volt_alfa_beta,Stat_Curr_alfa_beta,MCL_Get_BusVolt());
                //+++++++++++++++++++++++++++++++++++++++++++
   AD_value5=(STO_Get_Speed_Hz())*6;                //W        这个我加的,不能实时刷新,怪了,
//         AD_value4=AD_value4+1;                                                //W如果加上这个,这数据到是持续增加的
    if (IsObserverConverged()==TRUE)
    {      
      PID_Speed_InitStructure.wIntegral = (s32)(hTorque_Reference*256);
      STO_StartUp_Init();  
      State = RUN;
      if ((wGlobal_Flags & SPEED_CONTROL) != SPEED_CONTROL)
      {
        hTorque_Reference = PID_TORQUE_REFERENCE;
        hFlux_Reference = PID_FLUX_REFERENCE;
      }      
    }   
    break;
  default:
    break;
  }   
}
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2019-9-21
在线时间
4 小时
 楼主| 发表于 2019-12-6 16:51:20 | 显示全部楼层
现在马达启动有困难,不能每次都能成功启动,观测出的转速波动有点大,唉,启动参数这么难调试吗?有高手指点吗?定位后,转子都会反方向转动一下,然后才正转,能转起来的机率太低了!
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2019-9-21
在线时间
4 小时
 楼主| 发表于 2019-12-27 12:55:20 | 显示全部楼层
马达已能成功运转,总结调试过程,主要还是硬件没完全准备好,把硬件调整好后,直接成功
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 19:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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