收藏 分享(赏)

advisor原创教程.pdf

上传人:精品资料 文档编号:10284561 上传时间:2019-10-28 格式:PDF 页数:15 大小:873.04KB
下载 相关 举报
advisor原创教程.pdf_第1页
第1页 / 共15页
advisor原创教程.pdf_第2页
第2页 / 共15页
advisor原创教程.pdf_第3页
第3页 / 共15页
advisor原创教程.pdf_第4页
第4页 / 共15页
advisor原创教程.pdf_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、ADVISOR2002 基础 到高级引导 教程 (原创) By Scofision From NJUST 第一部分 : 软件安装及使用 ADVISOR 是基于 matlab/simulink 开发的先进电动汽车软件,主要功能是用于分析,而不是设计,从我对其 help 的阅读了解, ADVISOR 需要且最好安装在 matlab6.1 上,当然 matlab6.5+需要安装补丁(补丁由 mathworks 提供的),当然还有网传的 matlab 在更高版本上运行,可信度不高 ( 后面分析,还有弊端 ) , 并有人以此为牟利, 我和另一个朋友 ID:继续潜水,不提倡网上朋友花钱购买那个,而继续潜水

2、也根据他的研究,提供了一种方法可以在高版本上运行,但对于有二次开发需求的朋友,高版本上二次开发貌似还有缺陷,需要继续研究。 上面这个是 advisor2002 的安装程序包,它其实是一个压缩包类型的文件, Extract To 指,文件展开(安装到) Drivers 那个驱动器上。比如,我文件安装到 D:advisor2002,我选择 D:ADVISOR2002 然后点击 extract 解压 .。你会发现系统创建并把文件解压到 advisor2002中了 。 好,这里我们先来认识下张开后文件夹个文件夹的含义: Data 文件夹(不是 Dota,呵呵)里面是车辆部件数据文件,包括很多,在这不逐

3、个解释,后面需要的时候在解释。 Documentation 文件夹是帮助文件夹,里面都是帮助文件,当然你可以在软件开启的时候,打开,有些浏览器问题可能会打不开,你可以在浏览器地址栏输入: D:advisor2002documentationadvisor_ch1.htm 上句地址的含义是在你所安装的 advisor 文件夹中找到 advisor_ch1.htm 文件而已。 Extras 文件夹是扩展文件夹,包含着,电池模型扩展;发动机模型扩展;发动机 map 图转成数据图( image2map,这里的 2 代表 to( two=to) ,转换的意思,开发的人为了方便,写成这样,后面有好多都是这

4、样的表示) ; 还有简单的数据比较文件夹;发动机比例转换;还有第三方优化软件 VSOLE 的文件夹。 GUI 文件夹,很重要,二次开发的注意: 里面包换的都是 Guide GUI 开发的 fig 文件和 m 文件,这 2 部分组成了用户界面,控制着程序的运行,相应用户的操作。新手可以关注下。 Gui_graphics 顾名思义,就是 GUI 开发需要用到的图片什么的,当然也有声音。(有趣的修改:比如你自己录个声音保存成 wav 格式 welcome to advisor!,然后替换 advisor.wav,软件开启的时候,就是自己的声音,这个比较个性化,有趣的东西,很简单。) Interact

5、ive 文件夹:是用户交互式仿真,大家如果英文好,其实 advisor 学起来也快。 Models文件夹 :里面都是 advisor内置的车辆模型, 是 simulink 开发的,需要注意的是 library,即库文件夹,里面是个部件的 simulink 模型。对于 2 次开发,也需要认真关注。 Optimization 是优化文件夹。 vdoc_matlab 是优化程序,具体怎么用,可以看看它的 help。 Tmp 是临时文件夹,计算时候临时存放数据的 Save_vehicles,保存的车辆整个数据的文件夹,等界面的时候再说。其他的文件用到时再说。 首次开启软件,如下,打开 matlab/然

6、后在当然目录下选择安装 advisor 的软件文件夹,然后在 command 中输入 advisor,会有首次安装组件设置,点 yes。 Ok 如下。 第二部分 GUI 初步引导(需要软件界面开发的,自己研究下,有需要再讨论,我对 GUI 认识也很浅,一起进步) 网上经常有人问:是否有汉化版本?我在文献中看到有中文版的!种种问题,在此我初步解释, Advisor 的 GUI 开发是通过 guide GUI 开发的,所以界面控件很容易改。 这里,我可以公布简单的汉化过程: 首先,打开 matlab 在命令行输入; guide,熟悉下开发界面,一般的 matlab 基础知识的书都会有讲。需要的人找

