2017年认证杯SPSSPRO杯数学建模A题(第一阶段)安全的后视镜全过程文档及程序

news2024/11/18 17:52:32

2017年认证杯SPSSPRO杯数学建模

A题 安全的后视镜

原题再现:

  汽车后视镜的视野对行车安全非常重要。一般来说,汽车的后视镜需要有良好的视野范围,以便驾驶员能够全面地了解车后方的道路情况。同时,后视镜也要使图像的畸变尽可能小,以使驾驶员能够准确地判断距离。如果汽车的后视镜使用平面镜,图像没有畸变,对距离的判断十分准确。但是当镜面大小受限时,视野相对较小。如果使用凸面镜,可以以较小的镜面获得更加宽广的视野,但是图像存在畸变,很难准确判断镜中物体与自己的距离。有的镜面是由平面镜和凸面镜拼合在一起组成,意图兼顾两者的优点。但事实上,驾驶员在观察后视镜时,两者很难同时看清。较受欢迎的做法是构造一个变曲率的后视镜,使后视镜可以兼顾两者的优点,也降低了观察和距离判断上的难度。目前市场上有售不同设计的变曲率后视镜。最常见的是一种双曲率后视镜,内侧接近平面镜,外侧则是一个凸面镜,在它们之间进行了平滑的过渡。图 1 是两个例子,为了便于驾驶员对距离进行判断,镜中由虚线或细实线示意了不同曲率的镜面间的分界线。它们的具体设计有所区别,性能也会有所不同。
  第一阶段问题: 对典型的小型家用轿车而言,共有三面后视镜,左右车门的外侧各装一面外后视镜,车内正中还有一面内后视镜。假设两面外后视镜都设计成如图 1 所示的双曲率后视镜,请你建立相应的数学模型,对外后视镜给出优化的设计方案,包括镜面的曲面外形以及分界示意线的位置。并以一种现有的轿车为例 (可自选),给出具体的计算结果,镜面的边缘轮廓可以沿用现有的设计。由于我们只做理论上的研究,所以在设计时暂不需要考虑和遵循相应的国家标准。
在这里插入图片描述

整体求解过程概述(摘要)

  汽车在换道、超车、转弯、掉头、倒车入库行驶时,汽车后视镜使驾驶者可以间接看清汽车后方、侧方和下方位置的环境状况,起到了“第二只眼睛”的作用。当前汽车的外后视镜多选择双曲率后视镜,内侧接近平面镜,外侧则是一个凸面镜,既扩大视野又减小畸变。镜面设计时需要考虑平面镜与凸面镜的分配比例及凸面镜的曲率大小,并保证平面镜与凸面镜的平滑过渡。针对双曲率外后视镜设计的多目标优化问题,本文进行了下列工作:
  一:建立视野及畸变率量化指标。本文采用视野面积表征视野大小,采用畸变率表征镜像失真程度。首先建立了车体坐标系、镜面坐标系,通过设定人眼、外后视镜及测试屏幕在车体系下的位置,利用后视镜曲面光学原理,求出 40X10镜面光点对应测试屏幕光点坐标,通过连接测试屏幕散乱点,计算无重复三角形面积和,考虑车身遮挡及左右眼点的交集面积表示为视野面积;分别计算测试屏幕光点在不同方向、不同眼点的畸变率,再求取其平均值作为表征畸变程度的物理量,建立畸变率模型。
  二:建立并分析多种双曲率镜面模型。在保证平滑过渡的基础上,对内侧镜面与外侧镜面曲面形式,尝试多类组合方式,建立相应镜面模型。通过计算不同镜面模型视野、畸变率的大小,定量分析了视场角及畸变率的影响因素。
  三:利用第二步得出的结论,建立镜面模型。本文选用球面作为内侧镜面的曲面,选用圆环作为外侧镜面的曲面,球面与圆环外表面完全相切,保证平滑过渡。建立多目标采用拟牛顿法作为非线性方程求解算法,结合模拟退火算法优化,得出最佳的球面与圆环面的结合位置及球面与圆环面的曲率,在保证视野畸变率的前提下,视野面积增加了 15.8%。
  此外,使用 CATIA 三维实体软件,对优化出的镜面进行验证。分析视野在路面的投影区域,验证了本文设计的镜面满足法规的要求,并且视场足够大。本文在建模过程也考虑一些其他因素,如驾驶员高度,安全性等因素对镜面设计的影响,但本文所建立的镜面模型为双曲率镜面,没有分析变曲率镜面的设计因素。考虑左右外后视镜没有耦合问题,且建模原理一致,所以本文仅对左后视镜镜面建模并优化分析。

