matlab电机实例

合集下载

matlab中关于永磁同步电机的仿真例子

matlab中关于永磁同步电机的仿真例子

matlab中关于永磁同步电机的仿真例子MATLAB中关于永磁同步电机的仿真例子1. 基本电机参数配置在进行永磁同步电机的仿真前,需要先配置基本的电机参数,包括电机的额定功率、额定电压、额定转速等。

2. 电机模型的建立使用MATLAB中的Simulink模块,可以方便地建立永磁同步电机的模型。

可以利用Simulink库中的电机模块,如Permanent Magnet Synchronous Machine来构建电机模型。

3. 电机控制策略的设计在建立电机模型后,需要设计适合的控制策略来控制电机的运行。

常见的控制策略包括:•PI控制:使用Proportional-Integral (PI) 控制器来调节电机的转速和电流。

•磁场定向控制(FOC):通过测量电机转子位置和速度,将三相交流信号转换为等效直流信号,实现对电机的控制。

4. 电机仿真完成电机模型和控制策略的设计后,可以进行电机的仿真。

使用Simulink中的仿真工具,可以模拟电机的运行情况,并观察电机的转速、电流、转矩等参数的变化过程。

5. 仿真结果分析根据仿真结果,可以分析电机的性能指标,包括:•转速响应:电机在各种工况下的转速响应特性。

•转矩输出:电机在不同负载情况下的转矩输出。

•电流波形:电机的相电流波形及电流变化情况。

•功率因数:电机在运行过程中的功率因数变化。

6. 优化和改进根据仿真结果分析的情况,可以针对电机的性能进行优化和改进,例如:•调整控制策略的参数,提高转速响应和控制精度。

•优化电机的电气设计,提高效率和功率密度。

•添加降噪措施,减少电机的噪声和振动。

7. 结论根据电机仿真的结果和优化改进的情况,得出结论,总结永磁同步电机的特性和性能,并对未来的研究方向进行展望。

以上是关于MATLAB中关于永磁同步电机的仿真例子的一些列举和详细讲解,通过Simulink工具的电机模型建立、控制策略设计、仿真结果分析和优化改进等步骤,可以深入了解和研究永磁同步电机的性能和特性,并为电机控制系统的设计和优化提供有力支持。

matlab电机仿真

matlab电机仿真

学院:机电学院班级:机自09-2班姓名:谢伟学号:03090943报告关于电机互锁的仿真报告我们要先明确什么叫互锁互锁,说的是几个回路之间,利用某一回路的辅助触点,去控制对方的线圈回路,进行状态保持或功能限制。

一般对象是对其他回路的控制.例如:上图是一个很典型的互锁电路图,实现的功能是电机的正反转,当实现正传的时候,关闭断路器Qs,按下正向按钮SB3,SB3的常闭触点断开,是KM2不工作,SB3的常开触点闭合,是电磁铁KM1得电,线圈KM1吸合实现自锁,电机实现正向转动,同时线圈的常闭触点断开,保证KM2不工作,防止电路短路导致的电路故障,当实现反向转动时,按下反向按钮SB2,SB2的常闭触点断开,KM1不得电,电机无法正向转动,SB2的常开触点闭合,KM2得电,线圈KM2吸合实现自锁,电机实现反向转动,同时线圈KM2 的常闭触点断开,保证KM1不工作。

以上当电机正转时保证电机反转电路断开,反转保证正转电路断开的方法叫作互锁。

利用的是两个常闭辅助触点来实现其功能的。

在实际工作中,由于坏境是变化的,负载也随着环境的变化而变化,为了测试电动机在不同负载环境下的运转情况,我们必须测试一系列不同的或者双向的负载加在电机轴上的电机反应。

此外,一个理想的负载应该回归到发电机从电网上吸收的能量。

这样的负载应该有一个有四象限的DC2或者DC4的直流电产生,这测试的时候应该通过刚性轴这两个电动机进行机械耦合连接。

因此,这个仿真实验需要两个电动机模型,AC4电动机和DC2电动机。

其中,AC4电动机是一个直流三相感应异步电动机,DC2是一个直流单向整流电动机。

在这样的系统里,一个电动机负责速度参数的设定,一个电动机负责力矩参数的设定.同时每个电动机可以充当马达或者发电机。

DC2的额定参数一般是3马力,240伏特,1800转每分钟。

AC4电动机的额定参数是3马力,380伏特,60赫兹,4级。

上图为直流电动机的工作原理图上图为桥式整流电路图注意:对于两个电动机的信号控制可以使用用户界面的最下方的机械输入菜单,下图显示了再马达—发电机结构中如何去模拟刚性轴的互相连接。

MATLAB在电机教学中的应用

MATLAB在电机教学中的应用

te s f s a tns J Au i E g S c v14 , o 6 P . 9 h s mui e, . do n . o . o. 0 n . , P 4 7 io c o ” l ,

