基于MATLAB的DSP快速控制原型开发系统

合集下载

基于matlab的dsp实现

基于matlab的dsp实现
引言
数字信号处理(Digital Signal Processing——DSP)是一 门涉及许多学科且广泛应用于许多领域的新兴学科。DSP 包 括两重含义数字信号处理技术(Digital Signal Processing)和 数字信号处理器(Digital Signal Processor) 。 随着微电子技术、 信息技术和计算机技术的迅猛发展,数字信号处理技术应运 而生,发展迅速,并且日趋完善和成熟。数字信号处理已成 为一门极其重要的学科和技术领域,数字信号处理在通信、 语音、图像、自动控制、雷达、军事、航空航天、医疗和家 用电器众多领域获得了广泛应用。数字信号处理器(DSP)是 利用计算机或专用处理设备,以数值计算的方法,对信号进 行采集、滤波、增强、压缩、估值和识别等加工处理,借以 达到提取信息和便于应用的目的,其应用范围涉及几乎所有 的工程技术领域。
8.实验总结
通过这次的实验使我懂得了理论与实际相结合的重要性, 只有理论知识是远远不够的,只有把所学的理论知识与实践 相结合起来,从理论中得出结论,才能真正为社会服务,从 而提高自己的实际动手能力和独立思考的能力。在实验过程 中遇到问题, 可以说是困难重重, 也发现了自己的不足之处, 对以前所学过的知识理解得不够深刻,掌握得不够牢靠,通 过此次实验,让自己学到了许多东西,在此感谢老师的教导 和其他同学的无私帮助。
一.实验目的
1)学习 DSP 系统的构成及软件设计方法,编写 DSP 程序, 掌握 CCS 软件的调试方法。 2)掌握直方图统计的原理和程序设计方法。
二.实验设备
1)PC 机一台,操作系统为 Windows7,为了兼容性考虑,我 们在计算机上安装 VMware Workstation 虚拟机软件,并虚拟 WindowsXP 系统环境,以达到实验要求。 2)在虚拟 WindowsXP 系统下安装 CCS5000 及 MATLAB 仿真 软件。

dspace配置的优缺点比较

dspace配置的优缺点比较

dSPACE*** 基于Matlab/Simulink平台***实时快速原型及硬件在回路仿真的一体化解决途径1概述在当今社会,市场对产品的需求呈现多样性、快速性的趋势,这就使企业的新品开发面临着多样性需求与快速开发之间的矛盾;同时对控制系统鲁棒性及可靠性的要求也日益增加;另外并行工程(即:设计、实现、测试和生产准备同时进行)被提上了日程。

DSPACE 的产品为并行工程的实现创造了一个良好的环境。

对于进行控制算法研究的工程师而言,最头疼的莫过于没有一个方便而又快捷的途径,可以将他们用控制系统设计软件 (如MATLAB/Simulink) 开发的控制算法在一个实时的硬件平台上实现,以便观察与实际的控制对象相连时,控制算法的性能;而且,如果控制算法不理想,还能够很快地进行反复设计、反复试验直到找到理想的控制方案。

对一些大型的科研应用项目,如果完全遵循过去的开发过程,由于开发过程中存在着需求更改,软件代码甚至代码运行硬件环境不可靠(如:新设计制造的控制单元存在缺陷)等问题,最终导致项目周期长、费用高,缺乏必要的可靠性,甚至还可能导致项目以失败告终。

这就要求在开发的初期阶段就引入各种试验手段,并有可靠性高的实时软/硬件环境做支持。

另外,当产品型控制器生产出来后,测试工程师又将面临一个严重的问题。

由于并行工程的需求,控制对象可能还处于研制阶段,或者控制对象很难得到,用什么方法才能在早期独立地完成对控制器的测试呢?我们将这些问题概括为两种:快速控制原型(RCP)和硬件在回路仿真(HILS)。

d SPACE 提供了这两方面应用的统一平台。

2Dspace介绍dSPACE实时仿真系统是由dSPACE公司开发的一套基于MA TLAB/Simulink的控制系统开发及测试的工作平台,实现了和MATLAB/Simulink的完全无缝连接。

dSPACE实时系统拥有具有高速计算能力的硬件系统,包括处理器、I/O等,还拥有方便易用的实现代码生成/下载和试验/调试的软件环境。

基于MATLAB_xPC的快速原型技术的应用

基于MATLAB_xPC的快速原型技术的应用
您的论文得到两院院士关注 文章编号:1008- 0570(2007)01- 1- 0055- 03
控制系统
基于 MATLAB/xPC 的快速原型技术的应用
Th e Us e o f RCP Ba s e d o n MATLAB/xPC
(西南科技大学)毕 效 辉 王 书 张 琦
BI XIAOHUI WANG SHU ZHANG QI
《 P LC 技术应用 200 例》
邮局订阅号: 82-946 360 元 / 年 - 55-
控制系统
中 文 核 心 期 刊《 微 计 算 机 信 息 》( 测 控 自 动 化 )2007 年 第 23 卷 第 1-1 期
字符串代表不同的含义, 而每个字符串都以 8 位二进制数 0DH
结尾, 这些命令可以实现对 ADAM5000 的配置及数据交换。
cmd.param=' 0' ;//502 的通道号
BuildCmd(&cmd);
这段 代 码执 行 后 , 在数 组 cmd.ostring 中 所装 的 字 符 串 为 :
#01S2C01程序时有两种硬件访问方式: 查询方式和
中 断 方 式 。这 里 因 为 我 们 可 能 在 算 法 框 图 中 嵌 入 多 个 设 备 驱 动
} OBJSTRING;
int BuildCmd(OBJSTRING *cmd);
该函数的功能是生成一个送信号命令字符串, 使用该函数
前 , 须 填 写 结 构 OBJSTRING, 比 如 要 生 成 向 底 座 地 址 为 01, 插
技 口 号为 2, 通 道 号为 0 的 5024 送 去 12.4mA 电 流 信 号的 命 令 字
技 术 创 新
3 设备驱动程序模块的开发

基于Matlab的自动变速器电控单元快速控制原型设计

基于Matlab的自动变速器电控单元快速控制原型设计

卡的公司很多,为此mathworks公司提供r一种通用的10驱动接口
方式,也就是通过s函数来实现。simulink提供有S函数接口模块,
只需要用户编写s函数,然后在S甬数模块添加用户编写的s函数
名。就口I以与仿真模型连接上。在实时应用程序牛成过程中模型代
码会自动与该S函数链接编译。本次试验用的是北京中泰研创科技
第35卷第5期 2008年10rter
V01.35 No.5 Oct。.2008

基于Matlab的自动变速器电控单元快速控制原型设计
张彦会,谭 或,李建平
(中国农业大学工学院.北京100083)
摘要:利用图形建模方法和快速控制原型技术对机械式自动变速器(AMT)电控单元进行开发设计。首先,用matlab的sireulink
(n。)对应关系通过5次曲线拟合褥到,然后饭据拟合曲线生成转
牧稿日期:2007—09—12;牧修改稿日期:2007—10—10 -96·
万方数据
张彦会等:基于Matlab的自动变速器电控单元快速控制原型设计


油f】

坡度


发动机转矩 :动机转速 发动机功率
I门 油耗
发动机模型——==
厂F=====兰—1
include“Usb7kC.h”,并声明结构体变量ZT—USBBOARD
MyUSB7333;②在mdlStart()中调用函数OpenUSB7kC
(&MyUSB7333)打开板卡,MyUSB7333.1lndex=a(a为S函数的参
数用来设置索引号即板卡号),MyUSB7333.nCh=b(b为s函数的
2 AMT电控单元侠速控制原型的开发过程
运用图形建模方法、快速控制原型(RCP)、代码自动隹成、硬件 在环验证、系统标定的”V”型迭代开发过程是大型项目的现代开发 方法.其中图形建模方法和快速控制原型是代码自动生成、硬件在环 验证、系统弥定的基础。快速控静j原型广泛应用于汽车、航空航天和 工业控制领域。简单地说就是采用先进的控制系统窘模j:具进行建 模,并生成代码,用其他控制器(PC.compact PC。或单板机)l临时代替 将要开发的实际控制器,快速对挖制算法进行验证和测试,在殴计阶 段发现问题并解决问题。快速控制原型的开发过程是:首先,建立离

Matlab在基于DSP数字式逆变控制器的应用

Matlab在基于DSP数字式逆变控制器的应用

34256656 7/8950 :;8 7< =’""" +,- 模块,进行逆 变控制器的模型仿真、 = 语言代码生成和编程下载,
一体化地完成整套系统的开发流程。
*
基于 &’( 的数字式逆变器硬件设计
本数字式逆变器采用单相半桥逆变结构, 逆变
7.,*’"AB’%"? +,- 芯 片 之 中 , 经 过 +,- 片 内 的 M N + 转换模块,变为数字信号, +,- 对信号进行数
信号处理器(+,-)芯片得到了广泛的应用。利用
./01/2 公 司 最 新 推 出 的 针 对 +,- 应 用 系 统 而 开 发 出 的 嵌 入 式 系 统 目 标 模 块 —34256656 7/8950 :;8 用户可以更为方便地应用 +,- 芯片 7< =’""" +,-,
进行产品开发, 通过使用该模块, 不仅可以进行电 并下 路级的模型仿真, 还可编译 生 成 = 语 言 代 码 , 载到硬件电路板, 直接运行程序, 进行系统设计验 证, 从而大大提高产品开发效率。 以 7< 公司的 7.,*’"AB’%"? +,- 作 为 数 字 式 逆变器的核心控制芯片,利用 ./01/2?C" 版本中的
)
引言
随着电力电子设备日趋数字化、 集成化, 数字
数 字 式 逆 变 控 制 器 选 择 美 国 7< 公 司 推 出 的
7.,*’"AB’%"? 器件。该器件是 7.,*’"=’EE 型 !L
位定点数字信号处理器的系列成员之一, 不仅继承 能实现实时控制的优 点 , 而且 了 +,- 运算速度快, 内部集成了完善的外围设备。尤为突出的是, 它能 够通过软件实现输出各种 -D. 波形,因此在基于

基于MATLAB的DSPace快速控制原型开发系统

基于MATLAB的DSPace快速控制原型开发系统

