x0=[1 1];
[xx,res]=lsqcurvefit(f,x0,t3,y3) %最小二乘拟合,xx为[a(1) a(2)]
拟合结果为a(1)= 27.93,a(2)= 1.61,即 =40时, =27.93,时间常数 =1.61s,代入式(3.13)可得模型
令 的幅值分别为50,60,70,运行测速程序,各测10组 取平均值作为纵坐标.。
按照同样的处理方法拟合数据,可以得到
=50时, =36.05, =1.39
=60时, =47.77, =1.46
=70时, =56.61, =1.24
使用polyfit(x,y,1)函数做多项式拟合,可得到 =0.98, =11.68。
故当前轮偏角为0时,电机的输入输出模型为:
需要注意的是,智能小车不发生倒走,即速度恒大于等于0。当速度为0时,没有滚动摩擦阻力,上式中的11.68代表小车前进时受到的阻力,此时应为0。
之前已推出式(3.11):
联合以上两式即为前轮偏角为0时的电机模型,其输入量为PWM的占空比控制量 ,输出量为小车速度 。
本章通过实验测试获取不同输入下某智能小车的运行数据,然后运用最小二乘法估计出小车模型中的未知参数。
第4章 模型验证
4.1 使用Simulink搭建模型
Simulink简介:Simulink是matlab最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
Matlab下提供的Simulink环境是解决非线性系统建模、分析与仿真的理想工具,它提供了各种各样的模块,允许用户以框图的形式搭建起任意复杂的系统,从而对其进行准确的仿真。
小车模型较为复杂,采用模块封装方法可以使系统模型更加结构化,也更易于文护。因此将舵机模型和电机模型各自封装,作为子系统Subsystem和Subsystem1。
图4.1 舵机子系统示意图
图4.2 舵机子系统内部框图
图4.1为舵机子系统封装后的示意图,图中舵机子系统Subsystem的输入量为Xa(即PWM占空比 ),输出量为alpha(即前轮偏角 ,单位为rad)。输入端使用阶跃输入的叠加实现方波输入,输出端的示波器用于显示单位为度时的alpha值,以便于观察。
图4.2为舵机子系统的内部框图,图中Ya为对表示转角大小的电位器电平进行A/D转换得到的数值 ,Fcn3为0.253-asin((u-47)/256*30/15.5),实现了 到 的转换:
Transfer Fcn和Transport Delay实现了 的微分方程:
Switch和Switch1联合Fcn、Fcn1、Fcn2实现了 的分段结构:
图4.3 电机子系统示意图
图4.4 电机子系统的内部框图
图4.3为电机子系统封装后的示意图,图中,电机子系统的输入量为Xu(即PWM占空比 )和前轮偏角alpha,输出量为u(即小车速度 )。Step2给Xu一个阶跃信号输入。
图4.2为电机子系统的内部框图,图中Yu为单片机测速时采集到的原始数据 ,Fcn5实现了 到 的转换: 。
除了Fcn5外的其他模块实现了 的微分方程:
其中,Switch1及其左边的模块实现了 ,且 =0时 =0;Switch2将 作为判断条件,实现了当 =0时 不存在,即此时小车受到的阻力为0。
图4.5 系统总框图
图4.5为小车模型的总框图,图中,theta为小车中轴线与X轴的夹角 ,有 。simoutX为仿真得到的 ,simoutY为仿真得到的 ,有
XYGraph以 为横坐标, 为纵坐标,绘制小车运行轨迹。simoutX和simoutY则将 和 的值保存至Workplace,以便于在Matlab程序中使用。 Simulink四轮驱动小车的数学建模及仿真(9):http://www.751com.cn/jisuanji/lunwen_2155.html