串稳定混合交通的协同自适应巡航控制:基准和以人为本的设计(Matlab代码实现)

news2024/11/23 21:46:36

     目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

串稳定混合交通的协同自适应巡航控制是一种针对复杂交通环境的控制方法,旨在实现交通系统的高效运行和安全性。其中,基准和以人为本的设计是关键的方面。

基准设计是指制定交通流的基本参数和规则,例如限速、车道划分和信号灯控制等。通过合理的基准设计,可以提供交通流的稳定性和一致性,为协同自适应巡航控制提供基础。

以人为本的设计则关注驾驶员的需求和行为。考虑到不同驾驶员的习惯和偏好,以人为本的设计通过智能化系统来适应驾驶员的操作方式和行驶偏好,从而提供更加舒适和个性化的驾驶体验。这种设计方法能够提高驾驶员的满意度,增强交通系统的可接受性和可持续性。

综合运用基准设计和以人为本的设计原则,协同自适应巡航控制可以实现交通流的优化和驾驶员的舒适性。通过自适应控制算法和实时交通信息的融合,系统能够实时调整车辆速度和跟车间距,以适应当前的交通状况和驾驶员的偏好。

📚2 运行结果

主函数部分代码:

clc, clear all
​
​
load('input7_b.mat')
%ur2=input1(1:91)*1.2145;
Time_g=0:0.5:50;
Time_int=0.5;
time_orig=0:0.001:60;
input1(30100:60001)=input1(30100:60001)*0.55;
​
for index_i=1:1:59/Time_int+1
    input1_a(index_i)=1.065*interp1(time_orig,input1,Time_int*(index_i-1));
end
​
%parameters used for the AP model
AX=1.5;        
CX2=20;
OPDVmult=-1.5;    
EX=2;
%Ln=4;
CLDVCX=16;
BX=3.5*sqrt(20);
SDX=AX+BX*EX;
​
​
​
​
initial0=[20*(1.4*2+0.8*2+1.3*2),20,0,0,20*(1.4*2+0.8+1.3*2),20,0,0,20*(1.4*2+1.3*2),20,0,0,20*(1.4+1.3*2),20,0,0,20*(1.4+1.3),20,0,0,20*1.4,20,0,0,0,20,0,0];
​
hd2=0.8;
hd3=0.8;
hd5=1.3;
hd6=1.3;
​
​
Tau=[0.2,0.2,0.2,0.2,0.2,0.2,0.2];
Omega=[0.7,0.7,0.7,0.7,2,2,0.7];
Kd=Omega;
Kp=Omega.^2;
​
​
A11=[0,1,0,0;0,0,1,0;0,0,-1/Tau(1),0;0,0,0,0];
A21=[0;0;1/Tau(2);0]*[Kp(2),Kd(2),0,0];
A22=[0,1,0,0;0,0,1,0;0,0,-1/Tau(2),0;0,0,0,-1/hd2]+[0;0;1/Tau(2);0]*[-Kp(2),-Kd(2)-Kp(2)*hd2,-Kd(2)*hd2,1];
A33=[0,1,0,0;0,0,1,0;0,0,-1/Tau(3),0;0,0,0,-1/hd3]+[0;0;1/Tau(3);0]*[-Kp(3),-Kd(3)-Kp(3)*hd3,-Kd(3)*hd3,1];
A32=[0;0;1/Tau(3);0]*[Kp(3),Kd(3),0,0]+[0;0;0;Tau(3)/hd3]*A22(3,:)+[0;0;0;1/hd3]*[0,0,1,0];
A31=[0;0;0;Tau(3)/hd3]*A21(3,:);
A43=[0,0,0,0;0,0,0,0;0,0.477,-0.368,0;0,0,0,0];
A44=[0,1,0,0;0,0,1,0;0,-0.477,-0.923,0;0,0,0,0];
A55=[0,1,0,0;0,0,1,0;0,0,-1/Tau(5),0;0,0,0,-1/hd5]+[0;0;1/Tau(5);0]*[-Kp(5),-Kd(5)-Kp(5)*hd5,-Kd(5)*hd5,0];
A54=[0;0;1/Tau(5);0]*[Kp(5),Kd(5),0,0]+[0;0;0;Tau(5)/hd5]*A44(3,:)+[0;0;0;1/hd5]*[0,0,1,0];
A53=[0;0;0;Tau(5)/hd5]*A43(3,:);
A66=[0,1,0,0;0,0,1,0;0,0,-1/Tau(6),0;0,0,0,-1/hd6]+[0;0;1/Tau(6);0]*[-Kp(6),-Kd(6)-Kp(6)*hd6,-Kd(6)*hd6,0];
A65=[0;0;1/Tau(6);0]*[Kp(6),Kd(6),0,0];
A76=[0,0,0,0;0,0,0,0;0,0.477,-0.368,0;0,0,0,0];
A77=[0,1,0,0;0,0,1,0;0,-0.477,-0.923,0;0,0,0,0];
​
​
B1=[0;0;1/Tau(1);0];
B2=[0;0;0;1/hd2];
​
An0=[A11,zeros(4,24);A21,A22,zeros(4,20);A31,A32,A33,zeros(4,16);zeros(4,8),A43,A44,zeros(4,12);zeros(4,8),A53,A54,A55,zeros(4,8);zeros(4,16),A65,A66,zeros(4,4);zeros(4,20),A76,A77;];
Bn0=[B1;B2;zeros(20,1)];
​
Cn0=eye(28);
​
Cv0=zeros(7,28);
for i=1:7
Cv0(i,2+4*(i-1))=1;
end
​
Caa=zeros(7,28);
for i=1:7
    Caa(i,3+4*(i-1))=1;