7、本相应的书看看,建 议( GUI 设计学习手记,好像是北航学生自己出的 ,当然其他书也行,不深入的人看个大概就行 ) 然后点击菜单 -file,找到 advisor.fig 开启界面,仔细看看,双击控件,或者控件属性 需要懂各部分左边属性意义,举个例子,第一个 backgroundcolor,指控件背景颜色,你修改下红色,重新保存 advisor.fig 文件,然后命令行输入 advisor 时,开启的界面那个颜色就会改变。 OK 基于简单原理,我们去寻找一个每个控件的 string 值, 把他翻译成中文。比如: start修改成启动,重新保存,就 ok,后面如上试验下 。 所以, 我们汉化的

8、 主要 工作就是把 每个控件的 string 的英文值修改成中文值,就 ok,之后,我们需要做的只是重复工作,前面部分说过的 GUI 文件夹中,找到以 fig 为后缀的文件,比如 inputfig.fig,就是输入界面,请依次修改,汉化就 ok。 (特别注意几个问题: 1,控件的属性值 callback 是回调函数,不深入的朋友勿动,他是响应控件操作的属性,第二 tag 属性值,新手也勿动,它相当于控件的 ID,有点像 c 语言的指针,不晓得这样说对不对,我 c 语言还在自学中 。) 第三部分:软件的熟悉 首先,说明在软件开启的过程,请注意 matlab 命令行,还有 workspace。 (

9、 workspace 后面再说。) 1, vehicle input 是车辆输入的模型,只是一张图片,每个固定区域双击,都有响应。如:点击发动机那部分,打开发动机模型数据文件选择的 GUI 界面 2, 左下部分,是图片是车辆部件的数据转化成图片,如:燃料转换器( fc_converter,可以有三种:一种是汽油机,柴油机,还有燃料电池)里面的数据,转速,转矩,和燃油消耗率,转化成 map 图。软件开启默认是并联结构, fc 默认 是 fc_SI41_emis. 如果觉得图看的不清楚,你可以点击以下图,然后电机菜单 edit,然后里面有 3个 copy.,n 你点击,然后可以在打开图,在 mat

10、lab 中修改,放大,等等操作,动手试试。 3, 中上, load file,是选择已有的车辆整个数据的 m 文件,仔细认识下,你点击 load file,打开界面 选择需要的文件,双击 view/edit m-file 部分解释: global vinf,代表全局变量 vinf 的声明,全局变量通俗的讲指, matlab 的创建的函数,包括子函数及其他函数,都能用这个变量。 Vinf.name,特别注意其中的“ .”这代表它是个结构变量,( c 语言类似),后面的PARALLEL_defaults_in是这个变量的赋值,“ ”这个形式代表是个字符串。 如果以上不了解,请先看看 matlab

11、基本知识的书。 懂上面的,余下的好解释了: vinf.drivetrain.name=parallel,指驱动链名为 parallel,(并联形式) vinf.XXX.ver,指 XXX 部件的模型 ( version 的缩写 ver,注意 advisor 很多都是缩写 ) vinf.XXX.type,指 XXX 部件的类型 vinf.XXX.name,值 XXX 部件的名字 (注意:试试把 parallel 改成 series 其他不变,会出错) 4 drivetrain config,代表驱动链结构,分别有(串联,并联,纯电动,传统汽车,自定义, pruis 形式和 insight 形式)