问题分析:

  左后视镜内侧主要用于观察离车身较近的物体的信息(如图 ),驾驶员需通过该区域的图像信息进行距离的准确判断,因此内侧模型主要考虑图像畸变率。左后视镜外侧主要用于观察离车身较远的物体的信息,这部分信息主要是起到辅助观察的左右,对于该部分的图像可以适当放大失真率,以换求更加广泛的视野范围。因此外侧模型主要考虑在人体可接受的图像畸变率范围内(通常定为 7%),通过改变镜面曲率,尽量增加视野范围。

在这里插入图片描述
  由于内外侧选择不同的曲面模型,那么必然存在曲面模型衔接的问题,为了防止整个镜面的曲率突变,应该保证内外侧模型在结合处进行平滑过渡。针对上述镜面内外侧模型的功能不同,建模时需要对注意以下几点:
  1. 内外侧模型分别选取合适的曲面模型进行建模。
  2. 基于对题意的理解,保证曲面之间进行平滑过渡,本文理解为内外侧模型应该保证相切。
  3. 内外侧模型曲面类型确定之后,应针对该问题的特点,选择合适的优化算法进行模型参数优化。
  4. 对优化的结果进行仿真验证。

模型假设:

  本次建模假设如下:
  1. 人眼高度及左右位置固定,两眼距离固定,且两眼连线垂直于车身纵向平面。
  2. 后视镜的外壳与车身固定,
  3. 不考虑右侧后视镜、车内后视镜对左侧后视镜视野的影响。
  4. 不考虑反射率的问题,认为反射率为 100%。
  5. 镜面垂直垂直于水平地面。
  6. 镜面与镜壳夹角固定,本文设置镜面与镜壳平行。
  7. 后视镜外壳不影响人眼的视线。
  8. 假设镜面边缘为矩形。其他未尽假设在建模时说明。

论文缩略图:

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

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

clc;close all;clear;
%眼点尺寸计算
Peye_v=[-0.7 -0.4 0.25]';%眼点在车体坐标系中的位置
%x 为车头方向,y 为车左侧为正,z 为上为正
leyes=0.065;%双眼点之间的距离
Peyel_v=Peye_v+[0 0.0325 0]';
Peyer_v=Peye_v+[0 -0.0325 0]';
%镜面局部坐标系:垂直镜面向前为 x,沿镜面向后为 y 正
l_mr=0.2;
h_mr=0.1;
%镜子相对车体的安装 角度
afa=60*pi/180;
%镜子离车体的距离 ,延长线方向
dmr=0.08;
%车体坐标原点在镜面坐标系下的坐标
Pmv=[0 -l_mr/2-dmr -h_mr/2]';
%左镜面坐标系原点在车体系下的坐标
Pvm=[-(l_mr/2+dmr)*cos(afa) (l_mr/2+dmr)*sin(afa) h_mr/2]';
%右镜面坐标系原点在车体系下的坐标
Pvm_R=[-(l_mr/2+dmr)*cos(afa) -(l_mr/2+dmr)*sin(afa)-1.8 h_mr/2]';
%从右镜面坐标系到车体坐标系的转换矩阵
AvmR=[cos(pi/2-afa) cos(afa) 0;
 cos(pi/2+afa) cos(pi/2-afa) 0;
 0 0 1];
%从车体坐标系到镜面坐标系的转换矩阵
Amv=[cos(pi/2-afa) cos(afa) 0;
 cos(pi-afa) cos(pi/2-afa) 0;
 0 0 1];
%从镜面坐标系到车体坐标系的转换矩阵
Avm=Amv';
%车体轮廓,车体坐标下
Pcar_v=[
1 -2.8 -2.8 1 1;
0 0 -1.8 -1.8 0;
0 0 0 0 0
];
%左侧车尾点
Pcarbk=Pcar_v(:,2);
%车体轮廓在镜面坐标下
Pcar_m=Amv*Pcar_v;
Pcar_m(1,:)=Pcar_m(1,:)+Pmv(1);
Pcar_m(2,:)=Pcar_m(2,:)+Pmv(2);
Pcar_m(3,:)=Pcar_m(3,:)+Pmv(3);
%后视镜轮廓坐标 镜面坐标下 %左上 左下 右下 右上 左上
Pmr_m=[0 0 0 0 0;
 l_mr/2 l_mr/2 -l_mr/2 -l_mr/2 l_mr/2;
 h_mr/2 -h_mr/2 -h_mr/2 h_mr/2 h_mr/2];