51 6,1 92 9 .
库. 具有 强大 的运算 处理 能力 和方 便 实用 的绘 图功 能 , 尤其 是其 中 的 Sm l k图形界 面环境 .使 各种 工 程 问 i ui n
题 的求解 和仿 真更具 有简 洁性 和直 观性 。将 MA L B TA 应 用于 电机 教学 中 .利用 其 电力 系统 仿 真工 具箱 提供
小 的步 率
参考 文献 :
[】. a ce “ i eadp c a df ao f u i s nl ” 1J Lr h , T m n i hs emo ict no do i a , o t c l i i a g s
i p ia o so g t i n l r c s n o Au i n o s c, n Ap l t n f ci Dii lS g a o e s g t do a d Ac u t s a P i i M . h sa d K. a d n u g E s Kl we,No we , vA, 9 8 Ka r n Brn e b r , d . u r r U /I 1 9 .
个新 的波形 . 波形 是 原本 的两倍 。 音 乐分 为背 景声 该 将
s or—t e Fo ie nayi, I h t i ur r a l ss” EEE Trn .Ac s. pe c ,Sina m as ou t,S e h g l
Pr c si ,v 1 9,n o e ng o .2 o.3, PP.3 74— 3 ,1 81 90 9 .

matlab电机仿真精华50例

matlab电机仿真精华50例

matlab电机仿真精华50例Matlab是一种功能强大的仿真软件,它被广泛应用于电机仿真领域。

在这篇文章中,我们将介绍Matlab电机仿真的50个精华例子,帮助读者更好地了解和应用电机仿真技术。

1. 直流电机的仿真:通过Matlab可以模拟直流电机的性能,包括转速、扭矩和电流等。

2. 交流电机的仿真:使用Matlab可以模拟交流电机的工作原理,包括转子和定子的相互作用。

3. 同步电机的仿真:通过Matlab可以模拟同步电机的运行特性,包括电压和频率的控制。

4. 步进电机的仿真:利用Matlab可以模拟步进电机的运行过程,包括步进角度和步进速度等。

5. 无刷直流电机的仿真:通过Matlab可以模拟无刷直流电机的工作原理,包括转子和定子的相互作用。

6. 电机控制系统的仿真:利用Matlab可以模拟电机控制系统的运行过程,包括速度和位置的闭环控制。

7. 电机噪声的仿真:通过Matlab可以模拟电机噪声的产生和传播过程,帮助优化电机的设计。

8. 电机故障诊断的仿真:利用Matlab可以模拟电机故障的发生和诊断过程,提供故障检测和排除的方法。

9. 电机热仿真:通过Matlab可以模拟电机的热传导和散热过程,帮助优化电机的散热设计。

10. 电机振动的仿真:利用Matlab可以模拟电机的振动特性,帮助优化电机的结构设计。

11. 电机效率的仿真:通过Matlab可以模拟电机的能量转换过程,评估电机的效率和能耗。

12. 电机启动过程的仿真:利用Matlab可以模拟电机的启动过程,包括起动电流和启动时间等。

13. 电机负载仿真:通过Matlab可以模拟电机在不同负载条件下的工作特性,帮助优化电机的设计。

14. 电机饱和仿真:利用Matlab可以模拟电机在饱和状态下的工作特性,提供更准确的仿真结果。

15. 电机电磁干扰的仿真:通过Matlab可以模拟电机产生的电磁干扰对其他设备的影响,提供干扰抑制的方法。

16. 电机电磁场的仿真:利用Matlab可以模拟电机内部的电磁场分布,帮助优化电机的设计。

matlab中关于永磁同步电机的仿真例子

matlab中关于永磁同步电机的仿真例子

matlab中关于永磁同步电机的仿真例子摘要:一、Matlab中永磁同步电机仿真概述二、永磁同步电机仿真模型建立1.参数设置2.控制器设计3.仿真结果分析三、SVPWM算法在永磁同步电机仿真中的应用四、案例演示:基于DSP28035的永磁同步电机伺服系统MATLAB仿真五、总结与展望正文:一、Matlab中永磁同步电机仿真概述Matlab是一款强大的数学软件,其在电机领域仿真中的应用广泛。

永磁同步电机(PMSM)作为一种高效、高性能的电机,其控制策略和性能分析在Matlab中得到了充分的体现。

利用Matlab进行永磁同步电机仿真,可以有效验证控制策略的正确性,优化电机参数,提高系统性能。

二、永磁同步电机仿真模型建立1.参数设置:在建立永磁同步电机仿真模型时,首先需要设定电机的各项参数,如电阻、电感、永磁体磁链等。

这些参数可以根据实际电机的设计值进行设置,以保证模型与实际电机的特性一致。

2.控制器设计:控制器的设计是电机仿真模型的核心部分。

常见的控制器设计包括矢量控制(也称为场导向控制,Field-Oriented Control, FOC)、直接转矩控制(Direct Torque Control, DTC)等。

在Matlab中,可以利用现有的工具箱(如PMSM T oolbox)方便地进行控制器的设计和仿真。

3.仿真结果分析:在完成控制器设计后,进行仿真实验。

通过观察电机的转速、电流、转矩等参数的变化,可以评估控制器的性能。

同时,可以利用Matlab的图像绘制功能,将仿真结果以图表的形式展示,便于进一步分析。

三、SVPWM算法在永磁同步电机仿真中的应用SVPWM(Space Vector Pulse Width Modulation)是一种用于控制永磁同步电机的有效方法。

通过在Matlab中实现SVPWM算法,可以方便地对比不同控制策略的性能。

在仿真过程中,可以观察到SVPWM算法能够有效提高电机的转矩波动抑制能力,减小电流谐波含量,从而提高电机的运行效率。

永磁同步电机矢量控制matlab仿真

永磁同步电机矢量控制matlab仿真

永磁同步电机矢量控制matlab仿真永磁同步电机(Permanent Magnet Synchronous Motor, PMSM)的矢量控制(也称为场向量控制或FOC)是一种先进的控制策略,用于优化电机的性能。

这种控制方法通过独立控制电机的磁通和转矩分量,实现了对电机的高性能控制。

在MATLAB中,你可以使用Simulink和SimPowerSystems库来模拟永磁同步电机的矢量控制。

以下是一个基本的步骤指南:1.建立电机模型:使用SimPowerSystems库中的Permanent Magnet SynchronousMachine模型。

你需要为电机提供适当的参数,如额定功率、额定电压、额定电流、极对数、转子惯量等。

2.建立控制器模型:矢量控制的核心是Park变换和反Park变换,用于将电机的定子电流从abc坐标系变换到dq旋转坐标系,以及从dq坐标系变换回abc坐标系。

你需要建立这些变换的模型,并设计一个适当的控制器(如PI控制器)来控制dq轴电流。

3.建立逆变器模型:使用SimPowerSystems库中的PWM Inverter模型。

这个模型将控制器的输出(dq轴电压参考值)转换为逆变器的开关信号。

4.连接模型:将电机、控制器和逆变器连接起来,形成一个闭环控制系统。

你还需要添加一个适当的负载模型来模拟电机的实际工作环境。

5.设置仿真参数并运行仿真:在Simulink的仿真设置中,你需要设置仿真时间、步长等参数。

然后,你可以运行仿真并观察结果。

6.分析结果:你可以使用Scope或其他分析工具来查看电机的转速、定子电流、电磁转矩等性能指标。

这些指标可以帮助你评估控制算法的有效性。

请注意,这只是一个基本的指南,具体的实现细节可能会因你的应用需求和电机参数而有所不同。

在进行仿真之前,建议你仔细阅读相关的文献和教程,以便更好地理解永磁同步电机的矢量控制原理。

MATLAB电机控制综合仿真实验

MATLAB电机控制综合仿真实验

MATLAB电机控制综合仿真实验一、他励直流电机单闭环调速仿真实验要求:利用Simpowersystem里面自带的DC电机模块,完成他励直流电机单闭环调速仿真,速度调节用PI控制方法,要求封装PI模块,给定速度100rad/s,负载由空载到1s时跳变到20N。

调节不同的PI参数,观察仿真结果总结速度波形、转矩波形的变化规律(PI参数和超调量、稳定时间、稳态误差、振荡次数)。

另外要求将scope图中的4条曲线参数导出到工作空间,并用subplot和plot 函数画在同一个窗口中,每个子图加上对应的标题。

电机相关参数的设置图:仿真原理图:在仿真试验中需要按照实验要求对PI控制器子系统进行封装,然后更改Kp、Ki参数值的大小。

封装PI模块图如下:Plot绘图程序:>>subplot(411)>> plot(t,W,'r'),title('转速')>> subplot(412)>> plot(t,Ia,'b'),title('电枢电流')>> subplot(413)>> plot(t,Te,'g'),title('转矩')>> subplot(414)>> plot(t,If,'y'),title('励磁电流')速度调节用PI控制方法,给定速度100rad/s,负载由空载到1s 时跳变到20N,调节不同的PI参数,从PI模块封装中调节,修改不同的参数Ki 、Kp观察仿真结果。

Ki=100, Kp=5;050100w (r a d /s )00.51 1.52 2.53 3.54 4.55-2000200I a (A )-202I f (A )-1000100T e (N .m )Ki=2, Kp=1;w (r a d /s)I a (A)00.51 1.52 2.53 3.54 4.55I f (A)00.51 1.52 2.53 3.54 4.55T e (N .m )二、 他励直流电机闭环调速系统仿真实验要求:利用Simulink 基本模块搭建他励直流电机闭环调速系统直流电机子模块,根据以下电机数学模型搭建:电磁转矩公式:e M a T C I =Φ 动力学平衡方程:e L m d T T B J dtωω--=电机模块要求封装,参数20.05kg m J =⋅,0.02N m s m B =⋅⋅,165m C =,0.01Wb f Φ=,恒定负载T L =20N 点击封装模块时输入。

基于MATLAB的直流电机调速系统

基于MATLAB的直流电机调速系统

绪论直流调速是指人为地或自动地改变直流电动机的转速,以满足工作机械的要求。

从机械特性上看,就是通过改变电动机的参数或外加工电压等方法来改变电动机的机械特性,从而改变电动机机械特性和工作特性机械特性的交点,使电动机的稳定运转速度发生变化。

直流调速系统,特别是双闭环直流调速系统是工业生产过程中应用最广的电气传动装置之一。

广泛地应用于轧钢机、冶金、印刷、金属切削机床等许多领域的自动控制系统中。

它通常采用三相全控桥式整流电路对电动机进行供电,从而控制电动机的转速,传统的控制系统采用模拟元件,如晶体管、各种线性运算电路等,虽在一定程度上满足了生产要求,但是因为元件容易老化和在使用中易受外界干扰影响,并且线路复杂、通用性差,控制效果受到器件性能、温度等因素的影响,从而致使系统的运行特性也随之变化,故系统运行的可靠性及准确性得不到保证,甚至出现事故。

双闭环直流调速系统是一个复杂的自动控制系统,在设计和调试的过程中有大量的参数需要计算和调整,运用传统的设计方法工作量大,系统调试困难,将SIMULINK 用于电机系统的仿真研究近几年逐渐成为人们研究的热点。

同时,MATLAB软件中还提供了新的控制系统模型输入与仿真工具SIMULINK,它具有构造模型简单、动态修改参数实现系统控制容易、界面友好、功能强大等优点,成为动态建模与仿真方面应用最广泛的软件包之一。

它可以利用鼠标器在模型窗口上“画”出所需的控制系统模型,然后利用SIMULINK提供的功能来对系统进行仿真或分析,从而使得一个复杂系统的输入变得相当容易且直观。

本文采用工程设计方法对转速、电流双闭环直流调速系统进行辅助设计,选择适当的调节器结构,进行参数计算和近似校验,并建立起制动、抗电网电压扰动和抗负载扰动的MATLAB/SIMULINK仿真模型,分析转速和仿真波形,并进行调试,使双闭环直流调速系统趋于完善、合理。

2MATLAB简介MATLAB是一门计算机编程语言,取名来源于Matrix Laboratory,本意是专门以矩阵的方式来处理计算机数据,它把数值计算和可视化环境集成到一起,非常直观,而且提供了大量的函数,使其越来越受到人们的喜爱,工具箱越来越多,应用范围也越来越广泛。

第8章 MATLAB在电机分析计算中的应用

第8章 MATLAB在电机分析计算中的应用

原 边加上额定频率的额定电压并保持不变,副边负载阻
抗ZL (4 j3) 。用 T 型等效电路计算:
1)原、副边电流及副边电压;
2)原副边功率因数、功率及效率;
3)励磁电流、铁损耗及铜损耗。
18
8.2.1 变压器问题
1.问题分析
这是一个典型的变压器负载运行的问题,只要按照负 载运行的基本步骤进行计算即可。 (1)首先计算额定电流和变比
四matlab的基本数学函数表813matlab在电机学计算中常用到的基本函数函数名abs数的绝对值或者向量的长度sqrt开平方angle复数的相角real复数的实部imag复数的虚部conj复数的共轭复数log计算自然对数exp自然指数sign符号函数clear清空workspace中的变量以释放内存空间clf清空图形窗口conv两个多项式相乘eig计算特征值和特征向量sin计算正弦值cos计算余弦值tan计算正切值impulse计算系统的单位脉冲响应grid给当前的图形加上格子线plot产生线性坐标的图形subplot将图形窗口分成若干个小窗口zeros产生一个元素全为0的矩阵15813simulinksimulink是一个用来对动态系统进行创建仿真与分析的软件包它支持连续离散及两者混合的线性与非线性系统也支持具有多种采样速率的多速率系统
22
8.2.1 变压器问题
23
8.2.1 变压器问题
3. MATLAB程序运行结果
在MATLAB指令窗口输入程序名EX8_1.m并按下回车 键,即可得到相关的计算结果。
24
8.2.2 异步电机问题
[例8-2-3] 一台绕线转子异步电动机,15马力,208V,
4极,Y联结,60Hz, 其等值电路元件的参数如下所示:

