模型自己去搭去,不要太偷懒了。
附送我写的SVPWM。
function CMPR=svpwm(ualfa,ubeta)
global ts udc_ref;
%在IF语句中出现的变量必须赋初值
persistent T1on T2on T3on t1 t2 sectorNO;
if isempty(T1on)|isempty(T2on)|isempty(T3on)|isempty(t1)|isempty(t2)|isempty(sectorNO)
T1on=0;
T2on=0;
T3on=0;
t1=0;
t2=0;
sectorNO=0;
end
%#################################
%sectorNO 3(0 30')->1->5->4->6->2->3
%#################################
if ubeta>0
a=1;
else a=0;
end
if sqrt(3)ualfa-ubeta>0
b=1;
else b=0;
end
if -sqrt(3)ualfa-ubeta>0
c=1;
else c=0;
end
sectorNO=a+2b+4c;
%#################################
%
%#################################
x=sqrt(3)ubetats/udc_ref;
y=(15ualfa+sqrt(3)/2ubeta)ts/udc_ref;
z=(-15ualfa+sqrt(3)/2ubeta)ts/udc_ref;
%#################################
%voltage vector on time
%#################################
switch sectorNO
case 3
t1=-z;
t2=x;
case 1
t1=z;
t2=y;
case 5
t1=x;
t2=-y;
case 4
t1=-x;
t2=z;
case 6
t1=-y;
t2=-z;
case 2
t1=y;
t2=-x;
end
%#################################
%pwm timer value
%#################################
%饱和判断
if ts-t1-t2<0
t1=tst1/(t1+t2);
t2=ts-t1;
end
ta=(ts-t1-t2)/4;
tb=ta+t1/2;
tc=tb+t2/2;
switch sectorNO
case 3
T1on=ta;
T2on=tb;
T3on=tc;
case 1
T1on=tb;
T2on=ta;
T3on=tc;
case 5
T1on=tc;
T2on=ta;
T3on=tb;
case 4
T1on=tc;
T2on=tb;
T3on=ta;
case 6
T1on=tb;
T2on=tc;
T3on=ta;
case 2
T1on=ta;
T2on=tc;
T3on=tb;
end
CMPR=[T1on T2on T3on];
显然程序没有贴完。看上去有点像SVPWM。
首先,if语句结束后应该加上end。其次,elseif不应该分开。最后,在这段程序没有问题的情况下,也是有可能出错的,这时应该检查simulink其它部分。
[REKF1zip] - 应用于永磁同步电机的降阶扩展卡尔曼滤波matlab算法程序,PMSM
[pppirar] - 空间矢量脉宽调制控制永磁同步电机调速matlab仿真文件
[PMSM_MRASrar] - 基于MRAS观测器永磁同步电机调速系统的matlab仿真研究
[ADRC70rar] - MATLAB70/simulink实现的全套的自抗扰控制器资料,包括mdl文件和S-function。
[PMSM_myself3rar] - 永磁同步电机matlab,simulink 的svpwm仿真
[chlve_tobeimproved_sff_tryzip] - 高频注入法无传感器的永磁同步电机控制,卡尔曼滤波器
[2812_modelrar] - 用dsp产生六路pwm波来控制永磁无刷直流电机的转动和换向。
扇区判断公式:
B0 = Uβ
B1 = sin60Uα - sin30Uβ
B2 =-sin60Uα - sin30Uβ
然后将上面算出的B0,B1,B2代入公式:
P=4sign(B2) +2sign(B1) +sign(B0)
(上式中sign(x)是符号函数,如果x>0,则sign(x)=1;如果x<0,则sign(x)=0)
算出来的这个P值与扇区的对应关系是:
P : 1 2 3 4 5 6
扇区号: 1 5 0 3 2 4
至于一个周期的SVPWM波的脉冲数是多少是取决于你设的定时中断的频率是多少,就是说取决于程序员,频率设得越高电压矢量过渡得越圆滑,一般我做的是50us或100us一中断。初学者会认为这个脉冲数会跟电压矢量的转速有关,其实他们不塌噶,不是一个概念。
不知道你哪些懂哪些不懂,怎么详细说呢?详细只好写书或者论文了。
逆变器大体上包含这样几个方面:中间是逆变桥,一旁是直流电路,另一旁是交流电路,交流电路可以带负载。逆变器信号输入就是PWM波形发生器,该电路产生逆变桥所需的PWM波,现在有很多不同算法的PWM波,比如其中的SPWM和SVPWM都是使用非常常见的。就整体控制而言,还有以PID为代表的自动控制系统,比如负载为电机,控制参数是电机转速,那么自动控制系统会自动调节PWM,使得逆变桥输出足够的电压和电流达到控制电机转速的目的。
以上就是关于关于matlab的simulink中Asynchronous Machine的应用全部的内容,包括:关于matlab的simulink中Asynchronous Machine的应用、想用simulink里的Embedded Matlab Function里的模块来仿真,但是编程总出错,哪位高人能指导我一下、matlab中的permanent magnet flux linkage怎么填等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)