基于MATLAB的柔性机械臂控制教学演示平台

2018-08-02 10:41竹晨曦魏祥森
泰州职业技术学院学报 2018年3期
关键词:鲁棒控制控制算法内存

杨 杨,竹晨曦,魏祥森,叶 多

(1.南京邮电大学 自动化学院、人工智能学院,江苏 南京 210023;2.南京市职业教育(成人)教学研究室 江苏 南京 210018)

自动控制原理作为自动化专业的核心课程,集成了线性代数、高等数学、复变函数、信号与系统等课程的相关知识,是自动化专业重要的专业基础课。该课程的任务不仅是研究和学习控制系统相关的概念、学习控制算法及稳定性分析方法等理论知识,更重要的是培养学生综合运用所掌握的理论知识来解决工程实际问题的能力。在实际工程中,通过理论知识,改善控制系统的各项性能以满足生产的需要是教学的目标,这就使教学过程不仅需要包含理论教学环节,还需要大大强化实践教学环节,但受限于人力条件、实验设备等关键因素,教学目标往往难以实现,而教学演示平台[1,2]则不受这些时间、地点因素的限制。

本文以柔性机械臂作为被控对象,利用MAT⁃LAB/Simulink系统仿真工具箱实现友好的图形用户界面[3-5](Graphical User Interface,GUI),设计了可视化的柔性机械臂控制教学演示平台。学生可根据实验需要在线调整仿真系统各控制参数,通过点击人机交互界面上各按钮实现功能模块的仿真运行[6],可形象地演示柔性机械臂控制系统控制原理;通过参数设置及修改,可了解到各个参数对控制系统产生的影响[7],并直观地看到仿真的结果及各个控制参数实时状态。本文设计的系统节约教育成本的同时提高了学生的学习兴趣;与实物系统相比,安全可靠,避免了机械臂参数设计不合理而导致的实物系统故障、损坏及人身安全等问题。

1 教学演示平台总体结构

本教学演示平台总体结构分为三个层级。具体来说,第一层级为教学演示平台主界面,该界面为教学演示平台启动时的初始界面,包含四个控制算法GUI界面的跳转按钮;第二层级为各个子控制算法GUI界面,主要包括:非鲁棒状态反馈、非鲁棒输出反馈、鲁棒状态反馈和鲁棒输出反馈界面等;第三层级为教学演示平台的数据处理系统,负责数学仿真和仿真数据存储,总体结构如图1所示。整套系统通过主界面的跳转按钮启动子控制算法界面,通过操作子界面上的按钮实现数据处理系统的启动、暂停和数据传输工作。

图1 教学演示平台结构示意图

1.1 教学演示平台主界面

教学演示平台的主界面(如图2所示),设计有四个子GUI界面的调用按钮及其预览图显示区域,用于预览子控制算法GUI界面的基本样式,并完成当前界面向各子控制算法GUI界面的切换。

图2 平台主界面

1.2 非鲁棒控制算法子界面

图3 状态反馈(非鲁棒控制)界面

图4 输出反馈(非鲁棒控制)界面

1.3 鲁棒控制算法子界面

鲁棒控制算法子界面,包含鲁棒状态反馈和鲁棒输出反馈控制算法GUI界面,界面的设计与相同控制算法对应的非鲁棒GUI界面设计相同。鲁棒控制算法中增加了扰动量,并对控制器、观测器部分进行了调整。通过曲线显示界面实时监测机械臂的运动状态、控制律和跟踪误差。

本文实现的四个GUI子界面均设计“绘图”、“暂停”和“返回主界面”操作按钮,分别负责操作教学演示平台的启动、暂停及返回演示平台主界面。参数修改对曲线显示的图形产生了影响,说明GUI界面与Simulink仿真环境的链接是有效的。

2 教学演示平台的关键技术

2.1 GUI与数学模型的数据交换

基于MATLAB/Simulink环境,搭建柔性机械臂的鲁棒及非鲁棒仿真控制系统,GUI人机交互界面设置仿真系统的各项参数并传递给仿真系统各个运算模块,运算后将仿真数据保存在内存中。GUI人机交互界面从内存中获取保存的数据并在显示区域绘制仿真曲线,完成可视化教学演示功能。

本文使用了两种参数传递方法:(1)利用Set_param()命令实现对MATLAB/Simulink各SFunction模块参数的直接赋值。(2)通过执行指令将设置的参数保存在内存中,由MATLAB/Simu⁃link调用内存数据完成参数赋值。

在MATLAB/Simulink仿真系统中增加Scope控件及To Workspace控件,将仿真数据输出至MAT⁃LAB Workspace内存空间,GUI人机交互界面从内存中获取仿真数据,并在曲线显示区域实现仿真数据的坐标化。

本文所设计的教学演示平台具有参数初始化功能,执行该功能可将系统的各项参数设置为预设的默认值。

2.2 内存数据的坐标化

