严老师matlab工具箱仿真-无人车定位

严老师matlab工具箱仿真-无人车定位

1. trj仿真测试

所用的轨迹仿真工具,为基于matlab的二次开发的开源工具包,默认模式为飞行器运动仿真.通过自定义运动模式和参数,生成相应的机载imu数据和姿态、速度、位置等.

1.1. 自定义运动模式

运动模式的定义是根据时间进行分段的,加入要模拟一段首钢园区的轨迹路线,按照园区的路线分布,自定义下面一段运动轨迹,从编号1到23段,时间分段的运动定义详细见下表:

分段编号运动模式相关参数时长(s)
直线加速角速度w=0,加速度a= 1m/s^2 , 向心加速度=false10s
运动保持角速度w=0, 加速度a=0, 向心加速度=false15s
直线减速角速度w=0, 加速度a=-1m/s^2, 向心加速度=false5s
4-复合左转角速度w=18deg/s, 加速度a=0,向心加速度=true10s
5直线加速角速度w=0, 加速度a= 1m/s^2 ,向心加速度=false10s
运动保持角速度w=0, 加速度a=0,向心加速度=false10s
7直线减速角速度w=0, 加速度a=-1m/s^2,向心加速度=false5s
8-复合右转角速度w=-9deg/s, 加速度a=0,向心加速度=true10s
9直线加速角速度w=0, 加速度a=2m/s^2,向心加速度=false5s
10运动保持角速度w=0, 加速度a=0,向心加速度=false50s
11直线减速角速度w=0, 加速度a=-1m/s^2,向心加速度=false5s
12-复合左转角速度w=9deg/s, 加速度a=0,向心加速度=true10s
13直线加速角速度w=0, 加速度a=1m/s^2,向心加速度=false5s
14运动保持角速度w=0, 加速度a=0,向心加速度=false10s
15直线减速角速度w=0, 加速度a=-1.8m/s^2,向心加速度=false10s
16-复合左转角速度w=18deg/s, 加速度a=0,向心加速度=true5s
17运动保持角速度w=0, 加速度a=0,向心加速度=false50s
18直线加速角速度w=0, 加速度a=1m/s^2,向心加速度=false5s
19-复合左转角速度w=9deg/s, 加速度a=0,向心加速度=true10s
20运动保持角速度w=0, 加速度a=0,向心加速度=false58s
21-复合右转角速度w=-9deg/s, 加速度a=0,向心加速度=true10s
22直线减速角速度w=0, 加速度a=-1m/s^2,向心加速度=false5s
23运动保持角速度w=0, 加速度a=0,向心加速度=false100s

注:复合左右转中,当飞机在做方位转弯的时候,需要先进行滚转一定角度,在进行转弯后在滚转回来.
% 对应的不同的方位转弯速度,需要滚转不同的角度,具体的计算方式 见捷联惯导算法与组合导航原理 -7.1.5

1.2. 仿真数据生成

1.2.1. 生成的imu数据,姿态,速度,位置.

设定数据采样间隔时间为0.01

在这里插入图片描述在这里插入图片描述

1.2.2. 噪声设定

(0.03, 100, 0.001, 5)
%分别为 imuerr.eb为陀螺仪零偏稳定性,imuerr.db为加速度计零偏稳定性,imuerr.web为角速度随机游走,imuerr.wdb为加速度随机游走
%     eb - gyro constant bias (deg/h)
%     db - acc constant bias (ug)
%     web - angular random walk (deg/sqrt(h))
%     wdb - velocity random walk (ug/sqrt(Hz))
 imu = K*imu + drift error.
     drift = [ ts*imuerr.eb(1) + sts*imuerr.web(1)*randn(m,1), ...
              ts*imuerr.eb(2) + sts*imuerr.web(2)*randn(m,1), ...
              ts*imuerr.eb(3) + sts*imuerr.web(3)*randn(m,1), ...
              ts*imuerr.db(1) + sts*imuerr.wdb(1)*randn(m,1), ...
              ts*imuerr.db(2) + sts*imuerr.wdb(2)*randn(m,1), ...
              ts*imuerr.db(3) + sts*imuerr.wdb(3)*randn(m,1) ];
% GPS噪声设定 标准差为1m
 posGPS = trj.pos + randn(3,1); 

1.3. 定位算法仿真结果

讲上述生成的仿真原始数据,加上漂移和噪声后,输入定位算法进行测试:

roll,pitch,yaw姿态&Vn速度&位置&轨迹

在这里插入图片描述
**姿态&位置误差 **
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
LQR控制器是一种线性控制器,可以通过Matlab工具箱进行设计和仿真。下面是一个简单的LQR控制器设计和智能无人车仿真步骤: 1. 定义系统模型 首先,需要定义智能无人车的状态空间模型,例如车辆的位置、速度、方向等。假设车辆的状态变量为x=[p,v,θ,ω],其中p表示位置,v表示速度,θ表示方向,ω表示角速度。车辆的动态方程可以表示为: ``` x_dot = Ax + Bu ``` 其中A和B是状态空间矩阵,u是输入控制量。假设车辆只有一个输入控制量,即车辆的转向角度δ,那么可以将输入矩阵表示为B=[0 δ]^T。根据车辆运动学和动力学方程,可以得到状态空间矩阵A和B的表达式。 2. 设计LQR控制器 使用Matlab的lqr()函数可以设计LQR控制器。该函数需要输入状态空间矩阵A、B以及Q、R权重矩阵。Q矩阵用于加权状态变量的误差,R矩阵用于加权控制量的误差。可以根据实际情况进行调整。 例如,假设Q和R矩阵为: ``` Q = diag([1 1 1 1]); R = 1; ``` 使用lqr()函数进行LQR控制器设计: ``` K = lqr(A,B,Q,R); ``` K是计算得到的LQR控制器增益矩阵。 3. 进行仿真 使用Matlab的Simulink工具箱进行智能无人车仿真。可以先建立一个模型,包括车辆的状态空间模型和LQR控制器。然后,可以设置仿真参数,例如仿真时间、控制量输入等。最后,运行仿真并观察仿真结果。 在Simulink中,可以使用State-Space block来表示状态空间模型,使用Gain block表示LQR控制器增益矩阵。可以通过设置仿真参数来调整控制量输入,例如使用Step或Sinusoidal block来设置输入信号。 最后,可以运行仿真并观察仿真结果,例如车辆的位置、速度、方向等。如果仿真结果不理想,可以调整LQR控制器的权重矩阵或者进一步改进车辆模型。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值