一、观测器原理


对这个原理不懂的小伙伴们,可以去看B站DR_can的视频。后续有空我再将这里细化讲解一下
简而言之:目标就是设计一组K值使得模型估算的Xhat 和 实际的X相等。 Xhat - X收敛于0,即知道了实际的X的值,这就是观测器的基本原理.

二、三相永磁同步电机的基本公式

2.1定子电压方程

2.2隆博戈观测器的组成

2.3隆博戈观测的推导


提问题:
为什么要用隆博戈观测器?
通过隆博戈观测器,主要是为了电机得到alpha,beta轴的反电动势
为什么要得到alpha,beta轴的反电动势?
因为反电动势中蕴含了电机定子电角度信息,如下面:
要弄明白的是模型的输入与输出分别是什么?
模型输入: Ialpha、Ibeta、Ualpha、Ubeta、We
模型输出:Ealpha、Ebeta

2.4隆博戈观测器的离散化

三、matlab实现隆博戈观测器

第一步:找到subsytem


建立5个输入口,2个输出口

建立类似于下面的图:

需要更加使用matlab的S-function实现的高阶的离散化实现或者上述整个连续模型的实现,请留下评论联系 要收费哦!

五、具体的M0方案实现代码


static int16_t STO_CalcElAngle(CSPD this, void *pInputVars_str)
{pDVars_t pDVars_str = &DCLASS_VARS;  #ifndef FULL_MISRA_C_COMPLIANCYpDParams_t pDParams_str = DCLASS_PARAMS;#endifint32_t wAux, wDirection;int32_t wIalfa_est_Next,wIbeta_est_Next;int32_t wBemf_alfa_est_Next, wBemf_beta_est_Next;int16_t hAux, hAux_Alfa, hAux_Beta, hIalfa_err, hIbeta_err, hRotor_Speed, hValfa, hVbeta;static u16 sOldAngle;Observer_Inputs_t * pInputs;pInputs= (Observer_Inputs_t *)pInputVars_str;/**************************反电动势beta**********************/#ifdef FULL_MISRA_C_COMPLIANCYhAux_Beta = (int16_t)(pDVars_str->wBemf_beta_est/pDVars_str->hF2);#elsehAux_Beta = (int16_t)(pDVars_str->wBemf_beta_est>>pDParams_str->hF2LOG);#endif/************************Ialfa误差获取*************************/#ifdef FULL_MISRA_C_COMPLIANCYhIalfa_err = (int16_t)(pDVars_str->wIalfa_est/pDVars_str->hF1);#elsehIalfa_err = (int16_t)(pDVars_str->wIalfa_est>>pDParams_str->hF1LOG);#endif/***************************Ialfaerrest - Ialfa**********************/hIalfa_err = hIalfa_err - pInputs->Ialfa_beta.qI_Component1;#ifdef FULL_MISRA_C_COMPLIANCYhIbeta_err = (int16_t)(pDVars_str->wIbeta_est/pDVars_str->hF1);#elsehIbeta_err = (int16_t)(pDVars_str->wIbeta_est>>pDParams_str->hF1LOG);#endif/***************************Ibetaerrest - Ibeta**********************/hIbeta_err = hIbeta_err - pInputs->Ialfa_beta.qI_Component2;   /***************************Vbus*Valfa**********************/wAux = (int32_t)(pInputs->Vbus) * pInputs->Valfa_beta.qV_Component1; /***************************Vbus*Vbeta**********************/wAux = (int32_t)(pInputs->Vbus) * pInputs->Valfa_beta.qV_Component2; /**********************alfa 轴观测器********************************/// hF1LOG 作用/*alfa axes observer*/wAux = (int32_t) (pDVars_str->hC1)* hAux;     wIalfa_est_Next = pDVars_str->wIalfa_est - wAux;   // Ialhaest - hc1*IalhpaestwAux = (int32_t) (pDVars_str->hC2) * hIalfa_err;   // Inest = Ialphaest -hc1*Ialhpaest + hC2*(Ialpaest - Ialpha)wIalfa_est_Next += wAux;wAux = (int32_t) (pDVars_str->hC5) * hValfa;    wIalfa_est_Next += wAux;                          //Inest = Ialphaest -hc1*Ialhpaest + hC2*(Ialpaest - Ialpha) + hc5*ValfawAux = (int32_t)  (pDVars_str->hC3)* hAux_Alfa;   //Iestbeta(k+1)  - Iestbeta(k)  = -Rs*Iestbeta(k)*T/Ls  - Eestbeta(k)*T/Ls  + T*Ubeta(k)/Ls  + K2*T*(Ibetaest(k)  - Ibeta(k) )  wIalfa_est_Next -=wAux;                           //Ialpha_nest_next = Ialphaest -hc1*Ialhpaest + hC2*(Ialpaest - Ialpha) + hc5*Valfa - hc3*Ebemfalphaest         wAux = (int32_t)(pDVars_str->hC4) *hIalfa_err;wBemf_alfa_est_Next = pDVars_str->wBemf_alfa_est + wAux;   //  Ebemfalpha_est_next = Ebemfalphaest + hc4*(Ialpaest - Ialpha)//hC6作用wAux = wAux * pDVars_str->hC6;wAux = CLASS_VARS->hElSpeedDpp * wAux;wBemf_alfa_est_Next += wAux;/**********************beta 轴观测器********************************/    /*beta axes observer*/  #ifdef FULL_MISRA_C_COMPLIANCYhAux = (int16_t) (pDVars_str->wIbeta_est/pDVars_str->hF1);#elsehAux = (int16_t) (pDVars_str->wIbeta_est>>pDParams_str->hF1LOG);#endif/*************************hC1的作用*********************************/wAux = (int32_t)  (pDVars_str->hC1)* hAux;wIbeta_est_Next = pDVars_str->wIbeta_est - wAux;/*************************hC2的作用*********************************/wAux = (int32_t) (pDVars_str->hC2) * hIbeta_err;wIbeta_est_Next += wAux;/*************************hC5的作用*********************************/wAux = (int32_t) (pDVars_str->hC5) * hVbeta;wIbeta_est_Next += wAux;  /*************************hC3的作用*********************************/wAux = (int32_t)  (pDVars_str->hC3)* hAux_Beta;wIbeta_est_Next -=wAux;/*************************hC4的作用*********************************/wAux = (int32_t)(pDVars_str->hC4) *hIbeta_err;wBemf_beta_est_Next = pDVars_str->wBemf_beta_est + wAux;//hF3POW2的作用#ifdef FULL_MISRA_C_COMPLIANCYwAux = (int32_t)hAux_Alfa / pDVars_str->hF3;#elsewAux = (int32_t) hAux_Alfa >> pDVars_str->hF3POW2;#endif//hC6的作用:  Ebemfalpha(K+1)  =  Ebemfalpha(k) - hc6*Wspeed*Ebeta(k) + hc4*(Ialpaest - Ialpha)wAux = wAux * pDVars_str->hC6;wAux = CLASS_VARS->hElSpeedDpp * wAux;wBemf_beta_est_Next -= wAux;/**********************************锁相环*********************************/    /*Calls the PLL blockset*/pDVars_str->hBemf_alfa_est = hAux_Alfa;pDVars_str->hBemf_beta_est = hAux_Beta;hAux_Alfa = (int16_t)(hAux_Alfa * wDirection);hAux_Beta = (int16_t)(hAux_Beta * wDirection);/***************************锁相环求取转速********************************///#ifdef PLL_ANGLE    hRotor_Speed = STO_ExecutePLL(this, hAux_Alfa, -hAux_Beta);STO_Store_Rotor_Speed(this, hRotor_Speed);/***************************转速积分求取角度********************************/CLASS_VARS->hElAngle +=hRotor_Speed;/*********************更新值的列表***********************************/      /*storing previous values of currents and bemfs*/pDVars_str->wIalfa_est = wIalfa_est_Next;pDVars_str->wBemf_alfa_est = wBemf_alfa_est_Next;pDVars_str->wIbeta_est = wIbeta_est_Next;pDVars_str->wBemf_beta_est = wBemf_beta_est_Next;/***********************返回电角度**********************************/return (CLASS_VARS->hElAngle);
}

