电机控制算法
电机分段pid
电机分段pid
在电机控制中,分段 PID 是一种常用的控制算法。
它将整个控制过程分为多个阶段,每个阶段采用不同的 PID 参数,以实现更好的控制效果。
分段 PID 的基本思想是根据电机的运行状态和负载情况,将控制过程划分为多个阶段,每个阶段采用不同的 PID 参数。
通常,电机的启动阶段、加速阶段、匀速阶段和减速阶段需要不同的 PID 参数。
在启动阶段,PID 参数应该较大,以快速响应负载变化;在加速阶段,PID 参数应该逐渐减小,以避免超调;在匀速阶段,PID 参数应该较小,以保持稳定的速度;在减速阶段,PID 参数应该逐渐增大,以快速响应负载变化。
在实际应用中,分段 PID 可以通过以下步骤实现:
1. 确定电机的运行状态和负载情况,将控制过程划分为多个阶段。
2. 根据每个阶段的特点,选择合适的 PID 参数。
3. 在每个阶段内,根据实际的控制效果,调整 PID 参数,以实现更好的控制效果。
4. 将每个阶段的 PID 参数存储在控制器中,以便在电机运行时调用。
分段 PID 可以有效地提高电机的控制精度和稳定性,尤其是在负载变化较大的情况下。
但是,它也需要更多的计算资源和存储空间,因此在实际应用中需要根据具体情况进行选择。
电机相电流的最大值限制控制算法
电机相电流的最大值限制控制算法
电机相电流的最大值限制控制算法是一种用于保护电机和控制电机运行的重要方法。
在电机运行过程中,相电流的过大可能会导致电机损坏或系统故障,因此需要采取措施来限制相电流的最大值。
为了实现电机相电流的最大值限制控制,可以采用以下算法。
首先,需要对电机的额定电流进行测量和记录。
额定电流是电机能够安全运行的最大电流值,超过该值可能会引起电机过载。
接下来,通过监测电机的相电流,实时计算相电流的均值和峰值。
均值可以用来判断电机的负载情况,而峰值则表示相电流的最大值。
然后,将实时计算得到的相电流峰值与额定电流进行比较。
如果相电流峰值超过了额定电流的设定值,就需要采取措施来限制相电流的最大值。
一种常用的方法是通过调节电机的控制信号来限制相电流。
可以通过改变电机的供电电压或调整电机的控制参数来实现。
例如,可以降低电机的供电电压或减小电机的输出扭矩,从而降低相电流的峰值。
还可以采用软件控制的方式来限制相电流的最大值。
通过在电机控制系统中添加相电流限制的算法,当相电流超过设定值时,系统会自动调整电机的控制信号,以限制相电流的最大值。
需要注意的是,电机相电流的最大值限制控制算法需要根据具体的电机和应用场景进行调整和优化。
不同类型的电机和不同的工作环境可能需要采用不同的控制策略和参数设置。
电机相电流的最大值限制控制算法是一种重要的保护电机和控制电机运行的方法。
通过实时监测和控制相电流的峰值,可以有效地防止电机过载和系统故障的发生,保证电机的安全运行和长寿命。
电动机控制算法优化研究
电动机控制算法优化研究随着现代化城市建设的不断推进,电动机在各个领域中得到了广泛应用,如家用电器、交通工具、机器人等等。
随着社会的发展,对电动机控制算法的要求也越来越高。
因此,电动机控制算法优化研究成为了一个热门话题。
一、电动机控制系统简介电动机控制系统包括电机、传感器、控制器和电源。
其中,电机是被控制的对象,传感器是用于监测电机运行状态的设备,控制器则是对电机进行控制的主要设备,电源则提供控制器和电机所需的电力。
目前在市场上,常见的电动机控制系统有难度控制、速度控制和位置控制三种。
摩擦力对电机控制系统有很大的影响,因此常用的控制算法有含积分项的PID算法、迭代最优控制算法、模型预测控制算法等。
二、电动机控制算法优化研究现状由于电动机控制系统的复杂性,其控制算法在应用时往往具有一定的复杂性和不稳定性。
针对这个问题,国内外很多研究机构和专家学者进行了深入研究,提出了一系列的优化控制算法。
2.1 基于神经网络的电动机控制算法神经网络是模拟生物神经系统构建的一种信息处理系统,可以通过训练学习,实现某些具体任务。
在电动机控制算法中,神经网络可以被用于模型预测控制、自适应控制等领域。
2.2 基于模型预测控制的电动机控制算法模型预测控制算法是一种在线优化算法。
在电动机控制中,可以通过对电机及其控制系统的数学建模,建立一个系统动态模型,根据模型对电动机进行控制。
它能够减少电机的振动、降低工作温度、提高效率,并且能在保证性能的前提下,减小电源消耗。
2.3 基于智能优化算法的电动机控制基于智能优化算法的电动机控制包括遗传算法、粒子群算法、蚁群算法等。
这些算法通过模拟自然界中的演化过程,对电动机的控制进行优化。
相对于传统控制方法,这些方法在控制性能和稳定性方面具有很强的优势。
三、电动机控制算法优化未来发展方向未来,电动机控制算法优化的研究将面临很多困境和挑战。
传统PID算法存在着很多问题,如抗扰性不足,对非线性情况的适应性不强等问题。
BLDC电机控制算法(瑞萨)
无刷电机属于自換流型(自我方向轉換),因此控制起来更加复杂。
BLDC电机控制要求了解电机进行整流转向的转子位置和机制。
对于闭环速度控制,有两个附加要求,即对于转子速度/或电机电流以及PWM信号进行测量,以控制电机速度功率。
BLDC电机可以根据应用要求采用边排列或中心排列PWM 信号。
大多数应用仅要求速度变化操作,将采用6个独立的边排列PWM信号。
这就提供了最高的分辨率。
如果应用要求服务器定位、能耗制动或动力倒转,推荐使用补充的中心排列PWM信号。
为了感应转子位置,BLD C电机采用霍尔效应传感器来提供绝对定位感应。
这就导致了更多线的使用和更高的成本。
无传感器BLDC控制省去了对于霍尔传感器的需要,而是采用电机的反电动势(电动势)来预测转子位置。
无传感器控制对于像风扇和泵这样的低成本变速应用至关重要。
在采有BLDC电机时,冰箱和空调压缩机也需要无传感器控制。
空载时间的插入和补充大多数BLDC电机不需要互补的PWM、空载时间插入或空载时间补偿。
可能会要求这些特性的BLDC应用仅为高性能BLDC伺服电动机、正弦波激励式BLDC电机、无刷AC、或PC同步电机。
控制算法许多不同的控制算法都被用以提供对于BLDC电机的控制。
典型地,将功率晶体管用作线性稳压器来控制电机电压。
当驱动高功率电机时,这种方法并不实用。
高功率电机必须采用PWM控制,并要求一个微控制器来提供起动和控制功能。
控制算法必须提供下列三项功能:∙用于控制电机速度的PWM电压∙用于对电机进整流换向的机制∙利用反电动势或霍尔传感器来预测转子位置的方法脉冲宽度调制仅用于将可变电压应用到电机绕组。
有效电压与PWM占空度成正比。
当得到适当的整流换向时,BLDC 的扭矩速度特性与一下直流电机相同。
可以用可变电压来控制电机的速度和可变转矩。
功率晶体管的换向实现了定子中的适当绕组,可根据转子位置生成最佳的转矩。
在一个BLDC电机中,MCU必须知道转子的位置并能够在恰当的时间进行整流换向。
无刷电机PWM控制有哪三种算法
无刷电机PWM控制有哪三种算法?
无刷电机属于自换流(方向变换),所以控制比较复杂。
无刷电机控制要求了解电机转子的位置和机制。
闭环速度控制有两个附加要求,即测量转子速度/或电机电流和PWM信号,以控制电机速度和功率。
根据应用要求边排或中心排PWM信号。
大部分应用程序只需要速度变化操作,PWM信号将在6个独立边缘排列。
这就提供了高的分辨率。
如果应用程序需要服务器定位、能耗刹车或功率倒转,建议使用补充中心来排列PWM信号。
许多不同的控制算法用于控制无刷电机。
典型地,将功率晶体管用作线性稳压器来控制电机电压。
这种方法在驱动高功率电机时并不实用。
高功率无刷电机必须由PWM控制,并要求微控制器提供启动和控制功能。
控制算法必须具备以下三个特点:
1、用来控制电机速度的PWM电压。
2、无刷电机进整流换向机制。
3、使用反电动势或霍尔传感器预测转子位置的方法。
脉宽调制只适用于对电机绕组施加可变电压。
有效电压与PWM占空度成正比。
在适当的整流换向下,无刷电机具有与直流电机相同的转矩速度特性。
可调电压可用于控制电机速度和可调转矩。
新型电机控制算法的设计与实现
新型电机控制算法的设计与实现现代电机技术的发展已经使得电机成为各种机械设备中不可或缺的重要组成部分,而电机的稳定工作则需要合理的控制算法和实现方法。
近年来,新型电机控制算法的不断提出和实践应用,使得电机控制技术得到了前所未有的推进和优化,同时也推动了整个电子控制领域的发展。
对于新型电机控制算法的设计和实现,我们需要从以下几个方面进行探讨和分析:一、电机控制算法的分类和特点电机控制算法根据工作原理和功能不同,可以分为传统的PID控制算法、矢量控制算法、直接扭矩控制算法、磁场定向控制算法等多种类型。
其中,矢量控制算法和直接扭矩控制算法是相对传统PID控制算法而言的新兴技术,能够更加精确地控制电机的速度和转矩。
矢量控制算法的特点是能够将电机的三相电流分解为直流分量和交流分量,从而实现对电机的转速和转矩的独立控制。
直接扭矩控制算法则可以直接控制电机的扭矩输出,使得电机的转速和转矩能够达到更为精确的控制。
二、新型电机控制算法的优点和应用相对于传统PID控制算法而言,新型电机控制算法具有以下优点:1. 精度更高。
新型电机控制算法能够实现更加精准的控制,大大提高了电机的稳定工作水平和效率。
2. 动态性更好。
新型电机控制算法能够更好地应对电机负载、速度、转矩等变化,提高了电机的适应性和稳定性。
3. 更加灵活。
新型电机控制算法能够通过程序控制,轻松实现复杂的电机控制功能,从而提高了电机工作的效率和灵活性。
在实际生产和科研中,新型电机控制算法被广泛应用于各种电机控制场景和应用领域,包括航空航天、医疗器械、电动汽车、机器人等领域。
例如,矢量控制算法在电动汽车的电机控制中得到了广泛应用,能够实现精确控制电动汽车的转速和转矩输出。
三、新型电机控制算法的设计和实现新型电机控制算法的设计和实现需要基于电机的工作原理和控制需求进行探索和研究,具体包括以下几个方面:1. 电机模型的建立。
电机模型是电机控制算法设计的基础,需要基于电机的物理模型和运动控制方程进行建立,同时考虑电机参数的变化和不确定性。
(整理)电机控制算法
电机控制算法相关项目:BLDC电机控制算法AC电机控制算法步进电机控制算法通用DC电机控制算法BLDC电机控制算法无刷电机属于自換流型(自我方向轉換),因此控制起来更加复杂。
BLDC电机控制要求了解电机进行整流转向的转子位置和机制。
对于闭环速度控制,有两个附加要求,即对于转子速度/或电机电流以及PWM信号进行测量,以控制电机速度功率。
BLDC电机可以根据应用要求采用边排列或中心排列PWM信号。
大多数应用仅要求速度变化操作,将采用6个独立的边排列PWM信号。
这就提供了最高的分辨率。
如果应用要求服务器定位、能耗制动或动力倒转,推荐使用补充的中心排列PWM信号。
为了感应转子位置,BLD C电机采用霍尔效应传感器来提供绝对定位感应。
这就导致了更多线的使用和更高的成本。
无传感器BLDC控制省去了对于霍尔传感器的需要,而是采用电机的反电动势(电动势)来预测转子位置。
无传感器控制对于像风扇和泵这样的低成本变速应用至关重要。
在采有BLDC电机时,冰箱和空调压缩机也需要无传感器控制。
空载时间的插入和补充大多数BLDC电机不需要互补的PWM、空载时间插入或空载时间补偿。
可能会要求这些特性的BLDC应用仅为高性能BLDC伺服电动机、正弦波激励式BLDC电机、无刷AC、或PC同步电机。
控制算法许多不同的控制算法都被用以提供对于BLDC电机的控制。
典型地,将功率晶体管用作线性稳压器来控制电机电压。
当驱动高功率电机时,这种方法并不实用。
高功率电机必须采用PWM控制,并要求一个微控制器来提供起动和控制功能。
控制算法必须提供下列三项功能:∙用于控制电机速度的PWM电压∙用于对电机进整流换向的机制∙利用反电动势或霍尔传感器来预测转子位置的方法脉冲宽度调制仅用于将可变电压应用到电机绕组。
有效电压与PWM占空度成正比。
当得到适当的整流换向时,BLDC的扭矩速度特性与一下直流电机相同。
可以用可变电压来控制电机的速度和可变转矩。
功率晶体管的换向实现了定子中的适当绕组,可根据转子位置生成最佳的转矩。
最新电机SpTA控制算法资料
电机SpTA控制算法SpTA即Steps per Time algorithm,它与步进电机S形曲线控制算不同,S形曲线控制算法思想是根据电机的步数来计算时间,即所谓的Time per Steps,该控制算法先计算电机每一步运行频率,再根据运动曲线计算得到时间参数,而SpTA算法则是以时间计算为中心,根据时间来计算运动步数相关参数,它的做法是将电机的运动时间分割成若干个合适的小时间片,在每个时间片内它都将速度参数加到位置参数上,如果位置参数溢出,它就会输出一个脉冲,速度参数根据加速度参数和时间而改变,随着时间推移,速度参数越来越大,位置参数溢出频率越来越高,则电机的运行频率也越来越高错误!未找到引用源。
为了实现根据速度参数控制脉冲输出频率,需要定义以下变量:PosAccumulator 位置累加器PosAdd 位置增加值ActualPosition 实际位置TargetPosition 目标位置,用户输入步进电机运动的步数在时间片到来后进行如下计算:PosAccumulator += ActualVelocity; //位置累加器+实际速度PosAdd = PosAccumulator >> 17; //移位,判断速度累加器是否溢出PosAccumulator -= PosAdd << 17; //位置累加器去掉溢出部分if(PosAdd!=0) //位置累加器溢出,产生一个不进脉冲{ActualPosition+=1;产生一个步进脉冲;}这样控制器输出的脉冲频率就随着实际速度的增大而增高,随着实际速度减小而降低。
为了根据时间实现实际速度的变化,需要定义以下变量:VelAccumulator 速度累加器ActualAcceleration 实际加速度,用户设定的加速度数值VelAdd 速度增加值ActualVelocity 实际速度TargetVelocity 目标速度在时间片到来后进行如下计算:if(ActualVelocity!=TargetVelocity){//如果实际速度!=目标速度VelAccumulator+=ActualAcceleration; //速度累加器+实际加速度VelAdd = VelAccumulator >> 17; //移位,判断速度累加器是否溢出VelAccumulator-=VelAdd << 17; //速度累加器去掉溢出部分if(ActualVelocity<TargetVelocity){//如果实际速度<目标速度ActualVelocity=MIN(ActualVelocity+VelAdd, TargetVelocity); //实际速度为两者中小者}else if(ActualVelocity>TargetVelocity){//如果实际速度>大于目标速度ActualVelocity=MAX(ActualVelocity-VelAdd, TargetVelocity);//实际速度为两者中大者}}else{//实际速度=目标速度,不需要执行加加速算法VelAccumulator=0;VelAdd=0;}这样,就实现了通过时间和目标速度改变电机实际速度参数,进而间接改变控制器输出脉冲的频率,时间参数是随着电机运行而递增的,目标速度参数数值是使用一个状态机根据当前的运行状态来确定的,该状态机具有四种状态:0: RAMP_IDLE-空闲状态1: RAMP_ACCELERATE-加速状态2: RAMP_DRIVING -匀速状态3: RAMP_DECELERATE-减速状态状态状态切换及其条件如图3-11所示:))图3-11 SpTA控制算法状态机状态切换图SpTA算法同样是通过定时器来实现的,与S形曲线算法不同的是它没有使用定时器的PWM功能,仅仅是通过定时器定时中断来产生一个时间片,在定时器中断服务子程序中完成上述算法,在需要时,通过控制GPIO产生一个步进脉冲。
永磁同步电机控制算法综述
永磁同步电机控制算法综述一、本文概述随着能源危机和环境污染问题的日益严重,高效、环保的电机及其控制技术成为了研究热点。
永磁同步电机(PMSM)作为一种具有高功率密度、高效率以及良好调速性能的电机,广泛应用于电动汽车、风力发电、工业自动化等领域。
为了实现永磁同步电机的精确控制,提高其运行性能,研究永磁同步电机的控制算法至关重要。
本文旨在综述永磁同步电机的控制算法,包括其基本原理、发展历程、主要控制策略以及优缺点。
通过对不同类型的控制算法进行梳理和评价,为永磁同步电机的控制策略选择提供理论依据和实践指导。
同时,本文还将探讨永磁同步电机控制算法的未来发展趋势,以期为相关领域的研究人员和技术人员提供参考和借鉴。
在本文中,我们将首先介绍永磁同步电机的基本结构和运行原理,为后续的控制算法分析奠定基础。
接着,我们将重点介绍几种主流的永磁同步电机控制算法,如矢量控制、直接转矩控制、滑模控制等,并详细分析它们的实现原理、优缺点及适用场景。
我们还将讨论一些新兴的控制算法,如基于的控制算法、无传感器控制算法等,以展示永磁同步电机控制算法的最新进展。
我们将对永磁同步电机控制算法的发展趋势进行展望,探讨未来可能的研究方向和技术创新点。
通过本文的综述,我们期望能够为永磁同步电机的控制算法研究提供全面、深入的视角,推动永磁同步电机控制技术的不断发展和优化。
二、PMSM的基本原理永磁同步电机(PMSM)是一种利用永磁体产生磁场的电机。
与传统的电励磁同步电机相比,PMSM不需要额外的励磁电流,因此具有更高的效率和功率密度。
PMSM的基本原理主要基于电磁感应和磁场相互作用。
PMSM的核心部件是永磁体和电枢绕组。
永磁体通常位于电机转子上,产生一个恒定的磁场。
电枢绕组则位于电机定子上,通过通入三相交流电产生旋转磁场。
当旋转磁场与永磁体磁场相互作用时,会产生一个转矩,使电机转子开始旋转。
PMSM的旋转速度可以通过控制电枢绕组中的电流频率和相位来调节。
电机驱动控制算法的研究与优化
电机驱动控制算法的研究与优化第一章:概述电机作为现代工业中的核心部件,扮演着十分重要的角色。
电机驱动控制算法的研究与优化是电机技术发展的重要方向之一。
优化电机驱动控制算法可以提高电机运行效率,降低能源消耗,延长电机寿命,提高生产效率等方面具有重要意义。
本文通过对电机驱动控制算法的研究与优化进行综述,旨在探讨电机驱动控制技术的未来发展方向,为电机驱动控制算法研究人员提供借鉴和参考。
第二章:电机驱动控制算法现状目前,电机的驱动控制算法包括直接转矩控制、磁场定向控制、模型预测控制等。
直接转矩控制法是一种常见的转矩控制算法,能够在不测量转速和角位置的情况下实现高精度控制,同时可以提高转矩响应速度。
但该方法需要使用高性能传感器和控制器,成本较高。
此外,直接转矩控制法在低速下易产生振荡现象。
磁场定向控制法是一种通过控制电机绕组电流的方向和大小来实现电机转矩和速度控制的方法,可以实现高精度的转矩和速度控制。
但该方法需要对电机及其控制器的参数进行准确的测量和估计,对控制器的性能要求较高。
模型预测控制法是一种利用电机的数学模型进行控制的方法,可以预测电机未来的状态并进行前向控制,具有高精度和灵活性的特点。
但该方法需要准确的电机数学模型,并且计算量比较大,对控制器的计算能力要求较高。
第三章:电机驱动控制算法优化方法针对目前存在的电机驱动控制算法的问题,可以通过以下方式进行优化。
3.1 传感器与控制器的优化传感器和控制器是电机驱动控制算法的核心部件,在传感器和控制器方面的优化可以提高电机驱动控制算法的精度和稳定性,同时降低成本。
3.2 基于深度学习的控制算法优化深度学习技术在图像和语音识别等领域取得广泛应用,可以通过对大量数据的学习,实现模型的优化和预测。
在电机驱动控制算法中,可以通过深度学习算法对电机的动态响应特性进行学习和模拟,通过动态调整控制器的参数以优化控制算法。
3.3 基于优化算法的控制器设计优化算法能够对控制器进行自适应学习和调整,实现控制器参数的优化和适应,提高电机驱动控制算法的精度和稳定性。
永磁同步电机控制算法
永磁同步电机控制算法
永磁同步电机,顾名思义,就是电机内部带有永久磁铁的同步电机。
相比于传统的异步电机,它具有体积小、效率高、维护少等优点。
但是面对永磁同步电机的控制,则需要更严谨的算法。
下面,我将分步骤阐述永磁同步电机的控制算法:
第一步,明确控制目标。
永磁同步电机的转速和转矩的控制是有
区别的,具体可分为转速控制和转矩控制两种。
在不同的应用场景下,控制的目标与方法也有所不同。
第二步,选择合适的控制方法。
在具体的控制过程中,可以根据
需要选择不同的控制方法。
例如,针对转速控制,可以使用PI控制、
模型预测控制等方法;针对转矩控制,则可以采用FOC(磁场方向控制)等方法。
第三步,设计控制回路。
根据具体的控制方法和控制目标,设计
相应的控制回路。
例如,在FOC方法中,需要设计磁场和电流的控制
回路;在PI控制中,则需要设计速度误差和转速度积分的控制回路。
第四步,实施控制策略。
在以上步骤的基础上,实施具体的控制
策略。
例如,针对转速控制,可以使用PID参数整定等方法;针对转
矩控制,则可以通过电流调节来实现高效响应。
总之,永磁同步电机的控制算法需要根据具体的应用场景和控制
目标来制定具体的方案。
在运用过程中,要注意算法的科学性、灵活
性和实用性等方面,不断优化控制策略,以提高电机的性能和使用寿命。
同步电机系统的运动控制算法分析
同步电机系统的运动控制算法分析同步电机是一种常见的交流电动机,其在机床、印刷、纺织等行业得到广泛应用。
同步电机具有高效、稳定、响应速度快等优点,使其在现代工业自动化中越来越受到重视。
而对同步电机的运动控制算法进行分析则是掌握同步电机控制技术的关键。
本文将对同步电机的系统结构和运动控制算法进行分析,并阐述目前流行的同步电机运动控制算法及其特点。
一、同步电机系统结构同步电机系统主要由电机、控制器和传感器三部分组成。
电机是同步电机系统的关键部件,控制器和传感器则负责对电机的控制和监测。
同步电机的转子和定子上都有导线和磁极,通过定子和转子间的磁场相互作用,使电机转动。
同步电机控制器负责将电源给电机,实现电机的驱动,并通过FOC(Field-Oriented Control)控制方法精确控制电机的运动。
传感器可以检测电机的位置、速度和加速度等参数,将这些参数传递给控制器,从而实现对电机的精确控制。
二、同步电机运动控制算法同步电机的控制算法主要包括FOC(Field-Oriented Control)、DTC(Direct Torque Control)和SVM(Space Vector Modulation)控制算法。
1、FOC控制算法FOC是目前应用最为广泛的同步电机控制算法之一,其主要原理是将交流电机控制问题转化为直流电机控制问题,通过转换坐标系实现将三相交流电机转变为两相直流电机。
FOC算法是一种闭环控制算法,可以精确控制电机的转速、位置和转矩等参数。
2、DTC控制算法DTC控制算法是一种无转子位置传感器控制算法。
相比FOC控制算法,DTC控制算法不需要检测电机的位置信息,大大减少了系统的成本。
DTC控制算法通过周期性改变电机电压和电流的矢量来实现电机的控制。
该算法具有结构简单、响应速度快的特点,被广泛应用于无刷直流电机和新型交流电机控制中。
3、SVM控制算法SVM控制算法是一种优化的PWM(Pulse Width Modulation)控制技术。
stm32 电机 阻抗控制 算法
stm32 电机阻抗控制算法STM32是一种常用的微控制器,广泛应用于各种电机控制系统中。
在电机控制中,阻抗控制算法是一种常见的控制方法。
本文将介绍STM32电机阻抗控制算法的原理和应用。
一、阻抗控制算法的原理阻抗控制是一种通过改变电机的输出阻抗来实现电机控制的方法。
在传统的电机控制中,通常使用速度环和位置环来控制电机。
而阻抗控制算法则更加注重电机与外界环境的交互。
阻抗控制算法的核心思想是将电机视为一个阻抗,通过改变电机的输出阻抗来实现对负载的控制。
阻抗可以理解为电机对外界输入的响应,包括力、位置、速度等。
通过调整电机的输出阻抗,可以控制电机对外界输入的响应方式,从而实现对负载的控制。
二、STM32电机阻抗控制算法的实现STM32作为一种强大的微控制器,提供了丰富的外设和功能,使得电机阻抗控制算法的实现变得简单高效。
下面将介绍一种基于STM32的电机阻抗控制算法的实现步骤。
1. 硬件连接:将STM32与电机连接,包括电源、编码器、驱动器等。
确保硬件连接正确无误。
2. 初始化:在STM32中,需要初始化各个外设和功能模块,包括GPIO、定时器、PWM等。
根据具体的电机和控制要求,进行相应的初始化设置。
3. 参数设置:根据实际需求,设置电机的阻抗参数。
阻抗参数包括阻抗值、阻抗类型(力、位置、速度等)等。
根据具体的应用场景和控制目标,设置合适的阻抗参数。
4. 控制策略:根据电机的阻抗参数和外界输入,制定相应的控制策略。
控制策略可以包括PID控制、模糊控制、神经网络控制等。
根据具体的应用场景和控制要求,选择合适的控制策略。
5. 控制实现:根据控制策略,编写STM32的控制程序。
在程序中,通过读取编码器的反馈信号,计算电机的输出阻抗,并将计算结果输出给驱动器,控制电机的运动。
同时,根据外界输入的变化,动态调整电机的输出阻抗,实现对负载的控制。
三、STM32电机阻抗控制算法的应用STM32电机阻抗控制算法可以应用于各种电机控制系统中,包括机器人、自动化设备、电动车等。
电机控制算法
电机控制算法电机控制算法的作用是接受指令速度值,通过运算向电机提供适当的驱动电压,尽快地和尽快平稳地使电机转速达到指令速度值,并维持这个速度值;换言之,一旦电机转速达到了指令速度值,即使在各种不利因素如斜坡、碰撞之类等使电机转速发生变化的因素的干扰下也应该保持速度值不变;为了提高机器人小车控制系统的控制精度,选用合适的控制算法显得十分必要;控制算法是任何闭环系统控制方案的核心,然而并非越复杂、精度越高的算法越好,因为比赛要求非常高的实时性,机器人必须在非常短的时间内作出灵敏的反应,所以现代的一些先进控制算法,比如模糊控制、神经元网络控制等就不能应用到小车控制系统里;本系统选用了最常规、最经典的PID控制算法,通过实际应用取得了很好的效果;1 比例项控制回路中的第一个偏差转换环节就是比例项;这一环节简单地将偏差信号乘以常数K 得到新的CV值值域为-100~100;基本的比例控制算法如下:loop:PV=ReadMotorSpeedError=SP-PVCV=ErrorKpropSetpwmcvGoto loop上一段程序中的SetPWM函数并非将CV值作为绝对的PWM占空比来对待;否则,不断降低的偏差值会使输出值接近零,而且由于电机工作时需要持续的PWM信号,控制系统将会使电机稳定在低速运转状态上,从而导致控制系统策略失败;相反,CV值一般被取作当前PWM占空比的改变量,并被附加到当前的PWM占空比上;这也要求SetPWM函数必须将相加后得到的PWM占空比限制在0%~100%;正的CV值将使电机两端电压增加;负的CV值将使电机两端电压降低;如果CV值等于0,则无需改变但前占空比;较低的K 值会使电机的速度响应缓慢,但是却很平稳;较高的K 值会使速度响应更快,但是却可能导致超调,即达到稳定输出前在期望值附近振荡;过高的K 值会导致系统的不稳定,即输出不断震荡且不会趋于期望值;2 微分项任何变量的微分项被用来描述该变量是如何相对于另一个变量多位时间变化的;换句话说,任何变量的微分项就是它随时间的变化率;如位移随时间的变化率是速度;速度相对于时间的微分是加速度;在PID控制器中,值得关心的是偏差信号相对于时间的微分,或称变化率;绝大多数控制器将微分项定义为:Rate=E-E /T式中,E为当前偏差,E 为前次偏差值,T为两次测量的时间间隔;负的变化率表明偏差信号的改善;当微分项被具体应用于控制器中时,将一个常数乘以该微分项,并将它加到比例项上,就可以得到最终的CV值计算公式:CV= K E+ K Rate当偏差信号接近零时,CV值将为负,所以当偏差信号开始改善时,微分项的作用将逐渐减弱校正输出量;在某些场合下,微分项还有利于超调量的消除,并可以允许使用较大的K 值,从而可以改善响应的快速性;微分环节还预示了偏差信号的变化趋势;当控制对象对控制器的输出响应迟缓时,微分环节的作用尤为明显;含有微分项的控制算法的伪代码实现如下:loop:PV=ReadMotorSpeedLastError=ErrorError=SP-PVRate=Error-LastErrorCV=ErrorKprop+KrateRateSetPWMCVGoto loop3 积分项积分正好与微分相对;假如有一个描述变化率微分的表达式,那么对该表达式的积分就将得到随时间变化的原物理量;如加速度的积分是速度,速度的积分是位移;在PID控制回路中,偏差的积分代表从控制开始时算起所有偏差积累的总和;该总和被常数K 所乘后再添加到回路输出中;在回路中,如果没有积分环节,尽管控制系统也会趋于稳定,但是由于某种原因输出值可能最终也无法达到SP值;一个简单但完全的PID控制器地伪代码实现如下:loop:PV=ReadMotorSpeedLastError=ErrorIsum=Isum+ErrorError=SP-PVRate=Error-LastErrorCV=ErrorKprop+KrateRate+KintIsumSetPWMCVGoto loop由于积分项会越来越大,这就会使控制回路在SP值的改变时响应变慢,某些应用场合在CV 值达到取值边界如为:-100~100时会停止累加Isum;在SP值改变时,也可以除去Isum项;通过测试,发现计数器0初值范围在 1~6230 以内,可控硅能正常工作,且能够实现调节电机从不能起动到全速运行的全过程;程序中定时器0工作在方式 1,用 To表示定时器0计数初值的十进制值,定时器 0置入的初值计算方法为:TH 0=65536-To / 256TL 0=65536-To % 256这样,通过外部函数改变To的值就可以调节电机的转速了;1.P1控制算法系统中控制器采用P1控制算法,其离散增量算式为:△uk=Kp△ek+Kiek,式中,△uk、△ek、ek分别为第k步控制信号增量、偏差信号增量和偏差信号;kp、Ki分别为比例增益和积分增益;为克服积分饱和,本文采用积分分离P1控制算法,当误差信号小于给定误差时计算积分控制量;由于被控电机通过To起作用,同时,To的变化范围设定为1~6230,而速度的变化范围为O~60,因此比例系数为:Kp=6230/60=103.8,本文取Kp=100,积分增益K1的值通常取得很小;2.同速过程分析将目标电机和被控电机的测速中断计数分别用N1、N2表示,则目标电机和被控电机的转速分别为:Vm=6000/N1,Vs=6000/N2,式中,Vm,Vs分别为目标电机和被控电机的转速;如果Vm>Vs,且To-100Vm-Vs>1,那么To-=100Vm-Vs;如果Vm<Vs,且To+100Vs-Vm<6230,那么To+=100Vs-Vm;同时须注意到山值的调节依赖于两个电机都能正常转动的情况,即N1和N2都不为零;目标电机是无需担心,因为它完全受人为控制,一般是不会将其速度调节至零;对于被控电机而言,其初始速度很可能为零,或者为其它某一接近零的值,这就意味着可能需要很长一段时间,才能检测到它旋转一圈,针对此情况,可在软件中设置强行转动,即当To的值在6230附近时,强行将To值变小,从而提前开始同速的时间;双电机同速时特点为:To值对应于目标电机速度,因此开始的时候应尽量使To的值向最终值贴近,这里可使用一个巧妙算法,目标电机速度对额定速度百分比PERC=Vm/60=100/N1,则被控电机To值大致为To=62301-PERC由于控制被控电机的含有谐波分量信号,因此所计算的To值与最终To值会有一些偏差一般偏小,但是通过这样计算之后,电机速度同步过程时间会缩短很多;3.同相措施本设计要求两个电机不但同速,而且同相,同速是同相的基础,实现同速之后方能实现同相;当两个电机达到同速后,所产生是恒定的,对N1计数完毕到N2开始计数这段时间进行计时,假设计数值为N3,要使两个电机同相,可以简单理解为使N3值变为零;若不考虑相差一个360度角,增大或减小被控电机速度都可以达到同相效果,我们选择速度在30转/分以上用减小速度来达到同相,反之则选择增加速度来达到同相;具体措施是:1速度大于30转/分的区间,将被控电机速度设为零,即To=6230,等待时间计数N1-N3后,再将速度值恢复为同速时的值,两个电机即实现同相;2速度小于30转/分的区间,将被控电机速度设为最大值,即To=1,等待时间Vm×N3/60-Vm后,再将速度值恢复为同速时的值,两个电机即达到同相;但是以上方法限于理想状况,事实上,由于惯性作用,电机速度不可能会有瞬间变化,也就并不能这么简单的达到同相,对于同相控制,积分起到关键作用;利用比例积分思想的同相算法如下:3速度大于30转/分,减小被控电机的速度,并且To变化值与N1-N3/N1成比例,同时与6230-To成比例,因此To+=6230-To×N1-N3/N1;3速度小于30转/分,增大被控电机速度,To的变化值与N3/N1成比例,同时与To成比例,所以To-=To×N3/N1;以上算法每执行一次,需将To恢复为同速时的数值,即恢复电机同速转动,如此调节电机的速度与相位,直到N3变为零;小结对电机随动系统实现了一种基于单片机的控制,它克服了传统模拟控制电路易受电网参数波动以及原件参数分散性的影响,实验表明,这种控制方法在低速随动控制系统中能够保证满意性能;。
BLDC电机控制算法(瑞萨)
无刷电机属于自換流型(自我方向轉換),因此控制起来更加复杂。
BLDC电机控制要求了解电机进行整流转向的转子位置和机制。
对于闭环速度控制,有两个附加要求,即对于转子速度/或电机电流以及PWM信号进行测量,以控制电机速度功率。
BLDC电机可以根据应用要求采用边排列或中心排列PWM信号。
大多数应用仅要求速度变化操作,将采用6个独立的边排列PWM信号。
这就提供了最高的分辨率。
如果应用要求服务器定位、能耗制动或动力倒转,推荐使用补充的中心排列PWM信号。
为了感应转子位置,BLD C电机采用霍尔效应传感器来提供绝对定位感应。
这就导致了更多线的使用和更高的成本。
无传感器BLDC控制省去了对于霍尔传感器的需要,而是采用电机的反电动势(电动势)来预测转子位置。
无传感器控制对于像风扇和泵这样的低成本变速应用至关重要。
在采有BLDC电机时,冰箱和空调压缩机也需要无传感器控制。
空载时间的插入和补充大多数BLDC电机不需要互补的PWM、空载时间插入或空载时间补偿。
可能会要求这些特性的BLDC应用仅为高性能BLDC伺服电动机、正弦波激励式BLDC电机、无刷AC、或PC同步电机。
控制算法许多不同的控制算法都被用以提供对于BLDC电机的控制。
典型地,将功率晶体管用作线性稳压器来控制电机电压。
当驱动高功率电机时,这种方法并不实用。
高功率电机必须采用PWM控制,并要求一个微控制器来提供起动和控制功能。
控制算法必须提供下列三项功能:•用于控制电机速度的PWM电压•用于对电机进整流换向的机制•利用反电动势或霍尔传感器来预测转子位置的方法脉冲宽度调制仅用于将可变电压应用到电机绕组。
有效电压与PWM占空度成正比。
当得到适当的整流换向时,BLDC的扭矩速度特性与一下直流电机相同。
可以用可变电压来控制电机的速度和可变转矩。
功率晶体管的换向实现了定子中的适当绕组,可根据转子位置生成最佳的转矩。
在一个BLDC 电机中,MCU必须知道转子的位置并能够在恰当的时间进行整流换向。
电机伺服控制和PID算法简介
电机伺服控制和PID 算法简介1 电机伺服控制技术简介所谓伺服控制,通常也就是指闭环控制,即通过反馈环节,测量被控制对象的变化,用以修正电机输出的控制技术。
对于要求不高的应用,通常采用简单的开环控制。
例如,给直流有刷电机的两根引线通电,电机就会旋转;施加的电压越高,电机转速越高,力量越大。
但是在很多需要精密控制的场合,仅仅这种方式还是不够的,还需要依靠一定的反馈装置,将电机的转速或位置信息反馈给微控制器或其他的机械装置,通过一定的算法变成可以调节电机控制信号的输出,从而使电机的实际转速、位置等参数与我们所希望的一致。
机器人控制是一个精度要求比较高的领域,例如,基于以下的一些考虑,机器人平台需要使用闭环控制。
a) 开环控制情况下,移动机器人在爬坡时,电机速度会下降。
更糟糕的是,当双轴独立驱动的移动机器人以一定的角度接近斜坡时。
每一个车轮转速的下降值将会不同,结果是机器人的实际运动轨迹是沿着一条曲线而不是直线行进。
路线。
速差。
一一定的计算方法(如PID 算法)调整相应的电压供给,如此反复,直到达到给定转速。
b) 不平坦的地面会造成移动机器人的两个车轮转速之间的差异。
如果转速较低的车轮的驱动电机没有得到相应的电压补给,移动机器人将偏移既定的c) 由于安装工艺、负载不完全均衡等原因,即使是完全匹配的两个电机,并在相同的输入电压条件下,他们的速度有时仍会产生不同,即转d) 如果采用的是PWM 控制,即使在PWM 信号占空比不变的条件下,随着电池电压的逐渐下降,电机供给电压也会随之降低,从而导致电机的转速与给定值不完全致。
综合以上的一些考虑,必须选择闭环控制的方式,其工作流程如下图所示:闭环系统中加上了反馈环节(通常机器人的驱动电机使用的是增量式光学编码器)。
在闭环控制系统中,速度指令值通过微控制器变换到功放驱动电路,功放驱动电路再为电机提供能量。
光学编码器用于测量车轮速度的实际值并将其回馈给微控制器。
基于实际转速与给定转速的差值,即“偏差”,驱动器按照闭环控制模型示意图速度闭环控制示意图这里,电机的控制算法起到了十分关键的作用。
电机控制系统中的运动控制算法研究
电机控制系统中的运动控制算法研究随着科技的发展,电机的应用越来越广泛,涵盖了工业制造、医疗、家电等多个领域。
在电机的控制过程中,运动控制算法是非常关键的一环。
本文将会从电机控制系统的概括入手,探讨在电机控制系统中,不同的运动控制算法,以及这些算法能够为电机控制带来的优势。
电机控制系统的概括电机控制系统以电机为中心,通过调节电压、电流、转速等参数,实现电机的控制。
电机控制系统一般由运动控制设备、控制器、电源、传感器、执行器等组成。
其中,运动控制设备是帮助控制器通过各种运动算法来调节电机转速、电流、力矩等的控制器的重要组成部分。
运动控制算法,直接关系到电机的运动状态,因此是电机控制系统中非常关键的一环。
运动控制算法的基本分类在电机控制系统中,运动控制算法的分类复杂多样,我们可以根据实际应用场景来对其进行分类。
大致可以分为位置控制算法、速度控制算法、力矩控制算法。
算法的选择需根据电机的用途及其需求来进行选取。
位置控制算法位置控制,通俗来说,就是控制表达一个物体特定位置的行为。
在电机控制系统中,位置控制算法主要是通过编码器及其它传感装置来获取电机当前位置,然后利用控制器调整电机运动轨迹,使其在指定位置上停留。
如:在线路铺设的过程中使用电机驱动设备到指定地点定位,通过编码器记录下电机的每一步位移变化,从而使电机精准完成特定的位置控制。
速度控制算法当需要调整电机的转速时,便需要用到速度控制算法。
在电机控制系统中,速度控制算法主要通过计算电机转速来调整电流的输入,从而促进电机的旋转或停止。
如:带有自动刹车的汽车,在制动踏板按下的过程中实现快速制动的控制。
力矩控制算法力矩控制算法主要是为了控制电机的负载和亚负载工作中的稳定性。
通过控制电机输出的力矩大小来保证其能够稳定地运转,同时又不会引起设备超负载。
如:在医疗器械中使用电机进行手术操作控制,需要保证医疗器械的工作输出性能不受影响,同时又能保证医疗器械的安全性。
电机SpTA控制算法
电机SpTA控制算法SpTA即Steps per Time algorithm,它与步进电机S形曲线控制算不同,S形曲线控制算法思想是根据电机的步数来计算时间,即所谓的Time per Steps,该控制算法先计算电机每一步运行频率,再根据运动曲线计算得到时间参数,而SpTA算法则是以时间计算为中心,根据时间来计算运动步数相关参数,它的做法是将电机的运动时间分割成若干个合适的小时间片,在每个时间片内它都将速度参数加到位置参数上,如果位置参数溢出,它就会输出一个脉冲,速度参数根据加速度参数和时间而改变,随着时间推移,速度参数越来越大,位置参数溢出频率越来越高,则电机的运行频率也越来越高错误!未找到引用源。
为了实现根据速度参数控制脉冲输出频率,需要定义以下变量:PosAccumulator 位置累加器PosAdd 位置增加值ActualPosition 实际位置TargetPosition 目标位置,用户输入步进电机运动的步数在时间片到来后进行如下计算:PosAccumulator += ActualVelocity; //位置累加器+实际速度PosAdd = PosAccumulator >> 17; //移位,判断速度累加器是否溢出PosAccumulator -= PosAdd << 17; //位置累加器去掉溢出部分if(PosAdd!=0) //位置累加器溢出,产生一个不进脉冲{ActualPosition+=1;产生一个步进脉冲;}这样控制器输出的脉冲频率就随着实际速度的增大而增高,随着实际速度减小而降低。
为了根据时间实现实际速度的变化,需要定义以下变量:VelAccumulator 速度累加器ActualAcceleration 实际加速度,用户设定的加速度数值VelAdd 速度增加值ActualVelocity 实际速度TargetVelocity 目标速度在时间片到来后进行如下计算:if(ActualVelocity!=TargetVelocity){//如果实际速度!=目标速度VelAccumulator+=ActualAcceleration; //速度累加器+实际加速度VelAdd = VelAccumulator >> 17; //移位,判断速度累加器是否溢出VelAccumulator-=VelAdd << 17; //速度累加器去掉溢出部分if(ActualVelocity<TargetVelocity){//如果实际速度<目标速度ActualVelocity=MIN(ActualVelocity+VelAdd, TargetVelocity); //实际速度为两者中小者}else if(ActualVelocity>TargetVelocity){//如果实际速度>大于目标速度ActualVelocity=MAX(ActualVelocity-VelAdd, TargetVelocity);//实际速度为两者中大者}}else{//实际速度=目标速度,不需要执行加加速算法VelAccumulator=0;VelAdd=0;}这样,就实现了通过时间和目标速度改变电机实际速度参数,进而间接改变控制器输出脉冲的频率,时间参数是随着电机运行而递增的,目标速度参数数值是使用一个状态机根据当前的运行状态来确定的,该状态机具有四种状态:0: RAMP_IDLE-空闲状态1: RAMP_ACCELERATE-加速状态2: RAMP_DRIVING -匀速状态3: RAMP_DECELERATE-减速状态状态状态切换及其条件如图3-11所示:))图3-11 SpTA控制算法状态机状态切换图SpTA算法同样是通过定时器来实现的,与S形曲线算法不同的是它没有使用定时器的PWM功能,仅仅是通过定时器定时中断来产生一个时间片,在定时器中断服务子程序中完成上述算法,在需要时,通过控制GPIO产生一个步进脉冲。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电机控制算法
电机控制算法的作用是接受指令速度值,通过运算向电机提供适当的驱动电压,尽快地和尽快平稳地使电机转速达到指令速度值,并维持这个速度值。
换言之,一旦电机转速达到了指令速度值,即使在各种不利因素(如斜坡、碰撞之类等使电机转速发生变化的因素)的干扰下也应该保持速度值不变。
为了提高机器人小车控制系统的控制精度,选用合适的控制算法显得十分必要。
控制算法是任何闭环系统控制方案的核心,然而并非越复杂、精度越高的算法越好,因为比赛要求非常高的实时性,机器人必须在非常短的时间内作出灵敏的反应,所以现代的一些先进控制算法,比如模糊控制、神经元网络控制等就不能应用到小车控制系统里。
本系统选用了最常规、最经典的PID控制算法,通过实际应用取得了很好的效果。
1 比例项
控制回路中的第一个偏差转换环节就是比例项。
这一环节简单地将偏差信号乘以常数K 得到新的CV值(值域为-100~100)。
基本的比例控制算法如下:
loop:
PV=ReadMotorSpeed()
Error=SP-PV
CV=Error*Kprop
Setpwm(cv)
Goto loop
上一段程序中的SetPWM()函数并非将CV值作为绝对的PWM占空比来对待。
否则,不断降低的偏差值会使输出值接近零,而且由于电机工作时需要持续的PWM信号,控制系统将会使电机稳定在低速运转状态上,从而导致控制系统策略失败。
相反,CV值一般被取作当前PWM占空比的改变量,并被附加到当前的PWM占空比上。
这也要求SetPWM()函数必须将相加后得到的PWM占空比限制在0%~100%。
正的CV值将使电机两端电压增加。
负的CV值将使电机两端电压降低。
如果CV值等于0,则无需改变但前占空比。
较低的K 值会使电机的速度响应缓慢,但是却很平稳。
较高的K 值会使速度响应更快,但是却可能导致超调,即达到稳定输出前在期望值附近振荡。
过高的K 值会导致系统的不稳定,即输出不断震荡且不会趋于期望值。
2 微分项
任何变量的微分项被用来描述该变量是如何相对于另一个变量(多位时间)变化的。
换句话说,任何变量的微分项就是它随时间的变化率。
如位移随时间的变化率是速度。
速度相对于时间的微分是加速度。
在PID控制器中,值得关心的是偏差信号相对于时间的微分,或称变化率。
绝大多数控制器将微分项定义为:
Rate=(E-E )/T
式中,E为当前偏差,E 为前次偏差值,T为两次测量的时间间隔。
负的变化率表明偏差信号的改善。
当微分项被具体应用于控制器中时,将一个常数乘以该微分项,并将它加到比例项上,就可以得到最终的CV值计算公式:
CV=( K E)+( K Rate)
当偏差信号接近零时,CV值将为负,所以当偏差信号开始改善时,微分项的作用将逐渐减弱校正输出量。
在某些场合下,微分项还有利于超调量的消除,并可以允许使用较大的K 值,从而可以改善响应的快速性。
微分环节还预示了偏差信号的变化趋势。
当控制对象对控制器的输出响应迟缓时,微分环节的作用尤为明显。
含有微分项的控制算法的伪代码实现如下:
loop:
PV=ReadMotorSpeed()
LastError=Error
Error=SP-PV
Rate=Error-LastError
CV=Error*Kprop+Krate*Rate
SetPWM(CV)
Goto loop
3 积分项
积分正好与微分相对。
假如有一个描述变化率(微分)的表达式,那么对该表达式的积分就将得到随时间变化的原物理量。
如加速度的积分是速度,速度的积分是位移。
在PID控制回路中,偏差的积分代表从控制开始时算起所有偏差积累的总和。
该总和被常数K 所乘后再添加到回路输出中。
在回路中,如果没有积分环节,尽管控制系统也会趋于稳定,但是由于某种原因输出值可能最终也无法达到SP值。
一个简单但完全的PID控制器地伪代码实现如下:
loop:
PV=ReadMotorSpeed()
LastError=Error
Isum=Isum+Error
Error=SP-PV
Rate=Error-LastError
CV=Error*Kprop+Krate*Rate+Kint*Isum
SetPWM(CV)
Goto loop
由于积分项会越来越大,这就会使控制回路在SP值的改变时响应变慢,某些应用场合在CV 值达到取值边界(如为:-100~100)时会停止累加Isum。
在SP值改变时,也可以除去Isum项。
通过测试,发现计数器0初值范围在 1~6230 以内,可控硅能正常工作,且能够实现调节电机从不能起动到全速运行的全过程。
程序中定时器0工作在方式 1,用 To表示定时器0计数初值的十进制值,定时器 0
置入的初值计算方法为:
TH 0=(65536-To )/ 256
TL 0=(65536-To) % 256
这样,通过外部函数改变To的值就可以调节电机的转速了。
1.P1控制算法
系统中控制器采用P1控制算法,其离散增量算式为:
△u(k)=Kp△e(k)+Kie(k),式中,△u(k)、△e(k)、e(k)分别为第k步控制信号增量、偏差信号增量和偏差信号;kp、Ki分别为比例增益和积分增益。
为克服积分饱和,本文采用积分分离P1控制算法,当误差信号小于给定误差时计算积分控制量。
由于被控电机通过To起作用,同时,To的变化范围设定为1~6230,而速度的变化范围为O~60,因此比例系数为:Kp=6230/60=103.8,本文取Kp=100,积分增益K1的值通常取得很小。
2.同速过程分析
将目标电机和被控电机的测速中断计数分别用N1、N2表示,则目标电机和被控电机的转速分别为:Vm=6000/N1,Vs=6000/N2,式中,Vm,Vs分别为目标电机和被控电机的转速。
如果Vm>Vs,且To-100(Vm-Vs)>1,那么To-=100(Vm-Vs);如果Vm<Vs,且
To+100(Vs-Vm)<6230,那么To+=100(Vs-Vm)。
同时须注意到山值的调节依赖于两个电机都能正常转动的情况,即N1和N2都不为零;目标电机是无需担心,因为它完全受人为控制,一般是不会将其速度调节至零;对于被控电机而言,其初始速度很可能为零,或者为其它某一接近零的值,这就意味着可能需要很长一段时间,才能检测到它旋转一圈,针对此情况,可在软件中设置强行转动,即当To的值在6230附近时,强行将To值变小,从而提前开始同速的时间。
双电机同速时特点为:To值对应于目标电机速度,因此开始的时候应尽量使To的值向最终值贴近,这里可使用一个巧妙算法,目标电机速度对额定速度百分比
PERC=Vm/60=100/N1,则被控电机To值大致为To=6230(1-PERC)
由于控制被控电机的电流含有谐波分量信号,因此所计算的To值与最终To值会有一些偏差(一般偏小),但是通过这样计算之后,电机速度同步过程时间会缩短很多。
3.同相措施
本设计要求两个电机不但同速,而且同相,同速是同相的基础,实现同速之后方能实现同相。
当两个电机达到同速后,所产生相位差是恒定的,对N1计数完毕到N2开始计数这段时间进行计时,假设计数值为N3,要使两个电机同相,可以简单理解为使N3值变为零。
若不考虑相差一个360度相位角,增大或减小被
控电机速度都可以达到同相效果,我们选择速度在30转/分以上用减小速度来达到同相,反之则选择增加速度来达到同相。
具体措施是:
(1)速度大于30转/分的区间,将被控电机速度设为零,即To=6230,等待时间计数(N1-N3)后,再将速度值恢复为同速时的值,两个电机即实现同相。
(2)速度小于30转/分的区间,将被控电机速度设为最大值,即To=1,等待时间Vm×
N3/(60-Vm)后,再将速度值恢复为同速时的值,两个电机即达到同相。
但是以上方法限于理想状况,事实上,由于惯性作用,电机速度不可能会有瞬间变化,也就并不能这么简单的达到同相,对于同相控制,积分起到关键作用。
利用比例积分思想的同相算法如下:
(3)速度大于30转/分,减小被控电机的速度,并且To变化值与(N1-N3)/N1成比例,同时与(6230-To)成比例,因此To+=(6230-To)×(N1-N3)/N1。
(3)速度小于30转/分,增大被控电机速度,To的变化值与N3/N1成比例,同时与To 成比例,所以To-=To×N3/N1。
以上算法每执行一次,需将To恢复为同速时的数值,即恢复电机同速转动,如此调节电机的速度与相位,直到N3变为零。
小结
对电机随动系统实现了一种基于单片机的控制,它克服了传统模拟控制电路易受电网参数波动以及原件参数分散性的影响,实验表明,这种控制方法在低速随动控制系统中能够保证满意性能。