学习笔记-第四周-交流电机选优
交流电机优选
电机启动、变速、制动的方法不唯一,本文主要采用变频调速的方式。通过调试参数发现,电机的稳定速度与频率成正比,所以根据稳定速度选择对应的定子频率。例如,fs = 27Hz对应n=799r/min, fs=19.8Hz对应600r/min左右。求得比例系数k=fs/n=0.0330-0.0338。
通过调整频率大小实现速度的变化,调速时为了实现转速平滑变化、防止输出转矩过大,可以设置过渡频率(介于调速前后稳定频率之间)。
采取策略
- 控制电机带重物上升,从静止加速到800r/min—— fs=27Hz启动直至达到稳定速度的98%;
- 保持800r/min匀速运动0.5s—— fs=27Hz保持匀速运行;
- 减速到静止,保持静止状态0.5s—— 先将fs减少至15Hz,持续50ms后将频率降至0.2Hz(此时稳定频率小于5r/min,可视为静止);
- 带重物下降,从静止达到600r/min—— 首先需要改变电机旋转方向,我们可以通过多路开关改变各相电路相位关系:初始条件下,B相电压落后A相-2/3pi;C相电压落后A相-4/pi。现在调整为B相电压超前A相2 pi /3;C相电压超前A相4 pi /3。之后,在200ms的时间内将定子频率fs从0.2Hz线性增长至19.8Hz。再在300ms左右的时间内,将定子频率fs稳定在19.8Hz,使电机反向加速至600r/min。
- 保持600r/min匀速运动0.6s—— fs=19.8Hz电机稳定运行。
- 减速到静止—— fs=0Hz,电机转速快速衰减至0。
仿真结果:电机完成整个过程大致需要3200ms,过程中加速过程较为平滑,减速过程较为陡峭,输出转矩(电流)偏大。全过程转速变化最大超调量小于5%。
转速曲线
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | model SACIM "A Simple AC Induction Motor Model" type Voltage=Real(unit= "V" ); type Current=Real(unit= "A" ); type Resistance=Real(unit= "Ohm" ); type Inductance=Real(unit= "H" ); type Speed=Real(unit= "r/min" ); type Torque=Real(unit= "N.m" ); type Inertia=Real(unit= "kg.m^2" ); type Frequency=Real(unit= "Hz" ); type Flux=Real(unit= "Wb" ); type Angle=Real(unit= "rad" ); type AngularVelocity=Real(unit= "rad/s" ); constant Real Pi = 3.1415926; Current i_A "A Phase Current of Stator" ; Current i_B "B Phase Current of Stator" ; Current i_C "C Phase Current of Stator" ; Voltage u_A "A Phase Voltage of Stator" ; Voltage u_B "B Phase Voltage of Stator" ; Voltage u_C "C Phase Voltage of Stator" ; Current i_a "A Phase Current of Rotor" ; Current i_b "B Phase Current of Rotor" ; Current i_c "C Phase Current of Rotor" ; Frequency f_s "Frequency of Stator" ; Torque Tm "Torque of the Motor" ; Speed n "Speed of the Motor" ; Flux Psi_A "A Phase Flux-Linkage of Stator" ; Flux Psi_B "B Phase Flux-Linkage of Stator" ; Flux Psi_C "C Phase Flux-Linkage of Stator" ; Flux Psi_a "a Phase Flux-Linkage of Rotor" ; Flux Psi_b "b Phase Flux-Linkage of Rotor" ; Flux Psi_c "c Phase Flux-Linkage of Rotor" ; Angle phi "Electrical Angle of Rotor" ; Angle phi_m "Mechnical Angle of Rotor" ; AngularVelocity w "Angular Velocity of Rotor" ; Torque Tl "Load Torque" ; parameter Resistance Rs = 0.531+0.5 "Stator Resistance" ; parameter Resistance Rr = 0.408+0.5 "Rotor Resistance" ; parameter Inductance Ls = 0.00252 "Stator Leakage Inductance" ; parameter Inductance Lr = 0.00252 "Rotor Leakage Inductance" ; parameter Inductance Lm = 0.00847 "Mutual Inductance" ; parameter Frequency f_N = 50 "Rated Frequency of Stator" ; parameter Voltage u_N = 220 "Rated Phase Voltage of Stator" ; parameter Real p =2 "number of pole pairs" ; parameter Inertia Jm = 0.1 "Motor Inertia" ; parameter Inertia Jl = 1 "Load Inertia" ; parameter Frequency f1 = 27; parameter Frequency f2 = 15; parameter Frequency f3 = 0.2; parameter Frequency f4 = 19.8; parameter Frequency f5 = 19.8; parameter Real t1 = 100+500+671; //加速 800r/min恒速 parameter Real t2 = t1+50; //减速 parameter Real t3 = t2+600; //静止0.5s parameter Real t4 = t3+200; //反向加速 parameter Real t5 = t4+300+600; //600r/min恒速 // parameter Real t6 = t5+200; // Real time1(start=0); Real time2(start=0); Real time3(start=0); initial equation Psi_A = 0; Psi_B = 0; Psi_C = 0; Psi_a = 0; Psi_b = 0; Psi_c = 0; phi = 0; w = 0; equation u_A = Rs * i_A + 1000 * der(Psi_A); u_B = Rs * i_B + 1000 * der(Psi_B); u_C = Rs * i_C + 1000 * der(Psi_C); 0 = Rr * i_a + 1000 * der(Psi_a); 0 = Rr * i_b + 1000 * der(Psi_b); 0 = Rr * i_c + 1000 * der(Psi_c); Psi_A = (Lm+Ls)*i_A + (-0.5*Lm)*i_B + (-0.5*Lm)*i_C + (Lm*cos(phi))*i_a + (Lm*cos(phi+2*Pi/3))*i_b + (Lm*cos(phi-2*Pi/3))*i_c; Psi_B = (-0.5*Lm)*i_A + (Lm+Ls)*i_B + (-0.5*Lm)*i_C + (Lm*cos(phi-2*Pi/3))*i_a + (Lm*cos(phi))*i_b + (Lm*cos(phi+2*Pi/3))*i_c; Psi_C = (-0.5*Lm)*i_A + (-0.5*Lm)*i_B + (Lm+Ls)*i_C + (Lm*cos(phi+2*Pi/3))*i_a + (Lm*cos(phi-2*Pi/3))*i_b + (Lm*cos(phi))*i_c; Psi_a = (Lm*cos(phi))*i_A + (Lm*cos(phi-2*Pi/3))*i_B + (Lm*cos(phi+2*Pi/3))*i_C + (Lm+Lr)*i_a + (-0.5*Lm)*i_b + (-0.5*Lm)*i_c; Psi_b = (Lm*cos(phi+2*Pi/3))*i_A + (Lm*cos(phi))*i_B + (Lm*cos(phi-2*Pi/3))*i_C + (-0.5*Lm)*i_a + (Lm+Lr)*i_b + (-0.5*Lm)*i_c; Psi_c = (Lm*cos(phi-2*Pi/3))*i_A + (Lm*cos(phi+2*Pi/3))*i_B + (Lm*cos(phi))*i_C + (-0.5*Lm)*i_a + (-0.5*Lm)*i_b + (Lm+Lr)*i_c; Tm =-p*Lm*((i_A*i_a+i_B*i_b+i_C*i_c)*sin(phi)+(i_A*i_b+i_B*i_c+i_C*i_a)*sin(phi+2*Pi/3)+(i_A*i_c+i_B*i_a+i_C*i_b)*sin(phi-2*Pi/3)); w = 1000 * der(phi_m); phi_m = phi/p; n= w*60/(2*Pi); Tm-Tl = (Jm+Jl) * 1000 * der(w); if time <= 100 then u_A = 0; u_B = 0; u_C = 0; Tl = 0; elseif time <= t4 then u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000); u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000-2*Pi/3); u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000-4*Pi/3); Tl = 15; else u_A = u_N * 1.414 * sin(2*Pi*f_s*time/1000); u_B = u_N * 1.414 * sin(2*Pi*f_s*time/1000+2*Pi/3); u_C = u_N * 1.414 * sin(2*Pi*f_s*time/1000+4*Pi/3); Tl = 15; end if ; algorithm if time <= 100 then f_s := 0; elseif time <= t1 then f_s := f1; elseif time <= t2 then f_s := f2; //f_s := (time-t1)/(t2-t1)*(f2-f1)+f1; //f_s = exp(-(time-t1)/(t2-t1)*4)*(f1-f2)+f2; //f_s = (1-exp(-(time-t1)/(t2-t1)*5))*(f2-f1)+f1; elseif time <= t3 then f_s := f3; elseif time <= t4 then //f_s := f4; f_s := (time-t3)/(t4-t3)*(f4-f3)+f3; //f_s = exp(-(time-t3)/(t4-t3)*4)*(f3-f4)+f4; //f_s = (1-exp(-(time-t3)/(t4-t3)*5))*(f4-f3)+f3; elseif time <= t5 then f_s := f5; else f_s := 0; end if ; //u_N := 220*f_s/f1; if n > 800*0.98 and n < 800*0.99 then time1 := time; //time2 := time1 + 500; end if ; if n < 0.1 then time2 := time; end if ; if n > -600*0.98 and n < -600*0.99 then time3 := time; end if ; end SACIM; |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