3.2.2    实验设计
舵机的输入量为舵机控制信号PWM的占空比 ,输出量为前轮偏角 ,实际测量中单片机测得的输出量是电位器电平经过A/D转换后的值 ,在舵盘转角 较小时 和 近似成线性关系,故可以用 代替 作为输出量。根据之前对舵机的分析可知这是一个带延迟的一阶惯性环节,考虑通过分析其阶跃响应来估计参数。
具体实验方法为:将小车放在跑道上,对舵机的输入量 给定一个阶跃信号,并延时0.25s,以使舵机在转动前处于正中位置,前轮偏角为0;然后每0.005s读一次电位器电平的A/D转换结果 ,并存入数组 [500]中,直到读够500次(共2.5s),将数组 [500]发送到电脑上进行下一步数据处理。

3.2.3    数据处理
由于在舵盘转角 较小时, 和 近似成线性关系,故舵机模型式(2.2)可转化为:       (3.2)
需要估计的参数为 、 和 ,其中 可以由 的曲线上直接读出。经过实验可知当 =5600时,前轮偏角为0,即 。故进行阶跃响应实验时,输入的 应是初值为5600的阶跃信号,且 =5600时 =80。 的稳态值为 ,故
                    (3.3)
考虑使用最小二乘法对 和 进行参数估计。最小二乘法是最常用的参数估计方法,它使数学模型在误差平方和最小的意义上拟合实验数据。最小二乘拟合的基本步骤是:给定线性无关的函数系 为基函数,确定拟合的目标函数为
                      (3.4)
对给定的m个数据 ,求取拟合参数 ,使拟合残差平方和最小,即                           (3.5)
拟合残差平方和最小时,式(3.5)等号左边的函数对各个拟合参数的偏导数为0,即对k=0,1,…,n,有
式(3.7)可以写作矩阵型式:
在实际使用中,用MATLAB优化工具箱可以方便的解决线性、非线性最小二乘拟合问题。对于线性最小二乘拟合,可以调用多项式拟合函数polyfit(x,y,n),其中x,y为待拟合数据,n为目标函数的阶次。对于非线性最小二乘拟合,可以调用函数lsqcurvefit(fun,x0,xdata,ydata),其中fun为目标函数,x0为初始解向量,xdata和ydata为待拟合数据。
以舵机的输入为 =5100的阶跃信号为例。运行测角度程序,单片机采集的电位器电平信号经串口发送到电脑上,存放地址为d:\data_servo\5100 1.txt。使用Matlab的数据处理程序如下:
t=0:0.005:2.495;   %一共500个数据,为时2.5s
m=textread('d:\data_servo\5100 1.txt','%s')';   %读取存放数据的文件
m1=m (7:506);   %去除串口调试助手加在数据前后的注释
y1=hex2dec(m1)';   %将原来的十优尔进制数据转换为十进制数据
在第0.25s输入量发生跳变后,舵机经过一个短暂的延时,然后迅速变化到最终角度。
使用下面的程序放大0.5s到1s的区域,
t2=0:0.005:0.5;  y2=y1(50:150);  plot(t2,y2);
可以得出舵机延迟约0.035s,即 =0.035s。对延时后的数据进行最小二乘拟合以求得 和 的值,程序如下:
t3=0:0.005:0.465;
y3=y1(57:150);   %去除前0.035s
f=inline('a(1)+(80-a(1))*exp(-t3/a(2))','a','t3');   %去除延迟后的舵机模型。已知 的初始值为80,式中a(1)为稳态值 ,a(2)为时间常数
x0=[1 1];   %x0为非线性最小二乘拟合的初始解向量
[xx,res]=lsqcurvefit(f,x0,t3,y3)   %非线性最小二乘拟合,xx为[a(1) a(2)]
上一篇:僵尸网络入侵研究+文献综述
下一篇:VC++视网膜血管自适应图像的抽取算法及其实现

android智能小车及蓝牙车辆状态监控APP开发

Android直立小车及蓝牙车况采集APP设计

VB单小车单桥式起重机型号...

Android智能行走小车的手机端监控软件开发

两轮自平衡小车姿态参数检测及实验研究

神经外科重症监护病房患...

C#学校科研管理系统的设计

10万元能开儿童乐园吗,我...

医院财务风险因素分析及管理措施【2367字】

承德市事业单位档案管理...

AT89C52单片机的超声波测距...

国内外图像分割技术研究现状

公寓空调设计任务书

中国学术生态细节考察《...

志愿者活动的调查问卷表