合愉电机

服务热线:17621923717
17621923717

他们都在找: J238-11151 JAKEL J238-075-7223 J239-112-11200/11331
当前位置主页 > 技术支持 >

基于单片机的PWM单相交流电机变频调速设计

返回列表 来源:未知 发布日期:2019-12-03 13:44【
引 言
PWM 变频调速是应用非常广泛的一种交流电机调速方 法,采用单片机进行频率控制。本文设计将 51 系列加强型 方法 STC12C5024AD 单片机作为主控制器,单片机电源采 用 5 V 供电,交流输入电源由 50 Hz,AC 220/15 V 电源提供, 经过 PWM 变频器后输出 15 V 可调频交流电源。

硬件设计
 电源设计
系统采用变压器变频后,为变频器提供 16 V 交流电源 输入,经 D1 半波整流及电容 C2,C4 滤波,通过电阻限流保护, 为 ST7805 提供电源,再经 7805 稳压电源后输出 +5 V 直流 电,为单片机提供电源。二极管 D2 整流后提供一个负电源。

单片机控制电路设计
单片机控制,主控制器采用 51 系列的 扩展芯片 STC12C5201。STC12C5201 是宏晶公司设计生产 的一款加强型 51 系列单片机,采用 24C02 作为频率储存, 停电后再次启动时,可按上次记忆的频率继续运行,24C02 与单片机之间采用 I 2 C 方式通信。K1 按键用于上调频率, K2 按键用于下调频率,每按下一次分别变化 0.1 Hz。PWM 信号经 P3.7 输出(P3.7 管脚的第二功能是 CCP0 输出)。 STC12C5201 管脚封装,采用 20 脚双列直插 封装。

软件设计
单极 PWM 输出波形如图 5 所示,改变脉冲宽度可得到 正弦波的不同点电压。改变 t1 的长度,在一个周期 T 内产生 脉冲个数不变的情况下,t1 发生变化,那么 T 也会相应地发 生变化,T 的变化即电源频率的变化。
通过定时器 1 的定时中断控制频率及占空比,程序如下 : static void TIMER1_interrupt_server(void) interrupt 3 { Timer1_disable(); TH1 = FreqHighArray[bFreq1Step] ; TL1 = FreqLowArray[bFreq1Step] ; PwmWidthPointer ++ ; if(PwmWidthPointer> 99) PwmWidthPointer = 0 ; if(Sys_state == SYS_STANDBY) { CCAP0L = 0xff ; CCAP0H = 0xff ; } else { CCAP0L = PWM_width_array[PwmWidthPointer] ; CCAP0H = PWM_width_array[PwmWidthPointer] ; } Timer1_enable(); } code Uint8 FreqHighArray[] = { 0xf8/*57.4000Hz*/,0xf8/*57.5325Hz*/,0xf8/*57.6650Hz*/, 0xf8/*57.7975Hz*/,0xf8/*57.9300Hz*/,0xf8/*58.0625Hz*/, 0xf8/*58.1950Hz*/,0xf8/*58.3275Hz*/,0xf8/*58.4600Hz*/, 0xf8/*58.5925Hz*/,0xf8/*58.7250Hz*/,0xf8/*58.8575Hz*/, 0xf8/*58.9900Hz*/,0xf8/*59.1225Hz*/,0xf8/*59.2550Hz*/, 0xf8/*59.3875Hz*/,0xf8/*59.5200Hz*/,0xf8/*59.6525Hz*/, 0xf8/*59.7850Hz*/,0xf8/*59.9175Hz*/,0xf8/*60.0500Hz*/, 0xf8/*60.1825Hz*/,0xf8/*60.3150Hz*/,0xf8/*60.4475Hz*/, 0xf8/*60.5800Hz*/,0xf8/*60.7125Hz*/,0xf8/*60.8450Hz*/, 0xf8/*60.9775Hz*/,0xf8/*61.1100Hz*/,0xf8/*61.2425Hz*/, 0xf8/*61.3750Hz*/,0xf8/*61.5075Hz*/,0xf8/*61.6400Hz*/, 0xf8/*61.7725*Hz/,0xf8/*61.9050Hz*/,0xf8/*62.0375Hz*/, 0xf8/*62.1700Hz*/,0xf8/*62.3025Hz*/,0xf8/*62.4350Hz*/, 0xf8/*62.5675Hz*/,0xf9/*62.7000Hz*/ } ; code Uint8 FreqLowArray[] = { 0x53/*57.4000Hz*/,0x57/*57.5325Hz*/,0x5b/*57.6650Hz*/, 0x60/*57.7975Hz*/,0x64/*57.9300Hz*/,0x68/*58.0625Hz*/, 0x6d/*58.1950Hz*/,0x72/*58.3275Hz*/,0x76/*58.4600Hz*/, 0x7a/*58.5925Hz*/,0x7e/*58.7250Hz*/,0x83/*58.8575Hz*/, 0x86/*58.9900Hz*/,0x8a/*59.1225Hz*/,0x8f/*59.2550Hz*/, 0x93/*59.3875Hz*/,0x99/*59.5200Hz*/,0x9f/*59.6525Hz*/, 0xa4/*59.7850Hz*/,0xa9/*59.9175Hz*/,0xac/*60.0500Hz*/, 0xb0/*60.1825Hz*/,0xb5/*60.3150Hz*/,0xba/*60.4475Hz*/, 0xbf/*60.5800Hz*/,0xc4/*60.7125Hz*/,0xc7/*60.8450Hz*/, 0xca/*60.9775Hz*/,0xcf/*61.1100Hz*/,0xd3/*61.2425Hz*/, 0xd8/*61.3750Hz*/,0xdd/*61.5075Hz*/,0xe2/*61.6400Hz*/, 0xe6/*61.7725Hz*/,0xea/*61.9050Hz*/,0xf0/*62.0375Hz*/, 0xf4/*62.1700Hz*/,0xf8/*62.3025Hz*/,0xfb/*62.4350Hz*/, 0xff/*62.5675Hz*/,0x04/*62.7000Hz*/
结 语
本文设计也适用于其他领域 PWM 变频调速的应用,虽 然只讨论了单相调速的设计,未涉及三相变频调速,但本文 给出的程序中包含不少 C 语言及单片机应用技巧,为研究 PWM 变频调速硬件与软件的实操提供了借鉴。