GUI人机交互界面获取保存在MATLAB Work⁃space内存中的仿真数据,使用for循环语句嵌套plot()指令,将获取的仿真数据以二维坐标曲线的形式进行表示并实现仿真曲线的动态绘制。利用datestr(now,31)指令保存当前系统时间格式,使用Xticklabel()函数将仿真曲线的横坐标格式设置为保存的时间格式。

2.3 界面切换

本文所述的教学演示平台由演示平台主界面和四个控制算法GUI界面组成。为了在使用过程中仅保留单一窗口,使用GUI跳转指令设计了各控制算法GUI界面的“GUI调用”按钮实现界面的跳转;设计了“返回主界面”按钮实现各控制算法GUI界面向主界面的跳转。在跳转指令后加入close()函数与evalin('base','clear all')指令,实现内存数据的清空及当前界面的关闭。

The total current density consists of the conduction current density and the displacement current density:

3 教学演示平台的实例

本教学演示平台的具体工作方法包括以下步骤:

(1)使用者启动教学演示平台后进入演示平台主界面,运行主界面,选择要使用的控制算法,点击“GUI调用”按钮切换至该控制算法GUI界面;

(2)在控制算法GUI界面中通过参数设置模块的多个输入窗口进行仿真系统模型参数的设置及控制参数的调节,参数包括时间收敛系数Xite(常数)、转子转动惯量I(kg·m2)、连杆转动惯量J(kg·m2)、关节刚度系数K(N/m)、机械臂质量M(kg)、重力加速度g(N/kg)、连杆中心至关节的长度l(m)。本实例中使用了“初始化参数”功能,参数数值依次为,20,1,1,40,1,10,0.5。

(3)运行仿真平台,通过其主界面的参数状态显示模块负责调用数学模型产生的仿真数据实现各状态量的图形绘制,在参数状态显示区域观察仿真曲线、控制律状态曲线和误差值曲线的实时轨迹。

(4)通过点击“暂停”可暂停教学演示平台工作,并进行参数的修改。再次点击“暂停”按钮恢复教学演示平台的工作,继续进行数学仿真。

(5)通过点击“返回主界面”回到教学演示平台主界面。

3.1 控制算法选择

选择需要演示的控制算法,点击“GUI调用”按钮,跳转至该GUI界面。本实例选择使用“鲁棒输出反馈”控制算法界面。

3.2 参数设置

点击“初始化参数”设定默认值,或人为设置参数并传递给Simulink仿真控制系统。本实例中参数设定值如图5所示,参数已经保存在内存中,具体数值在Workspace窗口逐条显示(如图6所示),此时仿真系统的各模块已经接收了GUI人机交互界面传递的参数并完成了赋值。

图5 初始化参数

图6 MATLAB Workspace内存

3.3 状态监测及曲线显示

点击“绘图”按钮启动教学演示平台,GUI界面获取MATLAB Workspace内存中的仿真数据,在数据显示区域进行仿真曲线的动态绘制,观察仿真状态曲线、控制律状态曲线、误差值状态曲线、观测器状态曲线,如图7所示。

图7 输出反馈(鲁棒控制)界面曲线显示

3.4 仿真中止及参数修改

在仿真过程中,用户可以通过暂停系统,及时修改参数界面的各项数值,修改模型各项关键参数再继续进行仿真,通过显示结果的变化分析被修改参数对控制系统产生的影响。本实例在运行至15:09:59时暂停,并将参数“连杆质量”修改为10,继续运行仿真,如图8所示。由图8可以看出:在修改了“连杆质量”后,控制律出现了较大抖动,观测器的输出幅值也出现了增大的现象。通过分析物理模型可知,连杆质量的增加,增大了机械臂所具有的惯性,进而产生了图中的变化情况。

图8 输出反馈(鲁棒控制)界面曲线显示

3.5 演示界面切换

演示结束后如需要切换界面,点击当前界面的“返回主界面”按钮,即可返回演示平台主界面,同时清空MATLAB Workspace内存中保存的仿真数据及Command Window保存的教学演示平台运行记录,重复上述步骤(1)继续进行演示工作。

4 结语

本文介绍了基于MATLAB/Simulink及GUI图形设计语言的柔性机械臂教学演示平台的设计框架和实现方法。该教学演示平台可以应用于自动控制理论教学和课程实践环节中,使用者选择多种控制算法进行仿真,通过显示控制系统的仿真曲线,直观地认识到不同控制参数对控制效果产生的影响,加深对控制系统各个部分的理解。本教学演示平台亦可推广应用于自动控制相关领域研究工作中,用于验证控制算法的合理性。

猜你喜欢
鲁棒控制控制算法内存
可控励磁直线同步电动机跟踪与干扰抑制H∞鲁棒控制器设计
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
针对输入时滞的桥式起重机鲁棒控制
飞翼无人机机动飞行非线性鲁棒控制方法
基于ARM+FPGA的模块化同步控制算法研究
高精度位置跟踪自适应增益调度滑模控制算法
基于高阶奇异值分解的LPV鲁棒控制器设计
内存搭配DDR4、DDR3L还是DDR3?
基于航迹差和航向差的航迹自动控制算法