MATLAB-DSP在无传感器矢量控制中的应用
扫描二维码
随时随地手机看文章
Matlab是一个强大的分析、计算和可视化工具,特别适用于控制系统的分析和模拟,但由于其依赖的平台是计算机及其 CPU,因而由于 CPU系统功耗的原因,使得 MATLAB程序的执行速度相对于高速信号的输入/输出显得很慢,远不能满足实时信号处理的要求,而 DSP就其软件的编程能力而言,与单片机及计算机的 CPU的编程设计方法有类似之处,但 DSP比单片机的运算速度快得多,又比 CPU 的功耗及设计复杂度低得多,但是其分析和可视化能力远不及 Matlab,开发过程比较复杂。不过,目前有一种新的技术,可以将 DSP和 Matlab两者密切结合起来,充分利用两者的特长,有力的促进控制系统的实现。
伺服驱动装置是印刷机无轴传动[3]控制系统中重要的组成部分,国内大部分产品是采用带速度传感器的专用变频器调速,控制精度不高 [4],而国外的产品价格又非常昂贵,由此,本文自行开发了一套基于 PI调节器的无速度传感器矢量控制系统,并且在自行搭建的实验平台进行了调速实验,在实验过程中,运用了 Matlab与 DSP混合编程的调试方法,实验结果表明,采用 Matlab调试及直接目标代码生成的方法能避免传统计算机模拟的复杂编程过程,减少了工作量,有助于提高系统的综合效率 , 且能够保持系统良好的动静态调速控制性能,很好地满足了印刷机无轴传动控制系统的要求。
2.无速度传感器矢量控制系统介绍
由于采用高性能的矢量控制方法且缺省了速度传感器,那么如何准确的获取转速信息,且保持伺服系统较高的控制精度,满足实时控制的要求,也就成为本课题研究的重要方向。在这里我们采用 PI自适应控制方法 ,利用在同步轴系中 q轴电流的误差信号实现对电机速度的估算 ,整体结构如图 1所示。角速度给定值 ω*与推算角速度反馈值 ω的误差送入速度调节器,速度调节器的输出即为电磁转矩的给定值 Te*,由 iq1 = LrTe/PmLmФd2可以计算出电流的 q轴分量给定值 iq1*,当 q轴电流没达到设定值时,可由 Rs产生的 q轴电压和 ω1σLs产生的 d轴电压来调节。因此,iq1*与定子电流 q轴分量的实际值 iq1的误差信号送入 PI调节器调节器的输出 uq1’为定子电流 q轴分量误差引起定子电压 q轴分量的调节量。
其中速度推算模块以不含有真实转速的转子磁链方程以及坐标变换方程作为参考模型,以含有待辨识转速的 PI自适应律为可调模型,以定子电流转矩分量作为比较输出量,采用比例积分自适应律进行速度估计,经过 PI调节后,输出量就是待求的电机转速。这种方法计算量小,结构简单,容易实现。
3. Matlab与 DSP混合编程的调试方法
在传统的开发过程中,总是先用 MATLAB进行仿真。当仿真结果满意时再把算法修改成 C/C++语言,再在硬件的 DSP目标板上实现。发现偏差,需要再用 Matlab对算法进行修正,再在 DSP上编写修正的算法程序。如此过程反复进行,在 DSP的开发工具、 Matlab工作空间之间来回多次切换,非常不便,当系统比较复杂时,还需要分步验证各个中间结果和最终结果。如果能够把 Matlab和 DSP集成开发环境 CCS及目标 DSP连接起来,利用 Matlab的分析能力来调试 DSP代码,那么操作 TI DSP的存储器或者寄存器就可以像操作 Matlab变量一样简单。工具包 Matlab Link for CCS Development Tools的使用,可以使上述问题迎刃而解,利用此工具箱,在 Matlab环境下,就可以完成对 CCS的操作,即整个目标 DSP对于 Matlab像透明的一样,所有操作只利用 Matlab命令和对象来实现,简单、方便、快捷。以下用调试上述无速度传感器矢量控制系统的例子来说明 Matlab-DSP集成开发环境在控制系统中的应用。在 Matlab命令窗口中输入 Simulink,打开 Simulink模块窗,建立异步电动机矢量控制变频调速系统的模型,如图 2所示,结构简单明了,全部实现模块化,容易扩展,可以根据实际需要,改变每一模块的参数。
接下来设置仿真参数和 Real-Time Workshop选项,编译仿真模型。并利用 Matlab Link for CCS Development Tools建立与目标 DSP的连接。利用 CCSLink工具,可以把数据从 CCS中传送到 Matlab工作空间中,也可以把 Matlab中的数据传送到 CCS中,而且通过 RTDX(实时数据交换技术),可以在 Matlab和实时运行的 DSP硬件之间建立连接,在它们之间实时传送数据而不使正在 DSP上运行的程序停止,这项功能可以在程序运行期间为我们提供一个观察 DSP实时运行状态的窗口,大大简化了调试工作。Matlab、CCSlink、CCS和硬件目标 DSP的关系如图 3所示。
我们可以在 Matlab中修改一个参数或变量,并把修改值传递给正在运行的 DSP,从而可以实时地调整或改变处理算法,并通过观察探针点数据来调试程序。最后把 CCSlink和 Embedded Target for C2000 DSP Platform. 相结合,可以直接由调试好的 Simulink模型生成 DSP2812 的可执行代码,并加载到 DSP目标板中,这样我们就可以在同一的 Matlab环境中完成系统算法的设计、仿真、调试、测试,并最终在 DSP2812目标板上运行。
4. 系统调试
实验台硬件结构如图 4所示,变频器系统用 DSP作为运算控制单元,用 IPM模块作为功率电路交换单元,用霍尔电流传感器检测电机三相电的两相电流。DSP控制器在对检测到的电流信号进行相应的运算处理之后,将 PI控制算法产生的三对 SVPWM脉冲信号,作用于 IPM来驱动异步电机,通过改变输出脉冲信号的频率来实现异步电动机的变频调速。
电机参数为: Rs=10Ω;Rr=5.6Ω;Ls =0.3119H;Lr=0.3119H;Lm = 0.297H;P = 4;J=0.001 kg.m2
通过 DSP与 CCS的连接,可在 Matlab环境下对目标 DSP的存储器数据进行访问,再利用 Matlab强大的分析和可视化工具对其数据进行访问,也可以实现对工程的编译、链接、加载、运行,设置断点和探点,最后将满意的调试结果生成的目标代码直接加载到实验台上。转速输入设定为一阶跃函数,电机带额定负载运行,获得的动态响应曲线如下图所示。
5 实验结果
Figure5 Experimental results由图 5可见, d-q轴电压电流及磁通角响应曲线平稳,在动态过程中,在 Matlab环境下的电机转矩和实际 DSP实验平台下的转矩曲线基本一致,系统响应快,且超调量小,只需 0.6S即可达到稳定。转速的阶跃响应如图 5(d)所示,系统在电机起动时有一定的波动,但是在 PI自适应控制器的作用下,只需 0.5S系统就可以达到稳定状态,证明速度观测器下的转速能够较好地跟踪实际速度变化,在稳态时实际速度等于仿真速度值。
5.结论
本文提出的 Matlab下的 DSP集成设计方法确实可行,实验证明:在此环境下可以完成对 DSP目标板的操作,包括访问 DSP存储器和寄存器等,又可利用 Matlab的强大工具对 DSP存储器中的数据进行分析和可视化处理,因此系统结构简单,调试工作量小,易于实现。同时,具有一定自适应能力的 PI速度估算方法能够对电机转速做出准确的估计,实验结果验证了此系统设计方案的正确性和可行性。