32第4章软件设计4.1软件设计总体方案自动纺织机控制系统的软件部分由主程序、初始化程序、中断程序、张力控制程序等子程序组成。主程序负责对所有子程序模块的管理和调用,保证系统的正常运行。初始化程序完成系统的初始化,主要有DSP初始化,编程的初始化、定时器初始化,A/D初始化,以及外部中断初始化等。张力控制程序将当前的检测张力值与设定的经纱张力值进行比较,并按照PI控制律计算出经纱张力的调节量,并对伺服系统发出指令,调节送经电机的转速,实现系统的恒张力运行。张力采集程序是按照设定的频率和张力采集点对经纱张力进行采样,然后进行A/D转换和滤波处理,作为系统的当前张力值反馈给控制芯片。中断子程序负责处理各种内部、外部的中断。转子位子信号处理子程序负责处理位置传感器的检测信号,为送经卷取控制器提供基准信号。总体程序结构如图4-1所示。主程序初始化张力控制张力采集中断转子位置处理图4-1总体程序结构334.2主程序开始调用初始化程序读取外存数据张力设定收到开车信号启动伺服系统检测主机状态调用张力检测程序调用张力调节程序收到停车信号否是否是图4-2主程序流程主程序的基本流程如图4-2所示,它包含了软件系统设计的基本功能,决定了程序的基本结构和运行方式。首先它调用初始化子程序对整个系统进行初始化。然后读取外部存储器中的数据,如读取当前的设定的张力值并进34行参数计算和设定。然后检测送经卷取和引纬伺系统的状态以决定是否开车。开车后,启动伺服系统,驱动电机动作,检测张力信号,调用张力检测子程序,调用张力调节子程序进行调节经纱张力。在整个运行过程中系统需要保持与外部的通信正常,随时接受外部输入的数据,并及时对各种故障和错误作出反应。当收到停车信号后,系统停止运行,并恢复到开车之前的状态。4.3张力调节子程序张力控制是整个送经卷取控制系统的核心部分,因此,张力调节子程序也是程序系统最重要的模块之一。在本程序中,张力调节子程序的功能是,按照设定的张力要求,与系统当前的状态进行比较,按照PI控制方式,算出当前的电机转速。送经电机的驱动脉冲由位置传感器送来的方波信号处理后得到,作为电机运行的基准信号。在本设计中,调节电机转速是通过调节电机驱动信号的额PWM波的占空比来实现的,而送经电机的在织机主电机转速一定的情况下,占空比比越大,脉冲频率越低,电机的转速越低,反之,占空比越小,脉冲频率和电机转速越高。在织机正常运行时,送经电机的基准占空比计算如下所示:张力传感器方向为正时,)()(i'i1221111ffrffrSS)()((4-1)当前张力值大于设定值时,取“+”,否则取“-”。张力传感器方向为反时,)()(i'i1221111ffrffrSS)()((4-2)当前张力值大于设定值时,取“-”,否则取“+”。上式中,1S为调节后指定纬密下的送经电机PWM占空比,'1S为当前指定纬密下的送经基准电机PWM占空比,i为纬密,1r、2r为调节系数,f为张力设定值,1f为本周期张力值,2f为上一周期张力值。张力调节可分为以下几种情况:(1)停车调整停车调整,是指开车前经纱和布面恢复到设定的上机张力,避免开车痕的产生。停车后由于齿轮的间隙和经纱的延展性使得张力下降。在本程序中,当张力低于设定值的95%时,则进行调整,根据张力的偏差,使送经电机反35转一定位置量直至张力恢复设定值,然后向主控系统发出准备好信号,主机准备开车。此外,还应当设定上机张力的上下限,如果上机张力在此范围之间则视为正常,否则发出错误信号并报警。其流程如图4-3所示。开始张力超限?上机张力低于给定的90%停车补偿返回错误报告发出开车信号是否否是图4-3停车调整流程(2)开车调整指主机开车后的一段时间内,经纱张力迅速增加,而波动也较大,因此需要对经纱张力进行调整。在本程序中,若当前张力在设定值的95%-105%之间时,则视为张力正常并进入正常织造阶段。当前张力低于设定值的95%或高于设定值的105%,则须进行开车补偿,并对张力进行调整。完成调整后,向主控系统发出信号,准备进入正常运行状态。其流程如图4-4所示,停车补偿和开车补偿的具体方在这里不做详细论述。36开始确定基本参数张力偏移是否过大?开车补偿发出正常信号返回否是图4-4开车调整流程(3)正常运行正常运行时,系统应设定动态张力的上下限,如果经纱张力超限则系统报警并发出停车信号。如果张力值在限定范围内,首先判断当前张力传感器的位置,之后再将当前张力值与设定值进行比较,由当前的电机转速和张力值以及上一周期的张力值,按照PI控制方式,计算出当前应设定的电机转速,然后向伺服系统发出调节指令,改变PWM的的占空比调节电机转速。此外,为确保系统运行的稳定,在程序中应设定送经电机驱动信号PWM占空比的上下限值,当占空比高于最大值或低于最小值时,则取最大值或最小值。正常运转时张力调节流程如图4-5所示。37开始确定基本参数张力超限?PI调节返回是否与给定值作差为零错误报警确定基本参数是否图4-5正常运行时的张力调节流程4.4送经电机启动子程序送经电机为直流无刷电机,其采用电子换向,需要不断检测转予位置,确定逆变器功率管的开关状态,电机启动模块就是用来读取三个霍尔信号的状态,以确定逆变器的换相顺序。当电机处于运行状态时,电机三个霍尔信号端不断输出互差120o。电角度的方波,这时DSP捕获模块可以捕获到霍尔信号的跳变沿,通过读取捕获端口的状态,即可确定出电机所处的状态,然而当电机在停止状态时,三个霍尔信号都不可能产生跳变,从而也不可能发生捕获中断,因此电机由停止状态开始运转时,必须首先让电机运动起来以产生捕获中断,在软件中由电机启动模块实现。38开始电机处于停止状态?将电机改为停止状态返回是否收到停止命令?将电机改为启动状态是收到停止命令?是否否否图4-7直流无刷电机启动子程序39第5章仿真系统设计5.1MATLAB简介MATLAB对控制系统进行计算机仿真的主要方法是以控制系统的传递函数为基础,SIMULINK是MATLAB提供的实现动态系统建模和仿真的一个软件包,MATLAB/SIMULINK良好的用户界面、便捷的模块化动态仿真环境,使其成为国际上最为流行的科学计算以及系统仿真领域的系统软件工具。SIMULINK用来提供一个系统级的建模与动态仿真工作平台,采用模块组合的方法来使用户能够快速、准确地创建动态系统的计算机模型。SIMULINK模型可以用来模拟线性或非线性、连续或离散,或者两者结合的混合系统。因此,SIMULINK已经广泛的应用于许多领域,包括电子电路仿真、通信系统仿真、自动控制系统仿真分析、机械系统典型运动过程动态分析与数字仿真等。SIMULINK仿真系统可制作电气原理结构图,即使用PowerSystem工具箱进行调速系统仿真的新方法.在MATLAB5.2以上的版本中新增了一个电力系统PowerSystem)T.具箱(本文使用MATLAB7.0版本),该工具箱与控制系统工具箱有所不同,用户不需自己编程且不需推导系统的动态数学模型,只需要从工具箱的元件库中复制所需要的电气元件,按电气系统的结构进行连接,系统的建模过程接近实际系统的搭建过程,且元件库中的电气元件能较全面地反映相应实际元件的电气特性,仿真结果的可信度很高.面向电气原理结构图的仿真方法如下:首先以调速系统的电气原理结构图为基础,弄清楚系统的构成,从PowerSystem和Simulink模块库中找出对应的模块,按系统的结构进行建模;然后对系统中的各个环节进行元件参数设置,在完成各环节的参数设置后,进行仿真参数的设置;最后对系统进行仿真实验,并进行仿真结果分析。为了使系统得到好的性能,通常要根据仿真结果来对系统的各个环节进行参数的优化调整。5.2逆变电路的仿真分析直流电动机的转速控制方法有两种,一是对励磁磁通进行控制的励磁控制法,二是对电枢电压进行控制的电枢控制法。系统中直流无刷电机的转子40是永磁体,所以不采用励磁控制方法,而是选用调节定子电压的方式来驱动控制,即用脉冲调制〔PWM)控制,对PWM控制来说有可逆调速和不可逆调速两种,对织机来说,由于存在断纬、断经倒车,所以采用可逆调速。系统选用双极性可逆调速,其电流波动和功率损耗较大,且必须增加死区来避免开关管直通的危险,但在中低速运行中运行平稳和反应灵敏,故用于中小功率直流电机的控制。下图5-1为PWM控制电路。VD1VD3VD2VD4MUs图5-1双极性PWM控制电路在双极性PWM驱动方式下,一个PWM周期里电机电枢电压经历了正反两次变化,其平均电压Uo可用下式表示:UsUsTTUsTTTTTUo)12(12)(111(5-1)式中Uo——输出平均电压;SU——电枢电压;1T——方波电压高电平所占时间:T——方波电压周期;——方波电压占空比。由上式可见双极性可逆PWN驱动时电枢绕组所受电压取决于占空比α大小,调整α大小就可以使电机正反转。当=0时,UsUo,电动机反转,且转速最大;当=1时,UsUo,电动机正转,转速最大;当=0.5时,0Uo,电动机不转,但电枢绕组中仍然有交变电流流动,使电动机产生高频震荡,这种震荡有利于克服电动机负载的静摩擦,提高动态性能,使得电机的中低速性能优异,非常有利于织物的织造。41如下是针对简单的基于PWM逆变电路的仿真模型,PWM(脉宽调制),控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次斜波谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。下图为sumlink仿真图形。图5-2单桥臂PWM逆变电路图中是由MOSFET构成的单桥逆变,经PWM驱动可使单相直流电变成交流,我们在上一章的设计中应用的是MOSFET构成的三桥臂逆变,将两相电变成三相。图中两直流电源DCVoltageSource分别为100V,UniversalBridge选择单桥设ABC输出,开关管选择MOSFET,PWMGenerator的参数设置如下图5-3所示:42图5-3PWMGenerator模块参数仿真结果如图5-4所示,下图分别为电流和电压的波形。图5-4输出电流和电压5.3无刷直流电机仿真系统无刷直流电机模型,在Matlab中,无刷直流电机的模型即可以用Simulink中提供的电感、电容等电路元件根据其数学模型建立仿真模型,也可以用S-function编程建立模型。本设计直接采Simulink/SimPowerSystems/Machines43中提供的PermanentMagnetSynchronousMachine(永磁同步电机)模块,将其反电动势波形设置为梯形波即为无刷直流电机模型。电机采用三相两两通电驱动方式,空载转速为3000r/s左右[23-24]。基于无刷直流电机的速度控制系统的控制方法可分为开环控制和闭环控制两大类。常用的控制方法一般为双闭环调速,内环为电流环(转矩环),外环为速度环(电压环)。电机正常运行及基速以下运行时,一般通过PWM调制改变电枢端的输入电压来实现速度可控制。系统的Simulink的仿真模型如下图5-5所示。图5-5无刷直流电机控制系统仿真图中转速环由PI调节器构成,转速的给定值直接选取的是转速的实际值,经PI调节器计算将得出的速度信号送入后面的控制环节,系统中电流控制模块dq2abc是通过S函数实现的,用PWMInverter(PWM逆变器)如图5-6来代替上一章设计中MOSFET逆变电路。44图5-6PWMInverter仿真条件:采用变步长oder15s方法,相对误差限制在1e-05,绝对误差限制在1e-06,仿真时间0.5s。仿真结果如下图5-7所示电流转矩45转速图5-7无刷直流电机仿真结果综合各波形可以看出电机起动时电流和转矩都很大,转速在很短的时间内上升至最大值,之后稳定运行。其中线电压的尖波是由于