end
​
Cjj=zeros(7,28);
for i=1:7
    Cjj(i,:)=An0(3+4*(i-1),:);
end
​
​
C0=zeros(7,7);
for i=1:7
    C0(i,i)=Tau(i);
end
​
C00=C0*Cjj+Caa;
​
Cxx=zeros(6,28);
Cva=zeros(6,28);
​
for i=1:6
    Cxx(i,1+4*(i-1))=1;
    Cxx(i,5+4*(i-1))=-1;
    Cva(i,2+4*(i-1))=-1;
    Cva(i,6+4*(i-1))=1;
end
    
    
    
    
Ce0=[Cjj;C00;Cv0;Cxx;Cva];
​
​
Dn0=zeros(28,1);
Dn1=zeros(33,1);
​
​
sysh0=ss(An0,Bn0,Cn0,Dn0);
sysh1=ss(An0,Bn0,Ce0,Dn1);
Time1=0:0.5:0.5;
​
for i=1:1:100  
    ur2=input1_a(i:i+1)';
H0=lsim(sysh0,ur2,Time1,initial0);
H1=lsim(sysh1,ur2,Time1,initial0);
initial0=H0(2,:);
res(i:i+1,:)=H1;
end

🎉3 参考文献

​[1]秦严严,王昊,王炜等.混有CACC车辆和ACC车辆的混合交通流驾驶舒适性[J].哈尔滨工业大学学报,2017,49(09):103-108+173.

部分理论引用网络文献,若有侵权联系博主删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/792456.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ATTO488 NHS ester ,新型亲水性荧光标记物,具有良好的水溶性

陕西新研博美生物科技有限公司MISS.wu小编(2023.7月26日)为大家整理以下的内容: Atto488-NHS是一种新型亲水性荧光标记物,具有良好的水溶性。这种染料表现得很浓吸收、高荧光量子产率以及优异的热稳定性和光稳定性。因此&#xff…

推送docker镜像到私有/DockerHub仓库

制作本地镜像 以定制jdk11镜像为例&#xff1a; 新建文件夹jdk11下载orcale jdk11&#xff0c;复制orcale jdk11 到刚刚新建文件夹jdk11下新建Dockerfile&#xff0c;镜像对字符集和时间都做了处理 FROM centos:7 MAINTAINER cc <ccqq.com>ADD jdk-11.0.10_linux-x64_…

多线程——多线程的创建方式、常用成员方法

目录 一、什么是多线程&#xff1f; 线程与进程 进程与线程区别&#xff1a; 并发与并行 二、多线程的创建方式&#xff08;三种方式&#xff09; 第一种&#xff1a;继承Thread类方式创建 第二种&#xff1a;实现Runnable接口的方式创建 第三种&#xff1a;利用Callab…

uniapp实现预约时间选择弹窗组件

做了个组件&#xff0c;实现出当日预约时间组件&#xff0c;效果图如下 废话不多说&#xff0c;直接上代码&#xff0c;代码简单&#xff0c;参数自己任意改 <template><view class"inventory"><u-popup :show"show" :round"10"…

全国青少年信息素养大赛Scratch图形化编程_初赛_模拟二卷

全国青少年电子信息智能创新大赛Scratch图形化编程_初赛_模拟二卷 一、选择题 第 1 题 单选题 执行下面程序&#xff0c;角色会说&#xff1f;&#xff08; &#xff09; A.34 B.28 C.51 D.42 第 2 题 单选题 默认小猫角色&#xff0c;初始位置在舞台中心&#xff0c;下面…

Vuex模块化管理

如果你的项目是一个小型项目&#xff0c;就用不着使用模块化&#xff1b; 但是&#xff0c;如果你参与的项目是一个中大型项目&#xff0c;那Vuex模块化&#xff0c;必不可少&#xff0c;否则整个文件很臃肿&#xff0c;也很难管理。 通过模块化管理&#xff1a;各自模块下都有…

【Linux环境搭建篇】--- 还不会搭建Linux环境?收藏这一篇就够了

文章目录 前言&#x1f31f;一、Linux背景介绍&#x1f30f;1.1. 发展史&#x1f30f;1.2. 开源 &#x1f31f;二、搭建Linux环境&#x1f31f;三、使用 XShell 远程登陆到 Linux&#x1f31f;四、XShell 下的复制粘贴&#x1f63d;总结 前言 &#x1f467;个人主页&#xff1a…

