stm32 滑膜观测器+PLL 锁相环 FOC 无感无刷电机控制

这篇具有很好参考价值的文章主要介绍了stm32 滑膜观测器+PLL 锁相环 FOC 无感无刷电机控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        上一期为大家介绍了滑膜观测器正反切的应用案例,收到不少小伙伴的反馈是否有PLL的案例,大概看了一下网上的资料,讲理论的很多,能转化成源码的几乎没有。前半年工作和家里的事情都比较多,一拖再拖,终于在6月将源码调试好了,在这里跟大家分享一下调试过程以及注意事项。

        我们都知道,滑膜控制在滑动膜态下伴随着高频抖阵,因此估算的反电动势中存在高频抖阵现象。基于反正切函数的转自位置估计方法将这种抖阵直接引入反正切函数的除法运算中,导致这种高频抖阵的误差被放大,进而造成较大的角度估计误差。采用锁相环结构对转子位置进行跟踪估计,可以大大提高系统的跟踪精度和改善系统的控制性能。所以,这一次将讲解一下锁相环PLL系统来提取转子的位置信息。

硬件介绍:

        硬件平台使用的stm32F4系列单片机,可以进行浮点计算,主频168Mhz,性能可以完爆F103的单片机了。

        开发板链接

        还是我们这一款板子:

stm32 滑膜观测器+PLL 锁相环 FOC 无感无刷电机控制

软件功能:

        相较于F1的板子,增加了电位器调速功能。

        滑膜观测器+PLL控制,更准确提取转子的速度和角度信息。

        软件上还是保持了三个功能,滑膜模式(Smoloop)、霍尔模式(Hallloop)和开环 OpenLoop模式。

         通过程序中的宏进行模式选择。

stm32 滑膜观测器+PLL 锁相环 FOC 无感无刷电机控制

 

滑膜观测器的设计:

         滑膜控制是一种变结构的控制系统,控制系统的特性在于控制系统的不连续性,能让系统在一定条件下沿着规定的轨迹作小幅度、高频率上下运动,因此我们称之为滑膜动态。这种动态与参数和扰动无关,并且是可以设计的。

         滑膜观测器的具体原理我就不在这里赘了,不了解的可以看一下F103上滑模观测器反正切的介绍,也可以参考一下网上的资料,进行一下基础知识的普及,在这里我贴上源码,方便大家更直观的了解如何从理论到程序转变。

滑膜观测器初始化:


void  SMO_Pare_init(void)  
{
	SMO_MotorPare.Rs = Motor_Rs;     
	SMO_MotorPare.Ls = Motor_Ls;  
	SMO_MotorPare.Ib = 1 ;        
	SMO_MotorPare.Vb = 1 ;       
	SMO_MotorPare.Ts = Control_Ts;  
	SMO_MotorPare.POLES = Motor_Pn;   
  
    SMO_MotorPare.Fsmopos = exp((-SMO_MotorPare.Rs/SMO_MotorPare.Ls)*(SMO_MotorPare.Ts));
	SMO_MotorPare.Gsmopos = (SMO_MotorPare.Vb/SMO_MotorPare.Ib)*(1/SMO_MotorPare.Rs)*(1-    
    SMO_MotorPare.Fsmopos);
  
	Angle_SMOPare.Kslide = 5.0;  //     
	Angle_SMOPare.Kslf = 0.158;     //      
	Angle_SMOPare.E0 = 0.5;      //
  
  /***************PLL参数************************************/
  Angle_SMOPare.tPll.Kp = 20.0f;//5.0
  Angle_SMOPare.tPll.Ki = 12.0;//15.0
  
  Angle_SMOPare.tPll.Speed_coeff = (60.0)/(2*SMO_MotorPare.POLES*PI); 
  Angle_SMOPare.tPll.Kslf = 0.3; 
  
}

