灰箱辨识:在知道对象的数学模型之后,通过观测对象的输入输出数据,来辨识出对象模型的部分参数。
最终效果:辨识出英雄云台的转动惯量、力臂以及摩擦系数,并搭建simulink仿真系统,进行离线调PID。
实验平台:matlab2018、coppeliasim4.0
实验模型:英雄机器人云台pitch轴
关键:知道我们辨识对象的数学模型,才能做灰箱grey-box辨识,从而找出云台的各项物理参数。
一、采集数据
上图为简化后的模型,红色是电机,长条是关节臂。
让云台pitch做阶跃响应,从vrep里采集数据。
二、灰箱辨识
首先,我们需要知道单关节的空间状态方程(动力学方程)
m语言写出动力学方程
使用idgrey函数创建一个灰箱,官方文档链接在此
灰箱辨识拟合度如图所示
至此,辨识出了关节的质量m、力臂l以及摩擦系数b。拟合度很好。
三、simulink搭建动力学仿真系统
四、效果对比
通过给定不同组PID参数,来观察simulink搭建的动力学仿真系统,以及灰箱辨识的参数,是否和真实控制时的效果一样。
(左图是coppeliasim,右图是simulink仿真)
结论:灰箱辨识也比黑箱辨识的效果好很多。在已知数学模型的前提下,能找出我们控制的电机、关节的部分物理参数。
提到的黑箱辨识,和自动调PID参数链接如下:
龙胆也老师:【系统辨识】黑箱辨识单关节传递函数,离线调PIDzhuanlan.zhihu.com更新:力矩前馈结合PID负反馈的效果更好噢!
龙胆也老师:动力学前馈控制单关节zhuanlan.zhihu.com声明:本次实验由华南理工大学机器人实验室提供实验环境,由华南虎战队设计仿真英雄机器人。同时感谢华南虎战队的小伙伴一起研究和创新。