AF647 Azide,Alexa Fluor 647 Azide,明亮且光稳定的荧光基团

文章编辑来自于&#xff1a;陕西新研博美生物科技有限公司MISS.wu​ Alexa Fluor 647 Azide&#xff0c;Alexa Fluor 647 N3&#xff0c;AF647 Azide&#xff0c;AF 647 N3| AF 647 叠氮&#xff0c;Alexa Fluor 647叠氮 | CAS&#xff1a;N/A | 纯度&#xff1a;95% PA…

vue项目加按钮,两个不同的项目当前页进行互相切换

服务器上两个项目当前页互相切换 直接使用 window.location.href 调整的页面地址 这里一定要注意服务器上项目的前缀名称即可。

【iOS】—— RunLoop和多线程相关问题总结

RunLoop 1. 讲讲RunLoop&#xff0c;项目中有用到过吗&#xff1f; RunLoop 的基本作用&#xff1a;保持程序的持续运行&#xff0c;节省 CPU 的资源&#xff0c;提高程序的性能 &#xff08; 没有事情&#xff0c;就请休眠&#xff0c;不要功耗。有事情&#xff0c;就处理&a…

如何制定数据采集解决方案?

数据采集仍是人工智能&#xff08;AI&#xff09;构建团队的主要瓶颈。原因各不相同&#xff1a;用例数据可能不足&#xff0c;深度学习等新机器学习&#xff08;ML&#xff09;技术需要更多数据&#xff0c;或者团队并未建立获取所需数据的适当流程。但无论如何&#xff0c;对…

xmind latex【记录备忘】

xmind latex 换行 换行必须要有\begin{align}和\end{align}&#xff0c;此时再在里面用\才能换行&#xff0c;如果只写112\224是不能换行的

2023第五届全国生物资源提取与应用创新论坛即将举办

01、会议背景 为进一步加强生物资源提取行业交流与合作&#xff0c;促进业“产学研用”融合&#xff0c;提升行业科技创新水平&#xff0c;增强行业国际竞争力&#xff0c;中国生物发酵产业协会、浙江科技学院、浙江工业职业技术学院、浙江省农业生物资源生化制造协同创新中心&…

JS算法之递归

含义 递归函数是指能够直接或间接调用自身的方法或函数。 // 直接 function do() {do(); }// 间接 function do() {do2(); } function do2() {do() } 每个递归函数必须有基线条件&#xff08;即停止点&#xff0c;一个不再递归调用的条件。&#xff09;否则将无限递归下去。 因…

每天一个电商API分享:淘宝/天猫获取商品销量详情 API(月销总销)

淘宝/天猫获取商品销量详情API&#xff08;月销总销&#xff09;是一种用于获取电商平台上商品销量数据的接口。通过这个API&#xff0c;用户可以方便地获取到商品的月销量以及总销量等详细信息&#xff0c;快速了解商品的销售情况。 随着电商行业的快速发展&#xff0c;不少卖…

pytest study

pytest 测试用例的识别与运行 测试文件&#xff1a;test_*.py 和 *_test.py 以test开头或结尾的文件 测试用例&#xff1a;Test*类包含的所有 test_*的方法&#xff08;测试类不能带有__init__方法&#xff09;&#xff0c; 不在class中的所有test_*的方法 def func(x):r…

RunnerGo性能测试怎么做?

性能测试—计划管理 新建计划&#xff1a; 在左侧导航栏中&#xff0c;选择“性能测试”&#xff0c;点击“计划管理”进入计划管理界面&#xff0c;点击右上角新建计划来新建测试计划。任务类型选择后不可再更改。定时模式下, 该计划内最多只能创建一个场景。 普通任务&…

如何往MySQL中插入100万条数据?

需求 现在有一个 数据量 为100万的数据样本 100w_data.sql 其数据格式如下&#xff0c;截取最后十条数据 999991,XxGdnLZObA999991,XxGdnLZObA,XxGdnLZObA,2020-3-18,1 999992,TBBchSKobC999992,TBBchSKobC,TBBchSKobC,2020-9-8,2 999993,rfwgLkYhUz999993,rfwgLkYhUz,rfwgLk…

APISIX 安全评估

背景 有大佬已经对 [apisix攻击面](https://ricterz.me/posts/2021-07-05-apache-apisix-attack- surface-research.txt)做过总结。 本文记录一下自己之前的评估过程。 分析过程 评估哪些模块&#xff1f; 首先我需要知道要评估啥&#xff0c;就像搞渗透时&#xff0c;我得…

【三维重建】【深度学习】Windows10下NeRS官方代码Pytorch实现

【三维重建】【深度学习】Windows10下NeRS官方代码Pytorch实现 提示:最近开始在【三维重建】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。 文章目录 【三维重建】【深度学习】Windows10下NeRS官方代码Pytorch实现前言NeRS模型运行下载源码并安装环境安装…