VVT编程
1. 传琪gs52.0换vvT轮需要做电脑编程吗
摘要 您好,很高兴能够回答您的问题,根据您所描述的情况,目前一般情况下传祺gs5更换vvt模块需要电脑进行匹配,匹配以后就可以了。
2. 雷克萨斯lx570智能卡钥匙怎么用
1、首先来说最简单的解锁和锁定车辆,在携带智能钥匙来到车子旁边时,只要触碰车门把手上的一键锁车按钮,就可以解锁或者锁定车辆了。
3. 23个点的无向回路最短路径问题 (C++编程解决)
这里是有8个点但是是一样的呢把它改成23个就行了,希望能给你一点帮助,分我就不要了 我也是转的别人的
// 程序名称:ParkGuide.h
// 程序功能:程序的变量及函数声明
// 程序作者:林振仟
// 最后修改日期:2008-09-04
#ifndef PARKGUIDE_H //定义头文件
#define PARKGUIDE_H
#include<string> //引入标准库中的头文件
using namespace std;
const int MaxSize=12; //图中最多顶点个数
template <class T>
class ParkGuide
{
public:
ParkGuide(int* a, T* v,int n); //构造函数,初始化具有n个顶点的图
~ParkGuide( ) { } //析构函数
void Dijkstra( int v,int endv); //最小距离
void PutOutArcInfo(); //输出路径
void TSP(int v); //求最优路径
private:
T vertex[MaxSize]; //存放图中顶点的数组
int arc[MaxSize][MaxSize]; //存放图中边的数组
int vertexNum; //图的顶点数和边数
};
#endif
// 程序名称:ParkGuideMain.cpp
// 程序功能:程序的
// 程序作者:林振仟
// 最后修改日期:2008-09-04
#include <iostream>
#include <string> //引入标准库中的头文件
#include "ParkGuide.cpp" //引用 ParkGuide.cpp 文件
#include "TSP.cpp" //引用解决最佳旅游路线的TSP文件
using namespace std;
int main(int argc, char* argv[])
{
const int numv = 8; //顶点数
int control=1; //控制
int which; //功能选择变量
string name; //插入顶点的值
int border[numv][numv]={ //按邻接矩阵确定顶点的权值
{10000,1,2,2,10000,10000,10000,10000}, //0号景点
{1,10000,10000,10000,10000,5,10000,10000},//1号景点
{2,10000,10000,3,3,10000,4,10000}, //2号景点
{2,10000,3,10000,10000,3,2,3}, //3号景点
{10000,10000,3,10000,10000,10000,1,10000},//4号景点
{10000,5,10000,3,10000,10000,5,2}, //5号景点
{10000,10000,4,2,1,5,10000,4}, //6号景点
{10000,10000,10000,3,10000,2,4,10000} //7号景点
};
string vname[numv]={"公园正门","牛头寨","梅园山庄","方家茶园","情人林","猕猴园","仙姑瀑布","仙姑庙"}; //初始化各顶点
int* p; //定义指针p
string* q; //定义指针q
p = &border[0][0]; //p指针指向cost数组的起始位置
q = vname; //q指针指向vname数组
ParkGuide<string> g(p, q, numv ); //调用Graph程序
while ( control==1 ) //控制
{
cout<<" ****************************************** "<<endl;
cout<<" ***********欢迎您到姑婆山国家森林公园************* "<<endl;
cout<<"**********************************************************"<<endl;
cout<<"**请选择你想要进行的操作: **"<<endl;
cout<<"**1、查看公园地图**"<<endl;
cout<<"**2、查看路程信息**"<<endl;
cout<<"**3、提供游览景点的最短路径**"<<endl;
cout<<"**4、提供游览公园的一种最佳路径**"<<endl;
cout<<"**5、退出**"<<endl;
cout<<"**********************************************************"<<endl;
cin >> which;
switch( which ) //功能选择
{
case 1: //输出图的各顶点的值
cout<<" [公园地图] "<<endl;
cout<<" <7> 仙姑庙 "<<endl;
cout<<" . . . "<<endl;
cout<<" . . . "<<endl;
cout<<" <6> 仙姑瀑布 . <5>猕猴园 "<<endl;
cout<<" . . . . . . "<<endl;
cout<<" . . . . . . "<<endl;
cout<<" <4> 情人林 . . . . . "<<endl;
cout<<" . . <3>方家茶园 . "<<endl;
cout<<" . . . . . "<<endl;
cout<<" .. . . . "<<endl;
cout<<" <2>梅园山庄 . <1> 牛头寨 "<<endl;
cout<<" . . . "<<endl;
cout<<" . . . "<<endl;
cout<<" <0> 正 门 "<<endl;
break;
case 2: //输出图中的路径
int i;
int j;
cout<<"所有的边的信息为:"<<"\n";
try
{
g.PutOutArcInfo();
}
catch(char*)
{
cout<<"输出不正确!"<<endl;
}
break;
case 3: //求最短路径
cout<<"请输入您所在景点序号:"<<"\n";
int vv ;
cin>>vv;
cout<<"请输入您想到的景点序号,若要全部显示请输入9:"<<"\n";
int vvt ;
cin>>vvt;
try
{
g.Dijkstra(vv,vvt);
}
catch(char*)
{
cout<<"输出顶点不正确!"<<endl;
}
break;
case 4:
cout<<"本公园为您提供的最佳旅游路线是:"<<"\n";
g.TSP(0); //求最优旅游路线
break;
case 5: //退出
control=0;
cout<<"┏━━━━━━━━━━━┓"<<endl;
cout<<"┃谢谢使用,祝您旅途愉快!┃"<<endl;
cout<<"┗━━━━━━━━━━━┛"<<endl;
break;
default:cout<<"对不起,输入错误,请重新输入!"<<endl<<endl<<endl;
}
}
return 0;
}
// 程序名称:ParkGuide.cpp
// 程序功能:完成游戏的初始化、对鼠标响应及判断游戏是否完成功能
// 程序作者:林振仟
// 最后修改日期:2008-09-04
#include<iostream>
#include <string> //引入标准库中的头文件
#include "ParkGuide.h" //引入头文件
using namespace std;
/* 前置条件:图不存在
输入:无
功能:图的初始化
输出:无
后置条件:构造一个有值的图
*/
template <class T>
ParkGuide<T>::ParkGuide(int* a,T* v, int n ) //构造图
{
int i,j;
vertexNum=n; //顶点数
for (i=0; i<MaxSize; i++) //初始化邻接矩阵
for (j=0; j<MaxSize; j++) //定义边
arc[i][j] = 10000;
for ( i=0; i<vertexNum; i++)
vertex[i]=v[i]; //存储顶点信息
for (i=0; i<vertexNum; i++) //给边赋置
for (j=0; j<vertexNum; j++)
arc[i][j]=*(a+i*n+j);
int tt=0;
}
/* 前置条件:图已存在
输入:无
功能:输出图中所有的路径
输出:图中所有顶点的数据信息
后置条件:图保持不变
*/
template <class T>
void ParkGuide<T>::PutOutArcInfo() //输出图中所有的路径
{
int i=0; //假设源点是第0个顶点,即顶点序号是0
int j=0;
if ( i>vertexNum|| j>vertexNum) throw "位置"; //错误抛出异常
else
{ for(i=0;i<vertexNum;i++)
{ //输出任意两点之间的路径
for(j=0;j<i;j++)
{
if(arc[i][j]<10000) //两点之间存在路径
cout<<"从 "<<vertex[i]<<" 到 "<<vertex[j]<<" 的路程为:"<<arc[i][j]<<"公里\n"; //若两点间有路,则输出该两点间的路径
}
}
}
}
/* 前置条件:图已存在
输入:顶点v ,endv
功能:假如endv存在,求v到endv的最短路径;假如不输入endv,则求v到任意顶点的最短路径
输出:所求得的最短路径及所经历的位置
后置条件:图保持不变
*/
template <class T>
void ParkGuide<T>::Dijkstra(int v,int endv) //求从v顶点到endv点的最短路径
{
if ( v>vertexNum) throw "位置"; //v顶点或endv顶点输出不正确则抛出异常
int numv=vertexNum; //顶点数
int dist[MaxSize]; //最短长度
int path[MaxSize]; //当前找到的最短路径
int s[MaxSize]; //存放源点和已生成的终点的集合
int max= 10000; //代表无穷大
int i,j,k,wm;
for(i=0;i<numv;i++) //按网的邻接矩阵确定各顶点最短路径的初值
{
dist[i]=arc[v][i];
if(i!=v&& dist[i]< max) //如果v、i之间有路
path[i]=v; //当前找到的最短路径为v
else
path[i]=-1; //否则v与i顶点不存在路径
s[i] = 0; //给s集合确定初值0
}
s[v]=1;dist[v]=0; //将顶点v本身排除在外
for(k =0;k<numv-1;k++) //求其他numv-1各顶点的最短路径
{
wm = max;j=v; //确定当前最短路径wm及顶点的序号j
for( i=0;i<numv;i++)
{
if(!s[i]&&dist[i]<wm) //如果v、i之间有路
{
j=i;
wm = dist[i]; //把当前找到的路径确定为最大值
}
}
s[j]=1;
for(i =0;i<numv;i++) //更新未确定最短路径各顶点的当前最短路径
{
if(!s[i]&&dist[j]+arc[j][i]<dist[i]) //如果v、i两点的距离加上i、j小于从v点到j点的距离
{
dist[i]=dist[j]+arc[j][i];path[i]=j; //dist[i]取最小值
}
}
}
if (endv < numv && endv >=0 ) //endv点存在
{
string mmm=""; //初始化字符串
int j =endv;
while(j > -1 )
{
string nnn = vertex[j]; //依次把顶点存放在nnn字符串中
nnn+=mmm;
mmm = " "+nnn;
j = path[j];
}
cout<<"从 "<<vertex[v].c_str()<<" 到 "<<vertex[endv].c_str()<<" 的最短路程为:"<<dist[endv]<<"公里 途经:"<<mmm.c_str()<<"\n";
//输出从v点到endv点的最短路径
}
else //endv点不存在
for(i=0;i<numv;i++)
{
string mmm=""; //初始化字符串
int j =i;
while(j > -1 )
{
string nnn = vertex[j]; //依次把顶点存放在nnn字符串中
nnn+=mmm;
mmm = " "+nnn;
j = path[j];
}
cout<<"从 "<<vertex[v].c_str()<<" 到 "<<vertex[i].c_str()<<" 的最短路程为:"<<dist[i]<<"公里 途经:"<<mmm.c_str()<<"\n";
//输出从v点到任意点的最短路径
}
}
// 程序名称:TSP.cpp
// 程序功能:解决导游图的TSP问题:求不重复地访问每一个并回到起点的最短路径
// 程序作者:林振仟
// 最后修改日期:2008-09-04
#include<iostream>
#include <string> //引入标准库中的头文件
#include "ParkGuide.h" //引入头文件
using namespace std;
/* 前置条件:图已存在
输入:起点
功能:用贪心法进行图的遍历
输出:所求得的最优路径及所经历的位置
后置条件:图保持不变
*/
template <class T>
void ParkGuide<T>::TSP(int v) //求最优旅游路线,从V点出发,最后回到V点
{
int pathsum=0; //用于存放路径和
int max= 10000; //代表无穷大
int minpath; //用于存放当前找到的最小路径
int visited[12]={1}; //记录顶点的访问情况:visited[d]=0表示d点未访问,visited[d]=1表示d点已被访问
int j=0; //临时存放顶点编号,以便传递给顶点v
//让所有点都记录为未访问。visited[c]=0.
for(int d=1;d<vertexNum;d++) //除正门外,所有景点都保证其未被访问 visited[d]=0表示d点未访问,visited[d]=1表示d点已被访问
visited[d]=0;
cout<<"(0)公园正门"; //从正门出发
//最佳旅游路线算法开始
for(int flat=0;flat!=vertexNum;)
{
minpath=10000;
for(int k=0;k<8;k++) //依次读取与v相邻的路径,取未被访问的最小路径
{
if(minpath>arc[v][k] && visited[k]==0)
//相邻的两个点进行路径大小比较,求出最小路径:逐一比较,保证minpath值为最小值
{
minpath=arc[v][k];
j=k;
}
}
if(minpath<max) //如果存在最小路径,flat++:记录已访问点的个数。visited[j]设为1,表示j点已被访问
{
flat++;
visited[j]=1;
pathsum=pathsum+minpath; //更新最短路径长度
v=j; //将点交还给v,以便进行下一次循环:即让现在所在的点成为下一次循环的出发点
cout<<"->("<<v<<")"<<vertex[v].c_str();//输入该点信息
}
if(flat==vertexNum-1) //当已经访问了所有点,把出发点的visited设为0,即表示未访问,以便寻找并返回正门
{
visited[0]=0;
}
if(flat==vertexNum) //返回始发点,输入路径长度
{cout<<endl<<"全程"<<pathsum<<"公里"<<endl;}
}
cout<<"┏━━━┓"<<endl;
cout<<"┃小贴士┃这条精品游览路线可以让您一次不重复的游览公园内所有的景点哦!"<<endl;
cout<<"┗━━━┛"<<endl;
cout<<"**************祝您旅途愉快************"<<endl<<endl;
}
4. 22寸轮毂适合什么车使用
22寸轮圈是什么概念?我想看到此文的大多数人都没有见过。有懂行的人说22寸肯定是大脚怪的尺寸,而另一拨懂车的人会说曾经被某车22寸轮圈的巨大反光所“闪晕”,我们说,先别晕,伙计。看看22寸在不同车上的作用后,再找一最喜欢的车型去仔细晕吧!
● 凯迪拉克ESCALADE凯雷德:22英寸轮毂闪花你的眼
虽然与不少车型同是22寸铬处理轮毂,但09款凯迪拉克ESCALADE凯雷德所增配的22寸轮毂看上去更具力量感,可能是它强悍的LOGO更能够对人形成震慑吧。该款车型出自于通用最新的GMT900平台,动力也再升一级,6.2L V8 VVT全铝发动机更加凶猛,给凯雷德带来6.8s的百公里加速!最重要的是,他和其他车型改装后的22寸不同,凯雷德的22寸大脚可是原厂的!即使在中国,你也只要花上150万就能搞定一辆如此拉风的大家伙!
● 悍马H2改装:22英寸轮毂可以当镜子照
绽放如向日葵的镀铬轮毂,将四季美景映得美轮美奂,不过一旦搭配在悍马H2这样的彪悍车型上,总让人有些错位的感觉。繁复的修饰颇具巴洛克风格,但个人认为悍马的改装进入了误区,22寸的轮毂更像是枚勋章而非跋山涉水可以信赖的支撑,这幅改装感觉像是把一个肌肉男变成了如花,扮作对镜贴花黄状,基本上除了Cool就只剩艳丽了。
● 卡宴Cayenne SportDesign:22英寸的深刻黑洞
5辐的轮毂设计展现出Cayenne巨大的卡钳和刹车碟,它无疑是高速驾驶的不错选择。宽大的轮毂配合上强劲的直喷式引擎,令卡宴Sport同样能够达到百公里加速6.8秒的成绩,这无疑令Cayenne更加容易被都市型男所青睐。5辐轮毂的后面,刹车盘形成的巨大幽深的黑洞吸引着好奇者的目光,而一阵烟尘过后,你会发现那黑洞完全可以释放腾云驾雾的能量!
● 宝马X5:22英寸轮毂的德国勋章
由LUMMA Design改装宝马X5而诞生了这款全新的CLR X530,在宝马X5的基础上进行了全面升级,由于使用了电子编程引擎,新车的功率额外提升了28bhp,随着扭矩增加了35Nm,全新CLR X530的最高速度也增加了15km/h。CLR X530还搭配了三种风格的车轮可供选择,分别为:“Racing 1”、“Racing 1”、以及 “Racing 3”,都为22英寸。图中这款X5白色荆棘状轮圈很容易让人联想起德国的勋章造型,不错,他就是德国男人的代言!
● 宾利Continental GTC:22英寸轮毂露骨的黑
擅长豪华车改装的德国改装厂Mansory在法兰克福车展上推出了其最新作品:基于宾利Continental GTC的改装车——Le Mansory Convertible GTC,改进之处包括采用全新的车漆和内饰、降低了车身高度和换装650马力W12发动机,没错,它还换上了22寸的超大炭黑轮毂,露骨的表现出巨大刹车盘带来的性感。请注意,它最性感的地方在于全球只有24辆。
5. 变速器和油耗有关系吗
变速器和油耗有关系,一旦对变速箱进行重置、或重新编程,那就打乱了变速箱的记忆,改变了换挡时机,那么短期内,油耗确实会有所变化。
就拿热门的小型车飞度来说,在高速跑120km/h,自动挡的转数是2000转,油耗是4.5L左右,而手动挡的飞度跑120km/h,转数是3500转,油耗在5.7L左右。
其实很多车型都存在这个现象,虽然使用同样的发动机,但是在车速一样时CVT变速箱的车型发动机转速更低。这是和CVT的特性分不开的,重点在于CVT自身硬件可以实现更宽广的变速比,以及CVT线性的换挡方式。
(5)VVT编程扩展阅读:
发动机燃油经济性和发动机负载以及发动机转速有关,而如何控制发动机转速始终保持在最佳燃油经济区,这需要变速器进行控制。变速器对油耗影响非常大,如果想省油并且希望有较平顺的换挡性,最好选择CVT变速器;如果想要省油并且希望车辆应答性,换挡速度快一些,选择DCT变速器。
车速一定的情况下,变速箱速比越小发动机转速就越低,想要达到这个效果很容易,CVT只要把主动轮直径变到最大,从动轮直径变到最小就可以了,主动轮转动一圈从动轮就可以转动好几圈,CVT以这种状态运行时可以最大限度降低发动机转速。
6. ecu是什么意思
发动机控制器(英语:Engine control unit,缩写:ECU)。
是一种控制内燃机各个部分运作的电子装置。最简单的ECU只控制每个引擎周期的注油量。在现代汽车上配备的更高级的发动机控制器还控制点火时间、可变阀门时间(VVT)、涡轮增压器维持的推进级别(配备涡轮增压的汽车)和其他外围设备。
发动机控制器通过传感器监控引擎来决定注油量、点火时间和其他参数。这些包括:MAP传感器、节流阀位置传感器、气温传感器、氧气传感器和很多其他传感器。一般这都是用控制系统(如PID控制器)。
在发动机控制器出现前,大多数引擎参数都是固定的,每个引擎周期每个气缸的注油量是由化油器或注油泵来决定的。
目前在一些中高级轿车上,不但在发动机上应用ECU,在其它许多地方都可发现ECU的踪影。例如防锁死刹车系统、4轮驱动系统、电控自动变速器、主动悬架系统、安全气囊系统、多向可调电控座椅等都配置有各自的ECU。
随着轿车电子化自动化的提高,ECU将会日益增多,线路会日益复杂。为了简化电路和降低成本,汽车上多个ECU之间的信息传递就要采用一种称为多路复用通信网络技术,将整车的ECU形成一个网络系统,也就是CAN数据总线。
(6)VVT编程扩展阅读:
现代ECU使用微处理器,可以实时处理来自发动机传感器的输入。电子控制单元包含硬件和软件(固件)。硬件由印刷电路板(PCB),陶瓷基板或薄层压基板上的电子组件组成。
该电路板上的主要组件是微控制器芯片(MCU)。该软件存储在微控制器或PCB上的其他芯片中,通常存储在EPROM或闪存中,因此可以通过上传更新的代码或更换芯片来对CPU进行重新编程。这也称为(电子)发动机管理系统(EMS)。
先进的发动机管理系统从其他来源接收输入,并控制发动机的其他部分;例如,一些可变气门正时系统是电子控制的,涡轮增压器废气门也可以得到管理。
它们还可以与变速器控制单元通信或直接接口电控自动变速器,牵引力控制系统等。该控制器区域网络或CAN总线汽车网络通常被用来实现这些设备之间的通信。
现代ECU有时包括巡航控制,变速箱控制,防滑制动控制和防盗控制等功能。
7. 华晨宝马318i轿车加速不良
一辆行驶里程约19.2万km,搭载E46底盘和N46发动机的2004年华晨宝马318i轿车。该车正常行驶中仪表上的电子节气门EML灯突然点亮,加油发闷,发动机转速只能达到3000r/min。
检查分析:使用故障诊断仪GT1读取故障码,发现DME内存储了伺服电动机的故障码。使用GT1进行故障导航,提示更新发动机控制单元DME的程序,同时提示伺服电动机故障或伺服电动机控制继电器故障。检查伺服电动机控制继电器正常。曾经遇到过几例此类故障,最终是对DME进行编程后排除了故障,于是决定根据提示对DME编程升级。
连接DK收发器或OPS并使用SSS软件对DME进行编程,选择DME。编程*更换软件,提示需要43min、 DME可继续编程63次。当编程进行到一半时,SSS显示屏右上角电压显示忽然出现问号,过了几秒电压显示忽然出现问号,过了几秒电压又恢复正常。编程时已经在发动机舱接上博世充电器,在行李舱接上蓄电池充电器。没过多久,SSS电压显示又出现问号,信号中断,编程自动结束退出。由于编程失效,只得再重新编程,重复操作,可是没过多久信号又出现中断,编程失败!此时用钥匙起动发动机已经无法着车,使用SSS继续重复编程,这时诊断仪已经无法列出措施计划,无法识别出发动机控制单元DME的软件版本,出现提示要求输入DME的7位零件号。
拆下发动机控制单元DME,在识别码下面有3个编号,2个小编号分别为7542274和7541459,一个大编号是7546340。随便选择以上一组数字输入后,点继续,此时出现提示要求输入基本控制单元的零件号。此基本控制单元是否为车身控制单元?查找电子配件目录ETK,输入底盘号,查得DME的零件号分别为7541460和7563329,车身控制单元ZKE的零件号为6944840,将以上编号分别输入,但是编程始终无法进行。向其他宝马“4S”店咨询,得到的建议是断电后再重新编程,仍然要求输入零件号,显然发动机控制单元DME内的数据已经全部丢失。
使用GT扫描全车,DME和变速器控制单元都无法进入,笔者分析是DME和变速器控制单元通信的CAN数据已经丢失,以致变速器控制单元无法识别。由于无奈,取出一套装有INPA和GT1 V44. 0软件的硬盘,首先接上INPA试图从全车编号(CODING)里自动识别出各控制单元,但操作无效。使用GT1 V44. 0进入设码编程,选择DME编程,共两项,分别是确定基本模块和对基本模块重新编程。首先确定基本模块,要求输入DME零件号,输入7546340后点继续,自动出现几排编号,第一排为7541459/7531849、7532786/7532787。然后退出选择对基本模块编程,按要求输入底盘号和零件号,最后开始编程,时间显示为52min。编程完后按照提示自动对防盗系统EWS匹配以及节气门和VVT调校等,完成后起动发动机可以着车。
着车后,仪表上的电子节气门EML灯仍然常亮,加油时仍然发闷,显然车辆已经恢复到维修前的状态。此时进入诊断,发动机控制单元DME和变速器控制单元GS都可以扫描,DME内的故障码仍为气门升程伺服电动机故障。按要求检测电动机及线路,测得VVTI M1接脚和WWT2M1接脚之间的电阻不到1Ω,分别测得VVT1 M1和VVT2M1与发动机搭铁之间的电阻均为50Ω,而标准值应为无穷大。
故障排除:更换气门升程伺服电动机,删除调校值,进行混合气调校,试车正常,确定故障排除。
维修总结:虽然笔者开始根据维修经验对DME进行编程,编程失败后导致DME数据丢失,使该车的故障颇费周折。但是我们也可以从此例故障的排除过程中了解到对DME进行编程的过程,也算是有一定收获
8. open GL 1.5是什么啊,vvtc在此谢过。
Open GL是由SGI,Microsoft, DEC, IBM和Inter等多家在计算机领域处于领导地位的世界着名计算机公司制定的一个通用共享的开放式三维图形标准,使用Open GL可大大减轻三维图形应用的编程量。Open GL和专对Open GL进行硬件加速的三维图形加速卡的结合使用,可极大地提高微机的图形处理能力,使微机的图形处理能力达到GRECO方法的要求,从而在微机上实现GRECO方法。
本文所用的图形加速卡AGC-300以Windows NT下的Open GL作为其硬件接口。Open GL在 Windows NT下的作用机制为:Open GL图形库封装在动态连接库OPENGL32.DLL内,受客户程序调用的Open GL函数都先在OPENGL32.DLL中处理,然后再传给WIN32.DDI,从而把图形命令送到视频驱动程序。图形卡的客户驱动程序(Installable Client Driver, ICD)加在客户一边,硬件指定DDI被加到服务器一边,完成图形卡对图形命令的加速支持。