matlab中关于永磁同步电机的仿真例子

matlab中关于永磁同步电机的仿真例子

matlab中关于永磁同步电机的仿真例子摘要:一、永磁同步电机的基本概念和特点二、MATLAB 仿真在永磁同步电机中的应用三、永磁同步电机MATLAB 仿真模型的构建与参数设置四、永磁同步电机MATLAB 仿真结果与分析五、永磁同步电机MATLAB 仿真的意义与应用前景正文:一、永磁同步电机的基本概念和特点永磁同步电机(Permanent Magnet Synchronous Motor,简称PMSM)是一种采用永磁材料作为磁场源的同步电机。

与传统的同步电机相比,永磁同步电机具有以下特点:1.结构简单:永磁同步电机取消了传统的磁场电流,使得其结构更加简单,运行更加可靠。

2.效率高:永磁同步电机的磁场是由永磁材料产生的,因此不存在磁场电流引起的损耗,使得其效率较高。

3.调速性能好:永磁同步电机的转速与电源频率保持同步,可以通过改变电源频率实现调速。

二、MATLAB 仿真在永磁同步电机中的应用MATLAB 是一种广泛应用于科学计算和工程设计的软件,其强大的仿真功能为永磁同步电机的研究和应用提供了便利。

通过MATLAB 仿真,可以对永磁同步电机的运行特性、控制策略等进行深入研究,为实际应用提供理论依据。

三、永磁同步电机MATLAB 仿真模型的构建与参数设置在MATLAB 中,可以通过Simulink 工具构建永磁同步电机的仿真模型。

具体步骤如下:1.打开Simulink 软件,创建一个新的模型。

2.从Simulink 库中添加永磁同步电机的物理部件,包括电机本体、转速传感器、电流传感器等。

3.配置永磁同步电机的参数,包括电机的额定功率、额定转速、永磁材料性能等。

4.搭建永磁同步电机的控制电路,包括逆变器、调制器、控制器等。

5.编写永磁同步电机的控制策略,包括矢量控制、直接转矩控制等。

6.配置仿真参数,如仿真时间、仿真步长等。

7.运行仿真模型,观察永磁同步电机的运行状态和性能指标。

四、永磁同步电机MATLAB 仿真结果与分析通过MATLAB 仿真,可以得到永磁同步电机的转速、电流、电压等运行状态,以及电机的效率、功率因数等性能指标。