微纳科技cSPACE快速控制原型开发系统(基于MATLAB的DSP快速控制原型开发系统)一.产品简介 (1)二.系统组成 (1)三.硬件资源 (2)四.应用案例 (3)4.1.直线电机驱动的二级倒立摆的控制 (3)4.2.磁悬浮球系统的控制 (4)4.3.三容水箱过程控制实验系统的控制 (5)4.4.采用磁流变液阻尼器的1/4车辆振动实验系统的控制 (5)一.产品简介快速控制原型(Rapid Controller Prototyping,RCP)和硬件在回路实时仿真(Hardware-in-Loop,HIL)是目前国际上控制系统设计的常用方法,它把计算机仿真(纯软件)和实时控制(硬件在回路)有机结合起来,用户可把仿真结果直接用于实时控制,极大提高控制系统的设计效率。

目前,这一系统或设计方法已经在高校和实验室得到普遍采用,最典型的例子为德国的dSPACE快速控制系统原型设计系统。

dSPACE卡是一个基于MATLAB/Simulink开发环境的自动代码生成工具,拥有快速控制原型开发和硬件在环仿真功能。

应用这种方法,可使电控单元系统及机械控制系统的开发和测试简捷和高效。

因此,dSPACE已经成为运动控制和过程控制开发的好工具,受到了全球用户的欢迎。

本公司研制的cSPACE快速控制原型和硬件在回路开发系统(以下简称cSPACE系统)基于TMS320F2812DSP开发,与dSPACE 公司的DS1104卡相当,拥有AD、DA、IO、Encoder和快速控制原型开发、硬件在环仿真功能,通过Matlab/Simulink设计好控制算法,将输入、输出接口替换为公司的cSPACE模块,编译整个模块就能自动生成DSP代码,在控制卡上运行后就能生成相应的控制信号,从而方便地实现对被控对象的控制。

运行过程中通过cSPACE提供的MA TLAB 接口模块,可实时修改控制参数,并以图形方式实时显示控制结果;而且DSP采集的数据可以保存到磁盘,研究人员可利用MATLAB对这些数据进行离线处理,下图为利用cSPACE工具的开发流程图。

基于快速原型控制器的过程控制实验平台

基于快速原型控制器的过程控制实验平台
(2)现有实验平台所采用的编程语言,在进行控
收稿日期: 2019-05-20 基金项目: 国家自然科学基金项目(61603393);中国矿业大学研
究生教育教学改革研究与实践项目(YJSJG-2018-035) 作者简介: 代伟(1984—),男,河南安阳,博士,副教授,主要
研究方向为智能与数据驱动的复杂工业过程建模、运行 优化控制理论的研究。 E-mail: weidai@
ISSN 1002-4956 CN11-2034/T
信息技术研究与应用
实验技术与管理 Experimental Technology and Management
第 36 卷 第 11 期 2019 年 11 月 Vol.36 No.11 Nov. 2019
DOI: 10.16791/ki.sjg.2019.11.030
Abstract: Taking dual-tank as controlled object, a rapid prototyping controller based process control experimental platform is developed by adopting the rapid control prototype technology and combining the real-time simulation environment provided by RTW (Real Time Workshop)/xPC Target toolbox with the operation monitoring software based on WPF (Windows Presentation Foundation). This platform supports the automatic code generation and on-line parameter adjustment, improves the efficiency of control algorithm design and verification, and has a good effect on deepening students’ understanding and mastering process control system and improving their ability to solve complex engineering problems. Key words: rapid control prototype technology; process control; dual-tank

基于Matlab的DSP控制系统系统级开发方法

基于Matlab的DSP控制系统系统级开发方法
Math Works 公司和 TI 公司联合开发 的工具包—— Matlab Link for CCS Development Tools把Matlab和DSP集成开 发环境 CCS 及 DSP 连接起来。利用此工具 可以像操作 Matlab 变量一样来操作 TI DSP 的存储器或寄存器,开发人员在 M a t l a b 环境下就可以完成对 CCS 的操作。Matlab Link for CCS Development Tools 可以支 持 CCS 能够识别的任何目标板,包括 TI 公 司的 DSK、EVM 开发板和用户自行开发的 DSP 板。把 Matlab Link for CCS Development Tools工具包与Target for TI C 2 0 0 0 工具包配合使用,则可以直接由 Matlab 的仿真模型生成 DSP 的可执行代 码,即在 Matlab 环境下完成 DSP 控制系统 开发的整个过程[1]。
(5)位置及转速计算模块(见图 7)由 C28x QEP 子模块、CAP3INT 子模块、 QEP_latch 子模块、speed_position 子模块、 Starup_ramp 子模及 IIRfilter 子模块组成, 其基本工作原理:在系统启动阶段,编码 器 index 信号被第一次捕获前,init_latch 标 志信号为 0 ,电机处于启动工作模式,由 start_ramp 子模块实现电机的启动;当编 码器 index 信号被第一次捕获后,init_latch 标志信号置 1 ,系统切换到正常工作状态。 系统通过 C28x QEP 子模块对正交编码脉 冲进行计数;通过 CAP3INT 子模块捕获 编码器 index 信号的跳变及跳变时刻正交 编码脉冲的计数值;通过 speed_position 子 模块结合正交编码脉冲计数值(Q E P )及 CAP3INT 的捕获值(cap_value)估算电机

基于DSP的快速控制原型系统

基于DSP的快速控制原型系统