锁相环的位置和速度估算:

        滑模控制系统中估算的反电动势在通入低通滤波器中会导致高频都在误差变大,角度误差变大。采用PLL系统来提取转子速度和角度信息。

stm32 滑膜观测器+PLL 锁相环 FOC 无感无刷电机控制

PLL的滑模控制系统实现框图

下面为PLL计算的C源码:

void  Pll_Compute(Ppll_obj_t ptHandle,float Coff_Sine,float Coff_Cos)
{
    float Sin_Value = 0;
    float Cos_Value = 0;
    Cos_Value = arm_cos_f32(ptHandle->Theta); //Q15
    Sin_Value = arm_sin_f32(ptHandle->Theta); //Q15
    
    ptHandle->Err = Coff_Cos * Cos_Value  - Coff_Sine * Sin_Value; 
  
    ptHandle->Err = (ptHandle->Err > PI/6)  ?  (PI/6) : (ptHandle->Err);
    ptHandle->Err = (ptHandle->Err < -PI/6) ? (-PI/6) : (ptHandle->Err);
  
    ptHandle->Interg += ptHandle->Err * ptHandle->Ki;
  
    ptHandle->Ui = ptHandle->Err*ptHandle->Kp + ptHandle->Interg;
      
    
    ptHandle->Speed_Rpm = ptHandle->Speed_coeff * ptHandle->Ui;
 
    ptHandle->SpeedLpf_Rpm = ptHandle->SpeedLpf_Rpm + ptHandle->Kslf * (ptHandle->Speed_Rpm - ptHandle->SpeedLpf_Rpm);

}

仿真分析:

       仿真部分建议买一本袁雷老师的simulink仿真那本书,内容很不错。

stm32 滑膜观测器+PLL 锁相环 FOC 无感无刷电机控制

 角度波形:stm32 滑膜观测器+PLL 锁相环 FOC 无感无刷电机控制

 反电动势波形:

stm32 滑膜观测器+PLL 锁相环 FOC 无感无刷电机控制

通过上位机查看电流启动波形:

stm32 滑膜观测器+PLL 锁相环 FOC 无感无刷电机控制

最后:

        用锁相环控制系统替代串通的滑模观测器系统,通过滑模增益和反电动势的估算来减小系统误差与抖动,并根据锁相环控制系统推导出转角和转速公式,通过搭建的仿真模型可以看出,在PLL滑模观测器转速突变的情况下,能及时快速跟踪电机的实际转速和转角变化,通过PLL的滑模观测器比反正切的控制方法精准度更高,动态性能更好以及鲁棒性更强,可以满足电机实际控制性能的要求。文章来源地址https://www.toymoban.com/news/detail-498518.html