%右后视镜轮廓坐标 镜面坐标下 %左上 左下 右下 右上 左上
Pmr_m_R=[0 0 0 0 0;
 l_mr/2 l_mr/2 -l_mr/2 -l_mr/2 l_mr/2;
 h_mr/2 -h_mr/2 -h_mr/2 h_mr/2 h_mr/2];
%左后视镜在车体系下坐标 左上 左下 右下 右上 左上
Pmr_v=[-(dmr+l_mr)*cos(afa) (l_mr+dmr)*sin(afa) h_mr;
 -(dmr+l_mr)*cos(afa) (l_mr+dmr)*sin(afa) 0;
 -dmr*cos(afa) dmr*sin(afa) 0;
 -dmr*cos(afa) dmr*sin(afa) h_mr;
 -(dmr+l_mr)*cos(afa) (l_mr+dmr)*sin(afa) h_mr
 ]';
%使用方向余弦矩阵处理
Pmr_v=Avm*Pmr_m;
Pmr_v(1,:)=Pmr_v(1,:)+Pvm(1);
Pmr_v(2,:)=Pmr_v(2,:)+Pvm(2);
Pmr_v(3,:)=Pmr_v(3,:)+Pvm(3);
%右后视镜轮廓在车体坐标系下
Pmr_R_v=AvmR*Pmr_m_R;
Pmr_R_v(1,:)=Pmr_R_v(1,:)+Pvm_R(1);
Pmr_R_v(2,:)=Pmr_R_v(2,:)+Pvm_R(2);
Pmr_R_v(3,:)=Pmr_R_v(3,:)+Pvm_R(3);
%投影屏幕轮廓 车体坐标下
%投影屏幕大小
ls=12;
hs=4;%
diss=10;
Ps=[-diss ls/2 0;
 -diss ls/2 -hs;
-diss -ls/2 -hs
 -diss -ls/2 0;
 -diss ls/2 0]';
%转换到镜面坐标下
Psm=Amv*Ps;
Psm(1,:)=Psm(1,:)+Pmv(1,1);
Psm(2,:)=Psm(2,:)+Pmv(2,1);
Psm(3,:)=Psm(3,:)+Pmv(3,1);
%屏幕平面 方程 x=-10
%眼点在镜面坐标系下的坐标值
Peye_m=Amv*Peye_v+Pmv;
Peyel_m=Amv*Peyel_v+Pmv;
Peyer_m=Amv*Peyer_v+Pmv;
%后视镜上的离散点坐标
num_l=40;
num_h=10;
PmEdge=zeros(3,num_l*num_h);
R=1.5;%0.4;%半径
%球心坐标
r=0.7;%环半径
Psphere=[R 0 0]';
%求法向量矩阵
Fm=zeros(3,num_l*num_h);
%反射点到车尾的向量
b2bk=zeros(3,num_l*num_h);
for i=1:num_l
 for j=1:num_h
 PmEdge(2,j+(i-1)*num_h) =-l_mr/2+ l_mr/(num_l-1)*(i-1);
 PmEdge(3,j+(i-1)*num_h) =h_mr/2- h_mr/(num_h-1)*(j-1);
 if PmEdge(2,j+(i-1)*num_h)<=0%sphere
 PmEdge(1,j+(i-1)*num_h) 
=-sqrt(R^2-PmEdge(2,j+(i-1)*num_h)^2-PmEdge(3,j+(i-1)*num_h)^2)+R;
 Fm(:,j+(i-1)*num_h)=[PmEdge(1,j+(i-1)*num_h)-Psphere(1) ...
 PmEdge(2,j+(i-1)*num_h)-Psphere(2) 
PmEdge(3,j+(i-1)*num_h)-Psphere(3)]/R; 
 else
 