收稿日期:2008-10-20基金项目:高等学校学科创新引智计划项目(B08015)#作者简介:方 正(1981-),男,安徽寿县人,东北大学讲师,博士#第30卷第8期2009年8月东北大学学报(自然科学版)Journal of Northeastern U niversity(Natural Science)Vol 130,No.8Aug.2009基于DSP 的快速控制原型系统方 正,张淇淳,齐玉成(东北大学流程工业综合自动化教育部重点实验室,辽宁沈阳 110004)摘 要:为了在实际控制系统开发中缩短控制算法的设计周期,提高控制器的可靠性,并简化在调试过程中对控制算法的修改,设计与开发了基于DSP 的快速原型控制系统#该系统包括基于T I F 2812DSP 的硬件控制器和基于M AT L AB/Simulink 的软件开发环境#用户可以在Simulink 环境中利用RT W 功能直接从Simulink 模型自动生成可执行代码,并下载到DSP 控制器中进行实时控制,从而降低了开发人员繁重的编程任务,提高了控制系统开发的效率#通过带有神经网络补偿和前馈补偿的智能P D 控制器的实时控制实验,验证了系统的有效性#关 键 词:快速控制原型;T I DSP ;Simulink;自动代码生成;PD 控制器中图分类号:T P 273.5 文献标识码:A 文章编号:1005-3026(2009)08-1069-05A Rapid Control Prototyping System Based on DSPFANG Zheng ,Z H AN G Qi -chun,QI Yu -cheng(Key L aboratory of Integrated Automation of Pr ocess Industry,M inistry of Education,Northeaster n U niv ersity,Shenyang 110004,China.Correspo ndent:FA NG Z heng ,E -mail:fang zhneg @)Abstract :To shorten the periods required for developing control algorithms,im prove the reliability of controllers and simplify the modification of control algorithms,a DSP -based rapid control prototyping (RCP)system w as designed and developed.The RCP system is composed of a hardware controller w ith T I F2812DSP embedded in it and an integrated software development environment provided by MAT LAB/Simulink.T hrough the Rea-l T ime Workshop function ofM ATLAB,users can directly g enerate executable codes from Sim ulink model and dow nload them into the DSP controller for rea-l time control,thus reducing developers .heavy programming tasksand enhancing the efficiency of R&D.A rea-l time control experiment w as done for the intelligentPD controller w ith neural netw ork and feedforw ard compensation to demonstrate the validity of the system.Key words:rapid control prototy ping;T I DSP;Simulink;automatic code generation;PD controller当今,开发工具对于产品快速推向市场起着重要作用#在传统的开发方法中,为了建立一个实时控制系统,设计者通常需要编写大量的代码,然后还需要在代码中调节控制器参数来进行控制器调试#这样,开发人员不仅要拥有丰富的代码编写经验以及花费很多精力编写代码,而且所设计的系统的可靠性也很难保证#此外,大量的代码也为后期的系统维护和调试带来很多困难#快速控制原型[1](rapid control prototy ping,RCP)是解决这一问题的有效方法,特别是对于复杂控制算法的设计与开发#目前,快速控制原型思想对于工业界和教育界中广泛应用的控制系统和机器人都产生了巨大的影响#快速控制原型影响工业界的重要原因是它可以节省在不同设备上开发控制算法的时间,从而可以减少30%~40%的开发费用#RCP 释放了在控制执行时的细节问题,如控制算法在计算机上的C 代码编程实现等,从而加速了控制策略的实现#目前国外有一些公司提供了RCP 系统的软件和硬件解决方案#如VisSim (Visual SolutionsInc.),MATRIXx(National Instruments),以及M ATLAB(M athWorks Inc.)等提供了图形化的编程环境来进行控制器的设计#其中,MATLAB/ Simulink是知名度最大和最为流行的控制系统设计与仿真软件#MAT LAB的扩展工具RT W提供了从Simulink模型到C语言代码的自动生成功能#因此,有一些研究者[2-4]利用MATLAB/ Simulink和商业化的硬件系统进行快速原型系统的研发#Strobel[2]提出了基于dSPACE和Simulink的汽车系统的温度控制快速原型控制系统#dSPACE控制器虽然功能较强大,但是价格极其昂贵,不适合一般研究机构使用#Hong[4]等描述了利用MATLAB和TI的TMS320C30评估板进行数字信号处理的快速原型系统#但是这些系统都不适合实时控制,并且由于使用的是评估板,因此硬件资源非常有限#在MATLAB所支持的嵌入式对象中,TI的C2000系统是最适合伺服系统实时控制的#MATLAB的T arget for T I C2000[5]提供了在T MS320F2812和T MS320F2407eZdsp开发板上直接利用Simulink 进行编程和实时控制的功能,但是TI eZdsp开发板的价格较昂贵,且硬件接口资源有限,无法实现如多轴运动控制、高精度采样以及无线控制等#为了解决以上问题,本文提出了基于T I TMS320F2812DSP的快速控制原型系统方案,并设计与开发了相应的软硬件系统#1总体设计思想快速原型控制系统设计的要点在于把握好设计需求,从快速性、有效性的角度制定总体方案,然后选择或设计合适的软硬件平台#软件系统要以提高系统开发效率为目的,具有实时性高、可靠性强、易于使用和维护等特点#本文所设计的快速原型控制系统主要面向科研与教学,因此不仅要考虑系统的性能,也要考虑设备成本,以获得较高的系统性价比#针对以上需求,提出了一种基于DSP的快速原型控制系统的低成本设计方案,它提供了完整的硬件接口和基于M ATLAB/Simulink的高效的软件开发平台#系统的总体结构如图1所示#图1基于D SP的快速控制原型系统总体结构Fig.1Architecture of rapid control prototyping system based on DSP2基于DSP的硬件系统设计在硬件系统设计中,核心处理器必须具有很高的运算速度来完成复杂算法运算并且支持自动代码生成功能#TMS320F2812是满足以上需求的很好选择[6],因此本文采用该芯片来开发硬件控制器系统#硬件系统结构如图2所示#虽然F2812DSP的硬件资源较丰富,但是只利用F2812DSP自带的基本资源还不能满足常用控制系统的要求#例如:F2812DSP只提供了2个编码器输入,这样只能同时采集两路增量式编码器脉冲;自带的AD转换器转换精度较差,且稳定性不高,不适合高精度的控制;没有提供无线通讯和网络通讯接口等#因此,本文在F2812DSP芯片的基础上对硬件系统进行了功能扩展,增加了2路编码器信号输入、11路12位高精度AD输入图2硬件系统结构图Fig.2Architecture of hardware system 1070东北大学学报(自然科学版)第30卷和1个无线通讯接口,以及4路直流电机驱动接口等,使得该系统可以满足大部分机电一体化控制、机器人控制以及工业控制系统的硬件需求#本系统的硬件资源较丰富,但是成本却远远低于商业化的快速原型控制系统,所以非常适合大学和研究机构的实验系统使用#3基于MAT LAB的软件系统设计系统软件平台是基于MAT LAB/Simulink环境开发的,主要由用户界面、驱动接口模块和控制算法库模块组成#用户界面模块主要是为控制系统开发者提供一个开发环境,并显示硬件系统的Simulink驱动接口以及提供的算法库等#在用户界面环境中,开发者可以利用Simulink工具箱来设计控制器,并进行仿真#如果仿真结果满意,则可以利用MATLAB的RTW功能把Simulink算法生成CCS环境下的C代码,并进行编译,最后通过仿真器把可执行代码程序下载到硬件系统中运行#这样,整个软件系统集被控对象建模、控制器设计与仿真以及实时控制为一体,可以极大地提高实时控制系统的开发效率#驱动接口模块的主要功能是提供Simulink 对硬件系统的支持#由于MATLAB的Target for TI C2000只提供了F2812DSP片上接口的驱动,对于扩展模块没有提供Simulink接口模块,所以必须自行开发扩展模块的硬件接口库#Simulink 驱动模块库的开发使用了MAT LAB中的S函数[7]及TLC文件两种关键技术#TLC文件的一个非常重要的功能就是能够内嵌(Inline)S函数,从而用户可以将自己的算法、设备驱动和用户模型增加到Simulink模型代码中#图3给出了Simulink模块开发流程的示意图#控制算法库的主要功能是提供一些常用的控制算法模块,用户可以通过更换不同算法模块来验证不同算法在硬件系统上的实际控制效果#由于F2812是32位定点处理器,因此在开发过程中为了提高处理性能,采用了MATLAB的QImath 库函数#所开发的硬件驱动模块包括:AD模块、PWM模块、编码器模块、DI/DO(Digital IO)模块、串口通讯模块和无线通讯模块等#控制算法模块包括:离散PID模块、LQR模块、最优PID整定模块、模型参考自适应控制模块等#图3Sim ul ink模块开发流程图Fig.3D eveloping flowchart of Si m uli nk module4实验与分析为了验证所开发系统的综合性能,本文利用Quanser(http:M w .)公司的SRV02被控对象设计了智能PD控制实验,用以验证利用该系统可以快速进行复杂控制算法的设计与精确的实时控制#为了实现高精度的跟踪控制,本文设计了带有前馈补偿器和RBF神经网络补偿器的智能PD控制器#控制器结构如图4所示#SRV02伺服控制系统的数学模型可以表示如下:A(z-1)y(k+1)=B(z-1)u(k)+$(x)#(1)式中:u(k),y(k)分别为系统的输入输出;$(x)为系统的非线性项;A(z-1)=1+a1z-1+a2z-2;B(z-1)=b0+b1z-1;b0,b1,a1,a2为系统未知参数;x=[y(k),y(k-1),u(k),u(k-1)]T#设计智能PD控制器为H(z-1)u(k)=K P e(k)+K D[e(k)-e(k-1)]+A(z-1)H(z-1)r(k+1)/B(z-1)-K(z-1)u$(k)#(2)式中:K P和K D分别是PD控制器的比例和微分系数;e(k)=r(k)-y(k);H(z-1)=1+h1z-11071第8期方正等:基于DSP的快速控制原型系统为滤波器;h1是待定系数;u$(k)是非线性项补偿#在k时刻,非线性项$(x(k))未知,可采用RBF神经网络逼近非线性项$( x(k)),构造神经网络估计器:u$(k)=W^(k)T S( x(k))#(3)式中:W^(k)I R l是权值向量,l为神经网络的隐层数;x(k)为神经网络的输入向量;S(x(k))= [s1( x(k)),,,s l( x(k))]T,s i( x(k))为高斯函数,i=1,2,,,l#神经网络估计误差为E(k)=$^(k)-$( x(k))#(4)采用文献[8]中的神经网络权值修正函数:W^(k)=W^(k-1)-#S(k)E(k)#式中#=C I,且C是正数#将非线性项的神经网络估计器式(3)代入式(2),可以得到智能PD控制器:H(z-1)u(k)=K P e(k)+K D[e(k)-e(k-1)]+A(z-1)H(z-1)r(k+1)/B(z-1)-K(z-1)$^(k)#(5)图4智能PD控制器结构Fig.4Intelligent PD controller实验中,选择采样周期T0=01001s,给定信号周期为4s、幅值为100b的正弦信号#经过参数辨识得到:A(z-1)=1-11966z-1+01966z-2,B(z-1)=3.015@10-5+2.98@10-5z-1#采用极点配置方法[9],最终得到PD参数分别为K P=3976,K D=74#神经网络的隐层数l=11,高斯函数中心点平均分布,高斯函数宽度为4,输入信号为x(k)=[y(k),y(k-1),u(k),u(k-1)]T,输出信号为$^(k),初始权值W^(0)=0#假定权值的上下限为?015#选择神经网络的学习率为C=011#在Simulink中完成控制器设计后,直接点击Simulink的编译按钮,Simulink模型将被自动转化为可执行程序,并下载到快速原型控制器上,快速地实现实时控制#图5分别给出了利用PD,PD加神经网络补偿和PD加神经网络补偿及前馈补偿的控制误差曲线#图5不同控制器的误差曲线Fig.5Error cu r ves of the different controllers(a))P D控制;(b))PD加神经网络补偿控制;(c))P D加神经网络补偿及前馈补偿控制#由实时控制曲线可以看出:PD控制器加上神经网络补偿后,系统由于摩擦力突变而产生的非线性已经通过神经网络得到补偿;在非线性项得到补偿后,再增加前馈补偿器,则系统线性部分的动态性能得到了显著提高#通过以上实验分析可以看出,利用此快速原型控制系统,用户可以在MATLAB/Simulink环境下进行复杂控制算法的设计,并直接进行实时1072东北大学学报(自然科学版)第30卷控制#实验结果表明,控制器的实时性能和控制精度较高,能满足大部分控制系统需求#5结语提出了基于DSP的快速控制原型系统,设计与开发了相应的软硬件系统#通过智能PD控制器的实时控制实验,验证了系统的有效性#本文所提出的快速控制原型系统由于其控制性能优越且成本低,在控制实验系统中有着非常广泛的应用前景#参考文献:[1]Zhao Y,Cong D C,Han J W.An integrated approach for therealization of the rea-l time control in electro-hydraulic servo system[J].Ap plied M ec hanics and M aterials,2008,10/11/ 12(1):513-517.[2]Strobel M.Rapid control prototyping of automatic climatecontrol s ystems[J].Ad vanced M icrosystems f or Au tomotiv eA pplications,2003,2(3):387-407.[3]Rebeschiess S.M IRCOS)microcontroller-based real timecontrol system toolbox for use w ith M atlab/S i mulink[C]MProc IEEE Int Sym p Computer Aided Control SystemDesign.Haw aii:IEEE Press,1999:267-272.[4]Hong K H,Gan W S,Chong Y K,et al.An integrateden vironment for rapi d prototypi ng of DS P algorithms using M atlab and T exas instrum ents.T M S320C30[J].M icr oprocessor s and M icrosystems,2000,24(7):349-363.[5]Duma R,Dobra P.Rapid prototyping of control systems usingembedded target for T I C2000DS P[C]M M editerranean Conference on Control and Automation.Athens:IE EE Press, 2007:1-5.[6]Li W M,Xu G Q,Hang T,et al.Design of vehicle controlunit based on DSP[C]M Proceedings of the IE EE International Conference on Automation and Logistics.New York:IEEE,2007:1597-1601.[7]M athw orks Inc.Rea-l time w orkshop)user.s guide[M].Natic:M athw orks Inc,2000:242-259.[8]Ge S S,Zhang J,Lee T H.Adaptive M NN control for a classof non-affine NARM AX systems w i th disturbances[J].Systems&Con trol L etters,2004,53(1):1-12.[9]苏迪前,饶立昌,柴天佑#自适应控制[M]#沈阳:东北大学出版社,1994:81-84#(Su D-i qi an,Rao L-i chang,Chai Tian-you.Adaptive control [M].Sh enyang:Northeastern University Press,1994:81-84.)(上接第1068页)[6]M ontestruque L A,Antsaklis P J.State and output feedbackcontrol in mode-l based networked control s ystems[C]MProceedings of the41st Conference on Decision and Control.Las Vegas:IEEE,2002:1620-1625.[7]邱占芝,张庆灵#一类不确定时延状态反馈网络化系统鲁棒稳定性[J]#东北大学学报:自然科学版,2006,27(2):131-133#(Qi u Zhan-zhi,Zhang Qing-li ng.Robust stabili ty of a classof status feedback networked control systems w i th uncertai ntime-del ay[J].Journal of Northeaster n Univer sity:Natur al Science,2006,27(2):131-133.)[8]M ontestruque L A,Antsaklis P J.On the mode-l basedcontrol of networked systems[J].A utomatica,2003,39(10):1837-1843.[9]M u S M,Chu T G,Wang L.An improved mode-l basedcontrol scheme for netw orked s ystems[C]M2004IE EEInternational Conference on Systems,M an,and Cybernetics.Piscataw ay:IEEE,2004:6131-6136.[10]Hao F,Chu T G,Huang L,et al.No-fragile controllers ofpeak gain minimization for uncertain sys tems via LM Iapproach[J].Dynamics of Continuous,Discrete andI mpu lsiv e S yste ms:S eries B,2003,10(5):681-693.[11]王松桂,吴密霞,贾忠贞#矩阵不等式[M]#北京:科学出版社,2006:55-56#(Wang Song-gui,Wu M-i xia,Jia Zhong-zhen.M atrixinequality[M].Beijing:S cience Press,2006:55-56.)1073第8期方正等:基于DSP的快速控制原型系统。

