【《机械臂三闭环伺服控制系统的软件设计案例分析》5900字(论文)】_第1页
【《机械臂三闭环伺服控制系统的软件设计案例分析》5900字(论文)】_第2页
【《机械臂三闭环伺服控制系统的软件设计案例分析》5900字(论文)】_第3页
【《机械臂三闭环伺服控制系统的软件设计案例分析》5900字(论文)】_第4页
【《机械臂三闭环伺服控制系统的软件设计案例分析》5900字(论文)】_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机械臂三闭环伺服控制系统的软件设计案例分析目录TOC\o"1-3"\h\u19110机械臂三闭环伺服控制系统的软件设计案例分析 1195231.1TMS320F28335芯片简介 1307721.2软件框架 35061.2.1主程序设计 371751.2.2ePWM模块配置 4182221.2.3ADC模块配置 5152361.2.4DMA模块配置 561631.2.5SPI与RDC模块配置 6176311.3中断程序设计 7270051.3.1ePWM中断设计 7254201.3.2定时器中断设计 9176221.4位置前馈控制程序设计 9249681.5位置模糊控制程序设计 101.1TMS320F28335芯片简介28335芯片采用176引脚LQFP四边形封装,其主要性能如下:(1)28335芯片采用高性能静态CMOS技术,指令周期为6.67,主频达到150MHz,方便电机控制,功率器件控制和工业控制。该芯片具有高性能的32位CPU。单精度浮点运算单元(FPU)使用哈佛流水线结构,可以快速执行中断响应,具有内置的内存管理模式,并支持C/C++语言的复杂数学算法。(2)28335片上存储器分为:的Flash存储器,的SARAM存储器,OTPROM和的BootROM。其中,FLASH存储器以及OPTROM受系统密码保护,并且用户在这些存储器中设置的程序也会受到保护。(3)28335控制时钟系统具有6通道DMA控制器,片上振荡器和看门狗模块,支持动态PLL调谐,内部可编程锁相环,并通过软件对应的寄存器设置CPU时钟频率。(4)28335的控制时钟系统具有6通道DMA控制器,片上振荡器,看门狗模块,支持动态PLL调节,内部可编程锁相环,通过软件设置相应寄存器的值改变CPU的输入时钟频率。(5)28335内部有16根中断线,其中包括两个不可屏蔽中断与14个可屏蔽中断。其中12个可屏蔽中断线由8个外设中断组成,一共支持58个外设中断,通过外设中断扩展控制器(PIE)来管理片上外设和外部引脚引起的中断请求。(6)28335中有增强型的外设模块:18个PWM输出,包含6个高分辨率脉宽调制模块(HRPWM)、6个事件捕获输入和2通道的正交调制模块(QEP)。(7)28335一共有3个32位的定时器,定时器0和定时器1用作一般的定时器,定时器0接到PIE模块,定时器1接到中断INTl3;定时器2用于DSP/BIOS的片上实时系统,连接到中断INTl4,如果系统不使用DSP/BIOS,定时器2可用于一般定时器。(8)28335的串行外设为2通道CAN模块、3通道SCI模块、2个McBSP(多通道缓冲串行接口)模块、1个SPI模块、1个I2C主从兼容的串行总线接口模块。12位A/D转换器具有16个转换通道、2个采样保持器、内外部参考电压,转换速度为80,同时支持多通道转换。(9)此外,28335还有88个可编程的复用GPIO引脚,并且可以运行于低功耗模式下。内核电压为1.9V,I/O引脚电压为3.3V。且片上外设寄存器块0~3只能用于数据存储区,用户不能在该存储区内写入程序。同时,OTPROM区(0x380000~0x3803FF)为只读空间,存储A/D转换器的校准程序,用户不能对此空间写入程序。若设置安全代码,存储器区域Ox33FF80~0x33FFF5需全部写入数据0x0000,而不能用于存储程序或数据。反之,0x33FF80~Ox33FEF可以存储数据或程序,其中0x33FFF0~Ox33FFF5只能存储数据。软件部分主要在TI公司开发的DSP芯片专用仿真平台CCS5.5中对TMS320F28335进行编程。1.2软件框架1.2.1主程序设计28335的主程序主要进行整个系统模块进行初始化工作,其中包括时钟模块、中断模块、外设模块、IO口等等。此外还需要在主程序中定义本次实验中所需要的参数和变量。主程序的流程图如下:图4-1主程序流程图主程序的操作流程为:首先初始化系统,设置28335系统频率为150,禁用看门狗模块,设置PLLCR(锁相环电路)的系统时钟频率,设置高频和低频外设时钟的预分频器,并启用外设时钟;随后初始化IO口,其中包括ePWM模块,SPI模块,RDC模块和CAN模块的初始化;第三步,关系统中断,初始化系统的中断向量表并且重新映射系统中断服务程序的地址;下一步,初始化各个模块配置,这一步涉及的模块较多,将在下一条中详细介绍;接着,初始化系统参数,其中主要包含电机参数、控制器参数等等;完成各项初始化工作后,使能部分中断,软件中一共用到了PWM中断、定时器中断、DMA中断以及eCAN中断,使能中断后,开全局中断;最后,设置一个for语句让程序进入无限循环中,等待中断子程序的到来。要注意的是,在该循环语句中需要时刻判断电机的状态。若电机处于运行状态,则需要监测电机的电流、电压及温度值,实时观察电机是否有过流、过压或过温的情况出现。一旦电机进入故障状态,系统会停止输出PWM波形,直到故障被排除。1.2.2ePWM模块配置28335芯片中,每个ePWM模块都是由两路ePWM输出组成,一共有6对这样的ePWM模块。由于最终希望得到六路方波输出,因此只需要用到3对ePWM(本文使用了ePWM1,ePWM2和ePWM3)模块。对这三个模块进行以下参数配置:ePWM模块中还含有很多子模块,软件中主要用到了时基模块TB、计数比较模块CC、动作模块AC、死区模块DB和事件触发模块ET。配置时基模块TB。首先确定PWM的中断频率为10,即中断周期为100。将时基计数器设定为向上-向下计数(增减)模式,即计数器在前半个周期中向上计数,后半个周期向下计数。计数器每1计75个数,那么一个周期时基计数器将计7500个数,其计数最大值为3750。将时基模块设定为时基周期影子寄存器模式,每当计数器的值归零,周期寄存器TBPRD会立即装载影子寄存器的值。配置计数比较模块CC。计数比较模块可以将时基计数器的值作为输入,并不断地将该值与比较寄存器CMPA和CMPB中的值进行比较,一旦时基计数器的值等于其中一个比较寄存器的值,就会产生相应的事件。采用比较寄存器CMPA来控制PWM的占空比,每当SVPWM输出不同的,系统就会相应地更新CMPA的值。CMPB设置为1500,即在20时时基计数器的值等于CMPB的值。比较模块也设置了影子寄存器,和TB模块的一样,也是过零装载。配置动作模块AC。当ePWM模块产生相关事件时,动作模块会决定是输出高电平还是低电平。由于需要利用CMPA来控制系统占空比,因此将CMPA的动作设定为:向上计数时,当时基计数器的值等于CMPA的值,ePWMxA输出高电平;向下计数时,发生同上事件后,ePWMxA输出低电平。配置死区模块DB。ePWM模块中的三相全桥逆变电路很容易造成短路的问题。因此,设置死区时间为20,使能上升沿下降沿双边延时,并且设ePWMxA输出极性翻转,ePWMxB输出极性不翻转。配置事件触发模块ET。系统每产生一个事件就会产生一个ePWM中断,并设置ePWM1模块在时基计数器为其最大值时触发事件1(ePWM1中断),ePWM2模块在计数器值等于CMPB时触发事件2(ePWM2中断)。1.2.3ADC模块配置ADC模块使用内部参考电压,时钟频率为25,采样频率为12.5,即每0.08进行一次采样。设置ADC模块的2个8状态排序器独立工作,两个排序器按照顺序一一进行采样。排序器工作在启动/停止模式下,每当有触发信号到来时,排序器才会开始排序工作。设定排序器的采样顺序为:第一次对通道3进行采样,可以得到的值;第二次对通道1进行采样,可以得到的值;第三次对通道10进行采样,可以得到的值。1.2.4DMA模块配置DMA模块可以将ADC模块转换完的电流结果传送到相应的地址中。DMA模块一共有6个通道,使能DMA通道1来进行数据交换工作。DMA通道的设置必须与ADC设置的采样次数及转换次数相匹配。设源地址为ADC模块的结果寄存器0,目标地址为DMA模块的缓冲区。首先配置DMA内循环,让DMA从结果寄存器0开始传送3个数据,由于每个数据会传送5次,因此每传完一个数据,目标地址需要向后移5位,为接下来的四次数据传输留下空间。而源地址向后移一位,继续传送下一个结果寄存器的值。再配置DMA的外循环,第一次内循环结束后,目标地址一共后移了10位,源地址后移了2位,所以要将源地址前移2位回到结果寄存器0。由于原来的目标地址已经写过数据了,因此需要对该地址的下一位传送数据,所以目标地址要前移(10-1)位,回到上一次数据传输中的第一位地址的下一位。通道1的数据传送工作通过SEQ1(排序器1)中断触发,工作在连续模式下,并且在传送结束后会产生DMA中断,该中断会告知CPU数据传送工作已完成。使用DMA模块的好处在于,DMA模块能够用硬件实现存储器与存储器之间、存储器与IO设备之间的高速数据传送,这个过程中不需要CPU参与,大大减少了CPU的操作负担。而且存储器地址的修改和传送均由硬件自动完成,极大程度地提高了数据传输速度和效率,减少了程序耗时。1.2.5SPI与RDC模块配置SPI模块工作在主/从模式下,其中28335芯片为主控制器,RDC模块(旋变解码芯片)为从控制器。设置SPI模块通讯速率为低速时钟的5分频,即。由于RDC模块内部设为8位数据字长,所以将SPI模块相应地设置一次可传输8位数据长度。读数据时,SPI模块采用查询方法,可以主动发出信号来查询旋变解码芯片中的数据。SPI模块主要的通讯任务就是进行角度信号与转速信号的读取,均在ePWM2中断内进行。对于RDC模块来说,使用AD2S1210芯片可实现旋变解码电路。设该芯片工作模式为配置模式,激励频率为10,14位分辨率,最大可跟踪速率为。AD2S1210芯片的位置和速度数据分别储存在地址0x80-0x83中。SPI模块首先从0x80中读取位置数据,同时会发送一个数据。此时发送的数据并不是刚刚读到的位置值,而是将之前存储在SPI寄存器中的数据发送了出去。而这一个周期读到的位置数据要在下一个周期发送。因此,若需要读取一次转速或位置信息,必须让SPI进行三次读取与传输工作,这样才能得到一个完整的转速/位置数据。读取角度时主要会进行以下操作:首先更新AD2S1210中的位置与速度信息,随后利用SPI模块与RDC模块进行通讯,获取角度信息。由于SPI模块要读取两次角度数据,一次读取8位,而AD2S1210的分辨率为14位,因此要将读到的数据右移两位来确保数据的准确性。随后,需要通过换算处理将该14位数据转换为实际的角度值。读取速度值同理。但需要注意的是,SPI模块读取到的16位速度数据最高位代表转速方向,1代表正转,0代表反转。若为反转,需要对该数据取补码才能得到真实的转速数据。具体流程如下图所示:图4-2SPI模块程序流程图1.3中断程序设计1.3.1ePWM中断设计28335芯片内部可以产生多种中断信号,本程序中主要用到了ePWM中断和定时器中断。ePWM中断作为本次程序中的主中断,中断周期设置为100,并主要执行以下操作:读取电流、转速、位置信号,监测电机与控制器的实时状态,并实现对电流环、转速环和位置环的三闭环控制。图4-3ePWM中断设置将ePWM中断分为两个子中断:ePWM1中断和ePWM2中断。EPWM1中断在中断周期中点处触发,主要负责电流环的相关操作。进入ePWM1中断后,首先会采集电机的电流值,此时采到的电流值为静止坐标系下的电流值。由于最终需要将该电流值反馈到电流环中,必须经过Clark变换以及Park变换后转换为d-q坐标系下的电流值。得到反馈电流值之后,便需要对电流环进行计算,此时系统会自动判断现在的闭环情况。若系统正处于位置三闭环或者转速双闭环中,那么电流环的输入给定就等于速度调节器的输出值;若系统直接处在电流环中,那么此时相当于没有转速环和位置环控制,需要上位机来给定。给定和反馈值都得到之后,开始进行电流环的计算,首先算出电流调节器的输出值,再通过反Park变换及SVPWM算法,在下一个周期更新比较寄存器CMPA的值,改变占空比,输出相应的六路方波来控制电机输出新的电流值,该电流值经过Clark变换和Park变换后作为电流环的反馈电流。最后还需要进行过流保护,再重复以上操作。ePWM2中断主要进行角度读取和转速读取工作,一般会花费20左右时间,运行时间较长,因此选择在时触发中断。该中断的读取角度和转速的具体操作在5.1.5中已经详细做过介绍,故不再赘述。1.3.2定时器中断设计相较于电流环,转速环和位置环的计算不需要ePWM中断那样大的中断频率,因此将这两个环的相关操作放在了定时器中断内。将定时器中断频率设置为1,中断周期为1。定时器中断内会对位置环与转速环进行PI调节器运算,最终目的都是获得速度调节器的输出来作为电流环的输入。首先系统仍然要判断现在系统的闭环情况,但此时只需判断是位置三闭环还是转速双闭环。若是转速双闭环,此时不存在位置环,所以转速输入需要通过上位机给定,反馈转速为旋变解码芯片中的速度值,之后便直接进行速度环PI计算即可得到转速输出。若为位置环,此时将ePWM2中得到的角度值换算成实际的负载端角度信息,作为反馈角度。随后依次进行位置调节器和速度调节器的计算,最后获得转速输出值。1.4位置前馈控制程序设计在5.1节和5.2节中主要完成了主程序和中断程序的设计,实现了机械臂的永磁同步电机传统三闭环伺服控制系统。若要加入位置前馈控制,只需要在5.2节中所提到的两个中断程序中加上位置前馈控制的内容即可。位置前馈控制的主要程序放在定时器中断中。若系统判定目前正处于位置前馈控制系统中,便会执行前馈控制的相关操作。前馈控制程序会涉及到位置正弦给定曲线的生成程序。给定正弦曲线的频率以及幅值由上位机进行给定,程序会自动计算出给定曲线的角速度。而给定正弦幅值为机械臂的角度信号,所以还需要换算为电机的旋转圈数。实现前馈控制,只需要在该子程序中计算出前馈幅值即可,根据3.2节推导出转速前馈幅值和电流前馈幅值的计算公式: (42) (43)其中,为转速前馈幅值,为转速前馈的衰减系数,为正弦给定信号的幅值,为正弦给定信号的角速度,乘以60代表的单位换算。为电流前馈幅值,为电流衰减系数,为电流与转矩之比。随后直接将生成的位置正弦给定曲线作为位置调节器的输入进行计算,再将输出的转速值与前馈转速值相加后作为转速调节器的输入,继续进行转速环的计算。最后,在定时器中断中会直接对电流前馈值进行处理,将正弦给定子程序中计算得到的前馈电流与转速环的输出电流值相加,得到电流给定之和。对ePWM1中断进行修改。同样,若系统判断目前处在前馈控制系统中,便会将定时器中断中计算出的之和作为电流环的给定,之后再进入电流环的运算程序。1.5位置模糊控制程序设计模糊控制程序只需要修改定时器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论