教你三相永磁同步电机隆博戈观测matlab搭建相关推荐

  1. 三相永磁同步电机PMSM仿真 simulink仿真 永磁同步电机仿真,PI调节器

    三相永磁同步电机PMSM仿真 simulink仿真 永磁同步电机仿真,PI调节器 基于滑模速度控制器的PMSM矢量控制系统matlab仿真模型,适用于改进滑模控制器等仿真作为参考 不 有说明文档 ID ...

  2. 三相永磁同步电机(PMSM) 单矢量、占空比、双矢量电流预测控制 MATLA b仿真算法

    三相永磁同步电机(PMSM) 单矢量.占空比.双矢量电流预测控制 MATLA b仿真算法: (1)采用电流预测控制: (2)采用转速.电流双闭环控制: (3)转速环采用PI控制: (4)电流环采用电流 ...

  3. 三相永磁同步电机的矢量控制学习笔记一

    三相永磁同步电机的矢量控制学习笔记1 一 内容 三相永磁同步电机CPMSM)是一个强搞合.复杂的非线性系统,为了能够更好地 设计先进的 PMSM 矢量控制算法,建立合适的数学模型就显得尤为重要.本次学 ...

  4. 永磁同步电机三相等效电路图_三相永磁同步电机之永磁体的等效

    三相永磁同步电机之永磁体的等效 在进行永磁电机磁场分析时,通常有两种方法对永磁体进行等效,即磁化矢量法和等效电流层法.这两种方法的出发点不同,但得到的最终结果是相同的. 一.磁化矢t法 永磁体的种类不 ...

  5. 三相永磁同步电机(PMSM) SVPWM矢量控制 MATLA仿真算法

    三相永磁同步电机(PMSM) SVPWM矢量控制 MATLA仿真算法: (1)采用SVPWM矢量控制: (2)采用转速.电流双闭环控制: (3)转速环采用PI控制: (4)电流环采用PI控制: (5) ...

  6. 三相永磁同步电机(PMSM) SVPWM矢量控制 MATLA 仿真算法

    三相永磁同步电机(PMSM) SVPWM矢量控制 MATLA 仿真算法: (1)采用SVPWM矢量控制: (2)采用转速.电流双闭环控制: (3)转速环采用PI控制: (4)电流环采用PI控制: (5 ...

  7. PMSM永磁同步电机控制类仿真 三相永磁同步电机模型 1、直接转矩控制DTC 2、矢量控制FOC

    PMSM永磁同步电机控制类仿真 三相永磁同步电机模型 1.直接转矩控制DTC 2.矢量控制FOC 3.无位置控制 4.滑膜控制 #Matlab/simulink ID:7510067799948960 ...

  8. 自己搭建的三相永磁同步电机直接转矩控制(DTC)模型

    自己搭建的三相永磁同步电机直接转矩控制(DTC)模型,控制效果非常好,一共有两个,分别是传统DTC控制和基于滑膜控制改进的DTC控制,联系发:两个DTC控制模型+参考资料 (图1和图2是模型总框架,图 ...

  9. 五相同步电机matlab模型,五相永磁同步电机空间矢量PWM控制系统MATLAB仿真

    第 56 卷 第 11 期 Vol. 56 No. 11 2018 年 11 月 November 2018 农业装备与车辆工程 AGRICULTURAL EQUIPMENT & VEHICL ...

最新文章

  1. 如何禁用文本选择突出显示
  2. Apache ab压力测试工具
  3. [javaSE] 集合框架(Map概述)
  4. 2017-2018-1 20155338 《信息安全系统设计基础》 第三周学习总结
  5. python 知识点总结
  6. java 队列_百战程序员:Java并发阻塞队列
  7. html实现开关,使用纯css实现开关效果
  8. VB6 GDI+ 入门教程[7] Graphics 其他内容
  9. java严格模式_es严格模式、对象和扩展。
  10. 计算机网络实验——华为eNSP模拟器常用命令总结(总结的非常详细( •̀ .̫ •́ )✧快来看啊)
  11. ascll编码表图片_ASCLL编码表
  12. hyperledger fabric explorer 超级账本区块链浏览器搭建-docker的方式
  13. 认识netty+实战
  14. Windows下Scintilla的编译,使用
  15. 哈工大同义词词林 python 使用范例
  16. 小程序逆向——某书小程序反编译(一)
  17. Python List 包含关系判定
  18. 《Windows 8 权威指南》——2.2 Windows 8 Metro界面
  19. 软件测试笔记_09_自动化相关概念【重要】
  20. Azure App object和Service Principal

热门文章

  1. Enhancing Quality for HEVC Compressed Videos
  2. MongoDB快速上手、windows安装、常用命令、文档基本增删改查、mongoDB的索引
  3. 使不知宽高的元素水平垂直居中的方法
  4. [健康]做女人应该知道的16个科学发现
  5. HDU3698-Let the light guide us (线段树优化的dp)
  6. 认识C++(引别人的)
  7. 新华三+福建工院,给数字人才培养“上一课”!
  8. css宋体代码_css字体样式
  9. dhcp服务器增加vlan,简谈多VLAN DHCP服务设置
  10. 北斗三号频点_北斗三代B2a频点软件接收机的设计