12、,这里是和上面的有关联,如果第 3点吧 parallel 改成 ABC ,当载入车辆文件的时候, matlab 会发现没有对应的驱动链 ABC, matlab 提示错误。 5 在之后的都是车辆结构数据文件,部件数据文件, vehicle 里面有风阻系数,重力加速度,车重,车的重心高,等等 Fc_converter值燃料转换器的数据文件,点击 ic 旁边的倒三角选择 fc 的 simulink 模型( 它会自动选择的),点击 is,选择模型的形式(汽油 or 柴油) ,后面的 41 代表最大功率, 0.34 代表最高效率, 131 代表 fc 的重量。 (注意,这里的数据都太老了,因为本身 ad

13、visor 开发的年代较早,发动机的一些数据都太老,如果用 advisor 建模需要现在发动机的实验数据,如果没有,有一种方法是通过内置发动机的 map 图,比例换算,但这是在没办法的情况下 这里我指的是数据建模,不是 simulink 建模 ,后面再说明 ) 6 ok,其他部分自己琢磨,自己研究出来的东西,才记得清楚,懂的明白。如果不懂欢迎来汽车工程师之家 /advisor 版区讨论 , 看教程做的,如果多了,我就后面单独另附教程,如果不多,我就写到这篇教程了 ) 7,view block diagram,代表浏览 advisor 整车的顶层 simulink 模型,如下: (注意: adv

14、isor 是前向后向模型建立的模型,后向指 从工况模型到车辆模型,再到轮胎,依次下去,最后一个部件反向计算,是需求功率等的计算,从上图中可以看出,是向右的方向,反之,向左的方向是前向模型,后向建模个人认为对于分析性能很好,向前模型对于设计很好,请品味这句话。 还有前向模型的软件一般会有驾驶员模型,指驾驶员的操作 -加速踏板,制动踏板信号等 ) 7 中下的 variable,是变量值的修改,只要部件数据文件中含有的变量都可以通过这里修改,比如 fc_acc_mass,(发动机附件质量,默认的,是 32.8kg,点击 Edit Var,修改为35kg,点击 ok,仿真的就已 35kg 计算。 这里

15、必须要说的: 个人非常不建议这种方法来修改变量保存仿真,这里修改的变量,你需要逐个修改,可能你会修改了一个忘了哪个没修改,还有修改了只有仿真一次有效,也就是说,除非你修改之后每次都要点击 save 按钮把新的车辆的全部数据保存成 m-file,才能多次仿真有效。而且在这里改还不容易了解各部件的内部数据结构,不建议,不建议 ,最好你建模的时候是一打开部件 m-file,比如 电池, ess_PB25,你打开,逐个认识变量,了解结构,当你懂了内部结构,然后根据实验数 据,依次修改为你的数据,仿真准确度相对较高。(当然没实验数据,特别是国内做论文,只能以相近的电池数据比例计算来得到。 ) 8 aut

16、o size 自动尺寸计算,个人认为它是有点前期优化性质, 它有 2 种方法,一种是用 matlab 自动计算,一种是第三方软件 visualDoc 计算,指的是满足约束的情况下,自己计算以下部件的参数,约束有 2 个,一个是爬坡度,一个是加速性,设计的部件名有:燃料转换器, ESS 个数(电池个数), motor size 电机尺寸,还有其他等等,对于 visualdoc,还可以有设计目标。和设计循 环。 9 设置好所有部件的参数之后,点击 contisue,继续进入 工况选择,和仿真性能要求设置。 左上是工况的数据图,横轴是 time,纵轴是 speed,( oh,前面忘了说,软件开启的时

17、候,有单位选择,国内用 metric 米制,国外用的是 US 英制,如果前面忘了 选,可以在菜单栏还有机会修改)。 10 drive cycle,是行驶工况,点击它可以编辑对应的工况,点中不放 CYC_UDDS 旁的 倒三角,可以选择其 他工况, trip builder 是多工况集合,可以选择多工况模拟,比如,CYC_UDDS 和 CYC_ECE,然后重命名,选中之后, ok,可以对 2 工况的模拟, time step是时间步长, # of cycles 代表工况数据,比如输入在这输入 10,代表 10 个 UDDS 的模拟,因此可以用这个进行行驶里程仿真。 11 ) SOC correc

18、tion 值,电池 SOC(电量)纠正,一个是线性纠正,一个是 0 值纠正,cyc filter 指没几秒过滤一次纠正。 (这部分我理解不够深, 如果错误,谢谢指出。 ) 12 initial condition,指初始条件设置,里面有初始温度,初始电量等设置。它和 GUI 里面的 这几个文件有关系,后面讨论。 13 constant road grade 是指恒定的道路坡度,一般道路的坡度值 14 interactive simulation 值交互式仿真,没用过,从我的研读来看,他是根据外部信号(加速踏板信号,制动踏板信号,模拟出工况,然后仿真,有点类似前向仿真。) 上图是 models

19、文件夹里面的 interactive 模型,特别注意 Altia_off 和 Altia_off,然后再看工况 ,里面的这 2 个值,后面有时间细说。 14 test procedure,是指测试工况模拟。点击右边会出来解释,仔细读读。 15 accel option 和 grade option, 细说下, 1) shift delay,换挡延迟,默认 0.2 秒, 2) enable/disable systems 下的, all system enable 代表发动机组输出( FC 到 GC 输出)和 ESS(电池组)一起工作输出,即 2 者同时有效时进行加速性测试。 Energy st

