图4 控制系统的设计步骤流程图
由于在控制系统的仿真与设计过程中,并不易将系统的非线性与不确定性部份纳入设计过程,因此通常只能得到控制器大略的参数值,实际数值仍须经由实验来调整,这就必须经由一个"具有知识性的尝试错误调整法则"来得到良好的响应。由于这些过程繁复,因此研制一个微电脑数字控制系统时,往往要花费许多时间。若能将这些步骤整合在一个具有良好界面的单一环境,不仅可提供设计者建立标准的设计流程,也可大幅缩短系统开发的时间。
本文介绍一个以DSP为控制核心的交互式数字电源控制实验系统:DSP-PowerLab。DSP-PowerLab是一套以单芯片DSP为核心的模块化数字电源控制实验与教学系统,以德州仪器公司所生产的单芯片数字信号处理器(TMS320F240)为控制核心,结合特殊设计的功率转换模块,可进行以DSP为基础的数字电源控制的教学、研究、与产品研发。
DSP-PowerLab包含一套以窗口为基础的监控软件(WinDSP)以及多个以DSP为核心的功率转换模块,使用者利用一个具有RS-232接口的个人计算机,利用系统所提供的工具箱(Tool Box)即可进行以DSP为基础的数字电源控制,亦可自行以高阶C-语言或汇编语言发展控制程序。
2. DSP数字电源控制
2.1 为何选择DSP?
选择一个数字控制系统的的核心微处理器应考虑五个要素:价格、计算能力、周边设计、支持工具、与取得性。选用不适当的微处理器不仅提高成本,更可能降低整体的性能,所以选用合宜的微处理器是相当重要的。由图5微控器与DSP芯片的效能成本比较图得知,采用DSP可有效降低成本与提高系统之性能,况且以往DSP最让人诟病的周边功能的缺乏与设计较为困难等缺点,也因高性能的单芯片DSP控制器(TMS320X240)出现而改观。
图5 微控器vs. DSP实现之效能成本比较图
目前DSP的旋风正袭卷着整个单芯片的市场,许多原先使用微处理器或微控器的应用场合,正尝试使用DSP取代原先的微处理器或微控器,其原因是DSP芯片的优势在于执行速度快,整体效能佳,可达成多功能的实时控制(real-time control);特殊的硬件及指令设计,适用于高等控制算法,容易增加附属功能;芯片内部设计适用于数字信号处理,单一指令周期、多条内部总线、特殊之地址译码模式、零负担之循环运算、可程序化之闪存、整数乘法的硬件计算、多样的I/O周边功能、其它特殊内建功能等。这些优点都说明了为何选择DSP应用于数字马达与电力电子控制等相关领域。
德州仪器所制造的DSP TMS320系列的硬件架构是以16位为基本数据处理单元,采用16位的数据与地址总线与32位的缓存器,其核心为32位的算数运算逻辑单元(ALU)与累积器(ACC),并以硬件方式来实现不同的功能,如乘法器、位移器等,以提升其计算速度。在整数计算方面,为了减少数值计算所衍生的问题如溢位(overflow)与标尺划(scaling)等,采用硬件式的位移缓存器来提高软件执行的精确度,这些位移缓存器可以同时配合其它指令一起使用,并不需要耗费额外的执行时间。
图6是以数字式UPS为例,应用一般微控器与高性能DSP于UPS控制所做的CPU计算效能分析,由图中可看出,如采用一般的微控器,则80%的CPU时间将用于基本的正弦波脉宽调变、频率控制、与过程控制等,但如采用DSP,则包含交流稳压回路控制的数学运算,仅占用了20%的CPU时间。剩下的CPU时间可用于实现另外的控制法则,例如功率因子控制、前级直流电源稳压控制、随机式脉宽调变、电流涟波补偿、开机启动、错误诊断、参数估计、在线参数自动调整等种种功能。当然,这些高级的控制功能必须视应用情况来发展,但由此当可了解,DSP实际上开启了控制理论实用化的一扇大门,对自动控制技术未来的发展影响深远。
图6 应用数字信号处理器于UPS控制的效能分析
2.2 DSP数字控制系统
将DSP应用于生产自动化与民生家电用品的技术发展与产品开发,不论在初期研究或产品开发阶段,发展工具都是十分重要的关键。目前市面上的一些应用于高性能马达与电源控制的微控器或数字信号处理器,如TMS320x24x、DSP56000、ADMC401、SH7045等,其功能与价格虽然各有千秋,但在发展工具的支持方面,差异却相当大,这其中德州仪器与模拟组件(Analog Devices)提供了较佳的发展工具与技术支持。此外,这两家公司的DSP也均有为数众多的第三类公司(third )提供相关之发展工具与产品开发设计服务,在市场上形成了两个竞争激烈的集团。
2.3 硬件嵌入回路仿真系统
在发展嵌入式控制系统的过程中,评估其可行性是相当关键的一个步骤,在进行系统的软硬件设计之前,应先确认(verify)控制策略的可行性。设计一个复杂机电控制系统的主要困难,往往在于无法事先确定是否能达到系统在整合后的一些关键性能指针。因此,经由硬件回路仿真(hardware-in-the-loop)系统,可快速完成系统的可行性评估。
近年来,由于PC与DSP的进步,所谓的硬件回路仿真多藉由PC或DSP实现,因此出现了所谓的PC-in-the-loop、DSP-in-the-loop。藉由PC所提供的人机接口环境与充分的接口控制卡,设计者能在充分的支持下完成硬件回路仿真系统的设计,并以此为基础进行系统的可行性评估。
例如美国的国际应用动力 (Applied Dynamics International)、Stable Systems、德国的dSPACE等公司均提出了hardware-in-the-loop的系统解决方案,这其中dSPACE提供了最完整的解决方案,dSPACE同时也提供了MATLAB/SIMULAINK的控制通讯接口,使用者可以在MATLAB/SIMULAINK的环境下发展控制法则与进行系统仿真,之后再将发展的控制程序加载目标处理器进行硬件回路仿真。
3. 模块化数字电源控制发展系统:DSP-PowerLab
3.1 系统架构
近年来数字信号处理器(DSP)由于其快速的计算能力,不仅广泛应用于通讯与视讯信号处理,也逐渐应用各种高级的控制系统如引擎控制、振动控制、噪音控制、磁盘驱动器控制、马达控制、电源控制等。由于电源系统的频宽一般均较伺服系统高,因此必须以更高的取样频率来完成,DSP正可发挥其高速运算的优点,但相对而言,设计一个电源系统的数字控制器其困难度也就愈高。为了利用先进的单芯片DSP于数字电源控制,建立一个以PC为工作平台的发展环境是相当重要的,本文介绍一个一个以DSP为控制核心的交互式模块化数字电源控制发展系统:DSP-PowerLab。
DSP-PowerLab是一个以PC为基础,在 Microsoft Windows 窗口环境使用的「交互式」「模块化」数字电源控制发展系统,如图7所示。DSP-PowerLab的系统架构如图8所示,包含一个窗口接口监控软件(WinDSP)、一个采用DSP控制的功率驱动模块、以及一个电源负载,例如电池、功率电阻、或其它电源负载。
DSP-PowerLab采用RS-232作为与PC间的通讯接口(RS-485可选),因此无论在系统安装与程序发展方面均相当方便,经由RS-232通讯接口,使用者可直接下载控制程序、调整控制参数、与观察控制变量,藉由此一系统,使用者可以很方便的实现先进的数字控制法则,完成控制方法的可行性评估。
图7 DSP-PowerLab 模块化数字电源实验系统
图8 DSP-PowerLab 数字控制发展系统的系统架构
3.2 WinDSP监控软件
WinDSP的软件开发采用对象导向设计,所发展之软件具有良好的模块扩充性,具有软件 IC 的特性。此系统具有下列特点:
1. 以PC Windows为发展环境,以单芯片DSP控制器(TMS 320F240)为目标控制器 (target controller),可配合DSP的商品化产业发展趋势。
2. 提供RS-232 (RS-485可选)作为PC与DSP间的计算机接口。
3. 可用高阶C语言或汇编语言发展控制程序,并直接将程序烧录于目标控制器进行实验测试。
4. 可自建链接库(library),以模块化方式发展控制程序。
5. 经由PC可对控制器内的任一参数或变量进行在线式调整(on line tuning)。
6. 内建多功能多频道的数字示波器,提供多种方法显示实验之变量,可任意选择四个控制器的变进行纪录、观测、与分析。
7. 多重图形输出界面:示波器量测之波形数据,可输出到下列设备:
w Matlab Working Platform (ASCII file、Binary file、Mata-file)
w Printer
w Windows 剪贴簿
8. 具有自动播放功能(auto-play mode),可供实验展示。
9. 提供HTML接口,可自行编写实验讲义与技术数据并与发展系统整合。
在设计一个数字控制器的过程当中,藉由计算机辅助设计工具进行控制器的分析、设计、与模拟是不可或缺的步骤,无论从教育或研究的角度而言,将计算机辅助设计与实验测试整合都是非常重要的。为了解决此一问题,针对目前应用最普遍的MATLAB,设计了一个RS-232通讯模块RS-232.m呼叫程序,使用者在MATLAB的应用环境,可读取DSP控制器的控制变量,或是设定控制参数。为了整合MATLAB,WinDSP同时提供了与MATLAB的软件接口,如图9所示。经由此接口,实验中记录的数据,可直接传递给MATLAB,进行例如系统判别、频率响应分析等研究工作。
图9 WinDSP与MATLAB的系统接口
3.3 操作画面
图10是WinDSP监控软件的操作画面,图11是DSP程序的发展流程。在WinDSP的操作环境下,控制系统设计者可以高阶的C语言或低阶的汇编语言撰写控制法则(control law),再经由编译、下载、执行等过程,迅速进入实际测试与调整。WinDSP的程序发展工具整合了TI所提供的C语言编译器与组译器(assembler),让使用者可以快速的发展程序,建立链接库(library),以模块化方式发展控制程序。