到了这里,关于stm32 滑膜观测器+PLL 锁相环 FOC 无感无刷电机控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA学习笔记(三):PLL 锁相环

    在 FPGA 芯片内部集成了 PLL(phase-locked loop,锁相环) ,可以倍频分频,产生其它时钟类型。PLL 是 FPGA 中的重要资源,因为一个复杂的 FPGA 系统需要不同频率、相位的时钟信号,一个 FPGA 芯片中 PLL 的数量是衡量 FPGA 芯片能力的重要指标。 Ultrascale+ 系列的 FPGA 使用了专用的全局

    2024年02月13日
    浏览(38)
  • Vivado PLL锁相环 IP核的使用

    本文纯属学习笔记,使用的FPGA是Xilinx的XC7A35TFGG484-1,使用Vivado调用PLL IP核来实现倍频效果,使50Mhz的晶振时钟源倍频到100Mhz、200Mhz和400Mhz。 Clocking Options 1.MMCM与PLL相比,PLL的时钟质量更高,所以对时钟质量要求较高的时候需要选择PLL,但是一般可以不用纠结。 2.修改Input Fre

    2024年02月08日
    浏览(40)
  • FPGA时钟分频倍频之PLL锁相环

    1、使用vivado创建一个工程 2、点击IP Catalog,搜索Clock Wizard,然后双击,本次实验使用PLL进行分频倍频,不动态改变相位,故选择PLL选项,并将时钟频率改变为50MHz,此处我们使用50MHz晶振作为时钟源 3、点击Output Clocks,配置产生的时钟频率,其他选项保持默认,点击ok,生pll ip核

    2024年02月12日
    浏览(38)
  • 锁相环(PLL)基本原理与频率合成器

    锁相环 (phase locked loop),是一种用于锁定相位的环路。锁相环的控制量是信号的频率和相位。它是一种典型的反馈控制电路,利用外部输入的参考信号控制环路内部振荡信号的频率和相位,实现输出信号频率对输入信号频率的自动跟踪,最终呈现出动态平衡。 1、锁相环的组成

    2024年02月15日
    浏览(36)
  • 非线性扰动观测器(NDOB)

    干扰观测器是控制中非常常见的一种方法,本节推导的是一种简单的非线性干扰观测器NDOB 假设非线性系统方程为 x ˙ = f ( x ) + g 1 ( x ) u + g 2 ( x ) d y = h ( x ) begin{align} dot x = f(x) + g_1(x)u + g_2(x)d nonumber\\\\ y = h(x) nonumber end{align} x ˙ y ​ = f ( x ) + g 1 ​ ( x ) u + g 2 ​ ( x ) d = h ( x

    2023年04月08日
    浏览(35)
  • ADRC——ESO扩张状态观测器simulink实现(含代码)

    2022/12/10改 我重新搭建了一个simulink模型文件,已上传网盘:(有问题请评论提出,有空会改正) 链接:https://pan.baidu.com/s/1EIfzICPp2XgwKr7Uhzv-aA  提取码:2579         主要参考韩老的论文:《从PID技术到\\\"自抗扰控制\\\"技术》。 对于系统:  这是一个常见的二阶系统,适用于牛顿

    2023年04月08日
    浏览(32)
  • 【STM32】知识补充 锁相环原理与应用解析

    锁相环 (Phase-Locked Loop) 在现代电子与通信系统中, 扮演着至关重要的角色. 凭借其独特的同步和频率调整能力, 锁相环已成为实现高性能, 高稳定性系统的基石. 那边, 锁相环究竟是什么? 它是如何工作的? 又在哪些领域中发挥着关键作用呢? 小白我来带大家一探究竟. 锁相环是一

    2024年02月05日
    浏览(38)
  • Simulink 自动代码生成电机控制:非线性磁链观测器

    目录 电机方程 电压方程 磁链方程 定义状态变量和输出变量 非线性观测器方程 电角度的计算--锁相环 锁相环调参 在对反电势进行积分获得磁链的过程中,最担心的就是 直流偏置或积分漂移 ,常用高通滤波器、自适应补偿等方式来抑制这种负面因素。非线性模块的思路就是

    2024年02月11日
    浏览(50)
  • 现代控制理论课程实验二:利用状态观测器实现状态反馈的系统设计

    1、理解并掌握线性状态反馈控制的原理和方法; 2、理解并掌握线性观测器的设计方法; 3、练习控制性能比较与评估的方法。 1、MATLAB软件 2、Multisim软件 3、leaSaC实验箱 函数信号发生器模块、有源模块A1-A7、阻容库模块和可变阻容库模块 受控系统如下图所示 对时不变线性连

    2024年02月01日
    浏览(45)
  • ADRC——一阶ESO扩张状态观测器simulink实现及C语言代码

            理论部分见我之前的博客,一阶ESO相比起来实现更简单,也更好理解,可帮助新手入门使用。虽然常见的物理系统,绝大多都是二阶系统,如F=ma, 做位置控制时,一般用二阶ESO。但是一阶ESO也有一定的用途,后面有空把之前做的一阶ESO的实际案例开源出来。 simu

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包