PmEdge(1,j+(i-1)*num_h)=R-sqrt((R-r+sqrt(r^2-PmEdge(2,j+(i-1)*num_h)^2 ))^2-PmEdge(3,j
+(i-1)*num_h)^2);
Fm(:,j+(i-1)*num_h)=[
 
2*(sqrt((PmEdge(1,j+(i-1)*num_h)-R)^2+PmEdge(3,j+(i-1)*num_h)^2)-R+r)*((PmEdge(1,j+(i-1
)*num_h)-R)^2+PmEdge(3,j+(i-1)*num_h)^2)^-0.5*(PmEdge(1,j+(i-1)*num_h)-R); 
 2*PmEdge(2,j+(i-1)*num_h)
 
2*(sqrt((PmEdge(1,j+(i-1)*num_h)-R)^2+PmEdge(3,j+(i-1)*num_h)^2)-R+r)*((PmEdge(1,j+(i-1
)*num_h)-R)^2+PmEdge(3,j+(i-1)*num_h)^2)^-0.5*PmEdge(3,j+(i-1)*num_h)
 ];
 
Fm(:,j+(i-1)*num_h)=Fm(:,j+(i-1)*num_h)/sqrt(Fm(1,j+(i-1)*num_h)^2+Fm(2,j+(i-1)*num_h)
^2+Fm(3,j+(i-1)*num_h)^2);
 
 end
 end 
end
%画镜面在镜面坐标下的形状
subplot(3,4,4);hold on;grid on;
%镜面轮廓
plot3(Pmr_m(1,:),Pmr_m(2,:),Pmr_m(3,:));
for i=1:num_l*num_h
 plot3(PmEdge(1,i),PmEdge(2,i),PmEdge(3,i),'*g')
end
view([-60, 30])
title('镜面形状')
set(gca,'DataAspectRatio',[0.3 1 1])
%入射光线方向向量 左眼
[m n]=size(PmEdge);
FmRL=zeros(m,n);
FmRR=zeros(m,n);
for i=1:n
 FmRL(:,i)=PmEdge(:,i)-Peyel_m;%入射光线方向向量 左眼
 FmRR(:,i)=PmEdge(:,i)-Peyer_m;%入射光线方向向量 右眼