基于MATLAB的控制系统设计软件开发

基于MATLAB的控制系统设计软件开发
图1控制系统CAI应用软件结构图
各级界面主要利用向导编辑器GUIDE中提供的控件,利用图标及其对应的功能来设计友好的交互式界面.使用Property Inspector修改控件属性,如背景色、前景色、字体及大小、位置、标志、类型等.借助GUI设计面板提供的控件布置编辑器Align Objects!,很容易的对所选对象进行水平、垂直和间隔排列布置.
基于MATLAB的控制系统设计软件开发,控制工程基础是以讲述古究过程中,常需要对控制系统用MATLAB进行仿究,
MATLAB虽功能强大,对这方面的分析都有相应命令,但命令繁多,分析起来过于零散的
性质有个整体的掌握,况且像MATLAB这么大的软件学起来也较困难。为能够更快更好掌握控制系统的性质,把多而散的命令整合起来,开发了控制系统CAI应用软件。使用此软件时用户只需输入系统参数,然后点击相关按钮,就可以快速得到所求相应的结果。
[13]张志涌.掌握和精通MATLAB[M].北京:航空航天大学出版社,1997..
[14]张延华许阳明.Matlab使用指南[M].北京:科学技术文献出版社,1998..
[15]张延华,MATLAB使用指南,1998年
毕业设计开题报告
2.本课题要研究或解决的问题和拟采用的研究手段(途径):
软件采用MATLAB开发平台,利用其可视化编程能力的图形用户界面GUI,按照控制教学、实验、应用等内容,设计出相应的控制系统CAI应用软件结构图,如图1所示.系统主界面由6个主要子窗体模块构成,分别为时域响应分析、频域响应分析、根轨迹分析、稳定性分析、稳态误差分析及模型转换.通过单击主界面上子模块相应的按钮即可启动相应的子窗体,另三个按钮分别为系统功能简介、帮助和退出按钮.帮助和退出按钮是每一级窗体界面必须具备的按钮,通过帮助按钮可随时了解该窗体的相关内容和操作方法,通过退出按钮可实现任意一级窗体的自由退出,各功能子模块均为MATLAB系统的应用程序,以M文件形式出现.各软件模块主要的功能简介如下:

基于MATLAB产品集的DSP应用系统的软件开发

基于MATLAB产品集的DSP应用系统的软件开发

第9卷 第4期鹭江职业大学学报V ol.9 N o.4 2001年12月Journal of Lujiang University Dec.2001 [文章编号]1008-3804(2001)04-0063-05基于MAT LAB产品集的DSP应用系统的软件开发陈丽安(鹭江职业大学电子系,福建厦门361005)[摘 要]阐述了M AT LAB产品集对DSP应用系统的软件从算法研究、仿真到实现等各个开发环节的支持,着重介绍了MathW orks公司新近推出的Developerπs K it及其在TI C6701E VM系统开发中的应用.关键词:M AT LAB;DSP;开发[中图分类号]TP391.9 [文献标识码]ADSP(Digital Signal Process or,数字信号处理器)是一种功能强大的特种微处理器。