matlab 模拟电机故障 -回复

matlab 模拟电机故障 -回复

matlab 模拟电机故障-回复Matlab模拟电机故障:一步一步回答引言:在现代工业中,电机被广泛应用于各种设备中。

随着电机使用时间的增长,可能会出现各种故障,这会导致设备停机,造成生产中断和损失。

因此,及早检测和诊断电机故障是非常重要的。

在本文中,我们将介绍如何使用Matlab模拟电机故障以及如何诊断和修复这些故障。

第一步:电机故障模拟首先,我们需要创建一个电机模型。

我们可以使用基本的电气方程(电流方程和电压方程)来描述电机的行为。

然后,我们可以在Matlab中编写一个函数来模拟电机的动态响应。

以下是一个简单的电机模型的示例代码:matlabfunction dy = motor_model(t, y)参数定义R = 1; 电机内阻L = 0.5; 电机电感J = 0.1; 电机转动惯量B = 0.05; 电机摩擦系数Ke = 0.1; 电机电动势系数Kt = 0.1; 电机扭矩系数Va = 10; 电压输入定义状态变量i = y(1); 电机电流w = y(2); 电机转速计算电机电流和转速的导数di = (Va - Ke*w - R*i) / L;dw = (Kt*i - B*w) / J;返回导数dy = [di; dw];end接下来,我们可以使用ode45函数来求解上述电机模型的解。

ode45是一个常用的Matlab函数,用于求解常微分方程。

我们可以指定一个时间范围和初始条件,然后用ode45来计算电机的响应。

以下是一个使用ode45求解电机模型的示例代码:matlab设置模拟参数tspan = [0 10]; 时间范围y0 = [0 0]; 初始条件求解电机模型[t, y] = ode45(@motor_model, tspan, y0);绘制电机电流和转速随时间的变化图subplot(2,1,1);plot(t, y(:,1));xlabel('Time');ylabel('Current');title('Motor Current vs. Time');subplot(2,1,2);plot(t, y(:,2));xlabel('Time');ylabel('Speed');title('Motor Speed vs. Time');通过运行上述代码,我们可以获得电机电流和转速随时间的变化图。

基于MATLAB的三相异步电机恒压频比调速仿真

基于MATLAB的三相异步电机恒压频比调速仿真

摘要随着电力电子器件的产生,异步电机的调速问题得到了很好的解决,调速性能甚至优于直流电机,电力电子器件的产生给异步电机的调速问题带来了福音。

异步电机的调速有多种方法,转速开环恒压频比控制是交流电动机变频调速最基本的一种控制转速方式,在一般的变频调速装置里面都嵌入有这项功能,工作方式为恒压频比的调速方式能满足大多数场合交流电动机调速控制的要求,使用起来也相对方便,是通用变频器的基本模式。

但在低压时候需要一定的补偿电压,采用恒压频比控制,在基频以下的调速过程中的转差率会保持不变,电动机的所以会机械特性会相对较硬,电动机有较好的调速性能。

正选脉冲宽度调制三相逆变电路,是一种以三角波做载波的应用冲量等效原理而获得理想交流电源的电路装置,在调制比与载波比一定的条件下,通过调节外加直流电源的大小就可以获得在额定频率下产生额定电压的正选电压波,通过调节正弦波的频率就可以得到理想的电压频率波,而且调节输入正弦波的频率能得到线性的输出电压幅值。

MATLAB在电气领域中的运用随处可见,在这里可以运用MATLAB里的Simulink仿真出具体的模型,通过示波器来观察具体的波形,从而进行进一步的分析。

关键词:异步电动机,变频调速,MATLAB 仿真,正弦脉冲宽度调制bstractWith the generate of power electronic devices,Asynchronous motor speed control issues have been solved well,Velocity modulation performance even better than the DC motor,Can be said that the generation of the power electronic devices brought the gospel to the asynchronous motor of its speed control.There are several methods to control the asynchronous of its speed,The open-loop and constant V/F is the basic control way of the AC motor,Generally frequency control devices have this feature , The control way constant of V/F can fit the most occasions to AC motor speed control requirements, and easy to use, and is the model of general-purpose inverters. However, it need a certain amount of compensation voltage, The control way of the constant V/F can keep the slip of the AC motor constant, so the mechanical characteristics of the motor is hard, the motor has good velocity modulation performance.Sine pulse width modulated three-phase inverter circuit, use the triangular wave to be the carrier and the impulse equivalence principle to obtain the desired AC power circuit way, when the modulation ratio and carrier ratio are constant, by adjusting the applied DC power, the size rate frequency and rated voltage can be selected .We canobtain ideal voltage frequency wave just by adjusting the frequency of the sine wave, and we also can obtain linear output voltage amplitude by adjusting the frequency of the sine wave. The use of MATLAB in the electrical field can be found everywhere, we can use the Simulink model in MATLAB to simulate specific model, and oscilloscope can be used to observe the waveform for further analysis Keywords:Asynchronous motor,frequency conversion velocity modulation, MATLAB simulation,sine pulse width modulation目录摘要 (I)ABSTRACT (I)1 绪言1.1课题背景 (1)1.2课题研究的目的和意义 (1)2系统设计方案的研究2.1系统的控制特性与系统要求 (3)2.2系统的实现原理 (4)2.2.1三相逆变器输出电压和波形的SPWM控制 (4)2.2.2异步电机的变压变频调速原理与其机械特性 (5)2.3系统实现方案分析 (10)3 MATLAB模块设置及仿真3.1 MATLAB介绍 (12)3.2 MATLAB模块选用以及参数设置 (13)3.3 仿真结果图形及其分析 (21)总结 (29)致谢 (30)参考文献 (31)1 绪言1.1 课题背景在过去的很长一段时间里,异步电机的调速问题一直很难解决,在需要用到电机的调速系统时候往往是用直流电动机代替,而又因为直流电机存在电刷,在电机的运行过程中容易产生火花对电机的寿命产生影响,在电力电子逆变电路产生之前,这个问题一直得不到很好的解决。

异步电机矢量控制Matlab仿真实验(矢量控制部分)

异步电机矢量控制Matlab仿真实验(矢量控制部分)

学号:课程设计题目异步电机矢量控制Matlab仿真实验(矢量控制部分)学院专业班级姓名指导教师2015年1月7日目录1 设计任务及要求 02 异步电动机按转子磁链定向的矢量控制系统基本原理 02.1异步电动机矢量控制的基本思想 02.2异步电动机矢量控制系统具体分析 (1)2 坐标变换 (2)2。

1 坐标变换基本思路 (2)2。

2 三相-—两相坐标系变换 (3)2。

3 静止两相-—旋转正交变换 (4)3 转子磁链计算 (5)4 矢量控制系统设计 (6)4。

1 矢量控制系统的电流闭环控制方式思想 (6)4。

2 异步电动机矢量控制MATLAB系统仿真系统设计 (7)4。

3 PI调节器设计 (9)5 仿真结果 (10)5。

