关于matlab的simulink中Asynchronous Machine的应用

关于matlab的simulink中Asynchronous Machine的应用,第1张

模型自己去搭去,不要太偷懒了。

附送我写的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怎么填等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10169228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存