-
实时仿真用户案例
Crank-嵌入式GUI设计和开发用户案例
021-64886750
-
实时目标机
Simulink模型库
Demo套件
info@yisuworld.com
基于Speedgoat的倒立摆控制实验系统
1.应用背景
倒立摆是进行理论研究的典型实验平台,由于倒立摆系统本身所具有的高阶次、不稳定、多变量、非线性和强耦合特性,许多现代控制理论的研究人员一直将它视为典型的研究对象,不断从中发掘出新的控制策略和控制方法,相关的科研成果在航天科技和机器人学方面获得了广阔的应用。又由于倒立摆系统结构精巧,许多抽象的控制理论概念如系统稳定性、可控性和系统抗干扰能力等都可以通过倒立摆系统直观的表现出来,因此非常适合作为控制理论教学实验平台。
目前绝大多数的控制系统理论教学都是基于MATLAB/Simulink软件,先在Simulink中搭建控制系统模型和倒立摆模型通过离线仿真来做初步验证。初步验证完成之后再切换到单片机、DSP或者第三方开发的硬件平台,通过C代码等其他开发语言或者Simulink模型来构建控制算法,再将算法烧写到对应的控制平台实现实时化控制,完成实时化验证。这些系统目前都可以满足用户对控制系统关键参数的在线调整功能,从而使得用户可以通过在线调整这些参数来观察参数对控制效果的影响。但是也会存在一些问题:
- 系统参数和信号开放性不够,用户无法完全获取实时控制参数和信号,只能通过观察倒立摆的运动来知悉控制效果,对于控制系统中间环节的一些参数和信号无法获取,对控制理论的深入拓展造成不便;
- 二次开发困难,如果是基于C等开发语言构建控制算法,算法本身的可读性和二次开发性比较差,如果需要更换控制算法或者更换控制对象需要对整个系统进行更换,成本较大。如果是基于Simulink模型的控制算法,更改算法之后上位机界面也需要做修改,增加了开发难度。
- 通用性差,市场上常见的控制系统都是专用的控制系统,如倒立摆的控制器只能做倒立摆控制,没法再做其他控制。如果教学平台要求的种类比较多,需要购买多种平台才可以实现,增加了经济成本。
基于上述问题,上海熠速为用户开发了基于Speedgoat实时仿真系统的教学平台。此平台可以取代定制化的控制器,具有如下技术特点:
- 可靠性高。Speedgoat实时仿真系统是MATLAB/Simulink的官方硬件平台,其操作系统和软件均由MathWorks开发,无缝集成MATLAB/Simulink,系统更加可靠。
- 易学习,使用简单。采用基于模型的开发方式,所有控制算法都由Simulink模型搭建,然后自动转换为代码,无需手写代码。此方式大大降低了算法开发的时间和难度,用户在离线仿真阶段搭建的离线仿真模型可以直接实时化转换为实时代码,保证用户将更多的精力集中在算法本身的结构上。而且模型的可读性和可移植性更高,用户可以更加方便的理解和应用控制算法。
- 计算能力更加强大。Speedgoat实时仿真平台的计算核心采用Intel高性能处理器,相比较单片机或者DSP由绝对的计算优势,这保证了用户可以更加自由的增加算法的规模和复杂度,不再受限于传统控制器有限的计算能力,实时性能各加强大。
- 通用性,IO资源更加丰富。Speedgoat系统支持多种通讯协议和IO类型,可以满足多种应用的资源需求。这保证了系统的通用性,可以一机多用,只要更改外部接线和模型即可实现多种实验平台的应用,减小了经济成本。
- 完全开放。采用Speedgoat实时仿真系统验证控制算法,算法中所有信号和参数都可以获取和记录。用户可以在线调参的同时,观测各个环节的信号数值和波形,从而更加深入的理解控制算法,不再局限于倒立摆的运动结果。
- 二次开发性。所有算法和IO配置都是基于Simulink模型,用户主要拥有Simulink基础,即可以修改模型算法结构,更改IO接口配置,实现控制系统的二次开发。
下图是基于Speedgoat实时仿真平台的倒立摆控制实验平台图:
图1 基于Speedgoat的倒立摆控制实验图
系统中上位机用来搭建控制算法模型以及实验过程中的参数调整和信号观测。Speedgoat实时仿真平台用来代替定制化控制器,运行控制算法,同时通过IO接口和倒立摆进行信号交互,通过网线向上位机实时传输信号数据和接收上位机指令。倒立摆作为实际被控对象。
2. 系统介绍
2.1 Speedgoat实时仿真平台
根据高校教学平台的典型应用需求,上海熠速配置的实时系统为Speedgoat全新的Baseline实时仿真平台:
图2 Baseline实时仿真机
Baseline实时仿真机是Speedgoat针对快速原型验证开发的新型实时系统,运行MathWorks Simulink Real-Time实时操作系统,搭载Intel高性能处理器,可以高速高精度实时运行控制算法模型。该仿真机的相关参数如下:
配置 |
规格 |
CPU |
Intel Celeron 2 GHz 4 cores |
实时操作系统 |
Simulink Real-Time™ |
MATLAB版本支持 |
R2016A及以后版本 |
内存 |
4GB DDR3 RAM |
存储空间 |
32GB SSD |
视频接口 |
1 x DisplayPort. 支持分辨率: 1280x1024 |
USB接口(摄像头或键盘) |
1x USB 3.0 和2x USB 2.0 前面板 |
上位机接口Ethernet |
1个 |
千兆网口 |
2个,用于real-time UDP, EtherCAT Master, XCP Master, TCP/IP, and PTP 1588 |
串行接口 |
2 x RS232(最高支持120 kb/s)前面板 |
IO板卡安装插槽 |
4 x mPCIe |
机箱外壳 |
铝合金外壳,散热片和先进的被动散热 |
供电 |
9-36V,包含交流适配电源 |
运行温度 |
0-60 degC |
湿度范围 |
10-90%, 无冷凝 |
质量 |
约2.56 kg |
体积 |
250×190×190mm |
除此以外,该设备内部还可以安装不同的IO板卡,集成常见的一些IO功能,如:模拟量IO,数字量IO,各种位置传感器接口,PWM波接口等。同时系统还搭配相应线束和IO接插端子方便外部接线。考虑到教学平台中使用的IO数量要求不多,但是种类要求比较多的情况,在倒立摆控制实验中,Baseline中安装的IO板卡是IO397 FPGA 板卡。IO397 FPGA板卡是Speedgoat的一款高性能可编程FPGA板卡,此板卡即可以通过Simulink的FPGA开发工具包HDL Coder来进行自定义的FPGA模型开发,也可以通过Speedgoat配置好的位流文件将FPGA的IO功能固化。考虑到教学平台中主要是进行算法的验证和理论的教学,所以这里的IO397板卡的IO功能被固化为倒立摆系统实验所需的接口功能,上海熠速会提供相关的位流配置文件。
IO397 FPGA 板卡:
图3 IO397 FPGA 板卡
此板卡的相关规格参数为:
参数 |
规格 |
板卡形式 |
PCIe Mini |
接插件 |
数字通道:17 针 M12公头 模拟通道:17针 M12母头 |
运行温度 |
-40 to 85°C |
湿度 |
5 to 95%无冷凝 |
模拟输入通道 |
4路 16bit ADC 200ksps,可同步采样 |
模拟输出通道 |
4路 16bit DAC,软件可配置范围 |
数字通道 |
14路ESD保护的数字通道,可配置为输入或输出 |
IO397在上述硬件资源的前提下,可以通过位流文件配置出PWM采集和输出接口,增量式编码器或者其他类型位置传感器接口功能等。通过这些接口功能,实现倒立摆的控制。
除了IO397之外,Baseline还支持许多其他类型的IO板卡,根据用户的具体需求可以做相应的配置。
基于上述IO通道类型和系统配置,该教学平台还可以实现的教学内容包括:
- 电机典型控制算法开发和验证,如三相电机FOC控制算法验证,算法即可以运行在CPU中,也可以运行在FPGA中;
- 对视频流数据的处理算法验证;
- 对其他各类控制算法的实时验证;
- 串口通讯的教学与具体实现;
- 熟悉FPGA建模、编程,理解FPGA与CPU的区别于联系,加深对数字电路知识的理解;
- 以太网通讯的教学与实现;
- 其他前沿性研究的实时验证。
2.2 倒立摆硬件
被控对象倒立摆硬件如下如所示:
图4 倒立摆硬件
倒立摆硬件结构中,关键部件为上图中的角位移传感器和直流电机、减速器以及增强式编码器。角位移传感器用来测量摆杆的角度,角位移传感器的供电为5V直流电压,输出为0-5V的直流电压,IO397 FPGA板卡带有5V传感器供电电源通道和模拟信号采集通道。采用供电电源通道给角位移传感器供电,使用模拟信号采集通道采集摆杆位置信号。直流电机和加速器通过皮带拖动小车运行,直流电机的驱动通过外部功率驱动芯片TB6612FNG驱动,芯片的控制信号通过IO397上的数字输出通道和PWM输出通道生成。增量式编码器采集小车的实际位置,其供电由IO397的5V供电通道供电,编码器的三相A/B/Z输出由IO397的增量式编码器接口采集,计算出实际位置。
倒立摆与Baseline实时仿真机的信号连接示意图如下图所示:
图5 实验系统硬件连接
2.3 系统软件介绍
Speedgoat实时系统在模型开发和上位机调试阶段所使用的软件皆为MATLAB/Simulink相关组件,倒立摆控制实验系统中要求用户安装的MATLAB软件中应该至少包含以下组件:
组件 |
版本 |
MATLAB |
2017a或者以上 |
Simulink |
2017a或者以上 |
MATLAB Coder |
2017a或者以上 |
Simulink Coder |
2017a或者以上 |
Simulink Real-Time |
2017a或者以上 |
除了MATLAB软件之外,Speedgoat还会提供IO397 FPGA 板卡IO功能配置位流文件和底层IO驱动接口库,用于在Simulink环境中对IO板卡通道进行图形化的调用。
图6 Speedgoat IO驱动库
整体软件的使用流程如下所示,和正常的Simulink建模方式一致,不会增加额外的教学任务。
图7 Speedgoat软件使用流程
模型下载到Baseline硬件平台之后,还需要上位机来配合在线调试和监测。Speedgoat提供多种上位机界面,用户可以根据自己的使用习惯进行灵活调整。
第一种界面是使用Simulink Real-Time自带的组件:Simulink Real-Time Explorer,如下图所示:
图8 Simulink Real-Time Explorer
此界面下,可以观测和调整模型中所有信号和参数,也可以将信号和参数和相关仪器仪表控件进行关联是的操作界面更加形象。同时也可以在此界面中绘画信号波形,也可以记录和存储信号数据,方便实验后进行二次分析处理。
第二中界面是直接使用Simulink模型作为操作界面,如下图所示:
图9 External Mode
此种模式下,所有信号的观测和参数的调整都在Simulink模型中,但是Simulink模型运行模式需要切换到external。同时也可以使用Simulink自带的Dashboard工具库,把一些参数和信号与仪器仪表控件相关联,具象化操作。Simulation Data Inspector功能可以将关心的信号波形进行绘画和存储,方便实验后处理。
除此以外,还可以通过Simulink Real-Time API接口,借助MATLAB APP Designer通过编写脚本,自定义上位机界面,从而在上位机调试阶段脱离Simulink。
图10 MATLAB APP Designer设计上位机界面
3.倒立摆控制算法模型
上海熠速提供的倒立摆控制实验中,控制算法采用的是经典的双PD环控制模式,即角度换+位置环。控制原理图如下所示:
图11 双PD环倒立摆控制原理图
除了控制算法之外,控制系统还需要实际的倒立摆角度和小车位置信号,同时控制结果要以PWM波(转速控制)和数字输出形式(转向控制)进行输出。所以模型中共还需要调用IO397 FPGA 板卡上的相关IO进行信号采集和输出。在此系统中,需要用的IO如下所示:
IO397接口 |
作用 |
QAD编码器接口*1 |
采集增量式编码器信号,获取小车的位置反馈 |
AD模拟信号采集接口*1 |
采集角位移传感器信号输出,获取摆杆角度反馈 |
PWM波输出接口*1 |
输出PWM波控制信号控制电机转速 |
数字输出DO*4 |
功率驱动芯片使能 电机转向控制 |
根据以上控制算法原理结构和IO需求,上海熠速搭建了如下控制模型:
图12 控制算法模型
模型主要分为四个部分,各部分如图所示:
1. 此部分为信号采集部分,分别为:ADC模块采集角位移传感器的输出电压信号,QAD模块采集增量式编码器信号脉冲;
2. 此部分为信号解析和滤波部分,对ADC模块采集到的电压信号进行解析,解析成对应的摆杆角度,同时进行低通滤波。对采集到的增量式编码器信号脉冲进行解析,解析成对应的小车位置,同时也进行低通滤波;
3. 双PD环,对角度误差和位置误差进行PD调节;
4. 输出部分,输出PWM波和电机转向信号。
模型搭建完成之后进行编译,并下载到实时仿真机中运行。运行时,可以通过上位机界面对模型中的任何参数和信号进行现在调整和观测,此实验中,上海熠速试用Simulink Real-Time Explorer做为上位机界面,并且为了使调试更简单和形象,依靠控件做了如下控制界面,界面中所有元素都支持用户自定义修改,修改方式只需拖拽相关模块即可,无需任何编程操作。界面中各部分的控件作用如图所示:
图13 上位机界面
实验过程中,可以通过角度环和位置环的几个slider控件在线调整PD参数,同时通过两个plotter控件实时在线的观测给定量和反馈量之间的波形对比,得到相应的响应速度、超调、震荡等系统表现,从而判断当前参数对PD控制环控制效果的影响。
4.倒立摆实验系统总结
基于Speedgoat Baseline 实时仿真平台的倒立摆控制实验系统相比较传统采用定制化控制器的控制系统而言,具有如下特点:
1. 算法开发和IO驱动配置简单形象,所有工作都在Simulink中图形化完成,无需手写任何代码,降低了实验人员的代码能力要求,将有限的教学和实验时间从工具使用方法上解放出来,更多去关注控制理论和控制算法本身,提高教学的效率;
2. 实验模型完全开放,上海熠速或者第三方模型开发方的模型,在Speedgoat实时系统中对用户完全开放,加上Simulink模型更高的可读性,学生可以快速的理解并且掌握整个控制逻辑,并且可以在上位机界面中观测任何环节的信号和调整任何模块的参数。用户可以对控制理论和算法有更深的认识;
3. 通用性强,Baseline实时仿真系统不仅仅可以应用功能在倒立摆控制系统中,依靠强大的CPU计算能力和彪悍的IO性能,该系统还可以应用在电机控制、机器人控制等绝大多数的控制应用场合,只需更换Simulink模型和外部接线,即可实现平台转移;
4. 人机界面友好,通过功能强大上位机界面,用户可以自定义任何形式的上位机界面,方便调试和实验。
-
电力电子(含控制器和被控对象模型)
凭借多年在电力电子行业累积的经验和能力,我们为用户提供控制器模型和被控对象模型,包括标准库以及定制化服务。¥ 0.00立即购买
-
轨道交通(含控制器和被控对象模型)
凭借多年在轨道交通行业累积的经验和能力,我们为用户提供控制器模型和被控对象模型,包括标准库以及定制化服务。¥ 0.00立即购买
-
信号调理系统
在HIL测试中,硬件在环设备起到模拟被测ECU被控对象的作用。需要根据ECU的PIN脚信息,模拟相应信号。这类设备的核心为实时系统,实时系统会提供相应IO通道,处理信号的产生和采集。但这类IO通道一般为标准规格,比如数字通道为TTL规格,模拟通道只是测电压等;这与被测ECU所需的信号规格有较大差异,故需要一套信号调理系统,负责两者之间信号的转接。¥ 0.00立即购买
-
电机控制Demo套件
使用Simulink和Speedgoat转动无刷直流电机。¥ 0.00立即购买
实时目标机
仿真测试应用场景
学习与支持
关注熠速微信公众号
仿真测试解决方案
I/O接口模块
通讯协议模块
FPGA技术
被控部件仿真
Simulink模型库
Demo套件
测量测试解决方案