1 电机定子侧的电流仿真结果 (10)5.2 电机输出转矩仿真结果 (11)5.3 电机的转子速度及转子磁链仿真结果 (11)心得体会 (13)参考文献 (14)摘要异步电动机具有非线性、强耦合、多变量的性质,要获得高动态性能,必须从动态模型出发,分析异步电动机的转矩和磁链控制规律.异步电动机的物理模型是一个高阶、非线性、强耦合的多变量系统,需要用一组非线性方程组来描述,所以控制起来极为不便。

异步电机的物理模型之所以复杂,关键在于各个磁通间的耦合。

如果把异步电动机模型解耦成有磁链和转速分别控制的简单模型,就可以模拟直流电动机的控制模型来控制交流电动机。

矢量控制系统是一种优越的交流电机控制方式,它模拟直流电机的控制方式使得交流电机也能取得与直流电机相媲美的控制效果。

本文研究了按转子磁链定向矢量控制系统的电流闭环控制的设计方法.并用MATLAB进行仿真.关键词:异步电动机矢量控制电流闭环 MATLAB仿真异步电机矢量控制Matlab 仿真实验(矢量控制部分)1 设计任务及要求异步电动机额定数据:三相20050 2.21430r/min,14.6,0.877, 1.47s r V Hz kW N m R R •=Ω=Ω,,, 2015.0,2,8.160,,142.165m kg J n mH L L L mH L p m s r s •=====采用二相静止坐标系(α-β)下异步电机数学模型,利用MATLAB/SIMULINK 完成异步电机的矢量控制系统仿真实验。

MATLAB实现永磁同步电机控制

MATLAB实现永磁同步电机控制
▪ 以上的证书、模板和测试用例都可在IEC Certification Kit中找到。
12
电机建模(被控对象建模)
▪ MathWorks能提供三种不同精度的永磁同步电机被控对象模型:
– 线性模型 – 转矩和电流为线性方程 – 非线性饱和模型 – 转矩和电流的关系为非线性饱和型 – 饱和加空间谐波模型 – 转矩和电流的关系为饱和加空间谐波型
13
线性模型的建立
▪ Simulink中的Simscape Power Systems以及Powertrain Blockset都提供了线 性模型供设计参考。
▪ 线性模型所需参数:
▪ 如何获取参数:
14
非线性饱和模型的建立
▪ Simulink中的Simscape Electronics以及Powertrain Blockset都提供了非线性饱和模型供设计参考。 用户可通过两
▪ 如果为TCL2或者TCL3,则用户需要做工具资格认定,MathWorks提供了工具资格认定所需的测试用例,用 户只需要运行即可
– 用户须为以上被预认证过的产品提供一份TQP(Tool Qualification Package) 和CDT (Conformance Demonstration Template),用来说明该产品是如何被资格认定的。MathWorks提供了文档模板
11
ISO26262标准的合规 (二)
▪ 第八章中,ISO26262对开发过程中使用到的软件做了一些规定。MathWorks的Embedded Coder, Simulink Design Verifier, Simulink Check, Simulink Coverage, Simulink Test, PolySpace Bug Finder, PolySpace Code Prover 都被TUV严格做了以下审核和认证:

matlab电机仿真精华50例

matlab电机仿真精华50例

matlab电机仿真精华50例Matlab是一种功能强大的数学仿真软件,可用于电机仿真的建模和分析。

以下是50个精华的Matlab电机仿真例子,涵盖了各种不同类型的电机和相关问题。

1. 直流电机的速度控制仿真:使用PID控制算法实现直流电机的速度控制,并观察不同参数设置对性能的影响。

2. 三相感应电机启动仿真:模拟三相感应电机的启动过程,包括起动电流和转矩的变化。

3. 永磁同步电机的矢量控制仿真:使用矢量控制算法实现永磁同步电机的速度和转矩控制。

4. 步进电机的脉冲控制仿真:通过给步进电机输入脉冲信号来实现精确的位置控制。

5. 交流电机的谐波分析仿真:分析交流电机的谐波失真情况,并提供相应的滤波解决方案。

6. 混合动力电机系统仿真:模拟混合动力汽车中的电动机和传统发动机的协同工作,评估燃油效率和性能。

7. 电机热仿真:通过建立电机的热传导模型,分析电机工作过程中的温度分布和热损耗。

8. 电机故障诊断仿真:使用信号处理和模式识别技术,模拟电机故障的检测和诊断。

9. 电机噪声仿真:通过建立电机的声学模型,分析电机噪声产生的原因和控制方法。

10. 无感传感器控制的无刷直流电机仿真:通过仿真实现无感传感器控制的无刷直流电机的速度和位置控制。

11. 非线性电机控制仿真:研究非线性电机的控制问题,并提供相应的解决方案。

12. 电机的电磁干扰仿真:分析电机工作时对其他电子设备造成的电磁干扰,并提供抑制措施。

13. 电机振动分析仿真:通过建立电机的振动模型,分析振动的原因和控制方法。

14. 电机轴承寿命仿真:通过建立电机轴承的寿命模型,预测电机轴承的使用寿命。

15. 电机的能量回收仿真:研究电机能量回收技术,在制动或减速过程中将电机生成的能量回收到电网中。

16. 电机齿轮传动仿真:分析电机齿轮传动系统的动力学性能和传动特性。

17. 多电机系统仿真:模拟多电机系统的协同工作,包括电机之间的通信和同步控制。

18. 电机启动过电流仿真:分析电机启动过程中的过电流现象,并提供相应的限流解决方案。

matlab电机仿真精华50例

matlab电机仿真精华50例

MATLAB电机仿真精华50例引言在电机设计与开发过程中,仿真是非常重要的一环。

通过使用MATLAB软件,可以模拟各种电机系统,并通过仿真来验证设计和优化控制算法。

本文将介绍50个电机仿真的经典案例,涵盖了从传统直流电机到现代无刷直流电机的各种类型。

目录1.直流电机仿真案例1.直流电机速度控制仿真2.直流电机转矩控制仿真3.直流电机位置控制仿真2.交流电机仿真案例1.感应电机启动仿真2.永磁同步电机转矩控制仿真3.永磁同步电机鲁棒性仿真3.无刷直流电机仿真案例1.无刷直流电机速度控制仿真2.无刷直流电机位置控制仿真3.无刷直流电机参数识别仿真直流电机仿真案例直流电机速度控制仿真直流电机速度控制是电机控制领域的经典问题。

通过使用MATLAB中的控制工具箱,我们可以设计速度控制闭环,并进行仿真验证。

以下是一个简单的直流电机速度控制仿真案例:1.定义直流电机速度模型;2.设计PI速度控制器;3.运行仿真,观察速度响应曲线。

直流电机转矩控制仿真直流电机转矩控制是实现精确转矩输出的关键。

通过调节电机绕组的电流,可以控制电机的输出转矩。

以下是一个简单的直流电机转矩控制仿真案例:1.定义直流电机转矩模型;2.设计PID转矩控制器;3.运行仿真,观察转矩输出曲线。

直流电机位置控制仿真直流电机位置控制是实现精确位置控制的关键。

通过结合速度反馈和位置反馈,可以实现精确的位置控制。

