MATLAB-DSP在无传感器矢量控制中的应用
时间:03-22
来源:互联网
点击:
1.引言
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目标板上运行。
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目标板上运行。
DSP 单片机 传感器 电流 电压 仿真 电动机 电路 PWM 相关文章:
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 智能视频多媒体技术的应用(05-31)
- 提高实时系统数据采集质量的研究(04-09)
- 2009视频监控:网络化及其推动的几大趋势(06-03)
- 高清化:视频监控领域的下一个里程碑(06-04)