系列文章目录
`
文章目录
- 系列文章目录
- 一、计算六相MOS管输入波形
- 二、电机模块搭建
- 三、Clark变换与park变换
- 四、PID电流与速度
- 五、PID MATLAB仿真结果
- 结束语
FOC MATLAB仿真文件链接:
基于MATLAB 2018a版本,低于这个版本的请谨慎下载,高于这个版本的可以兼容。
一、计算六相MOS管输入波形
在第七篇的时候在svpwm过程中计算出了三相的比较值,这个比较值最终是一个马鞍波形,但是最终到MOS管的是需要上管和下管相对的总共六相波形,当然在实际上有些驱动芯片是自带这个功能的,还有如果使用高级定时器生成六相波形的话也是可以自动生成的,但在MATLAB中还是需要处理一下的。
一样这里还是使用function模块:
MATLAB代码为:
function [CH1,CH1N,CH2,CH2N,CH3,CH3N] = PWM(CNT,CCR1,CCR2,CCR3)
if(CNT<CCR1)
CH1=0;
CH1N=1;
else
CH1=1;
CH1N=0;
end
if(CNT<CCR2)
CH2=0;
CH2N=1;
else
CH2=1;
CH2N=0;
end
if(CNT<CCR3)
CH3=0;
CH3N=1;
else
CH3=1;
CH3N=0;
end
就是使用三角波和比较值进行对比,三角波就是模拟定时器的计数模式,三角波参数如下图:
仿真结果如下:
二、电机模块搭建
三个重要的模块,首先是MOS管模块,选用的是Universal Bridge这个模块,电机选用的是Permanent Magnet Synchronous Machine,此外还有一个powergui模块,在做离散分析的时候必须要加的,虽然没有连接,但是不加会报错,连接框图如下:
其中参数调节还是比较麻烦的,参数一旦不对,对输出影响特别大,下面是调试好久我用的一组参数,其中上面有一个直流电源电压大小为311,MOS管参数如下:
powergui模块参数如下:
电机参数如下:
三、Clark变换与park变换
下面就是我们熟悉的Clark变换和park变换了:
里面内容具体可以看之前的文章。
四、PID电流与速度
连接图如图所示:
这里直接使用了PID模块,因为MATLAB是自带PID模块的,所以不用像上一篇一样自己搭建一个,那个只是方便理解PID,当然,自己搭也是可以的。
PI参数如下:
PID参数如下:
用到的一些变量的定义:
在空白处右键,打开下面这个设置:
然后按照上图所示依次点击,找到初始化函数,参数写入如下:
Ts = 10e-6;
R = 0.958;
Ld = 5.25e-3;
Lq = 12e-3;
Pn = 4;
flux = 0.1827;
五、PID MATLAB仿真结果
给定初速度500,仿真结果如下:
结束语
这一系列到此就先告一段落了,等过一段时间才可能出下一个系列,所有仿真模型几乎在最后这个里面都可以找到。