以下是一个简单的直流电机位置控制仿真案例:1.定义直流电机位置模型;2.设计PID位置控制器;3.运行仿真,观察位置响应曲线。

交流电机仿真案例感应电机启动仿真感应电机启动是电机启动过程中的关键问题。

通过仿真可以验证各种启动方法的性能和可行性。

以下是一个简单的感应电机启动仿真案例:1.定义感应电机启动模型;2.设计电压频率启动方法;3.运行仿真,观察启动时间和电流曲线。

永磁同步电机转矩控制仿真永磁同步电机转矩控制是实现高效电机控制的关键。

通过调节电机绕组的电流和磁场,可以控制电机的输出转矩。

基于MATLAB的电机仿真分析

基于MATLAB的电机仿真分析

基于MATLAB的电机仿真分析1. 引言1.1 研究背景电机是现代工业中常见的电气设备,广泛应用于各种机械设备中,如风力发电机组、电动汽车等。

电机的性能直接影响到设备的工作效率和稳定性,因此对电机进行仿真分析具有重要意义。

随着计算机技术的不断发展,电机仿真在工程领域中得到了广泛应用。

利用MATLAB软件进行电机仿真可以更准确地分析电机的设计和工作性能,帮助工程师优化设计方案和提高电机的效率。

通过仿真分析,可以在电机实际制造之前评估其性能,从而节约时间和成本。

在电机仿真中,研究背景至关重要。

对于新型电机的设计和性能评估,需要充分了解电机的工作原理和特性,以便在仿真分析中准确模拟电机的性能。

对电机的研究背景做深入探讨,可以帮助工程师更好地理解电机的工作机制,为电机仿真提供准确的参数和条件。

【字数不足,需要继续补充】1.2 研究目的电机是现代工业中常见的电力转换设备,其性能直接影响到整个系统的运行效果。

对电机进行仿真分析具有重要的意义。

本文旨在利用MATLAB软件对电机进行仿真分析,探讨其在电机设计和优化中的应用。

通过对电机的仿真,可以更好地理解电机的运行原理和特性,为电机的设计和调试提供依据。

1. 分析MATLAB在电机仿真中的应用,探索其在电机设计过程中的优势和限制。

2. 揭示电机仿真的基本原理,帮助读者了解电机仿真的基本过程和方法。

3. 探讨电机仿真的步骤,包括建模、参数设置、仿真运行等方面的技术细节。

4. 分析电机仿真的结果,对仿真结果进行定量和定性分析,评估电机性能。

5. 探讨电机仿真的优势,比较仿真与实验的优缺点,为电机设计提供技术支持。

通过以上研究,本文旨在为电机仿真技术的应用提供理论基础和实践指导,推动电机设计和优化工作的进展。

【内容结束】2. 正文2.1 MATLAB在电机仿真中的应用MATLAB在电机仿真中的应用涉及了多个方面,包括电机建模、控制算法设计、性能分析等。

MATLAB提供了丰富的电机模型库,用户可以根据实际情况选择合适的电机模型进行仿真。

三相异步电机矢量控制matlab仿真 (2)

三相异步电机矢量控制matlab仿真 (2)

目录1 设计任务及要求 (3)2 异步电动机数学模型基本原理 (3)2.1异步电机的三相动态数学模型 (3)2.2异步电机的坐标变换 (8)2.2.1三相-两相变换 (8)2.2.2静止两相-旋转正交变换 (9)3 异步电动机按转子磁链定向的矢量控制系统 (10)3.1 按转子磁链定向矢量控制的基本思想 (10)3.2 以ω-is-ψr 为状态变量的状态方程 (10)3.2.1 dq坐标系中的状态方程 (10)3.2.2 αβ坐标系中的状态方程 (12)3.3 以w-is-Φr为状态变量的αβ坐标系上的异步电动机动态结构图 (13)3.4 转速闭环后的矢量控制原理框图 (14)3.5 转速闭环后的矢量控制系统结构图 (15)4 异步电动机矢量控制系统仿真 (16)4.1 仿真模型的参数计算 (16)4.2 矢量控制系统的仿真模型 (17)4.3仿真结果分析 (20)4.3.1 mt坐标系中的电流曲线 (20)5. 总结与体会 (22)参考文献 (22)1 设计任务及要求仿真电动机参数:R s=1.85Ω,R r=2.658Ω,L s=0.2941H,L r=0.2898H,L m=0.2838H,J=0.1284Nm·s2,n p=2,U N=380V,f N=50Hz。

采用二相旋转坐标系(d-q)下异步电机数学模型,利用MATLAB/SIMULINK完成异步电机的矢量控制系统仿真实验。

2 异步电动机数学模型基本原理交流电动机是个高阶、非线性、强耦合的多变量系统。

在研究异步电动机数学模型的多变量非线性数学模型时,作如下假设:(1)忽略空间谐波,设三相绕组对称,在空间中互差120电角度,产生的磁动势沿气隙周围按正弦规律分布;(2)忽略磁路饱和,认为各绕组的自感和互感都是恒定的;(3)忽略铁心饱和;(4)不考虑频率变化和温度变化对绕组电阻的影响。

2.1异步电机的三相动态数学模型电动机绕组就等效成图2-1所示的三相异步电动机的物理模型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

