拟合结果为a(1)= 27.8125,a(2)= 0.0311,即 =0.0311s,在 =5100时 的稳态值 =27.8125。又有 =0.035s,代入式(3.3),可得模型
 
最后令 =5000,5100,5200,5300,5400,5800,5900,6000,6100,6200,运行测角度程序,可以得到舵机平均延时 =0.03s,使用Matlab进行最小二乘拟合,可得平均时间常数 =0.03s,然后根据不同的 得到相应的 .
使用polyfit(x,y,1)语句,对 和 分段做多项式拟合,可得
之前已根据前轮转向机构的几何关系推出式(3.1):
联合以上三个方程即为舵机模型,其输入为PWM的占空比控制量 ,输出为前轮偏角 。
3.3    前轮偏角为0时的电机模型参数估计
电机模型的输入量为电机控制信号PWM的占空比 ,输出量为小车速度 , 需要使用传感器测量。前轮偏角为0时, =0,电机模型中需要辨识的参数为 , 和 。设计实验测试舵机的输入输出数据,然后通过数据处理来估计电机模型参数 , 和 。
3.3.1    小车速度测量方法
对小车测速的基本原理都是将车轮的转动转变为脉冲信号,然后使用单片机的定时器/计数器模块对脉冲信号计数得到速度。
在对小车的的测速方法中,旋转编码器测速精度最高,它利用车模后轴的齿轮传动编码器的齿轮,使编码器输出一定频率的方波信号,在速度不太慢的情况下输出的方波频率与实际速度的线性关系较好。设定单片机的ECT模块为脉冲累加功能,检测信号的上升沿,就能采集这些脉冲,根据一段时间内采集到的脉冲数即可计算出当前的车速。
为了达到较高的测速精度,在智能小车上使用100线的旋转编码器进行测速。该编码器旋转一周产生100个脉冲,编码器齿轮的齿数为18,与编码器齿轮啮合的车模后轴主传动盘的齿数为76,因此小车后轮转动一周时编码器产生的脉冲数为100*76/18。已知小车车轮半径为0.026m,设0.01s内采集到得脉冲数为 ,则小车速度 和 的关系为:

3.3.2    实验设计
将小车放在跑道上,对 给定一个阶跃信号,使小车开始前进,同时保持舵机不动,前轮偏角为0。然后每0.01s读一次脉冲累加器数据 ,并存入数组 [500]中,直到读够500次(共5s), [500]中的数据即为每10ms内旋转编码器产生的脉冲数。通过对其阶跃响应进行分析即可得到电机模型的参数。
3.3.3    数据处理
电机模型见式(2.22),根据 ,代入,可得  (3.12)
令 , , ,则式(3.12)可变为:
前轮偏角 为0时 为0,故不考虑 ,需要估计的参数为 、 和 。
考虑到小车速度受外界干扰较大,令 的幅值为40,运行测速程序,测10组 ,将10组 取平均值以消弱外界干扰的影响。平均值 保存在d:\data\m40.txt中,以备最小二乘拟合使用。在使用最小二乘法估计参数时,考虑到电机刚启动时性能不稳,在拟合时去除前0.1s的数据;3s后速度变化缓慢,易受外界干扰,且由于实验条件所限,跑道长度不够,速度较大时在3.5s后小车会撞墙,因此再去除3s后的数据。使用最小二乘法对剩余的 数据进行拟合,估计输入量为 时的模型参数 和 。然后拟合对应于不同 的 值,估计参数 和 。
使用Matlab实现最小二乘法估计参数的程序如下:
m1=textread('d:\data\m40.txt','%s')';
y =hex2dec(m1)';   %y为10组测速数据取平均值后得到的
t=0.01:0.01:5;
f=inline('a(1)*(1-exp(-t/a(2)))','a','t');   %已知 初始值为0,式中a(1)为稳态值 ,a(2)为时间常数
t3=0.1:0.01:3;
y3=y(10:300);   %取第10到第300的数据,即0.1s-3s的数据
上一篇:僵尸网络入侵研究+文献综述
下一篇:VC++视网膜血管自适应图像的抽取算法及其实现

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

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

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

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

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

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

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

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

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

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

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

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

公寓空调设计任务书

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

志愿者活动的调查问卷表