end
%入射光线单位方向向量
for i=1:n
d=sqrt(FmRL(1,i)^2+FmRL(2,i)^2+FmRL(3,i)^2);
FmRL(:,i)=FmRL(:,i)/d;
d=sqrt(FmRR(1,i)^2+FmRR(2,i)^2+FmRR(3,i)^2);
FmRR(:,i)=FmRR(:,i)/d;
end
%反射向量
b_left=zeros(m,n);
b_right=zeros(m,n);
for i=1:n
b_left(:,i)=FmRL(:,i)-2*(Fm(:,i)'*FmRL(:,i))*Fm(:,i);
b_right(:,i)=FmRR(:,i)-2*(Fm(:,i)'*FmRR(:,i))*Fm(:,i);
end
%转到车体系
b_v_left=Avm*b_left;
b_v_right=Avm*b_right;
%反射点到车尾的向量
b2bk=zeros(3,num_l*num_h);
%车体系下镜边缘点的位置
P_v_mEedge=zeros(m,n);
for i=1:n
 P_v_mEedge(:,i)=Avm*(PmEdge(:,i)+Pvm);
 b2bk(:,i)=Pcarbk- P_v_mEedge(:,i);%镜上点到车尾的向量
 b2bk(:,i)=b2bk(:,i)/sqrt(b2bk(1,i)^2+b2bk(2,i)^2+b2bk(3,i)^2); 
end
%屏幕边缘坐标转到车体系下
% PmEdgeV=Avm*P_v_mEedge;
%求车体系下的交点 %屏幕交点在车体系下的
Psv_L=-diss*ones(m,n);
Psv_R=-diss*ones(m,n);
for i=1:n
 KK=(-diss-P_v_mEedge(1,i))/b_left(1,i);
Psv_L(2,i)=KK*b_left(2,i)+P_v_mEedge(2,i);
Psv_L(3,i)=KK*b_left(3,i)+P_v_mEedge(3,i);
 KK=(-diss-P_v_mEedge(1,i))/b_right(1,i);
 Psv_R(2,i)=KK*b_right(2,i)+P_v_mEedge(2,i);
 Psv_R(3,i)=KK*b_right(3,i)+P_v_mEedge(3,i);
end
Psm_L=Amv*Psv_L;
Psm_R=Amv*Psv_R;
%车体系下绘图
subplot(1,4,[1 3]);hold on;grid on;
title('屏幕投影')
%eye 
plot3(Peye_v(1,1),Peye_v(2,1),Peye_v(3,1),'*')
plot3(Peyel_v(1,1),Peyel_v(2,1),Peyel_v(3,1),'*')
plot3(Peyer_v(1,1),Peyer_v(2,1),Peyer_v(3,1),'*')
%car
plot3(Pcar_v(1,:),Pcar_v(2,:),Pcar_v(3,:));
%左镜面轮廓
plot3(Pmr_v(1,:),Pmr_v(2,:),Pmr_v(3,:));
%右镜面轮廓
plot3(Pmr_R_v(1,:),Pmr_R_v(2,:),Pmr_R_v(3,:));
%幕轮廓
plot3(Ps(1,:),Ps(2,:),Ps(3,:));
set(gca,'DataAspectRatio',[1 1 1])
xlim([-10 2]);
view([100 25])
for i=1:n
 if b2bk(2,i)<=b_left(2,i)
 plot3(Psv_L(1,i),Psv_L(2,i),Psv_L(3,i),'r*');
 else
 plot3(Psv_L(1,i),Psv_L(2,i),Psv_L(3,i),'g.'); 
 end
 if b2bk(2,i)<=b_right(2,i)
 plot3(Psv_R(1,i),Psv_R(2,i),Psv_R(3,i),'bo');
 else
 plot3(Psv_R(1,i),Psv_R(2,i),Psv_R(3,i),'c.');
 end
end
dt = DelaunayTri(Psv_L(2,:)',Psv_L(3,:)');
k = convexHull(dt);
abs(trapz(dt.X(k,1),dt.X(k,2)))
dt = DelaunayTri(Psv_R(2,:)',Psv_R(3,:)');
k = convexHull(dt);
abs(trapz(dt.X(k,1),dt.X(k,2)))
distortioncalc;
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

Zoho Survey评价:功能全面,值得一试

通常来讲&#xff0c;我们在使用一款问卷调查制作工具制作问卷时会有哪些需求呢&#xff1f; 用户需求 1、操作简单&#xff0c;易上手。 2、能够满足用户个性化的需求。 3、提供多语言服务。 4、能够帮助发布以及数据收集。 5、简化数据分析 市面上的问卷调查制作工具都…

【法如faro】法如三维激光扫描软件Scene2023下载与安装教程

FARO SCENE 2023是法如中国官方开发的一款相套配的三维数字化存档软件&#xff0c;该软件专门设计用于所有的Focus和第三方激光扫描仪&#xff0c;通过使用实时现场配准、自动对象识别、扫描图像配准和定位功能&#xff0c;能够帮助用户轻松而高效地处理和管理扫描后的数据。 文…

HTTPS协议把什么加密了?

HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是一种用于在计算机网络上进行安全通信的协议。它的工作原理主要基于以下几个关键步骤&#xff1a; 1. 握手阶段&#xff08;Handshake&#xff09;&#xff1a; - 客户端向服务器发送一个请求&#xff0c…

349. 两个数组的交集(力扣)(OJ题)

题目链接&#xff1a;349. 两个数组的交集 - 力扣&#xff08;LeetCode&#xff09; 个人博客主页&#xff1a;https://blog.csdn.net/2301_79293429?typeblog 专栏&#xff1a;https://blog.csdn.net/2301_79293429/category_12545690.html 给定两个数组 nums1 和 nums2 &a…

十一、常用API——正则表达式

目录 练习1&#xff1a; 正则表达式的作用 正则表达式 字符类&#xff08;只匹配一个字符&#xff09; 预定义字符&#xff08;只匹配一个字符&#xff09; 数量词 类 Pattern 正则表达式的构造摘要 反斜线、转义和引用 字符类 行结束符 组和捕获 Unicode 支持 与…

Spring Boot整合MyBatis-Plus

引言 在现代软件开发中&#xff0c;我们经常需要处理大量的数据。为了有效地管理这些数据&#xff0c;我们需要使用一些强大的框架。其中&#xff0c;Spring Boot和MyBatis-Plus是两个非常流行的框架。Spring Boot是一个基于Spring的开源Java框架&#xff0c;可以用于创建独立…

Java:选择哪个Java IDE好?

Java&#xff1a;选择哪个Java IDE好? 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&…

动手搓一个kubernetes管理平台(3)-后端框架

后端框架的选择面比较大&#xff0c;由于不涉及复杂的调度/分布式管理等场景&#xff0c;所以后端选用一个标准的web server即可&#xff0c;比如gin, iris, beego等等&#xff0c;因为正好最近在看iris的一些项目&#xff0c;所以就选用了irsicorba的框架进行后端开发 。 通过…

Kafka-消费者-KafkaConsumer分析-PartitionAssignor

Leader消费者在收到JoinGroupResponse后&#xff0c;会按照其中指定的分区分配策略进行分区分配&#xff0c;每个分区分配策略就是一个PartitionAssignor接口的实现。图是PartitionAssignor的继承结构及其中的组件。 PartitionAssignor接口中定义了Assignment和Subscription两个…

KubeSphere 社区双周报 | 2024.01.04-01.18

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者&#xff0c;并对近期重要的 PR 进行解析&#xff0c;同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为&#xff1a;2024.01.04-01.18…

【SpringBoot3】IDEA常用插件介绍Tabnine,GsonFormat,Maven Helper等

文章目录 一、Tabnine二、Auto filling Java call arguments三、GsonFormat四、Rainbow Brackets五、Maven Helper 本文主要介绍一些比较实用的IDEA插件&#xff0c;帮助广大开发者提升开发效率&#xff0c;愉悦编码&#xff01; 一、Tabnine 官网地址&#xff1a;https://ww…

C语言:预处理详解

创作不易&#xff0c;来个三连呗&#xff01; 一、预定义符号 C语⾔设置了⼀些预定义符号&#xff0c;可以直接使⽤&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编…

从 GPT1 - GPT4 拆解

从 GPT1 - GPT4 拆解 从 GPT1 - GPT4GPT1&#xff1a;更适用于文本生成领域GPT2&#xff1a;扩展数据集、模型参数&#xff0c;实现一脑多用&#xff08;多个任务&#xff09;GPT3&#xff1a;元学习 大力出奇迹InstructGPT&#xff1a;指示和提示学习 人工反馈强化学习 RLHF…

视频直播新时代,低延时直播交互,Web,Android,WebRtc推流拉流测试

直播现在已经深入了生活&#xff0c;学习&#xff0c;工作和娱乐方方面面&#xff0c;由于前些年的技术所限&#xff0c;传统rtmp,flv,m3u8 技术让直播快速启动项目产品&#xff0c;但也有很多不足&#xff0c;特别的交互式直播&#xff0c;一直是其中的痛点&#xff0c;延时较…

【C++初阶】第二站:类与对象(上) -- 上部分

前言: C学习的第二站&#xff1a;类和对象(上)文章的上半部分,知识点:面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装、类的作用域、类的实例化. 目录 面向过程和面向对象初步认识 类的引入 类的定义 类的访问限定符及封装 访问限定符 封装 类的…

Docker服务以及容器如何设置服务器开机自动启动

Docker服务以及容器如何设置服务器开机自动启动 今天在客户现场遇到了如下问题&#xff1a; 他们服务器的机房&#xff0c;有时候需要关机重启&#xff0c;进行机房改造&#xff01; 这时候就会遇到断电重启&#xff0c;在没有设置自动启动的情况下&#xff0c;我们所有的软…

经典ABR算法介绍:Pensieve (SIGCOMM ‘17) 原理及训练指南

文章目录 前言Pensieve原理*Pensieve重训练参考Oboe [SIGCOMM 18]Comyco [MM 19]Fugu [NSDI 20] A3C熵权重衰减思路实现 前言 Pensieve是DASH点播视频中最经典的ABR算法之一&#xff0c;也是机器学习类&#xff08;Learning-based&#xff09;ABR算法的代表性工作。Pensieve基…

Unity-场景

创建场景 创建新的场景后&#xff1a; 文件 -> 生成设置 -> Build中的场景 -> 将项目中需要使用的场景拖进去 SceneTest public class SceneTest : MonoBehaviour {// Start is called before the first frame updatevoid Start(){// 两个类&#xff1a; 场景类、场…

VUE--组件通信(父子)

1、什么是组件通信 组件通信就是指组件与组件之间的数据传递。因为组件的数据是独立的&#xff0c;无法直接访问其他组件的数据&#xff0c;想获取其他组件的数据&#xff0c;就需要用到组件通信。 2、组件关系分类&#xff08;如图&#xff09; ● 父子关系&#xff08;props…

【Linux】进程的概念 进程状态 进程优先级

Content 一、什么是进程1. 进程的概念2. 进程的描述 - 进程控制块&#xff08;PCB&#xff09;3. Linux下的进程 二、进程状态1. 教科书中的进程状态运行状态阻塞状态挂起状态 2. Linux下的进程状态R&#xff08;running&#xff09;- 运行状态S&#xff08;sleeping) - 睡眠状…