与工业自动化控制中常用的8位或16位通用单片机相比,DSP芯片具有更适合于数字信号处理的软件和硬件资源,使其拥有强大的数据处理能力和极高的运行速度,广泛地应用于数据、语音、视像信号的高速数学运算和实时处理等方面.在DSP领域,TI公司(T exas Instruments Incorporated,德州仪器公司)一直处于世界霸主地位,它的市场占有率占全球应用市场的近50%,其T MS320系列的DSP芯片以其独特的哈佛结构,硬件密集型方案和灵活的指令系统,成为数字信号处理器产业中的领先者[1].由于DSP芯片的特殊结构,使其软硬件的开发过程较通用单片机复杂,影响了DSP的推广使用.为了加快DSP产品的开发过程、扩展DSP技术的应用领域,TI公司不断地开发新的平台,如新近推出了eX pressDSP,为T MS320系列提供了实时软件技术环境,包括CCS(C ode C om poser Studio)、I DE(Integrated Development Environment,集成开发环境)、DSP/BI OS实时软件内核、T MS320算法标准等,以实现把DSP 的软件开发时间减半,将DSP的应用扩大十倍的目标.同时,对DSP的软件开发也随着M AT LAB产品集(以下所讲M AT LAB均泛指M AT LAB 产品集)功能的不断增强而变得越来越容易.M AT LAB是MathW orks公司开发的一套高性能数值计算可视化软件,它包含了许多功能强大的工具箱,应用于自动控制、信号分析、图像处理等诸多领域,已成为科学及工程领域首选的计算机辅助工具软件.DSP软件开发的几乎每一个环节均可借助M AT LAB完成.一般来讲,在具体实现DSP功能之前,应充分利用 [收稿日期]2001-08-31[作者简介]陈丽安(1966-),女,福建龙岩人,福州大学在职博士研究生,副教授,主要研究方向为人工智能技术、智能电器等.M AT LAB 编程简单、调试方便、易于仿真等优点对DSP 软件进行算法研究及仿真,以检验设计思想是否合理、算法模型是否正确、可靠性如何等,并不断对原方案进行修正,直至得到满意的结果为止.当设计方案确定下来之后,便需进行实时仿真及DSP 实现.一般的作法是根据在M AT LAB 中确定的算法,用DSP 汇编语言、C 语言或C 与DSP 汇编语言混合的方法进行DSP 编程,并通过编译、链接,生成DSP 代码,最后将可执行代码载入至DSP 芯片上实现设计功能.这种方法将M AT LAB 算法研究与DSP 代码编制截然分开,造成重复设计,延长了研制周期,这一问题已成为加速DSP 开发、推广DSP 使用的瓶颈之一.如何将M AT LAB 中实现的DSP 算法直接在DSP 芯片中实现,是DSP 开发设计人员的一个梦想,也是许多科技工作者为之奋斗的目标.MathW orks 公司抓住了机遇,推出了Real -T ime W orkshop ,可实现DSP 在线仿真,并可将生成的DSP 代码真接下载至dSPACE 公司生产的DSP 板级产品的处理器中.为了进一步方便研发人员开发DSP 应用系统,MathW orks 公司又于2001年2月推出了Developer πs K it for T exas Instruments DSP (TI DSP 开发者工具,以下简称Developer πs K it ).该产品的问世,给广大T MSC320系列DSP 芯片开发者带来了福音. 1 MAT LAB 对DSP 软件开发的支持1.1 DSP 应用系统软件开发流程图1 DSP 应用系统软件开发流程图DSP 应用系统软件开发流程如图1所示.由图1可见,当用户开发一个DSP 应用系统时,往往要经过算法研究、仿真及实现等阶段.由于M A T LA B 集高性能数值计算与强大的图形功能于一身,又拥有非富的工具箱,使其对DSP 的支持贯穿于DSP 软件设计开发的每一个阶段.下面分别介绍M A T LA B对DSP 软件开发各个环节的支持.1.2 M AT LAB 对DSP 软件开发的支持[2]1.2.1 M AT LAB 对DSP 算法研究的支持M AT LAB 被称为“演算纸式”的高级编程语言,这使得用M AT LAB 对DSP 算法的程序编制就象书写数学表达式一样简便.M AT LAB 除了具有强大的数据处理能力外,还提供了方便实用的绘图功能及先进的可视化工具.图形可使我们对欲处理的数据及结果有一个直观的了解.如图像压缩编解码的算法可以用M AT LAB 语言进行编程,而结果若用图形表示出来,并与原图像相比,则能对算法性能的优劣有一个直观的了解.此外,M AT LAB 还拥有与数字信号处理相关的各种工具箱,如Signal Processing T oolbox ,・46・鹭江职业大学学报2001年Wavelet T oolbox ,C ommunications T oolbox ,Filter Design T oolbox 等.这些工具箱提供了一系列专用的M AT LAB 函数库,加强了对工程及科学领域中特殊应用的支持.这些函数是用M -文件编制的,使工具箱具有开放性、可扩展性,用户可查看源代码,也可以自行开发新的算法.一些创新前沿的理论和策略均可先通过M AT LAB 工具箱进行验证、修改,再在DSP 上实现,可使开发人员少走弯路,大大缩短了开发周期.1.2.2 M AT LAB 对DSP 仿真的支持Simulink 是一种交互式非线性动态系统仿真工具.不同于其它许多仿真工具.提供真正的连续时间求解器,保证非线性模拟及混合信号系统仿真的快速性和准确性.通过Simulink 仿真,可不断地修改算法,优化和改善用户设计.此外,MathW orks 公司还开发了专用的Simulink 功能块,以作为Simulink 建模系统的补充,如DSP Blockset 和Fixed 2P oint Blockset 等.通过使用这些功能块,用户可以迅速地对某一特定系统进行建模与仿真.Stateflow 是一个创建和仿真复杂响应系统的工具,它结合有限状态机、状态转移图和流程图等多种技术,使用户能够对复杂响应系统用图形的方式清晰而简明地表达出来.通过M A T LA B 、S imulink 及S tate flow ,用户可以在集成环境下设计、仿真整个嵌入式系统的行为.1.2.3 M AT LAB 对DSP 实现的支持Real 2T ime W orkshop 和Stateflow coder 可直接将Simulink 和Stateflow 建立的模型自动生成可靠、高质量的代码,并自动地编译、链接并下载可执行代码至目标DSP 处理器上,实现实时仿真,在DSP 硬件上对用户的设计进行测试和检验,大大地提高了工作效率.另外,Re 2al 2T ime W orkshop 还为第三方产品提供了快速的原型解决方案,它可以与MathW orks 公司的合作伙伴—德国的dSPACE 公司的产品(如dSPACE I/O 板,含TI 的C31和C40DSP 芯片)联合使用,将Real 2T ime W orkshop 的DSP 代码直接下载至该板的DSP 处理器上,大大缩短了由仿真到实时实现所花费的时间.Developer πs K it 是DSP 领域新的强大的开发工具.它将MathW orks 公司的M AT LAB 、Simulink 与TI 公司的eX pressDSP 工具集成起来,为DSP 的开发设计开辟了一条新的途径. 2 Developer πs K it 及在C6701开发中的应用2.1 Developer πs K it 简介[3]Developer πs K it 使DSP 开发人员能够利用Simulink 及DSP Blockset 为数字信号处理算法建立模型,然后用Real 2T ime W orkshop 自动地为TI 公司的CCS I DE 或T MS320C6701Evaluation M odule (简称C6701E VM ,评估板)生成ANSI C 代码.最后将生成的C 代码转化为C6701机器码,并将机器码下载至C6701E VM 板上的DSP 芯片中,实现设计功能.2.2 Developer πs K it 的主要组成Developer πs K it 包括四大组件:(1)以C6701E VM 为处理目标用Real 2T ime W orkshop 生成能在C6701E VM 上运行的可执行代码.(2)以CCS I DE 为处理目标当用户创建一个Simulink 模型文件后,借助Real 2T ime W orkshop ,Developer πs K it 可为该・56・ 第4期陈丽安:基于M AT LAB 产品集的DSP 应用系统的软件开发Simulink 模型创建一个新的CCS 工程,该工程包含了build 过程所生成的所有文件,如目标代码文件(.obj )、汇编语言文件(.asm )及.map 文件等.这样,开发人员便可通过CCS I DE 所提供的各种工具调试Simulink 模型并为实时处理过程排除故障.(3)链接CCS I DEDeveloper πs K it 使M AT LAB 与CCS 中的DSP 产生链接.在M AT LAB 命令窗口,用户可运行CCS 中的DSP 程序,与目标存储器交换数据,检查处理器的状态,启动或停止CCS 中DSP 程序.总之,开发者可利用M AT LAB 强大的计算功能控制数字信号处理程序.(4)链接RT DX (Real 2T ime Data Exchange )与上述“链接CCS I DE ”相比不同,链接RT DX 能够使用户与实时运行的数字信号处理过程产生交互作用,如给处理器内存发送数据或从处理器内存中获取数据,改变程序中的运行特性,改变算法而无需中断程序或给代码设置断点. 3 应用举例Developer πs K it 软件的中心点在于开发C6701E VM 的实时数字信号处理应用系统.下面以此为例介绍Developer πs K it 的用法.C6701E VM 是TI 公司为方便T MS320C6701DSP 芯片开发者而研制的评估板,它可用于有线/无线宽带网络、语音识别、图像处理、雷达等对运算能力和存储量有较高要求的场合[4].该板主要包含如下硬件:①32位浮点DSP 芯片:T MS320C6701/167MH z ,运算能力可达1G F LOPS ;②外部存储器:2M 332Bit S DRAM (10ns ),64K 332Bit S BSRAM (7.5ns );③J T AG 接口:提供标准J T AG 接口,可与TI X DS510仿真器相连,方便调试;④CP LD :实现评估板上逻辑、时序控制;此外,还有PCI 接口、电源模块、立体声音频接口等.用Developer πs K it 开发C6701E VM 应用系统的步骤如下:(1)将C6701E VM 板安装于PC 机上,并将TI 提供的有关软件也安装于同一台PC 机上.图2 C6701evmlib 模块库(2)运行M AT LAB ,并在M AT LAB命令行键入:C6701evmlib ,打开名为C6701evmlib 的Simulink 模块库,如图2所示.该模块库包含了为C6701E VM的I/O 设备进行预配置的一系列模块,如C6701E VM -ADC (模数转换模块)、C6701E VM -DAC (数模转换模块)、C6701E VM -LE D (指示用户状态的发光二极管模块)、C6701E VM -RESET (复位模块).(3)建立Simulink 仿真模型,如果需要,可为Simulink 仿真模型添加上述C6701E VM I/O 设备.从主菜单的Simulink 中选择Simulation Parameters ,弹・66・鹭江职业大学学报2001年出对话框.在对话框中单击Real 2T ime W orkshop 标签.对C6701E VM ,需分别给“The system target file ”及“The tem plate makefile ”栏中填写合适的文件名,即“ti -c6701evm.tlc ”及“ti -c6701evm.tm f ”.(4)在Real 2T ime W orkshop 对话框中单击Build ,Real 2T ime W orkshop 使Simulink 仿真模型自动生成C 代码并将用户在Simulink 模型中指定的I/O 设备驱动程序以inline S 2functions 的形式嵌入至C 代码中.同时,makefile 调用TI 交叉编译器,产生可执行文件.如果在Real 2T ime W orkshop 对话框中单击Build and execute ,那么可执行代码将通过PCI 总线自动地下载至TI 的评估板上,下载完成后,便运行DSP 程序.从上面的介绍可以看出,Developer πs K it 使C6701E VM 的软件开发从仿真到实现不再是截然分开的两个阶段,而仅需几个简单的操作便可完成.可以预言,如果将该方法推广应用于T MSC320其它系列的DSP 芯片上,那么从DSP 算法开发、仿真到DSP 实时实现将不再是加速DSP 开发、推广DSP 使用的瓶颈.[参考文献][1]张雄伟,曹铁勇.DSP 芯片的原理与开发应用[M].北京:电子工业出版社.2000.9.[2]北京九州恒润科技有限公司网站:http ://w w ,2001. 6. 4.[3]Developer πs K it for T exas Instruments DSP User πs G uide ,MathW orks ,Inc.February 2001.[4]T MS320C6701Evaluation M odule T echnical Reference ,T exas Instruments Incorporated.December.1998.MAT LAB Products Set in Developing Softw areof the DSP Application SystemCHE N Li 2an(E lectronics Department ,Lujiang University ,X iamen ,361005China )Abstract :This paper expounded the M AT LAB products πsupport to the DSP application system from the aspects of alg orithm research ,simulation and realization.The Developer πs K it produced by the Math 2W orks corporation and the application in the development of TI C6701E VM are als o proposed in this pa 2per.K ey w ords :M AT LAB ;Digital Signal Process or (DSP );development ・76・ 第4期陈丽安:基于M AT LAB 产品集的DSP 应用系统的软件开发。

基于MATLAB的DSP实时控制软件自动生成

基于MATLAB的DSP实时控制软件自动生成

基于MATLAB的DSP实时控制软件自动生成王顺锋;孙培德【摘要】随着数字芯片速度的提高和数字信号技术的发展,DSP被广泛应用于工业控制等领域,系统开发的效率得到普遍的关注,传统的MATLAB仿真与产品硬件实现相分隔的方式已经无法满足设计的需求.提出一种基于MATLAB的DSP实时控制软件自动生成方案,并通过Simulink模型自动生成TI C2812 DSP的目标代码的应用实例,验证了代码自动生成的可执行性.【期刊名称】《微型机与应用》【年(卷),期】2015(034)008【总页数】3页(P20-22)【关键词】CCSLink;ETTIC2000;自动生成代码【作者】王顺锋;孙培德【作者单位】东华大学信息科学与技术学院,上海201620;东华大学信息科学与技术学院,上海201620【正文语种】中文【中图分类】TP368.2传统的DSP软件设计开发一般分为两个阶段:设计仿真和源代码开发实现[1]。

设计仿真阶段根据系统开发的需要,以DSP算法研究与仿真验证为主,这阶段可以利用MATLAB的Simulink模块仿真来实现;源代码开发通常采用汇编指令或C语言编写源代码,由汇编器和连接器进行链接后生成目标可执行代码。

源代码开发完成后,功能的实现主要在硬件电路板上来验证设计方案的正确性,对于软件开发者关于DSP数字芯片与硬件电路的原理有一定程度的要求,特别是各个寄存器的作用和存储空间的特性和扩展。

这两个部分通常是在不同阶段相互独立地完成,因此大大增加了系统开发的时间,系统设计的实时性也不能得到保证。

本文介绍了MATLAB中的 MATLAB与 CCS的接口和 Embeded Target for TIC2000 DSP,提出了一种基于TI C2812的软件设计思路,实现将设计仿真和源代码开发在同一平台下开展,从而有效地将开发过程中的两大阶段有机地结合在一起,大大缩短了开发周期,并通过应用实例进行验证。

Embedded Target for the TI TMS320C2000TM为 TI C2000 DSP实时控制软件的自动生成的模型仿真、源代码开发、目标代码自动生成、实时调试等各个环节都提供了技术方面的支持[2]。

基于dSPACE的实时控制系统设计

基于dSPACE的实时控制系统设计

