【电机控制】IF启动+滑模观测器+反正切-PMSM无感FOC控制-(软件篇)

【电机控制】滑模观测器-PMSM无感FOC控制(软件篇)


前言

【电机控制】滑模观测器PMSM无感控制


提示:以下是本篇文章正文内容,下面案例可供参考
请添加图片描述

一、IF启动

a.进入滑模观测器模式

if(Controdmode == SMOloop)
         {   
            if(StateFlag.StartSetFlag == 0)
            {
              StateFlag.StartSetFlag =1;
              TimeStateCount = 5000;
						  Angle.Acc_a = _IQ(0.005); //¼ÓËÙ¶È
              Angle.Setp_Max = 55;// ÔÈËÙ¶È
							IqStartSet = IqStart;
						}
						 Motor_IFStart();  
            if(TimeStateCount == 0)
            { 
               mcState = Run;
            }            
         }

b.零速IF启动

void Motor_IFStart(void)
{
		IqStartSet -= 1;
	  if (IqStartSet<_IQ(0.05))
		{
			IqStartSet = _IQ(0.05);
		}
    Angle_Acc(Angle);
    AngleSin_Cos.IQAngle = Angle.Set;//½Ç¶È
	   
    pi_iq.Ref = IqStartSet; //Æô¶¯µçÁ÷ÉèÖÃ

    ADC_Sample();//²É¼¯µçÁ÷ µÃµ½UVµçÁ÷
   
    
	  AngleSin_Cos.IQSin = _IQsinPU(AngleSin_Cos.IQAngle);
	  AngleSin_Cos.IQCos = _IQcosPU(AngleSin_Cos.IQAngle);

c.切滑模速度闭环

if(Controdmode == SMOloop)
         {
              SMO_SpeedLoop();
         }

二、滑模观测器-观测角度

a.静止坐标系电流ab,电压ab输入

	 SMO_Angle(ClarkI.Alpha,ClarkI.Beta,IparkU.Alpha,IparkU.Beta); //»¬Ä¤¹ÀËã½Ç¶È

b.调用滑模观测函数

    Angle_Cale((p_Angle_SMO)&Angle_SMOPare);

c.建立滑模观测器-bangbang控制

起停式控制(bang-bang control),也称为砰砰控制、bang-bang控制、开关控制、继电器式控制或磁滞控制,是会让控制输出在两种状态之间切换的回授控制器,起停式控制会使控制输出在某个状态停留一段时间,再跳到另一个状态。起停式控制可以用有迟滞功能的元件实作。

控制信号只有两个状态的控制称为bang-bang控制。

    pV->EstIalpha = _IQmpy(pV->Fsmopos,pV->EstIalpha) + _IQmpy(pV->Gsmopos,(pV->Valpha-pV->Zalpha));
    pV->EstIbeta  = _IQmpy(pV->Fsmopos,pV->EstIbeta)  + _IQmpy(pV->Gsmopos,(pV->Vbeta -pV->Zbeta ));

d.电流误差-选择电流方程建立关系

    pV->IalphaError = pV->EstIalpha - pV->Ialpha;
    pV->IbetaError  = pV->EstIbeta  - pV->Ibeta;

e.滑模控制计算

	  pV->Zalpha = _IQmpy(_IQsat(pV->IalphaError,pV->E0,-pV->E0),_IQmpy2(pV->Kslide));
	  pV->Zbeta  = _IQmpy(_IQsat(pV->IbetaError ,pV->E0,-pV->E0),_IQmpy2(pV->Kslide));

f.低通滤波

    pV->Ealpha = pV->Ealpha + _IQmpy(pV->Kslf,(pV->Zalpha-pV->Ealpha));
    pV->Ebeta  = pV->Ebeta  + _IQmpy(pV->Kslf,(pV->Zbeta -pV->Ebeta));

三、反正切

    IQAtan_Pare.Alpha = -Angle_SMOPare.Ealpha ;
	IQAtan_Pare.Beta  = Angle_SMOPare.Ebeta;
    IQAtan_Pare.IQAngle = _IQatan2PU(-Angle_SMOPare.Ealpha,Angle_SMOPare.Ebeta);

四、参考资料

【永磁同步电机的I/F启动控制策略】
【永磁同步电机滑膜无感控制】
【STM32f103 SMO滑膜观测器的 无感无刷FOC驱动DIY】

[现代永磁同步电机控制原理及MATLAB仿真]-袁雷

总结

本文仅仅简单介绍了【电机控制】IF启动+滑模观测器+反正切-PMSM无感FOC控制-(软件篇)方面,评论区欢迎讨论。

  • 1
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kisorge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值