unction [sys,x0,str,ts,simStateCompliance] = BLDC_S(t,x,u,flag) %-----------------------------------------------------------------------% 状态变量:X(1)=ia;X(2)=ib;X(3)=ic;X(4)=SETA;X(5)=OMEGA;% 输入量:u(1)=Ud; u(2)=TL;% 输出量:n, Tem, ia, ib, ic;%------------------------------------------------------------------------%-----------------电动机参数---------------------------------------------R = 0.23;L = 0.00498; M = -0.00005478; J = 0.025;P0=2; % 极对数RR = diag([R R R]); LL = diag([L-M,L-M,L-M]);S = [2,-1,-1;-1,2,-1;-1,-1,2]/3;%-----------------------------------------------------------------------%SFUNTMPL General M-file S-function template% With M-file S-functions, you can define you own ordinary differential% equations (ODEs), discrete system equations, and/or just about% any type of algorithm to be used within a Simulink block diagram.%% The general form of an M-File S-function syntax is:% [SYS,X0,STR,TS,SIMSTATECOMPLIANCE] = SFUNC(T,X,U,FLAG,P1,...,Pn) %% What is returned by SFUNC at a given point in time, T, depends on the% value of the FLAG, the current state vector, X, and the current% input vector, U.%% FLAG RESULT DESCRIPTION% ----- ------ --------------------------------------------% 0 [SIZES,X0,STR,TS] Initialization, return system sizes in SYS,% initial state in X0, state ordering strings% in STR, and sample times in TS.% 1 DX Return continuous state derivatives in SYS.% 2 DS Update discrete states SYS = X(n+1)% 3 Y Return outputs in SYS.% 4 TNEXT Return next time hit for variable step sample% time in SYS.% 5 Reserved for future (root finding).% 9 [] Termination, perform any cleanup SYS=[].%% The state vectors, X and X0 consists of continuous states followed% by discrete states.%% Optional parameters, P1,...,Pn can be provided to the S-function and% used during any FLAG operation.%% When SFUNC is called with FLAG = 0, the following information% should be returned:%% SYS(1) = Number of continuous states.% SYS(2) = Number of discrete states.% SYS(3) = Number of outputs.% SYS(4) = Number of inputs.% Any of the first four elements in SYS can be specified% as -1 indicating that they are dynamically sized. The% actual length for all other flags will be equal to the% length of the input, U.% SYS(5) = Reserved for root finding. Must be zero.% SYS(6) = Direct feedthrough flag (1=yes, 0=no). The s-function% has direct feedthrough if U is used during the FLAG=3% call. Setting this to 0 is akin to making a promise that% U will not be used during FLAG=3. If you break the promise% then unpredictable results will occur.% SYS(7) = Number of sample times. This is the number of rows in TS.%% X0 = Initial state conditions or [] if no states.%% STR = State ordering strings which is generally specified as [].%% TS = An m-by-2 matrix containing the sample time% (period, offset) information. Where m = number of sample% times. The ordering of the sample times must be:%% TS = [0 0, : Continuous sample time.% 0 1, : Continuous, but fixed in minor step% sample time.% PERIOD OFFSET, : Discrete sample time where% PERIOD > 0 & OFFSET < PERIOD.% -2 0]; : Variable step discrete sample time% where FLAG=4 is used to get time of% next hit.%% There can be more than one sample time providing% they are ordered such that they are monotonically% increasing. Only the needed sample times should be% specified in TS. When specifying more than one% sample time, you must check for sample hits explicitly by% seeing if% abs(round((T-OFFSET)/PERIOD) - (T-OFFSET)/PERIOD)% is within a specified tolerance, generally 1e-8. This% tolerance is dependent upon your model's sampling times% and simulation time.%% You can also specify that the sample time of the S-function% is inherited from the driving block. For functions which% change during minor steps, this is done by% specifying SYS(7) = 1 and TS = [-1 0]. For functions which% are held during minor steps, this is done by specifying% SYS(7) = 1 and TS = [-1 1].%% SIMSTATECOMPLIANCE = Specifices how to handle this block when saving and % restoring the complete simulation state of the% model. The allowed values are: 'DefaultSimState',% 'HasNoSimState' or 'DisallowSimState'. If this value% is not speficified, then the block's compliance with% simState feature is set to 'UknownSimState'.% Copyright 1990-2007 The MathWorks, Inc.% $Revision: 1.18.2.3 $%% The following outlines the general structure of an S-function.%switch flag,%%%%%%%%%%%%%%%%%%% Initialization %%%%%%%%%%%%%%%%%%%case 0,[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes; %%%%%%%%%%%%%%%% Derivatives %%%%%%%%%%%%%%%%case 1,sys=mdlDerivatives(t,x,u);%%%%%%%%%%% Update %%%%%%%%%%%case 2,sys=mdlUpdate(t,x,u);%%%%%%%%%%%% Outputs %%%%%%%%%%%%case 3,sys=mdlOutputs(t,x,u);%%%%%%%%%%%%%%%%%%%%%%%% GetTimeOfNextVarHit %%%%%%%%%%%%%%%%%%%%%%%%case 4,sys=mdlGetTimeOfNextVarHit(t,x,u);%%%%%%%%%%%%%% Terminate %%%%%%%%%%%%%%case 9,sys=mdlTerminate(t,x,u);%%%%%%%%%%%%%%%%%%%%% Unexpected flags %%%%%%%%%%%%%%%%%%%%%otherwiseDAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));end% end sfuntmpl%============================================================================= % mdlInitializeSizes% Return the sizes, initial conditions, and sample times for the S-function.%============================================================================= function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes%% call simsizes for a sizes structure, fill it in and convert it to a sizes array.% Note that in this example, the values are hard coded. This is not a% recommended practice as the characteristics of the block are typically% defined by the S-function parameters.%sizes = simsizes;sizes.NumContStates = 5;sizes.NumDiscStates = 0;sizes.NumOutputs = 5;sizes.NumInputs = 2;sizes.DirFeedthrough = 0;sizes.NumSampleTimes = 1; % at least one sample time is neededsys = simsizes(sizes);%% initialize the initial conditionsx0 = [0;0;0;0;0];%% str is always an empty matrixstr = [];%% initialize the array of sample timests = [0 0];% Specify the block simStateComliance. The allowed values are:% 'UnknownSimState', < The default setting; warn and assume DefaultSimState% 'DefaultSimState', < Same sim state as a built-in block% 'HasNoSimState', < No sim state% 'DisallowSimState' < Error out when saving or restoring the model sim statesimStateCompliance = 'UnknownSimState';% end mdlInitializeSizes%============================================================================= % mdlDerivatives% Return the derivatives for the continuous states.%============================================================================= function sys=mdlDerivatives(t,x,u)S = [2,-1,-1;-1,2,-1;-1,-1,2]/3;R = 0.23;L = 0.000498; M = -0.00005478; J = 0.025;P0=2;RR = diag([R R R]); LL = diag([L-M,L-M,L-M]);Ud = u(1);TL = u(2);SETA = mod(abs(x(4)), 2*pi);ea = 0.04*x(5)*(3.30*cos(SETA)+0.388*cos(3*SETA-pi));eb = 0.04*x(5)*(3.30*cos(SETA-2*pi/3)+0.388*cos(3*(SETA-2*pi/3)-pi));ec = 0.04*x(5)*(3.30*cos(SETA+2*pi/3)+0.388*cos(3*(SETA+2*pi/3)-pi));E=[ea eb ec]'; %感应电动势if((0<=SETA)&(SETA<(pi/3))) % 导通顺序AC, BC, BA, CA, CB,AB Uag = Ud/2;Ubg = 1.5*eb;Ucg = -Ud/2;elseif(((pi/3)<= SETA)&(SETA<(2*pi/3)))Uag = 1.5*ea;Ubg = Ud/2;Ucg = -Ud/2;elseif(((2*pi/3)<= SETA)&(SETA<(pi)))Uag = -Ud/2;Ubg = Ud/2;Ucg = 1.5*ec;elseif(((3*pi/3)<= SETA)&(SETA<(4*pi/3)))Uag = -Ud/2;Ubg = 1.5*eb;Ucg = Ud/2;elseif(((4*pi/3)<= SETA)&(SETA<(5*pi/3)))Uag = 1.5*ea;Ubg = -Ud/2;Ucg = Ud/2;elseif(((5*pi/3)<= SETA)&(SETA<(6*pi/3)))Uag = Ud/2;Ubg = -Ud/2;Ucg = 1.5*ec;endU = S*[Uag Ubg Ucg]';sys(1:3) = inv(LL)*(U-RR*x(1:3)-E);ea5 = 0.04*(3.30*cos(SETA)+0.388*cos(3*SETA-pi));eb5 = 0.04*(3.30*cos(SETA-2*pi/3)+0.388*cos(3*(SETA-2*pi/3)-pi));ec5 = 0.04*(3.30*cos(SETA+2*pi/3)+0.388*cos(3*(SETA+2*pi/3)-pi));Tem = 2*(ea5*x(1)+eb5*x(2)+ec5*x(3));sys(4) = x(5);sys(5) = P0*(Tem-TL)/J;%sys = [];% end mdlDerivatives%======================================================================= % mdlUpdate% Handle discrete state updates, sample time hits, and major time step% requirements.%======================================================================== function sys=mdlUpdate(t,x,u)sys = [];% end mdlUpdate%======================================================================== % mdlOutputs% Return the block outputs.%======================================================================== function sys=mdlOutputs(t,x,u)sys(1) = x(5)*60/(2*pi*2);SETA=x(4);ea5 = 0.04*(3.30*cos(SETA)+0.388*cos(3*SETA-pi));eb5 = 0.04*(3.30*cos(SETA-2*pi/3)+0.388*cos(3*(SETA-2*pi/3)-pi));ec5 = 0.04*(3.30*cos(SETA+2*pi/3)+0.388*cos(3*(SETA+2*pi/3)-pi));Tem = 2*(ea5*x(1)+eb5*x(2)+ec5*x(3));sys(2) = Tem;sys(3:5) = x(1:3);%sys = [];% end mdlOutputs%======================================================================== % mdlGetTimeOfNextVarHit% Return the time of the next hit for this block. Note that the result is% absolute time. Note that this function is only used when you specify a% variable discrete-time sample time [-2 0] in the sample time array in% mdlInitializeSizes.%======================================================================= function sys=mdlGetTimeOfNextVarHit(t,x,u)sampleTime = 1; % Example, set the next hit to be one second later.sys = t + sampleTime;% end mdlGetTimeOfNextVarHit%========================================================================% mdlTerminate% Perform any end of simulation tasks.%====================================================================== function sys=mdlTerminate(t,x,u)sys = [];% end mdlTerminate%--------------------------------------------------------------------------% 子程序BLDCfun.m% 状态变量导数计算function DX = BLDCfun(t,X)global Ud TL RR LL J P0 P S;SETA = mod(abs(X(4)), 2*pi);ea = 0.04*X(5)*(3.30*cos(SETA)+0.388*cos(3*SETA-pi));eb = 0.04*X(5)*(3.30*cos(SETA-P(2))+0.388*cos(3*(SETA-P(2))-pi));ec = 0.04*X(5)*(3.30*cos(SETA+P(2))+0.388*cos(3*(SETA+P(2))-pi));E=[ea eb ec]'; %感应电动势%------------------------------------------------------------------------if((0<=SETA)&(SETA<(pi/3))) %导通顺序AC, BC, BA, CA, CB,ABUag = Ud/2;Ubg = 1.5*eb;Ucg = -Ud/2;elseif(((pi/3)<= SETA)&(SETA<(2*pi/3)))Uag = 1.5*ea;Ubg = Ud/2;Ucg = -Ud/2;elseif(((2*pi/3)<= SETA)&(SETA<(pi)))Uag = -Ud/2;Ubg = Ud/2;Ucg = 1.5*ec;elseif(((3*pi/3)<= SETA)&(SETA<(4*pi/3)))Uag = -Ud/2;Ubg = 1.5*eb;Ucg = Ud/2;elseif(((4*pi/3)<= SETA)&(SETA<(5*pi/3)))Uag = 1.5*ea;Ubg = -Ud/2;Ucg = Ud/2;elseif(((5*pi/3)<= SETA)&(SETA<(6*pi/3)))Uag = Ud/2;Ubg = -Ud/2;Ucg = 1.5*ec;end%-------------------------------------------------------------------------U = S*[Uag Ubg Ucg]';I = [X(1) X(2) X(3)]';DX = inv(LL)*(U-RR*I-E);ea5 = 0.04*(3.30*cos(SETA)+0.388*cos(3*SETA-pi));eb5 = 0.04*(3.30*cos(SETA-P(2))+0.388*cos(3*(SETA-P(2))-pi)); ec5 = 0.04*(3.30*cos(SETA+P(2))+0.388*cos(3*(SETA+P(2))-pi)); Tem = P0*(ea5*X(1)+eb5*X(2)+ec5*X(3));DX(4) = X(5);DX(5) = P0*(Tem-TL)/J;n=60*X(5)/(2*pi*P0);fprintf('t=%7.4f',t);fprintf(' n=%7.2F\n',n);SPWM.m%参数输入Ud=390;F1=50;h=0.00001;Tend=1.2/F1;Kf=21;Ka=4/3;F2=Kf*F1;T1=1/F1;T2=1/F2;P(1)=0;P(2)=2*pi/3;P(3)=4*pi/3;% Ö÷³ÌÐòt=0;i=1;while t<=Tendtt2 = mod(t,T2);if tt2<= T2/2A2=Ka*(4*tt2/T2-1);elseA2=Ka*(-4*tt2/T2-1);endfor k=1:3A1=sin(2*pi*t/T1-P(k));if A1>A2S(k)=1;elseS(k)=-1;endend% 逆变器输出线电压Uab=(S(1)-S(2))*Ud/2;Ubc=(S(2)-S(3))*Ud/2;Uca=(S(3)-S(1))*Ud/2;%逆变器输出至直流电源中性点电压Uag=S(1)*Ud/2;Ubg=S(2)*Ud/2;Ucg=S(3)*Ud/2;%负载相电压Ua0=(2*Uag-Ubg-Ucg)/3;Ub0=(-Uag+2*Ubg-Ucg)/3;Uc0=(-Uag-Ubg+2*Ucg)/3;%---------------------------------------------------------------------tx(i)=t;Uaby(i)=Uab;Ubcy(i)=Ubc;Ucay(i)=Uca;Uagy(i)=Uag;Ubgy(i)=Ubg;Ucgy(i)=Ucg;Ua0y(i)=Ua0;Ub0y(i)=Ub0;Uc0y(i)=Uc0;A1y(i)=A1;A2y(i)=A2;t=t+h;i=i+1;endfigure(1); plot(tx, Uaby), title('AB线电压'),xlabel('t(s)');ylabel('Uab');grid;figure(2); plot(tx, Ubcy), title('BC线电压'),xlabel('t(s)');ylabel('Ubc');grid;figure(3); plot(tx, Ucay), title('CA线电压'),xlabel('t(s)');ylabel('Uca');grid;figure(4); plot(tx, Uagy), title('AG电压'),xlabel('t(s)');ylabel('Uag');grid;figure(5); plot(tx, Uagy), title('BG电压'),xlabel('t(s)');ylabel('Ubg');grid;figure(6); plot(tx, Ucgy), title('CG电压'),xlabel('t(s)');ylabel('Ucg');grid;figure(7); plot(tx, Ua0y), title('A相电压'),xlabel('t(s)');ylabel('Ua0');grid;figure(8); plot(tx, Ub0y), title('B相电压'),xlabel('t(s)');ylabel('Ub0');grid;figure(9); plot(tx, Ua0y), title('C相电压'),xlabel('t(s)');ylabel('Uc0');grid;仿真:仿真有称模拟,就是用模型来代替实际的系统,该模型与所有替代的实际系统之间存在某些相对应得量,并能在某些范围内重现实际系统的特征。

相关文档
最新文档