STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成

目录

传统DTC控制仿真

1. DTC简单介绍

2. 传统DTC仿真模型

3. DTC仿真效果 

改进DTC SVPWM控制仿真

1. SVPWM替换查表

2. 无传感磁链估算

 改进后的DTC控制仿真 

 1. 速度响应

 2. 转矩响应

 3. 磁链圆

4. 无感角度估算

代码生成

开发板验证

总结


传统DTC控制仿真

1. DTC简单介绍

DTC其基本思路是不再将定子侧的相关变量折算到转子的旋转坐标系下,放弃了矢量控制中电流解耦的控制思想 ,去掉了PI调节模块、反Clark-Park变换和SVPWM模块 ,转而通过检测母线电压和定子电流 ,直接计算出电机的磁链和转矩 ,并利用两个滞环比较器直接实现对定子磁链和转矩的解耦控制。传统的DTC控制通过滞环控制来实现,FOC中的SVPWM在DTC控制中则是通过开关查表实现. 如下图为典型的永磁同步电机DTC控制。

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第1张图片

2. 传统DTC仿真模型

通过滞环来对估算到的转矩,和磁链 进行控制,速度环直接输出Te_ref,通过滞环控制开关管的导通判断。再通过角度或者磁链计算出扇区,利用扇区通过查表确定当前功率管的开通判断顺序。和SVPWM不同的是SVPWM输出的是比较值,固定频率,变化的占空比。这种通过开关控制的方法开关频率越高,控制效果越好。

仿真系统:

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第2张图片

算法部分: 

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第3张图片

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第4张图片

3. DTC仿真效果 

 DTC控制频率20K的速度和电流响应效果STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第5张图片

 磁链圆的效果

 STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第6张图片

 DTC控制频率10K的速度和电流响应效果 

 STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第7张图片

 磁链圆的效果 

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第8张图片

转矩响应效果

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第9张图片 控制频率越高,开关频率越高,控制效果越好,但是这种控制方式在实际硬件中实行的话可能需要极高的开关频率,加上环路的控制,对MCU的性能要求比较高。用这种方式在实际的硬件上测试也出现同样的问题,相电流不平滑,且直接对功率管开关,容易过流。也有很多论文提出了不少的改进方法,这里不一一列举。

改进DTC SVPWM控制仿真

1. SVPWM替换查表

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第10张图片

通过基于滑模控制器的转矩磁链调节器,输入磁链误差和转矩误差,进而计算出两相静止坐标系的空间电压,完成DTC的系统控制任务。

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第11张图片

2. 无传感磁链估算

 这里我们通过一个无感磁链观测器,通过输入的Ialpha Ibeta, 和Ualpha Ubeta估算出转矩和磁链以及当前转速和当前的角度。

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第12张图片

 改进后的DTC控制仿真 

控制频率10K

 1. 速度响应

明显电流光滑了很多

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第13张图片

 2. 转矩响应

给定转矩和估算转矩,估算转矩在给定转矩上下浮动

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第14张图片

电机实际转矩

和估算的转矩有些误差

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第15张图片

 3. 磁链圆

得到的磁链更接近圆也更光滑

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第16张图片

4. 无感角度估算

接近真实角度

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第17张图片

代码生成

为方便实际验证,模型里面也加入了Hall的角度计算,验证观测器是否能正常工作 

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第18张图片

 生成代码并集成

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第19张图片

开发板验证

电机参数如下:

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第20张图片

程序下载到开发板后连接Simulink的串口调试工具,上传观测量:

开发板主控芯片是STM32F401,低压24V。

 运行效果:

 如下图:

和仿真效果一样,通过PI输出的转矩和估算的转矩基本重和,估算的角度和霍尔计算的角度也基本一致,拿掉霍尔后也能正常闭环控制。通过电位器给定转速995RPM,实际转速和给定基本一致。

 STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第21张图片

 电流波形(2K采样频率):

STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成_第22张图片

总结

DTC的控制系统通过模型验证以及生成代码到开发板中运行调试,实际和仿真接近,模型的电机仿真参数来自于实际的电机测量参数,目前系统已经可以通过霍尔计算角度或者通过无感磁链观测器获得角度,目前基本功能实现,但还有很多地方有待改进。

你可能感兴趣的:(STM32,代码生成,simulink,matlab,stm32,单片机)