当分别给各相绕组通电时,各相绕组产生的旋转磁场如下:仅有A相导通时,旋转磁场指向A;仅有B相导通时,旋转磁场指向B;仅有C相导通时,旋转磁场指向 C;仅有D相导通时,旋转磁场指向D。依次为各相绕组通电,每切换一次,旋转磁场矢量转过90°,电机转过一个步距角1.8°。当旋转磁场矢量转过 360°时,电机转过一个齿距,这种工作方式称为整步工作。
如果改变上述加电过程,采用四相八拍工作,即通电顺序依次为:
此工作方式称半步工作,旋转磁场的矢量变化如图4.3所示。每改变一次通电状态,旋转磁场的矢量转过45°。
图4.3 四细分驱动磁场矢量图
同理,旋转磁场转过360°,电机转过一个齿距。
由半步原理给予启发,如果让旋转磁场矢量每次转过22.5°,这样就实现了四细分驱动。其旋转磁场矢量变化如图4.4所示。
图4.4 步进电机四细分驱动磁场矢量图
为了使电机输出转距大小一致,也就是使电机匀速转动,我们控制流入A,B,C,D各相电流的大小,具体按公式sin2α+cos2α=1来计算。图4.5给出了四细分驱动时各相电机输入电流值的变换曲线。
21
图4.5 四细分驱动转距均匀输出原理图
4.3.3 PWM细分调压调速原理
电流矢量恒幅均匀旋转细分驱动方法。同时改变两相电流的大小,使电流合成矢量恒幅均匀旋转。这种方式可称为步进电机的模拟运行,它是一种基于交流同步电机概念的特殊细分技术,实质是对运行于交流同步电机状态的步进电机所受的交流模拟信号在一个周期内细分,即每个细分点对应于一个交流值。当细分数相当大时,例如本系统中将一个四分之一周期分成4096个点,电机绕组的电流信号就逼近模拟连续信号。这种细分技术可以极大地提高步进电机的分辨率和运行稳定性。
电流合成矢量的旋转示意图如图4.6所示。
图4.6 电流合成矢量的旋转示意图
步进电动机的细分控制函数数学模型: ia=im*cosX ib=im*sinX
式中: ia-A相绕组电流 ib-B相绕组电流
22
x-控制参数 im-电流幅值
cosx-控制参数余弦值 sinx-控制参数正弦值
4.4 主程序设计
本次设计的软件部分采用模块化的设计思想,将各个功能都编成了相应的子程序。程序运行时,通过主程序的调用及相应模块之间的嵌套调用,实现系统的整体功能。
开始运行程序,系统时钟、GPIO、NVIC、A/D转换分别进行初始化,读取A/D转换值判断,如果转换值大于0,则步进电机正转,否则步进电机反转。如果转换值大于170,则步进电机最大速度正转。如果转换值小于-170,则步进电机最大速度反转。如果读取的A/D转换值与显示的值一样,则继续读取A/D值。如果读取值与显示值不一样,则重新计算显示。
23
开始系统时钟初始化GIPO、NVIC初始化A/D初始化读A/D的值正转最大值细分表>170判断数值判断数值是否>170或<-170<-170反转最大值细分表是数值>0电机正转否电机反转显示主程序流程图如图4.7所示。
24
4.5 各模块程序设计
本次课程设计软件程序包括A/D转换子程序、PWM细分子程序、电机控制子程序、LCD显示子程序构成。
4.5.1系统初始化
本设计所需的STM32的外设包括PA口、PB口、PC口和定时器端口,所以也要对外设的时钟进行设置。由于PA口、PB口、PC口在APB1系统总线外设上,定时器TIM2和TIM3在APB2系统总线外设上,所以要对APB1和APB2总线的时钟频率进行设置。经过APB1与APB2的分频,将SYSCLK转换成可以进行外设及TIM可以接收的系统时钟。在时钟初始化子程序中先对系统时钟的模式进行选择,即将系统时钟设置为HSE模式(外部时钟模式),然后设置AHB时钟等于系统时钟,且设置了低速或高速AHB,最后使能的时钟,时钟初始化子程序的流程图如下图。
开始 使能外部高速晶振HSE
HSE设置成功? 是 设置AHB时钟 否 设置PLL时钟源及倍频系数 检查指定的RCC 标志位设置与否 是 选PLL作为系统的时钟 否
图4.8 时钟初始化流程图
25