20、orage disabled,电池组不工作时的加速性测试 , fuel converter disable 然后在选 initial SOC,发动机无效,然后初始多大电量时,加速性测试。 3) mass parameters,三个选择,指使用当前质量,超越当前质量,(这和软件参数输入界面的 override mass,效果一致,如果选择,代表仿真只用这个质量,不会考虑其他部件质量,总质量等;第三个是当前质量上增加多大质量来模拟加速性。 4) test results 主要加速性时间测试( 3 个可选),多少秒内行驶的距离测试(默认 5s内行驶距离);行驶多长路程需要的时间(默认 0.402km

21、,需要的时间模拟); max accel rate 指加速度模拟; max speed,最高车速模拟。 5) 下面有个 load PNGV,指载入美国定的一个标准叫 PNGV,(据我了解,要求达到 100公里 3L 燃油消耗的要求,当然还有其他要求) 爬坡度 模拟设置 界面 基本参数: 如果 grade 不勾, speed 打钩, duration 也勾, gear number 勾代表,在 speed 速度的要求下,持续 10 秒, 1 档时候的爬坡度模拟。 如果 grade 也勾,则代表该车速下,该爬坡度的验证! 举个例子可能更容易懂: Grade=无, speed=5/1.609(因为单

22、位换算,从 mph2kmh 为 1.609 代表 5km/h 的爬坡速度,然后 duration=10s, gear number =1 档 如果 grade=20%, speed=5/1.609 代表 5km/h 能否爬 20%的爬坡的验证。 下面 2 个和加速性解释一致,在后面的 solution condition,坡度要求上下限,爬坡度最初步骤,车速的容忍度,坡度容忍度,最大迭代次数,模拟时和是否显示在matlab 界面。 工况选择界面中得 Parametric study 是参数研究,代表几个参数研究,最多可选 3 个参数,上下边界,然后取几个点( #Pts) ,如果选择 3 个参数

23、, 输出的是一个 map 图,代表这 三个参数的改变,燃油经济性或者排放等其他 的改变,可以得出比较直观的结果。 16 电子附件载入及控制策略参数优化,后面单独做教程。 17 结果界面 左边是仿真结果之后,可选择的输出参数变量随时间变化的图,最多可选 4 个图输出,右上角 component 是选择要输出的结果的部件选择,它的下面是该部件所能输出的变量选择。 比如,我需要输出电池的 SOC 随时间变化图,你选 energy storage ,选择 ess_soc_hist,就能输出电池 SOC 随时间变化。 Fuel consumption( L/100km)代表工况百公里燃油消耗量, gas

24、oline equivalent 代表等效汽油消耗量, distance 代表行驶里程, emission 代表排放 (主要是 HC, CO, NOx , PM),在此之下是加速性和爬坡性测试的结构, energy use figure,是能量具体使用细化图表,包含有能量损失图和制动回收图(以柱形图输出), output check plots 代表具体输出主要部件的运行效率点等。点 Sim data 可以输出 多个 仿真结果的比较,(注意:通过菜单保存的数据文件名字不能以数字开头,否则不能进行比较) 同理 test data。 Replay 是重放功能。 第四部分:高级引导 工况的 修改或者

25、 再开发可以 3 种方法: 第一种:对于恒速工况模拟, 很多时候,我们需要恒定车速模拟, advisor 中是以 CYC_constant,为基础修改,如果你读了懂工况的数据 m 文件。请看如下部分: 解释: if exit( vel)为真( 1)则 vel=10(车速为 10), cyc_mph 是 2 列的矩阵,第一列是代表时间,第二列代表车速,以上矩阵代表, 0-5s 内车速是 0 , 5-50s 车速是 10( vel=10),所以你需要特定的恒定车速仿真,你可以设置 vel 值,为了单位转算( mph2kmh)最好在end 之前加一句, vel=vel/1.609 第二,工况在开发:

26、 对于特定工况,比如 CYC_UDD,看工况数据文件, 35 行有一句 load CYC_UDDS.mat 从这句出发,你去寻找这个 mat文件,它在 data文件夹的 drive_cycle ,通过 matlab载入 cyc_UDDS.mat文件,里面有 cyc_mph,同样也是 2 列,第一列代表 cyc_mph(:, 1)时间,第二列 cyc_mph(:, 2)代表车速 ,基于这考虑,我们可以通过 matlab,或者增加,行数,或者比例换算可以放大缩小工况 cyc_mph=cyc_mph(:, 1) *0.5 ,cyc_mph(:, 1) *2,这里 *后面的是比例系数。 当然还有第三种

27、方法:如果有真实的实车行驶工况数据,你可以通过 excel 把它改成 2 列,然后运行 cyc_mph=xlsread(X.xls),X.xls 代表含有 2 列的 excel 文件名。 (注意:在工况开发的时候, matlab 的 workspace 只能有 cyc_mph 变量,也就是说你 advisor不能打开,举个例子,你 先 clear all,然后找到 data/drive cycles 中的 UDDS.mat 文件,打开他,然后 cyc_mph=xlsread(X.xls),当然 x.xls 要在当前文件夹中,然后重新保存这个变量,取名 CYC_XXX.mat,然后再修改 UDD

28、S 的 m 文件, 35 行 load CYC_UDDS.mat 改成 load CYC_XXX.mat) 二次开发步骤及方法的引导: 第一步:在了解 load file 部分的知识,上面讲到驱动链结构名字,因为 advisor 内置驱动链形式不多,(相对来说 advisor 开发很难 ,本身模型太固定了)假如说你要见一个 ABC 形式的驱动链的车辆结构( ABC 是自己娶的名字,具体驱动链结构根据自己的研究定义去)我们需要把 vinf.drivetrain.name 修改为 ABC 然后另存为 DEF.in 文件,放在 saved_vehicles的文件夹中,的 但是对应 simulink

29、没有 ABC 模型( models 文件夹中没有), 怎么办? 第二步 :因为没有,所以我们只能创建以 ABC 命名的顶层模型,当然,我们可以运用已有的模型修改而成,命名成 BD_ABC.mat 第三步: 在理解 GUI/optionlists 里面的 all_menus.mat,这个文件 ,所以文件菜单文件, ( 如果你对它不了解,你可以在高版本的 matlab 中打开这个文件,看看,它内部的数据。 ) Ok,如何增加文件和 驱动链形式 在 matlab 中输入 2 句命令: options.input_file_names=optionlist(add,input_file_names,D

30、EF) options.drivetrain=optionlist(add,drivetrain,ABC) 第四步:在 GUI 文件夹下,找到 block_diagram_name.m,需要修改 找到 switch drivetrain 行 增加一句 Case ABC Bd_name=BD_ABC(注意 : 这句是选择语句, 当选择到 ABC 驱动链时候, advisor 自动寻找在models 文件夹中寻找 BD_ABC,如果没有,仿真 100%出错。所以有第三步操作。 ) 以上操作可以在 advisor 中定义自己需要的结构。 但是,如果你选择点击 drivetrain config,选择

31、自己的 ABC 驱动链,但是可能仿真会出错。是因为 advisor 没有 ABC 结构的默认车辆文件,所以出错 如果第一步车辆文件,直接命名为 DEF_default_in,( everything is ok!) 如果是单独部件的 2 次开发: 首先要了解库文件,即( models/library 里面的模型,你要建立自己部件的模型,需要对advisor 自带的模型非常了解,需要了解自带模型的输入输出接口。你自建的模型,必须也有对应的输入输出。不然你可能接不上去 与后面的模块) 举个例子,如果你自建一种新型电池模型,放在 lib_energy_storage 的库文件中( ess chois

32、es中), 然后在 template 中选中,打钩,然后重新保存。 第二步是在 adjust_config_bds.m 文件( GUI 文件夹里面的)函数下,找到电池选择语句 (232行 ) Case ess config case ess config BlockChoices=Ultracapacitor System;%在这里需要增加电池模型的类型 energy storage ; energy storage RC; energy storage nnet; energy storage Saber; energy storage fundamental model; energy s

33、torage optima fundamental model; %make sure block choices exist in memberblocks CheckBlocks(BlockChoices,memberblocks,i) if strcmp(vinf.energy_storage.ver,rc) %在这里增加你的模型的 version if strcmp(vinf.energy_storage.type,cap), 在这里增加你 模型的类型 %Ultra Cap RC model set_param(x,BlockChoice,BlockChoices1) else %al

34、l other types are assumed to be RC battery models %RC battery model set_param(x,BlockChoice,BlockChoices3) end elseif strcmp(vinf.energy_storage.ver,rint) %rint battery model set_param(x,BlockChoice,BlockChoices2 余下代码不在载入,请大家自己看看,同理,当然还有其他模型可以改,如控制策略,那就在控制策略的 case 那部分增加。 第三优化,优化部分不写了,主要涉及自己论文,本人论文还 在写中,所以占时不介绍使用方法,可以告诉大家的是,仔细研读 adv_no_gui.m 文件 此 PDF 为学习交流之用,主要是学习和经验分享,任何拿此盈利的人 BS 之。 文中有错的地方和我交流,可能学浅没有考虑到,欢迎指出,谢谢。 Advisor2002 博大精深, 还有其他部分的东西,以后有空再做! 如有不懂的地方,希望来汽车工程师之家的 advisor 讨论 ,当然也欢迎进群之后能够帮助新人朋友,一起研究讨论, 貌似群人数快到 100 了。 最后希望大家学术工作顺利! Yours scofision

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报