基于ADAMS与MATLAB的自平衡车系统控制仿真*
2018-10-30戴伟陈峰张玉芳
戴伟,陈峰,张玉芳
基于ADAMS与MATLAB的自平衡车系统控制仿真*
戴伟1,陈峰1,张玉芳2
(1.南通大学,江苏 南通 226019;2.无锡职业技术学院,江苏 无锡 214121)
双轮自平衡车的自主平衡动态过程是一个复杂的非线性过程,定量观察比较困难,利用ADAMS和MATLAB构建的联合仿真研究可以较好地解决这一问题。通过SoildWorks搭建系统机械3D模型,将其导入ADAMS建立出虚拟样机系统;在MATLAB/Simulink中利用模块化结构构造出车辆平衡控制器;通过软件之间的调用,就可以实现虚拟的机械力学系统与控制系统之间的信息交互,动态模拟出车辆平衡过程。仿真结果表明,设计出的控制律能实现车辆自主平衡,并可以直观显示动态过程,为后续优化系统设计提供有力依据。
两轮平衡车;MATLAB/Simulink;ADAMS;动力学仿真
1 概述
机电一体化系统往往都离不开机械系统和控制系统两大核心。传统上把这2个系统进行分开设计,构建各自的实物系统,然后进行调试。一旦出现问题,往往需要修改设备硬件结构,费时费力。
为了解决这个问题,现代机电系统设计中引入了虚拟样机技术,比如美国Mechanical Dynamics公司的ADAMS通用机械系统动力学仿真软件[1],德国INTEC Gmbh公司开发的SIMPACK多体动力学分析软件包软件[2]等,其中ADAMS的应用最广泛。
利用这类软件,可以将物理机械系统在计算机中以三维模型方式虚拟构建,并加以相应运动约束,使其尽量接近实物系统,即所谓的“虚拟样机”。在产品研发过程中采用虚拟样机技术,可在制造物理样机前进行虚拟测试以发现设计缺陷,并直接进行修改,不仅缩减研发周期,更大幅降低研发成本。在此基础上,还可以结合MATLAB/Simulink开发控制模块,以共用虚拟模型的方式,实现虚拟机械与虚拟控制系统之间的交互设计仿真,将力学原理与控制理论有机结合,为解决机械系统的控制问题提供了一条高效的途径。
双轮自平衡车是一种结构简单、车体灵活、驱动高效的机电系统,具有广泛的应用前景。其本质上是一个复杂非线性、不稳定的欠驱系统,也是进行控制实验研究的理想的平台。以ADAMS中设计的虚拟机械模型和MATLAB中建立的平衡控制模型为基础,通过数据交互构建联合仿真系统,可以高效分析系统运动学和动力学特性。
2 自平衡车的动力学建模
自平衡车作为一种机电系统,常用的动力学建模方法有拉格朗日法[3]、牛顿—欧拉方程[4]、高斯原理[5]、阿佩尔方程[6]、凯恩法[7]以及旋量对偶数法[8]等。
2.1 两轮自平衡车的平衡原理
自平衡车本质上是一级直线倒立摆。平衡车的2个驱动轮转轴处于一条直线,通过与之相连的左右2个相同规格直流有刷电机进行驱动,车身可以围绕该转轴线进行前后转动。当车身出现向某个方向的倾斜时,可以通过驱动车辆向相同方向的加速运动,使车体恢复平衡状态。
2.2 建立参考坐标系
为了便于分析,对系统作一定程度的简化。建模中认为系统运行道路环境平坦,且粘滞摩擦以及库伦摩擦对车体运动的影响忽略不计。忽略传感器支架的质量对于车体重心和质心影响。简化的机械结构如图1所示。
选取参考坐标系为:将平衡车左右2个车轮的车轴所在直线设为轴,把小车前进的方向设为轴,2车轮车体重心与地面的垂线的方向设为轴,选定的正向为右轮方向,转角的方向以笛卡尔坐标为原则。
图1 车体的右视图
2.3 两轮自平衡车动力学建模
采用拉格朗日法对自平衡车建立动力学模型,其优势在于可以避免牛顿-欧拉法中所存在的内力作用项问题。涉及变量定义如表1所示。在上述坐标系中,从能量角度对车辆进行分析可以得到以下结果。
表1 车体的机械参数定义
参数名称参数意义单位 L除2轮以外其余部分重心距车轴距离m R车轮半径m D2轮间距离m mp除2轮以外其余部分质量kg m车轮质量kg Jx沿X轴的除2轮以外刚体的转动惯量kg·m2 Jy沿Y轴的除2轮以外刚体的转动惯量kg·m2 Jz沿Z轴的除2轮以外刚体的转动惯量kg·m2 JΦ车轮绕轴心转动惯量kg·m2 JR车轮绕半径转动惯量kg·m2 θ除2轮以外刚体的倾斜角度,以顺时针为正rad θL左轮转过角度,以顺时针为正rad θR右轮转过角度,以顺时针为正rad ML左轮电机力矩,以顺时针为正N·m MR右轮电机力矩,以顺时针为正N·m
2.3.1 车体动能(不包含2轮)
车体动能由平动动能和转动动能2部分组成,如下:
2.3.2 车轮动能
车轮动能由左右车轮动能共同组成,如下:
2.3.3 车体势能
车体势能p=pcos
2.3.4 求解动力学方程
从上述模型可以看出,当车体的倾斜角发生变化时,会同时影响左右电机的转矩,进而改变车辆加速度,而所获得的加速度又会对小车的倾角形成纠正与调整,使其回到平衡位置。
3 虚拟样机模型的构建
3.1 建立对象三维模型
利用SoildWorks2014软件,将车辆实际系统简化为1个车架、1个电池、2个车轮、2个连杆、2个“L”形支架、2个电机、6个齿轮和6个齿轮轴的组合。其中,车架、车轮、连杆、齿轮和齿轮轴为塑料材质,其余的为金属材质,并将车轮表面设置为橡胶表面。其中,轮胎直径为64 mm,车架宽为120 mm,长150 mm。6个齿轮中,大齿轮2个,直径为43.2 mm,齿数为100,中齿轮2个,直径为19.4 mm,齿数为45,小齿轮2个,直径为10.8 mm,齿数为25.将设计的三维模型导出为x_t格式,就可以在ADAMS软件环境下调用。完成导入的车辆模型如图2所示。
图2 导入ADAMS后的车辆模型
3.2 施加约束
三维模型成功导入ADAMS中后,还需要添加约束,以确定零件间相对运动关系。2轮自平衡车系统的约束副包含:车箱与支架之间的固定副连接,车箱与车轴之间的固定副连接,电机与车架之间的固定福连接,左右车轮与车轴之间的旋转约束连接。
3.3 左右车轮施加驱动力
ADAMS通过其动力工具库中的“转矩(Torque)”模块,为左右车轮与车轴之间的旋转副施加旋转力矩。
3.4 构建路面模型和选定轮胎模型
在Solid Works2014中,建立一个平板零件(尺寸为2 000 mm×2 000 mm,厚度为30 mm),导入ADAMS中作为车辆的运行平台。轮胎模型在ADAMS/Car模块中选取,其模型特性均根据实际试验数据编写,能够使仿真结果能更接近实际情况。设置路面与轮胎之间的摩擦系数为0.3.
4 基于MATLAB的平衡控制器设计
判断自平衡车是否处于平衡状态,最直观的依据就是观察车体与地面的夹角。因此,平衡控制就是将车辆倾角控制在可以保持平衡的范围内。为了简化控制复杂性,系统采用PID控制律调节平衡,即将车体当前倾斜角与设定角进行PID运算,获取车体直立平衡的控制信号。并根据该信号驱动电机,使车辆左右电机产生相应驱动力。
根据上述控制策略,在MATLAB/Simulink中设计PID控制器如图3所示。其中为设定值,根据系统给定,为平衡状态下的倾斜角;为测量值,由ADAMS仿真输出获得当前倾角,并送给MATLAB;为根据PID控制率计算的控制偏差。
借助联合仿真过程中的车辆动态演示过程,采用Ziegler-Nichols工程方法进行PID参数整定。首先根据车体摆动振荡幅度大小情况确定p;然后依据车体摆动速率调节参数d;最后适当调节i,以确保车体反应的快速性。经过调试得到的控制参数为:p=800,i=850,d=1.
5 ADAMS与MATLAB的联合仿真
5.1 MATLAB与ADAMS的连接
通过ADAMS/Control模块,可以将机械系统仿真分析环境与控制设计仿真环境有机联合起来,将控制功能添加到虚拟样机中,对形成的虚拟机电系统进行联合仿真分析。
系统中,ADAMS软件根据实际设计几何尺寸和相关参数信息建立2轮自平衡电动车的虚拟样机模型,设定好输入输出变量,导出控制文件与MATLAB对接,用MATLAB中的Simulink模块建立好控制系统,将控制系统反馈回来的控制信号作为ADAMS的输入,从而控制2轮自平衡车在ADAMS中的虚拟样机;同时,ADAMS输出量会向MATLAB传输实时监测到的车辆模型的角度值和角速度值,这样控制模型的实时输入量通过与目标值进行比较,得到误差信号,经过PID控制器进行控制调节。
5.2 控制参数设置
ADAMS与其他创建控制系统模块的软件之间通过输入、输出状态变量实现数据变换。
ADAMS通过菜单【Build】→【System Elements】→【State Variable】→【New】来定义状态变量。创建状态变量TWC_TorqueL、TWC_TorqueR,分别对应平衡车的左右轮转矩,通过将其配置给“转矩(Torque)”模块的对应电机,实现实体与变量关联。利用“Plant Input”设置,指定其为输入变量。创建状态变量DistanceX、VelocityX、TWC_AngleZ,TWC_VelocityZ分别是2轮自平衡车的位移、速度、车辆质心倾角角度、倾角角速度。利用“Plant Output”设置,将其设为模型的输出变量。
设置完相应状态变量后,通过加载ADAMS/Control 模块,可将相应变量MATLAB软件进行关联。完成控制参数输出后,系统会自动在工作目录下将生成 TWC.m、TWC.cmd和TWC.adm三个文件。
5.3 创建联合控制系统
在ADAMS中创建好输入、输出变量,就可以生成如图4所示的ADAMS联合仿真模块adams_sub,利用此模块就可以在Simulink中创建联合控制系统。
将MATLAB工作目录指向ADAMS的工作目录后,利用ADAMS与MATLAB的接口命令ADAMS_sys启动MATLAB/Simulink的选择窗口,通过新建模块control_model.mdl,将ADAMS中建立的子模块adams_sub拖拽到control_model.mdl窗口中,再添加相应的PID控制算法模块,完成联合控制系统搭建,如图5所示。
6 仿真结果分析
在MATLAB/Simulink下运行联合控制系统,其会自动与ADAMS进行交互,实现联合仿真。
图3 基于Simulink的PID控制器
图4 adams_sub 联合仿真模块
图5 联合控制系统结
仿真时系统自主在后台进行动力学解算,结束后将运行结果数据存储在系统二进制bin文件中,通过ADAMS可以读取整个运行过程,如图6所示。图6中左侧窗口显示虚拟样机姿态变化,右侧为各观测变量在仿真时段的变化曲线。
给处于平衡状态的车辆施加一破坏平衡的扰动,利用上述仿真系统,可以观察到车辆恢复平衡的整个动态响应过程。图6中右上图为车辆质心位移响应曲线,右下图为车倾角角速度响应曲线。
图6 平衡车动态仿真状态图
实验结果说明,当虚拟车辆在平面路面处于平衡状态时,给车体一个扰动,车辆发生倾倒动作。在向下倾倒1 s后车体质心开始相对轴向上运动,去寻找平衡点;在4.5 s时相对在轴的速度达到顶峰,而后急速衰减;在5 s时降为0,相对轴的位移在这个时候达到最大;在3~6 s间倾角角速度曲线与动能曲线均发生了波动,说明此时车辆在进行自动的平衡调整。最终质心位移会到初始大小,同时速度、角速度、动能都基本趋向为0,说明车辆一直没有倾倒,并逐渐趋于平衡状态,验证了系统及控制算法的有效性。
7 总结
通过理论分析与仿真实验表明,利用基于ADAMS构建的多体系统动力学虚拟样机模型,避免了非线性系统的精确建模问题,可更加全面地反映复杂系统的真实特性。利用MATLAB与ADAMS联合构建全虚拟的机电控制系统,既可以实现系统的控制过程动态仿真,还可以降低开发的成本、提高效率。通过本文构建的综合仿真系统,也可进一步研究在不同路面摩擦系数和不同控制算法下车辆平衡控制性能,为设计最优控制策略提供依据。
[1]W.S. Badr,M. Fanni,Ali K.Abdel-Rahman,S.Abdel Rasoul. Dynamic Simulation and Optimization of Rhombic Drive Stirling Engine Using MSC ADAMS Software[J].Procedia Technology,2016(22).
[2]Haobin Jiang,Tao Wang,Jiaojiao Li.Closed-loop simulation and evaluation of vehicle handling stability on the basis of SIMPACK[P].Control and Decision Conference(CCDC),2010 Chinese,2010.
[3]王杨.分布式驱动电动汽车轮毂电机驱动控制研究[D].长春:吉林大学,2015.
[4]姜园,赵新华,杨玉维,等.基于牛顿-欧拉递推法的3-RRRT并联机器人动力学建模及仿真[J].高技术通讯,2016,26(Z1):780-785.
[5]刘延柱.基于高斯原理的多体系统动力学建模[J].力学学报,2014,46(06):940-945.
[6]崔彦博.一种变结构自行车机器人动力学建模与控制[D].北京:北京邮电大学,2015.
[7]焦健,庞世伟,吴迎,等.基于Kane方程的柔性Stewart平台动力学建模研究[G]//第十二届全国振动理论及应用学术会议论文集.北京:中国振动工程学会、南京航空航天大学机械结构力学及控制国家重点实验室,2017:9.
[8]袁震.利用旋量和对偶数矩阵法的空间机构动力学分析[J].纺织基础科学学报,1994(03):217-221,249.
2095-6835(2018)20-0054-04
V414
A
10.15913/j.cnki.kjycx.2018.20.054
江苏省科技项目-基础研究计划-面上项目(编号:BK20151273);南通市科技计划项目(编号:MS12015012);南通大学实验教学改革专项(编号:2014C08)
戴伟,工学硕士,讲师。陈峰,工学博士,副教授。张玉芳,工学博士,讲师。
〔编辑:张思楠〕