发布时间:2024-01-27 18:00
前沿
数学模型是一个或多或少,以一定的形式表达出你正在观测的事物。**通过观测事物的各项属性,推断出一个数学模型,这是科学。**系统辨识,着手从观测事物得到的数据中,建立一个数学模型。正由于物理系统在我们身边应用很广,所以系统辨识学科有个很宽广的应用范围。
物理系统(dynamic systems)
一个物理系统可以简化成一个黑箱,有四个相关的变量。u是输入信号;w是可测量的干扰两;v是不可测量的干扰信号;y是输出。
是最常见的二阶物理系统
模型(model)
模型的种类(三种)
常见的连续时间表达式有微分方程,状态空间和传递函数。
常用的离散时间表达式是差分方程
创建模型(两种方法)
真实系统的虚构性
数学模型为我们提供一个窗口,来观察真实世界。但我们永远无法对物理系统构建一个完全精确的数学模型。
三要素
模型验证
在辨识出一个模型后,还要去测试这个模型是否“足够好”。
系统辨识的环节
好事多磨,辨识一次不一定能够得到一个较理想的模型,通过模型验证有效后,如果模型拟合不佳,继续从第一步重新做。
五大步骤:
在v-rep里采集数据
添加图表和想记录的变量
使用Graph图表收集仿真数据
仿真,让云台做阶跃响应
把采集到的数据导出到excel文件里,第一步顺利完成
导入数据到matlab中
输入导入
把test分开两部分:
In= table2array(in)是把table转换成矩阵,这样才能继续做下一步的系统辨识。
此时工作区中的in和out都是411行1列的double型矩阵
系统辨识system identification
导入数据到system identification的app里
这里的采样时间是0.02,因为v-rep里默认的仿真时间是20ms。
数据预处理
这里只做了把数据分成训练集和验证集两部分。(本质是神经网络)
处理完后,把madatae和madatav分别拖入到working data和validation data的工作框内
传递函数的辨识
导出传递函数即可
搭建模型
把辨识出的传递函数写进去transfer function 里
打开PID tunner app
调节两个移动图标
得到满足你需求的一个曲线后(这里的例子上升时间大约0.5s),然后更新到simulink中
simulink仿真更新后的PID,发现仿真曲线和PID tuner的一样,包括上升时间,超调等参数都一样。
把PID参数更新到v-rep模型里
仿真得到曲线
注意:上图v-rep仿真中,幅度为3的阶跃响应,上升时间是0.48s。这里的3,实际上相当于电机转动了180°。
结论:调节时间在500ms左右,超调量在0.70左右。证明系统辨识过程是正确的,有一定的准确性和指导意义,大大减小了调PID的时间。