万方数据
2010.11 I机电一体化翩
基于dSPACE的实时控制系统设计iI—I I—_—_———I—I——IIIII——III—————II———IIIIII——一————————I————蕊II
一暑要趟番一避林.蝾如昌}.翊一鳋粗毯蜃
●一 ■
0l
2 3 4 5 6 7 8 9 10 ll 12 13 14
∞机电一体化I 2010.”
万方数据
I———i蔷i 磊iiiiiiiiiiiiiiiiii—l liii——I I—————I N—I——————IIII—ii—l l—l l—l——II
Application·Communication
态误差逐渐变小。但积分作用太强,系统超调相应加 大,积分作用过大会导致系统出现振荡。如图7所示, 当K:=200时,系统的超调量约为3%。而当Ki=300 时,超调阜=约为7%。两者的稳态误差均小于l%,故取 定K;=200。
作为仿真系统的一个环节,直接与控制器相连,无需用 户建立被控对象的数学模型和传递函数。Simulink编 写的仿真程序直观易懂,用户能实时修改算法,调整控 制参数,且能与dSPACE实现无缝连接。
控制算法框图如图3所示。ENC—POS模块和DAC 模块从dSPACE系统提供的模块库中直接获取,实现与 电机驱动器的通讯功能。本文中,在驱动器中实现速 度环和电流环,控制器实现位置环。ENC—POS模块对 编码器接口获得的光栅尺反馈信号进行处理,输出位 置脉冲计数和速度差分信号。由参考位置信号与反馈 位置信号相减得到的位置偏差,经过PID控制器,斜率 限制模块和抗饱和模块后,计算得到相应的0—10 V模 拟量,经由DAC模块输出,传送给驱动器,控制电机运 动。其中,斜率限制模块防止控制信号变化过快对系统 造成损害,抗饱和模块限制控制信号在0一lo V范围内。

基于Matlab的永磁同步电机DSP控制系统开发

基于Matlab的永磁同步电机DSP控制系统开发

基于Matlab的永磁同步电机DSP控制系统开发摘要本文以基于DSP平台的永磁同步电机(PMSM)矢量控制系统为工程实例,给出了控制系统从建模仿真到DSP程序代码自动生成的设计流程。

关键词Matlab;DSP;代码自动生成;永磁同步电机;矢量控制0 引言Matlab具有强大的分析、计算和可视化功能,被广泛用于控制系统的数学建模仿真、方案验证。

开发人员设计一个控制系统,一般先用Matlab对系统的控制算法进行数学建模仿真,方案通过验证后才进行DSP系统的硬件设计及代码开发,并通过对比实际系统和仿真模型的输出,完善系统的设计。

1 基于Matlab的DSP控制系统开发流程基于Matlab的DSP控制系统开发流程如下,开发人员根据概念设计在Matlab平台下利用Simulink、SimPowerSystems及C2000lib工具箱中的模型搭建系统仿真模型,仿真验证后通过Matlab的Real Time Workshop生成面向TI编译器的工程文件(.prj),并进一步完成代码的编译,链接生成DSP可执行机器码(.out)并下载到目标DSP板,完成系统的开发。

2 永磁同步电机矢量控制算法设计矢量控制算法完成三相坐标系到两相同步旋转坐标系的变换及其逆变换,实现永磁同步电动机的解耦控制。

3 控制系统的实现3.1 基于Matlab/Simulink的系统级仿真模型建模及仿真本文根据系统控制算法,基于Matlab搭建了基于磁场定向的PMSM空间矢量控制系统仿真模型,该仿真模型包括仿真模块和嵌入式系统模块两部分。

3.1.1 仿真模块设计1)相电流模数转换子模块将永磁同步电机模型输出的相电流值转换成DSP ADC寄存器的数据格式,模拟DSP ADC外设的数据采集工作模式。

换算公式见式1.1。

ADC_sim=isa,b×50+2048(式1.1)2)编码器子模块模拟DSP EV A事件管理器正交编码脉冲QEP电路的解码和计数工作模式。

一种基于Matlab的DSP开发思路的研究

一种基于Matlab的DSP开发思路的研究

控制工程C ontrol Engineering of China May 2006V ol .13,S 02006年5月第13卷增刊文章编号:167127848(2006)S 020123204 收稿日期:2005206224; 收修定稿日期:2005207225 作者简介:汪 洋(19812),男,湖北宜昌人,研究生,主要研究方向为嵌入式系统和现场总线控制系统的开发与应用等。

一种基于Matlab 的DSP 开发思路的研究汪 洋,郭丽丽,樊丽萍(大连交通大学三合仪表开发公司,辽宁大连 116028)摘 要:提出了系统级的DSP 设计思路,采用Matlab 中的CCS Link 软件包这一工具,将算法设计和仿真在统一的开发环境中进行,实现了Matlab ,CCS 和目标DSP 的连接。

在Matlab 环境下实现对工程文件的创建、编译、加载、运行及调试等操作,并能够对目标DSP 的存储器或寄存器数据进行访问。

克服了传统设计思路中,由于代码编写出错、DSP 外围硬件接口问题、数据的量化误差等原因以及算法设计和仿真分离造成的数据偏差大和使用不便等缺点,并通过实例验证了该方案的有效性。

关 键 词:CCS Link ;Matlab ;CCS I DE;DSP ;系统级中图分类号:TP 312 文献标识码:AResearch of DSP Developing Method Based on MatlabWANG Yang ,G UO Li 2li ,F AN Li 2ping(Sanhe C om pany ,Dalian Jiaotong University ,DaLian 116028,China )Abstract :Put forward a DSP development method that is based on ing CCS Link todbox to connect Matlab ,CCS and target DSPs.Under the uniform environment of Matlab ,the developers can establish ,build ,load ,run and debug the projects ,as well as access the data in the target DSP πs storages and registers.Data warps and inconveniences are overcomed ,which is the disadvantages of the separation of arith 2metic design and simulation in the traditional design.An exam ple is dem onstrated to illustrate the effectiveness of the method.K ey w ords :CCS Link ;Matlab ;CCS I DE;DSP ;system1 引 言Matlab 具有强大的分析、计算和可视化功能,使用非常方便。

基于MATLAB控制系统设计实验软件开发(精)

基于MATLAB控制系统设计实验软件开发(精)

