一、 内容

本期学习的主要内容是对正弦波有传感器的程序部分进行学习,主要体现在对电流环和相关代码的理解。

二、 知识点

上一期的学习初步认识了PID控制下的三个控制环,分别是速度环、电流环和力矩环,下图为三个闭环的关系图,其中逆变器工作之后,黄色部分的电流环开始工作,根据FOC原理,首先读取电机转动过程中的电流信号Ia、Ib和Ic,三相电流Ia、Ib和Ic 经过各种数学变换最终被转换为Id、Iq 电流分量,然后根据参考值Iqs 和Ids来计算e,最后 SVPWM 模块实现最终对三相定子电压的矢量控制。

速度环体现在对转子速度或者位置的检测,而力矩环则是转矩的控制器,给出参考值Iqs 和Ids。相关函数如下:

① 电流采样函数
Curr_Components SVPWM_3ShuntGetPhaseCurrentValues(void)
{Curr_Components Local_Stator_Currents;s32 wAux;switch (bSector){case 4:       //取得在那个扇区时刻读取ADcase 5:       // Ia = (hPhaseAOffset)-(ADCChannel 11 value)    wAux =(s32)(hPhaseAOffset)- ((ADC1->JDR1)<<1);          //Saturation of Ia if (wAux < S16_MIN){Local_Stator_Currents.qI_Component1=S16_MIN;                               }  else  if (wAux > S16_MAX){ Local_Stator_Currents.qI_Component1= S16_MAX;}else{Local_Stator_Currents.qI_Component1= wAux;}// Ib =(hPhaseBOffset)-(ADC Channel 12 value)wAux = (s32)(hPhaseBOffset)-((ADC2->JDR1)<<1);// Saturation of Ibif (wAux < S16_MIN){Local_Stator_Currents.qI_Component2= S16_MIN;}  else  if (wAux > S16_MAX){ Local_Stator_Currents.qI_Component2=S16_MAX;}else{         Local_Stator_Currents.qI_Component2= wAux;}break;case 6:case 1:     //Current on Phase A not accessible     // Ib =(hPhaseBOffset)-(ADC Channel 12 value)wAux = (s32)(hPhaseBOffset)-((ADC1->JDR1)<<1);//Saturation of Ib  if (wAux < S16_MIN){Local_Stator_Currents.qI_Component2= S16_MIN;} else  if (wAux > S16_MAX){ Local_Stator_Currents.qI_Component2= S16_MAX;}else{Local_Stator_Currents.qI_Component2=wAux;}// Ia = -Ic -Ib wAux =((ADC2->JDR1)<<1)-hPhaseCOffset-Local_Stator_Currents.qI_Component2;//Saturation of Iaif (wAux> S16_MAX){Local_Stator_Currents.qI_Component1= S16_MAX;}else  if (wAux <S16_MIN) {      Local_Stator_Currents.qI_Component1 = S16_MIN;}else{                     Local_Stator_Currents.qI_Component1 = wAux;}break;case 2:case 3:     // Ia = (hPhaseAOffset)-(ADC Channel 11 value)     wAux =(s32)(hPhaseAOffset)-((ADC1->JDR1)<<1);//Saturation of Ia if (wAux < S16_MIN){Local_Stator_Currents.qI_Component1= S16_MIN;}  else  if (wAux > S16_MAX){ Local_Stator_Currents.qI_Component1= S16_MAX;}else{Local_Stator_Currents.qI_Component1= wAux;}// Ib = -Ic-Ia;wAux =((ADC2->JDR1)<<1)-hPhaseCOffset-Local_Stator_Currents.qI_Component1;// Saturation of Ibif (wAux> S16_MAX){Local_Stator_Currents.qI_Component2=S16_MAX;}else  if (wAux <S16_MIN){     Local_Stator_Currents.qI_Component2 = S16_MIN;}else  {  Local_Stator_Currents.qI_Component2 = wAux;}                     break;default:break;} return(Local_Stator_Currents);
}

Curr_Components SVPWM_3ShuntGetPhaseCurrentValues(
)电流采样函数主要是在特定的六个扇区读取状态AD,并且计算出A相和B相的电流值,又由于三相电流矢量之和为0,则可得到C相电流值,为之后的Clark变换做准备工作。

②Clark变换
Curr_Components Clarke(Curr_Components Curr_Input)
{Curr_Components Curr_Output;s32 qIa_divSQRT3_tmp;s32 qIb_divSQRT3_tmp ;s16 qIa_divSQRT3;s16 qIb_divSQRT3 ;// qIalpha = qIasCurr_Output.qI_Component1=Curr_Input.qI_Component1;qIa_divSQRT3_tmp = divSQRT_3 *Curr_Input.qI_Component1; //电流平方根3qIa_divSQRT3_tmp /=32768;   qIb_divSQRT3_tmp = divSQRT_3 *Curr_Input.qI_Component2;qIb_divSQRT3_tmp /=32768; qIa_divSQRT3=((s16)(qIa_divSQRT3_tmp));       qIb_divSQRT3=((s16)(qIb_divSQRT3_tmp));     //qIbeta = -(2*qIbs+qIas)/sqrt(3)Curr_Output.qI_Component2=(-(qIa_divSQRT3)-(qIb_divSQRT3)-(qIb_divSQRT3));return(Curr_Output);
}

Clark变换是自然坐标系 ABC 变换到静止坐标系α-β的坐标变换,其中,结合原理和程序,我们可知:

           qIalpha = qIas                      式1qIbeta = -(2*qIbs+qIas)/sqrt(3)            式2

即输出iα和iβ。

③Park变换
Curr_Components Park(Curr_Components Curr_Input,
s16 Theta)
{Curr_Components Curr_Output;s32 qId_tmp_1, qId_tmp_2;s32 qIq_tmp_1, qIq_tmp_2;     s16 qId_1, qId_2;  s16 qIq_1, qIq_2;   Vector_Components = Trig_Functions(Theta);//No overflow guaranteedqIq_tmp_1 = Curr_Input.qI_Component1 * Vector_Components.hCos;           qIq_tmp_1 /= 32768;//Nooverflow guaranteedqIq_tmp_2 = Curr_Input.qI_Component2 *Vector_Components.hSin; qIq_tmp_2 /= 32768;qIq_1 = ((s16)(qIq_tmp_1));qIq_2 = ((s16)(qIq_tmp_2));//Iq component in Q1.15 Format Curr_Output.qI_Component1 = ((qIq_1)-(qIq_2));//No overflow guaranteedqId_tmp_1 = Curr_Input.qI_Component1 * Vector_Components.hSin;qId_tmp_1 /= 32768;//No overflow guaranteedqId_tmp_2 = Curr_Input.qI_Component2 * Vector_Components.hCos;qId_tmp_2 /= 32768;qId_1 = (s16)(qId_tmp_1);             qId_2 = (s16)(qId_tmp_2);                                //Id component in Q1.15 Format   Curr_Output.qI_Component2 = ((qId_1)+(qId_2));  return (Curr_Output);
}

Park变换是将静止坐标系α-β变换到同步旋转坐标系d - q的坐标变换,其中,结合原理和程序,我们可知:

  qId=qIalpha_tmp*sin(theta)+qIbeta_tmp*cos(Theta)      式3qIq=qIalpha_tmp*cos(Theta)-qIbeta_tmp*sin(Theta)      式4

即输出iq和id。

经过Park变换得到的iq和id,而后经过PID调节、Park的逆变换与SVPWM计算,反馈给逆变器系统,则构成一个完整的电流环。

三、总结

本期主要是对正弦波有感部分程序的学习,总的来说,这段时间由于专业考试较多,相比于之前花的时间和精力少了,所以进展不大。本期学习有收获的地方是进一步学习了程序部分,但是还是不能完全理解。之后的学习重点将从程序学习转向仿真部分,当仿真理解了之后,再来看程序,可能有不一样的收获。

无刷直流电机学习笔记5相关推荐

  1. 无刷直流电机学习笔记3

    一. 内容 本期学习的内容,主要是结合<现代永磁同步控制原理及MATLAB仿真>一书与网上材料,对三相PMSM坐标变换原理,三相电斥源逆变器 PWM 技术的基本原理以及三相 PMSM 矢量 ...

  2. 无刷直流电机学习笔记10

    一.内容 本期的学习内容主要是:基于基波数学模型的三相永磁同步电机无传感器控制,其重点是学习滑模观测器算法的相关原理,并对该算法进行详细的分析和建模,从而正确的认识PMSM是如何获得准确的转子位置及转 ...

  3. 无刷直流电机学习(3)

    一.内容 此次学习主要完成了无霍尔传感器的电机的程序的学习理解和相关参数的认识. 二.知识点 三段式启动 三段式启动是在定时器TIM1的中断处理函数中.由于电机在静止时反电动势为0或者反电动势很低,无 ...

  4. STM32驱动无刷直流电机学习(2)

    stm32 通过 IRS2101S 将驱动io 升压,再驱动 N沟道MOS管 IRF540NS N沟道MOS管是通过 高电平导通 低电平禁止的 PWM1H PWM2H PWM3H 分别接 PA8 PA ...

  5. 无刷直流电机的无位置传感器控制学习笔记

    BLDC与PMSM关系 关于这个问题,很多人不太注意,我见过很多人把无刷直流电机和永磁同步电机不区分,以至于出现了正弦波无刷直流电机这样的叫法.实际上,在学校里面学习的时候,这个还是区分开的.一般把梯 ...

  6. 【学习笔记·1】无刷直流电机基础

    一.了解直流有刷电机 二.了解直流无刷电机 2.1 高中物理电磁知识 磁体在磁场中受力方向与磁场的磁感线方向有关, 磁体的N极受力方向与磁感线切线方向一致, 磁体的S极受力方向与磁感线切线方向相反. ...

  7. nrf52832 学习笔记(五)蓝牙主从机连接和连接参数更新

    nrf52832 学习笔记(五)蓝牙主从机连接和连接参数更新 主机连接 nrf52832 SDK中主机连接从机需要使用 sd_ble_gap_connect(ble_gap_addr_t const ...

  8. nrf52832 学习笔记(三)蓝牙从机广播

    nrf52832 学习笔记(三)蓝牙从机广播 蓝牙从机要想被主机连接,首先需要发送广播信息,周围主机通过扫描广播信号,根据从机的广播信息,判断是否连接. 蓝牙协议栈初始化 不管是主机还是从机,要想使用 ...

  9. OpenWrt学习笔记之刷机、救砖

    OpenWrt学习笔记之刷机及救砖 完成了固件的编译之后就可以进行刷机了,当然也可以去官网直接下载固件.连接如下:http://wiki.openwrt.org/toh/tp-link/tl-wr70 ...

  10. 《永磁无刷直流电机技术》笔记

    说明: 该笔记仅仅针对笔者本人知识上的漏洞,内容包括但并不完全包括该书上的重要知识点以及不理解之处,笔记内容会不定期更新,参考教材为机械工业出版社出版的<永磁无刷直流电机技术>,作者:谭建 ...

最新文章

  1. oracle11g insufficient,ORACLE11GORA-01031:insufficientprivileges
  2. XP 组件中没有IIS,如何添加IIS组件
  3. Spring Schedule定时关单快速入门
  4. C++标准库与Java基础类对照表
  5. 设计模式工厂方法模式
  6. 操作系统之I/O管理:1、I/O控制器、I/O控制方式(程序直接控制方式、中断驱动方式、DMA方式、通道控制方式)
  7. 2022年智慧城市行业概括及现状
  8. 微信小程序 下拉刷新 上拉触底分页
  9. freessl 免费https证书申请
  10. vue3.0常用的composition API
  11. Google地图中关于根据具体坐标定位真实地理位置
  12. 台式计算机无线接入,台式计算机有线连接路由器WiFi方法图步骤,可以详细设置无线内容(...
  13. 课堂派考试可以切屏吗_雨课堂考试可以切屏吗?能切出去搜答案吗
  14. 【Mysql】Mysql为什么使用B+树
  15. 手机贴图压缩技术标准及作用
  16. 法拉科机器人接头_图解FANUC机器人I/O信号板接口定义与拆装
  17. NETDMIS5.0三个面基准建立坐标系2023
  18. 【日拱一卒行而不辍20221010】自制操作系统
  19. 高性能网络编程(三):下一个10年,是时候考虑C10M并发问题了
  20. 《筱静观察》第三季第6期丨区块链安全及其应用

热门文章

  1. 80386 保护模式
  2. 粒子群算法的适应度函数问题
  3. 永磁同步电机矢量控制(二)—— 控制原理与坐标变换推导
  4. 文章刚刚开源就被培训机构“BP”了,过于不要脸
  5. java正态分布的概率密度函数_正态分布概率密度函数
  6. 华为笔记本没有网线口_笔记本电脑没有网线接口的怎么办?
  7. 0.1 番外篇: UML 类图
  8. NewLand手持设备上条码扫描
  9. zigbeelibrary.jar的使用
  10. Word——目录显示和标题样式设置