• 2021年中青杯B题港珠澳大桥桥梁设计与安全策略数学建模全过程文档及程序


    港珠澳大桥桥梁设计与安全策略

    原题再现

      “港珠澳大桥是国家工程、国之重器,其建设创下多项世界之最,非常了不起,体现了一个国家逢山开路、遇水架桥的奋斗精神,体现了我国综合国力、自主创新能力,体现了勇创世界一流的民族志气。这是一座圆梦桥、同心桥、自信桥、复兴桥。大桥建成通车,进一步坚定了我们对中国特色社会主义的道路自信、理论自信、制度自信、文化自信,充分说明社会主义是干出来的,新时代也是干出来的!”。
      举世瞩目的港珠澳大桥主体工程已经全部竣工,东接香港,西接珠海、澳门,全程55公里的港珠澳大桥,是中国交通史上技术最复杂,建设要求及标准最高的工程之一,也是世界上最长的跨海大桥,被英国《卫报》誉为“新世界七大奇迹”。
      港珠澳大桥由桥梁,人工岛,隧道三部分组成,其中,岛隧工程是大桥的控制性工程,需要建设两座面积各十万平方米的人工岛和一条6.7公里的海底沉管隧道,实现桥梁与隧道的转换,是大桥建设技术最复杂,建设难度最大的部分,极具挑战性。珠澳大桥沉管隧道,是我国建设的第一座外海沉管隧道,也是世界上最长的公路沉管隧道和唯一的深埋沉管隧道。
      问题一:港珠澳大桥开通后,两岸三地实现了陆上通行,考虑各地的习惯和传统(港澳开车靠左行驶而内地靠右行驶),通过转向立交桥实现双方车辆在交通习惯上的自然过渡,请您对汽车(总重量范围:1000kg—3000kg,下同)在转向立交桥弯道处的行驶速度进行建模,并给出在弯道处的汽车最大安全行驶速度。
      问题二:假定最大台风不超过16级,汽车最大行驶速度是100km/h。考虑不同风向的台风天气情况下,请您给出在整座大桥主体上汽车最大安全行驶速度和台风级数的关系。
    问题三:假定大桥主体工程全线设计通行最大速度为100km/h,考虑汽车安全通行、气候情况、交通事故处理、交通控制等因素,对港珠澳大桥的通行能力进行建模。并在最大通行能力下(不考虑交通事故出现),给出机动车通过大桥的时长。

    问题分析

    问题一的分析

      问题一要求建立车辆在弯道行驶的速度模型,并给出其在弯道行驶的最大安全行驶速度。由于车辆的速度会影响车辆过弯时的离心力,且当离心力比向心力大时,导致车辆所受横向力不均衡,从而会使车辆发生侧滑或侧翻的危险,因此,以车身为基点,建立直角坐标系,分析车辆在正常过弯时水平方向受到的作用力,此外,车辆在行驶过程中会受到来自不同方向和不同级别的风力干扰,故引入夹角表示不同方向的风力的方向,根据牛顿运动定律,建立守恒方程,从而得出车辆弯道行驶的速度模型,进而得出在不同风力情况下的最大安全行驶速度。

    问题二的分析

      问题二要求在风力大小和最大速度限制条件下,讨论分析大桥主体上车辆的最大安全行驶速度与台风级数的关系。大桥主体上主要为直线行驶,而较大的风力可能会导致车辆出现偏航的情况,考虑到出现偏航时,驾驶员会在一定的反应时间内及时调整,同问题一一致,建立直角坐标系,将不同方向的风力分解到竖直和水平方向上,根据动力学方程求得车辆的实际前行速度、偏航角度以及反应时间内偏航距离,更新问题一中建立车辆行驶速度模型时动力学方程,加入风等级、最大速度以及最大偏航距离的约束,并进行求解

    问题三的分析

      问题三需讨论分析各因素对于大桥通行能力的影响。根据 1 个小时内大桥通过车辆的数量来评价大桥的通行能力,数量越多,通行能力越强,反之越弱,在已知桥面长度的基础上,求得单个车辆的通行时间和平均通行速度,进而可以建立大桥通过车辆的数量模型;利用层次分析法,令车辆通行时间为目标层,汽车安全通行、气候情况、交通事故处理、交通控制这四者作为指标层,建立判断矩阵,进而求各个指标的权值。

    模型的假设

      1、假设不考虑极端天气、自然灾害的影响。
      2、假设不考虑海浪的影响
      3、假设不考虑汽车损坏等不确定性因素
      4、假设本文分析的机动车长 5m、宽 2m、高 1m

    模型的建立与求解(论文在最下端)

      (1)无外界干扰情况下
      以行驶中的车辆为原点,车辆前进速度方向为 y 轴建立直角坐标系,在无外界干扰情况下,当车辆进入弯道行驶时,竖直方向会受到车辆发动机产生的前进驱力 F车 以及反向的空气阻力 F空 ,水平方向会受到车身作转向时的离心力 F离 和转向时轮胎摩擦力传递到车身的圆弧向心力 Ff ,其受力分析如图 1 所示
    在这里插入图片描述
      当车辆在弯道行驶时,由于竖直方向的风力只影响车辆行驶过程中的前进和后退,而横向的风力如果过大,会诱发车辆发生侧滑、侧翻等事故,故本文在讨论如何保证车辆安全正常行驶时,主要考虑车辆横向受力的情况,令车辆的行驶速度为v车 ,根据离心力公式,则有
    在这里插入图片描述
    在这里插入图片描述

      在考虑风的角度基础上,进一步考虑风的等级,当最大速度为 0 表示车不能行驶。将问题中 0~18 级的风进行综合整理,结果如图 4 所示。
    在这里插入图片描述
      由于车辆在行驶过程中,是由驾驶员控制前进方向的,故在车辆产生偏航的时候,司机可以根据偏航角度进行调整,进而避免车辆出现较大偏航,而司机在做出调整之前会有一定的反应时间,即人或外界在获取信息之后,经过大脑加工分析发出指令到运动器官开始执行动作所需的时间,反应时间是从包括感觉和进行反应时间的总和。一般条件下,反应时问约为 0.1~0.5 s。由于港珠澳大桥主体为双向六个车道,车通道宽度为3.75m ,车宽 2m,因而建立车辆的最大允许偏移距离为
    在这里插入图片描述
      模型的优缺点:
      模型的优点
      针对车辆在港珠澳大桥上所受的风力干扰,引入风力角表示风力方向,并建立了不同风力的数学模型,较为全面涵盖了各个方向上不同等级的风力干扰;车辆发生偏航时,考虑到了驾驶员的反应时间和调整方案,使得模型结果可以更接近实际情况。
      模型的缺点
      车辆弯道行驶时,只考虑了风力干扰的水平分力对于车辆横向力的作用,未考虑竖直分力是否会影响车辆的前行速度;在形成层次分析结构时,各个因素的确定较为主观,可能存在偏差。
      模型的改进
      建立车辆速度模型时,进一步考虑风力干扰对于车辆前进速度的影响。进一步分析并车辆在大桥整体通行时存在的影响因素。

    论文缩略图

    在这里插入图片描述

    程序代码

    import numpy as np
    a=np.array([[1, 1 / 4, 2, 1 / 3], [4, 1, 8, 2], [1 / 2, 1 / 8, 1, 1 / 5], [3, 1 / 2, 5, 1]])
    
    #一致性检验判断矩阵函数,传入矩阵,RI和矩阵的维数,可用返回1否则返回0,注意只有不对称矩阵需要检验
    def consistencyTest(juzhen,RI,n):
        '''一致性检验步骤:
           n阶正互反矩阵
          ①计算CI  CI = (最大特征值-n)/(n-1)
          ②根据n找RI
          ③计算 CI/RI 的值,若小于0.1则说明这个矩阵能用,若大于0.1需要对矩阵的数据进行调整
        '''
        t, temp = np.linalg.eig(juzhen)
        max_eig = max(t)
        CI = (max_eig - n)/(n-1)
        CR = CI/RI
        if CR<0.1:
            return 0
        else:
            return 1
    
    
    '''
    以下是计算权重的部分
    共有三种方法: ①算术平均法 qz_average
                ②几何平均法 qz_geometry
                ③特征值法   qz_deature
    
    '''
    
    #以下是算数平均法求权重,需要传入判断矩阵及矩阵的行数和列数,这个矩阵是方阵因此只传一个就可以了
    def qz_average(juZhen,n):
        '''算数平均法:
                      ①将各列归一化
                      ②将归一化后的矩阵的各列相加成一个列向量
                      ③将这个列向量除以n,n为原列数
        '''
        #先定义一个temp便于存储最后的权重向量
        temp = np.zeros((n, 1))
        #第一步,先归一化操作,每一列都需要归一化
        for i in range(n):
            sum = 0
            for j in range(n):
                sum = sum+ a[j][i]
            for k in range(n):
                juZhen[k][i]=juZhen[k][i]/sum
        #第二步和第三步,然后各列相加求和并除以n
        for i in range(n):
            sum1 = 0
            for j in range(n):
                sum1 += juZhen[i][j]
            temp[i][0] = sum1/n
        print("算数平均法对应的权重向量为:")
        print(temp)
    qz_average(a,4)
    
    #以下是几何平均法,需要传入这个判断方阵和方阵的行
    def qz_geometry(juzhen,n):
        '''几何平均法:
                    ①将各列的元素按行相乘得一个新的列向量
                    ②将这个列向量开n次方,n为原列数
                    ③将这个列向量归一化
        '''
        #这里先创造一个temp的n行一列数组便于存储最后的权重向量
        temp = np.ones((n, 1))
        #然后是第一步,将各列的元素按行相乘存入temp中
        for i in range(n):
            for j in range(n):
                temp[i][0] *= juzhen[i][j]
        #第二步,开n次方
        temp = temp**(1/n)
        #第三步归一化操作,定义个sum存储和,然后将temp的每个元素除以这个和即可成功归一化
        sum = 0
        for i in range(n):
            sum += temp[i][0]
        for i in range(n):
            temp[i][0] /=sum
        print("几何平均法算出的权重向量为")
        print(temp)
    qz_geometry(a,4)
    
    #以下是特征值法求权重
    def qz_feature(juzhen,n):
        '''特征值法:
                    ①求出矩阵A的最大特征值及其对应的特征向量
                    ②对求出的特征向量进行归一化 结果即是我们的权重
        '''
        #第一步,先用下面这个函数求所有的特征值和特征向量,t中存所有的特征值,temp中存这个判断矩阵的特征向量
        t,temp = np.linalg.eig(juzhen)
    
        #找需要的那个特征向量,找最大特征值对应的那一列,一般就是第一列
        temp1 = np.zeros((n, 1))
        for i in range(n):
           temp1 [i][0] = temp[i][0].real  #这里只取实数部分,否则后面会报错复数溢出
    
        #找到对应的特征向量了,对其进行归一化即是权重向量
        sum = 0
        for i in range(n):
            sum +=temp1[i][0]
        temp1 /=sum
        print("特征法求的权重向量为:",temp1,sep = "\n")
    qz_feature(a,4)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
  • 相关阅读:
    Python:实现logistic regression逻辑回归算法(附完整源码)
    写代码不写注释 < 写代码不说环境 < 写代码不给数据 < 写论文不给代码
    软件工程毕业设计课题(29)基于JAVA毕业设计JAVA图片分享网站系统毕设作品项目
    前端分片和生成md5方法
    关于C2447 “{”: 缺少函数标题(是否是老式的形式表?)
    Android学习之路(14) AMS与PMS详解
    【C++项目实现】推箱子
    哪种烧录单片机的方法合适?
    Unity 工具 之 Azure 微软语音合成普通方式和流式获取音频数据的简单整理
    Transformers are RNNs (linear transformer)论文阅读
  • 原文地址:https://blog.csdn.net/weixin_43292788/article/details/126709423