在不同通信拓扑下的异构车辆的分布式预测控制

阅读: 评论:0

在不同通信拓扑下的异构车辆的分布式预测控制

在不同通信拓扑下的异构车辆的分布式预测控制

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、整体思路
  • 二、源码分析
    • 1.初始参数设定
    • 2.算法流程
  • 总结


前言

文章: Distributed model predictive control for heterogeneous vehicle platoons under unidirectional topologies
作者: Zheng, Yang, Shengbo Eben Li, Keqiang Li, Francesco Borrelli, and J. Karl Hedrick.
Journal: IEEE Transactions on Control Systems Technology 25, no. 3 (2017): 899-910.


一、整体思路

  1. 初始化参数
  2. Vehicle_Type对应编号车辆内部参数
  3. X0为上个时刻的状态信息
  4. Xdes = [Pd ,Vd]理想状态,当与领航车不能通信时,无法使用
  5. Xa = [Pa,Va]假定的状态,有上个时刻移位得到
  6. Xnfa = [Pa - d,Va]与能够通信的车距设定
  7. u0 = ua预设的控制量
  8. Pnp = Xnfa(end,1)Vnp = Xnfa(end,2)终端预期的结果
  9. 优化问题求解
  10. 更新当前状态
  11. 设定终端的控制量
  12. 根据当前时刻对下个时刻状态进行预估

二、源码分析

1.初始参数设定

文章中设置一辆领航车与七辆跟随车,跟随车的参数在文件PlatoonParameter.mat中。PlatoonParameter.mat中包含时间长度(10)、采样间隔(Time_step=0.1)、总步数(Num_step=100)、异构车辆的数量(7)、各个车的内部参数(质量、车轮半径、惯性滞后常数、摩擦系数、传动效率、空气阻力、物理约束等)、重力加速度等。
载入PlatoonParameter.mat

clc;clear;close all;
load PlatoonParameter.mat  % This set of parameters was used in the paper

领航车辆参数初始化,理想车距设定为20,参数为位置、速度、加速度:

% Leading vehicle
d  = 20;                                % Desired spacing
a0 = zeros(Num_step,1); 
v0 = zeros(Num_step,1); 
x0 = zeros(Num_step,1);

跟随车辆初始化,参数为位置、速度、扭矩、理想扭矩以及性能指标和优化器停止标志:

%% Initial Virables 
Postion  = zeros(Num_step,Num_veh);     % postion of each vehicle;
Velocity = zeros(Num_step,Num_veh);     % velocity of each vehicle;
Torque   = zeros(Num_step,Num_veh);     % Braking or Tracking Torque of each vehicle;
U        = zeros(Num_step,Num_veh);     % Desired Braking or Tracking Torque of each vehicle;Cost    = zeros(Num_step,Num_veh);      % Cost function
Exitflg = zeros(Num_step,Num_veh);      % Stop flag - solvers

领航车辆按预期的速度行驶,跟随车辆初始情况设定:

% Transient process of leader, which is given in advance
v0(1) = 20; 
a0(1/Tim_step+1:2/Tim_step) = 2; 
for i = 2:Num_stepv0(i) = v0(i-1)+a0(i)*Tim_step; x0(i) = x0(i-1)+v0(i)*Tim_step;    
end% Zero initial error for the followers
for i = 1:Num_vehPostion(1,i)  = x0(1)-i*d;Velocity(1,i) = 20;             Torque(1,i)   = (Mass(i)*g*f + Ca(i)*Velocity(1,i)^2)*R(i)/Eta;
end

2.算法流程

本文采用分布式预测控制算法,预测时域Np = 20。对于每一步的滚动优化,基于上一时刻的预测进行当前的优化:

% Distributed MPC assumed state
Np = 20;                      % Predictive horizon
Pa = zeros(Np,Num_veh);       % Assumed postion of each vehicle;
Va = zeros(Np,Num_veh);       % Assumed velocity of each vehicle;
ua = zeros(Np,Num_veh);       % Assumed Braking or Tracking Torque input of each vehicle;Pa_next = zeros(Np+1,Num_veh);  % 1(0): Assumed postion of each vehicle at the newt time step;
Va_next = zeros(Np+1,Num_veh);  % Assumed velocity of each vehicle at the newt time step;
ua_next = zeros(Np+1,Num_veh);  % Assumed Braking or Tracking Torque of each vehicle at the newt time step;

首个时刻初始化,第一个坐标代表时刻,第二个坐标代表车辆编号:

% Initialzie the assumed state for the first computation: constant speed
for i = 1:Num_vehua(:,i) = Torque(1,i);Pa(1,i) = Postion(1,i);                % The first point should be interpreted as k = 0 (current state)Va(1,i) = Velocity(1,i);Ta(1,i) = Torque(1,i);for j = 1:Np[Pa(j+1,i),Va(j+1,i),Ta(j+1,i)] = VehicleDynamic(ua(j,i),Tim_step,Pa(j,i),Va(j,i),Ta(j,i),Mass(i),R(i),g,f,Eta,Ca(i)

本文发布于:2024-01-31 21:15:47,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170670694931404.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:拓扑   分布式   车辆   通信   异构
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23