Cqjz.mfunction [num,den]=cqjz(G,kc,yPmG=tf(G;[mag,pha,w]=bode(G*kc;Mag=20*log10(mag;[Gm,Pm,Wcg,Wcp]=margin(G*kc;%phi=(yPm-getfield(Pm,'Wcg'*pi/180;phi=(yPm+5-Pm*pi/180;alpha=(1+sin(phi/(1-sin(phi;Mn=-10*log10(alpha;Wcgn=spline(Mag,w,Mn;T=1/(Wcgn*sqrt(alpha;Tz=alpha*T;num=[Tz,1];den=[T,1];keshe.mfunction varargout = keshe(varargin% KESHE M-file for keshe.fig% KESHE, by itself, creates a new KESHE or raises the existing% singleton*.%% H = KESHE returns the handle to a new KESHE or the handle to% the existing singleton*.%% KESHE('CALLBACK',hObject,eventData,handles,... calls the local % function named CALLBACK in KESHE.M with the given input arguments. %% KESHE('Property','Value',... creates a new KESHE or raises the % existing singleton*. Starting from the left, property value pairs are% applied to the GUI before keshe_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application% stop. All inputs are passed to keshe_OpeningFcn via varargin.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton".%% See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the response to help keshe% Last Modified by GUIDE v2.5 30-Dec-2009 18:31:42% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @keshe_OpeningFcn, ...'gui_OutputFcn', @keshe_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', [];if nargin && ischar(varargin{1}gui_State.gui_Callback = str2func(varargin{1};endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}; else gui_mainfcn(gui_State, varargin{:};end% End initialization code - DO NOT EDIT% --- Executes just before keshe is made visible.function keshe_OpeningFcn(hObject, eventdata, handles, varargin % This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA% varargin command line arguments to keshe (see VARARGIN% Choose default command line output for keshehandles.output = hObject;% Update handles structureguidata(hObject, handles;% UIWAIT makes keshe wait for user response (see UIRESUME% uiwait(handles.figure1;% --- Outputs from this function are returned to the command line. function varargout = keshe_OutputFcn(hObject, eventdata, handles% varargout cell array for returning output args (see VARARGOUT;% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Get default command line output from handles structurevarargout{1} = handles.output;% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles% hObject handle to pushbutton1 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATAfigure(2bode(handles.numh,handles.denh;xlabel('Frequency rad/s','fontsize',10;ylabel('Phase deg Gain dB','fontsize',10;title('Bode Diagram of original signal';guidata(hObject,handles;% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles% hObject handle to pushbutton2 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATAfigure(1bode(conv(handles.num,handles.fnum,conv(handles.den,handles.fden; xlabel('Frequency rad/s','fontsize',10;ylabel('Phase deg Gain dB','fontsize',10;title('Bode Diagram of original signal';guidata(hObject,handles;function edit1_Callback(hObject, eventdata, handles% hObject handle to edit1 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit1 as text% str2double(get(hObject,'String' returns contents of edit1 as a% double__num=get(hObject,'String';handles.num=str2num(num;guidata(hObject, handles;% --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles% hObject handle to edit1 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit2_Callback(hObject, eventdata, handles% hObject handle to edit2 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit2 as text% str2double(get(hObject,'String' returns contents of edit2 as a% doubleden=get(hObject,'String';handles.den=str2num(den;guidata(hObject, handles;% --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles% hObject handle to edit2 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit3_Callback(hObject, eventdata, handles% hObject handle to edit3 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit3 as text% str2double(get(hObject,'String' returns contents of edit3 as a double% --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles% hObject handle to edit3 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit4_Callback(hObject, eventdata, handles% hObject handle to edit4 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit4 as text% str2double(get(hObject,'String' returns contents of edit4 as a double% --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles% hObject handle to edit4 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit6_Callback(hObject, eventdata, handles% hObject handle to edit6 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit6 as text% str2double(get(hObject,'String' returns contents of edit6 as a doublepm=get(hObject,'String';handles.pm=str2num(pm;guidata(hObject, handles;% --- Executes during object creation, after setting all properties. function edit6_CreateFcn(hObject, eventdata, handles% hObject handle to edit6 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit7_Callback(hObject, eventdata, handles% hObject handle to edit7 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit7 as text% str2double(get(hObject,'String' returns contents of edit7 as a doublek=get(hObject,'String';handles.k=str2num(k;guidata(hObject, handles;% --- Executes during object creation, after setting all properties. function edit7_CreateFcn(hObject, eventdata, handles% hObject handle to edit7 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit8_Callback(hObject, eventdata, handles% hObject handle to edit8 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit8 as text% str2double(get(hObject,'String' returns contents of edit8 as a double% --- Executes during object creation, after setting all properties. function edit8_CreateFcn(hObject, eventdata, handles% hObject handle to edit8 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit9_Callback(hObject, eventdata, handles% hObject handle to edit9 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit9 as text% str2double(get(hObject,'String' returns contents of edit9 as a double% --- Executes during object creation, after setting all properties. function edit9_CreateFcn(hObject, eventdata, handles% hObject handle to edit9 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit10_Callback(hObject, eventdata, handles% hObject handle to edit10 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit10 as text% str2double(get(hObject,'String' returns contents of edit10 as a double% --- Executes during object creation, after setting all properties. function edit10_CreateFcn(hObject, eventdata, handles% hObject handle to edit10 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit11_Callback(hObject, eventdata, handles% hObject handle to edit11 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit11 as text% str2double(get(hObject,'String' returns contents of edit11 as a double% --- Executes during object creation, after setting all properties. function edit11_CreateFcn(hObject, eventdata, handles% hObject handle to edit11 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit12_Callback(hObject, eventdata, handles% hObject handle to edit12 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit12 as text% str2double(get(hObject,'String' returns contents of edit12 as a double% --- Executes during object creation, after setting all properties. function edit12_CreateFcn(hObject, eventdata, handles% hObject handle to edit12 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit13_Callback(hObject, eventdata, handles% hObject handle to edit13 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit13 as text% str2double(get(hObject,'String' returns contents of edit13 as a double% --- Executes during object creation, after setting all properties. function edit13_CreateFcn(hObject, eventdata, handles% hObject handle to edit13 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit14_Callback(hObject, eventdata, handles% hObject handle to edit14 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit14 as text% str2double(get(hObject,'String' returns contents of edit14 as a double% --- Executes during object creation, after setting all properties. function edit14_CreateFcn(hObject, eventdata, handles% hObject handle to edit14 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit15_Callback(hObject, eventdata, handles% hObject handle to edit15 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit15 as text% str2double(get(hObject,'String' returns contents of edit15 as a double% --- Executes during object creation, after setting all properties. function edit15_CreateFcn(hObject, eventdata, handles% hObject handle to edit15 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;end% --- Executes during object creation, after setting all properties. function text30_CreateFcn(hObject, eventdata, handles% hObject handle to text30 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% --- Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles% hObject handle to pushbutton3 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATAG=tf(conv(handles.num,handles.fnum,conv(handles.den,handles.fden; [Gm1,Pm1,Wcg1,Wcp1]=margin(G;Gm1=num2str(Gm1;Pm1=num2str(Pm1;Wcg1=num2str(Wcg1;Wcp1=num2str(Wcp1;set(handles.textGm1,'string',Gm1;set(handles.textPm1,'string',Pm1;set(handles.textWcg1,'string',Wcg1;set(handles.textWcp1,'string',Wcp1;% --- Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles% hObject handle to pushbutton4 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATAa=handles.numh;b=handles.denh;G=tf(a,b;[Gm2,Pm2,Wcg2,Wcp2]=margin(G;Gm2=num2str(Gm2;Pm2=num2str(Pm2;Wcg2=num2str(Wcg2;Wcp2=num2str(Wcp2;set(handles.textGm2,'string',Gm2;set(handles.textPm2,'string',Pm2;set(handles.textWcg2,'string',Wcg2;set(handles.textWcp2,'string',Wcp2;guidata(hObject, handles;% --- Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles% hObject handle to pushbutton5 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATAG=tf(conv(handles.num,handles.fnum,conv(handles.den,handles.fden; [num,den]=cqjz(G,handles.k,handles.pm;num1=num2str(num;den1=num2str(den;set(handles.textnum,'string',num1;set(handles.textden,'string',den1;handles.numqj=num;handles.denqj=den;handles.numh=conv(conv(handles.num,handles.fnum,num;handles.denh=conv(conv(handles.den,handles.fden,den;G=tf(handles.numh,handles.denh;[a b c d]=margin(G;handles.q=b;handles.zi=handles.numh;handles.mu=handles.denh;a=num2str(handles.numh;b=num2str(handles.denh;set(handles.textnumh,'string',a;set(handles.textdenh,'string',b;guidata(hObject, handles;% --- Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles% hObject handle to pushbutton6 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATAG=tf(conv(handles.num,handles.fnum,conv(handles.den,handles.fden; [num,den]=zhjz(G,handles.k,handles.pm;num2=num2str(num;den2=num2str(den;set(handles.textnum,'string',num2;set(handles.textden,'string',den2;handles.numhj=num2;handles.denhj=den2;handles.numh=conv(conv(handles.num,handles.fnum,num;handles.denh=conv(conv(handles.den,handles.fden,den;G=tf(handles.numh,handles.denh;[a b c d]=margin(G;handles.z=b;a=num2str(handles.numh;b=num2str(handles.denh;set(handles.textnumh,'string',a;set(handles.textdenh,'string',b;guidata(hObject, handles;% --- Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles% hObject handle to pushbutton7 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATAfigure(3G=tf(handles.num,handles.den;Gf=tf(handles.fnum,handles.fden;G=feedback(G,Gf;step(G;title('Plot of Sinal Response Curves'xlabel('Time(sec','Fontsize',10;ylabel('Response','Fontsize',10;guidata(hObject,handles;% --- Executes on button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles% hObject handle to pushbutton8 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA figure(4G=tf(handles.numh,handles.denh;G=feedback(G,1;step(G;title('Plot of Sinal Response Curves'xlabel('Time(sec','Fontsize',10;ylabel('Response','Fontsize',10;guidata(hObject,handles;% --- Executes on button press in pushbutton9.function pushbutton9_Callback(hObject, eventdata, handles% hObject handle to pushbutton9 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA figure(3G=tf(handles.numh,handles.denh;G=feedback(G,1;step(G,'b';hold onG=tf(handles.num,handles.den;Gf=tf(handles.fnum,handles.fden;G=feedback(G,Gf;step(G,'r';title('Plot of Sinal Response Curves'xlabel('Time(sec','Fontsize',10;ylabel('Response','Fontsize',10;legend('After','Orignal'guidata(hObject,handles;% --- Executes on button press in pushbutton10.function pushbutton10_Callback(hObject, eventdata, handles% hObject handle to pushbutton10 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA figure(5bode(conv(handles.num,handles.fnum,conv(handles.den,handles.fden,'r ';xlabel('Frequency rad/s','fontsize',10;ylabel('Phase deg Gain dB','fontsize',10;title('Bode Diagram of original signal';hold onbode(handles.numh,handles.denh,'b';legend('Original','Jiaozheng';guidata(hObject,handles;function edit17_Callback(hObject, eventdata, handles% hObject handle to edit17 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit17 as text% str2double(get(hObject,'String' returns contents of edit17 as a doublenum=get(hObject,'String';handles.fnum=str2num(num;guidata(hObject, handles;% --- Executes during object creation, after setting all properties. function edit17_CreateFcn(hObject, eventdata, handles% hObject handle to edit17 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;endfunction edit18_Callback(hObject, eventdata, handles% hObject handle to edit18 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA% Hints: get(hObject,'String' returns contents of edit18 as text% str2double(get(hObject,'String' returns contents of edit18 as a doubleden=get(hObject,'String';handles.fden=str2num(den;guidata(hObject, handles;% --- Executes during object creation, after setting all properties. function edit18_CreateFcn(hObject, eventdata, handles% hObject handle to edit18 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white';elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor' ;end% --- Executes on button press in pushbutton12.function pushbutton12_Callback(hObject, eventdata, handles% hObject handle to pushbutton12 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATAchao=handles.q;zhi=handles.z;a1=abs(chao-handles.pm;a2=abs(zhi-handles.pm;chao='³¬Ç°ºÃ';zhi='ÖͺóºÃ';if a1>a2set(handles.textdisp,'string',zhielseset(handles.textdisp,'string',chaoend% --- Executes during object creation, after setting all properties. function textGm1_CreateFcn(hObject, eventdata, handles% hObject handle to textGm1 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% --- Executes during object creation, after setting all properties. function textPm1_CreateFcn(hObject, eventdata, handles% hObject handle to textPm1 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% --- Executes during object creation, after setting all properties. function text50_CreateFcn(hObject, eventdata, handles% hObject handle to text50 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% --- Executes on button press in pushbutton13.function pushbutton13_Callback(hObject, eventdata, handles% hObject handle to pushbutton13 (see GCBO% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATAZhjz.mfunction [num,den]=zhjz(G,kc,dPmG=tf(G;[mag,phase,w]=bode(G*kc;。

Matlab公司最新推出的针对DSP应用控制系统而开发的嵌入式目标

Matlab公司最新推出的针对DSP应用控制系统而开发的嵌入式目标

Matlab公司最新推出的针对DSP应用控制系统而开发的嵌入式目标DSP虽然为3C(计算机、通信、消费电子)产品的开发提供了很好的硬件支撑平台,但设计者仍得花费一定的时间去掌握DSP内部各种寄存器的正确设置、软件编程方法以及控制算法设计,这必然会增大产品开发难度,延长产品开发周期,从而影响开发效率。

Matlab公司最新推出的针对DSP应用控制系统而开发的嵌入式目标模块Embedded Target for TI C2000 DSP即可解决上述问题,用户通过使用该模块,不仅可以进行电路的系统级仿真,还可编译生成相应的C语言代码,并下载到目标板,直接运行程序,进行算法的探索与设计思路的验证,提高开发效率。

图1 Embedded Target for TI C2000应用流程示意图TI C2000 DSP的特点及开发应用流程作为一种专用的集成开发环境,Matlab公司最新推出的Embedded Target for TI C2000 DSP 开发平台能够让设计人员直接进行(半)实物仿真、算法的探索与研究,以及产品可靠性的验证,从而有效地减少了设计开发过程中的消耗,加快了原型开发的速度。

该平台有如下几个优点:1) 在TI C2000 DSP 上自动测试、执行Simulink仿真模型;2) 提供模块化的系统和功能,比如PWM、ADC、CAN以及目标板载内存等;3) 生成文档化的易读可编辑的C语言代码,并生成Code Composer Studio项目文件;4) 在F2407 eZdsp评估板和F2812 eZdsp评估板上进行自动化实时测试;5) 对TI推出的IQmath Library提供模块化的支持,可以用于仿真和代码生成;6) 可以进行定点系统的设计、仿真、自动定标和代码生成工作。

Embedded Target for TI C2000 DSP提供了将MATLAB和Simulink与TI eXpressDSP工具、TI C2000 DSP控制器集成在一起进行系统开发的手段。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微纳科技cSPACE快速控制原型开发系统(基于MATLAB的DSP快速控制原型开发系统)一.产品简介 (1)二.系统组成 (2)三.硬件资源 (4)四.使用案例 (20)4.1.直线电机驱动的二级倒立摆的控制 (20)4.2.磁悬浮球系统的控制 (22)4.3.三容水箱过程控制实验系统的控制 (23)4.4.采用磁流变液阻尼器的1/4车辆振动实验系统的控制 (24)一.产品简介快速控制原型(Rapid Controller Prototyping,RCP)和硬件在回路实时仿真(Hardware-in-Loop,HIL)是目前国际上控制系统设计的常用方法,它把计算机仿真(纯软件)和实时控制(硬件在回路)有机结合起来,用户可把仿真结果直接用于实时控制,极大提高控制系统的设计效率。

目前,这一系统或设计方法已经在高校和实验室得到普遍采用,最典型的例子为德国的dSPACE快速控制系统原型设计系统。

dSPACE卡是一个基于MATLAB/Simulink开发环境的自动代码生成工具,拥有快速控制原型开发和硬件在环仿真功能。

使用这种方法,可使电控单元系统及机械控制系统的开发和测试简捷和高效。

因此,dSPACE已经成为运动控制和过程控制开发的好工具,受到了全球用户的欢迎。

本公司研制的cSPACE快速控制原型和硬件在回路开发系统(以下简称cSPACE系统)基于TMS320F2812DSP开发,和dSPACE 公司的DS1104卡相当,拥有AD、DA、IO、Encoder和快速控制原型开发、硬件在环仿真功能,通过Matlab/Simulink设计好控制算法,将输入、输出接口替换为公司的cSPACE 模块,编译整个模块就能自动生成DSP代码,在控制卡上运行后就能生成相应的控制信号,从而方便地实现对被控对象的控制。

运行过程中通过cSPACE提供的MATLAB接口模块,可实时修改控制参数,并以图形方式实时显示控制结果;而且DSP采集的数据可以保存到磁盘,研究人员可利用MATLAB对这些数据进行离线处理,下图为利用cSPACE工具的开发流程图。

图1 cSPACE开发流程图二.系统组成微纳科技cSPACE快速控制原型和硬件在回路开发系统根据国际上控制系统设计常用的快速控制原型和硬件在回路原理进行开发,硬件功能和德国dSPACE 公司的DS1104卡相当,拥有dSPACE- DS1104所具备的大部分接口功能和快速控制原型开发、硬件在回路仿真技术,具体包括以下三大部分:一、cSPACE系统的控制卡采用高性能的TMS320F2812DSP开发,并且外扩高性能的AD、DA和正交编码信号处理模块,具有丰富的硬件接口,可以同时控制多台电机。

图2 cSPACE的DSP控制卡二、cSPACE系统的开发环境是基于广大科研人员所熟悉的MATLAB/Simulink进行开发,方便用户使用,同时能充分利用MATLAB强大的科学计算、信号分析处理、图形处理功能。

图3 cSPACE的MATLAB开发环境三、cSPACE系统的控制界面采用MATLAB/Simulink进行开发,能在线修改10个变量和实时显示4个变量,自动存储数据,结构简单,方便用户使用。

图4 cSPACE的监控界面三.硬件资源cSPACE的硬件资源如下所示:●主处理器为TMS320F2812 DSP,处理能力为150MIPS●16通道的12bit AD,转换时间为250ns,输入范围为(0,3V)●6通道的16bit AD,转换时间为3.1us,输入范围为(-10,10V)或(-5,5V)●4通道16bit的DA,建立时间为10us,输出范围为(-10,+10V)●3通道独立的PWM信号,分辨率为16位,1通道有两路输出,共6路输出,这6路输出也可以作为输出的IO引脚使用●2路输入IO引脚●4通道QEP单元正交编码信号处理模块●1路RS232串口●1路增强型CAN接口●128k×16bit 的片内flash 和18k×16bit 的SARAM●三个32 bit 的系统定时器,4个16 bit通用定时器用户额外可扩充的功能:●5通道PWM信号,分辨率为16位●1路RS232串口●多达20个可单独编程的复用口,亦可用作通用I/O 口●三个外部中断口,并有外围中断扩展模块,可支持多达45 个外围中断我公司cSPACE控制系统和国外同类系统主要性能对比表1 cSPACE和国外同类产品对比表格硬件模块cSPACE dSPACE主处理器采用TMS320F2812DSP开发,时钟频率为150M,指令周期为6.67ns 采用TMS320F2407DSP开发,时钟周期为40MAD6路高性能的16bitAD模块8路高性能的16bitAD模块DA4路高性能的16bitDA模块8路高性能的16bitDA模块正交编码信号处理模块4路2路RS232接口1路2路PWM信号输出模块8路8路IO接口8路IO接口16路软件功能cSPACE dSPACE变量在线修改模块10个 多达数十个变量实时显示模块 4个 多达数十个使用变量在线修改模块和实时显示模块的个数限制可以在10个变量在线修改模块和4个变量实时显示模块之间由用户任意组合由用户任意组合 数据保存自动保存 自动保存 变量显示方式 图形化显示 图形化显示cSPACE 系统硬件成本底,控制系统设计好后,可以把生成的目标代码烧写进控制卡,从而构成脱离计算机而独立运行的嵌入式控制系统,控制被控对象,整个过程用户不需进行硬件和C 语言或汇编语言的开发,极大减小用户构建控制系统时间和降低成本。

四. MATLAB/Simulink 工具箱以下WM-cSPACE 是cSPACE 在MATLAB 中的工具箱:安装好软件后,打开MATLAB/Simulink ,如图2.5可以看到WM-cSPACE工具箱。

在WM-cSPACE Toolbox目录下有Commonly_Used_Blocks,Hardware_Interface,Parameters_Tuning,System_Blocks和Variables_Display子目录,如图3.1,下面将分别介绍这些子目录模块。

图4.1 WM-cSPACE工具箱4.1 Commonly Used Blocks子工具箱Commonly Used Blocks子工具箱中的模块是从MATLAB/Simulink工具箱中选出来的常用的模块,包括代数、关系和逻辑运算模块、信号发生模块、离散微分积分等模块,方便用户使用,模块的功能由模块旁边的英文说明所示(如图3.2)。

图4.2 Commonly Used Blocks 子工具箱下面以"Signal Generator"和"Random Number"信号发生器模块为例说明模块的使用:双击"Signal Generator"模块打开参数设置对话框,如下图所示,在"Wave form"下拉列表中选择需要的波形,包括a sine wave (正弦波), square wave (方波), sawtooth wave (锯齿波), or random wave (随机信号,在离散模块中应该使用"Random Number"模块);"Time (t)" 中选择"Use external signal",这样才能在离散的Simulink 文件中使用。

其中正弦波的产生也可以用"Sine Wave"模块产生。

图4.3 Signal Generator参数设置对话框根据"Signal Generator"模块的"Use external signal"要求,搭建如下所示Simulink文件(文件的搭建方法请参照第五章),"Counter Free-Running"是计数器模块,经过一个采样周期的时间计数值增加1,输出是计数值,"Sample Time" 是采样时间的值,本文件的采样时间为0.005s,故"Sample Time"增益模块的增益为0.005,模块的输出就是实际的时间,并且作为"Signal Generator"模块的"Use external signal"。

图4.4 信号发生器Simulink文件启动仿真,在Scope模块中显示的信号的如下:图4.5 "Signal Generator"模块产生的正弦信号设置"Signal Generator"模块的波形输出为锯齿波,Scope模块中显示的信号的如下:图4.6 "Signal Generator"模块产生的锯齿波信号随机信号的发生采用"Random Number"模块,以下为设置的参数:图4.7 "Random Number"模块参数设置对话框搭建如下所示Simulink文件,观测随机信号:图4.8 随即信号发生Simulink文件下图分别为在仿真时Scope观测的随即信号和模块生成代码后由DSP发送到上位机监控界面接收到的随机信号。

图4.9 仿真和实时运行时观测到的随机信号对于Commonly Used Blocks中的模块,有些模块需要设置采样时间,如"Random Number"和"Counter Free-Running"模块,这时需要设定相应的采样时间,并且所有模块的采样时间要一致;有些模块不需要设置采样时间,如"Gain"增益模块,采样时间设置的值为"-1"即可,表示继承其它模块的采样时间。

推荐设置的采样时间为0.005s。

模块更详细的使用请参照MATLAB的帮助文档。

4.2 Hardware Interface子工具箱打开WM-cSPACE /Hardware Interface子工具箱,可以看到以下cSPACE控制卡的Simulink硬件接口模块,每个模块均对应控制卡上的硬件接口,这些模块包括MATLAB自带的TI TMS320F2812DSP模块和微纳科技开发的cSPACE 模块,模块在simulink中的位置如下图所示。

图4.10 WM-cSPACE /Hardware Interface子工具箱白色背景的模块是MATLAB自带的TI TMS320F2812DSP模块,其中PWM有已经扩出的6通道,实际上是独立的三通道,如下图所示:图4.11 MATLAB自带的TMS320F2812DSP硬件接口模块“ADC”模块对应控制卡的接口如下:图4.12 AD硬件接口把“ADC”模块拖到simulink算法文件中,具体的设置方法为:ADCINA7ADCINA0公共地图4.13 AD 模块参数设置图4.14 AD 模块参数设置这时AD 模块没有加滤波器,采集的信号干扰比较大,"ADC_Filter"模块是自带平均值滤波模块的AD 采样模块,即每个采样周期内,AD 先进行40次AD 采样,把40个采样值的平均值作为本次采样的值,如此AD 采样的精度极大地提高。

相关文档
最新文档