MATLAB绘制汽车理论的仿真图片

news2024/12/23 10:31:49

这里写自定义目录标题

  • 仿真绘图内容
    • 发动机最优曲线
        • 最优燃油消耗率曲线
        • 最优效率曲线
          • 工作时间/能量消耗的分布
    • 传统车动力性分析
    • 绘制三(或多个)y坐标轴函数
    • 统计数据分布情况函数

仿真绘图内容

从传统车到新能源混合动力车型的不同绘制。

发动机最优曲线

发动机最优曲线最常见为最优燃油消耗率曲线,即同一机械输出功率下,燃油消耗率最小的转速转矩对应的发动机工作点。

最优燃油消耗率曲线

最优效率曲线

工作时间/能量消耗的分布

包括转速-转矩工作点的时间统计分布,能够反映出发动机工作点(转速-转矩)的工作点时间的花费情况。
以及转速-转矩工作点的能量统计分布,能够反映出发动机工作点(转速-转矩)的工作点能量(或者油耗)的花费情况。

传统车动力性分析

传统车绘制性能分析图像,包括各个档位下的发动机的最大外特性(车速与车轮处最大驱动扭矩/驱动力的关系),行驶阻力(不同坡度下)随车速的变化情况。根据输入绘图函数的类型,分别可绘制出驱动力(force)、驱动扭矩(torque)、驱动功率(power)等多种曲线。
绘制传统车动力性分析图需要提供的参数包括:

  1. 变速箱挡位个数;
  2. 主减速器与变速箱的传动效率
  3. 变速箱与主减速器速比
  4. 车轮半径
  5. 行驶阻力方程中涉及到的整车参数

由于力,扭矩,和驱动功率分别为 驱动力,驱动力X车轮半径,扭矩X转速,因此绘制不同曲线时,仅y轴求取的方式不同,绘制图形的主体不变。

行驶力

在这里插入图片描述

行驶功率

在这里插入图片描述

行驶扭矩

在这里插入图片描述

绘制三(或多个)y坐标轴函数

该函数分布输入三条需要绘制的x,y向量,以及三个y轴的标签即可(或者不输入),该函数输出包括三个坐标轴的对象和包括三个曲线的对象。可对图像进一步设置和调整。
该函数首先利用plotyy绘制双y轴图像,然后将第三个y轴向右偏移一定的比例后,在对第三条曲线绘制。
例如采用以下测试代码绘制定制化的图像:
由于axes包含 line对象,figure对象又包含axes对象,对axes和 line对象进行合适的配置即可达到定制化的目的。

figure
pos =  [0.1  0.1  0.7  0.8];
ax=axes('Position',pos,'box','off',...
    'Color','none','XColor','k','YColor','r',...
    'xtick',[],'yaxislocation','right');
line([0:0.1:2*pi],sin([0:0.1:2*pi]),'Parent',ax)

采用上述绘制后如下所示的图像:
绘制右侧的y轴图像

function [ax,hlines] = plotyyy(x1,y1,x2,y2,x3,y3,ylabels)
%PLOTYYY - Extends plotyy to include a third y-axis
%
%Syntax:  [ax,hlines] = plotyyy(x1,y1,x2,y2,x3,y3,ylabels)
%
%Inputs: x1,y1 are the xdata and ydata for the first axes' line
%        x2,y2 are the xdata and ydata for the second axes' line
%        x3,y3 are the xdata and ydata for the third axes' line
%        ylabels is a 3x1 cell array containing the ylabel strings
%
%Outputs: ax -     3x1 double array containing the axes' handles
%         hlines - 3x1 double array containing the lines' handles
%
%Example:
% x=0:10;
% y1=x;  y2=x.^2;   y3=x.^3;
% ylabels{1}='First y-label';
% ylabels{2}='Second y-label';
% ylabels{3}='Third y-label';
% [ax,hlines] = plotyyy(x,y1,x,y2,x,y3,ylabels);
% legend(hlines, 'y = x','y = x^2','y = x^3',2)
% %
if nargin==6
    %Use empty strings for the ylabels
    ylabels{1}=' '; ylabels{2}=' '; ylabels{3}=' ';
elseif nargin > 7
    error('Too many input arguments')
elseif nargin < 6
    error('Not enough input arguments')
end

figure('units','normalized',...
    'DefaultAxesXMinorTick','on','DefaultAxesYminorTick','on');

%Plot the first two lines with plotyy
[ax,hlines(1),hlines(2)] = plotyy(x1,y1,x2,y2);
cfig = get(gcf,'color');
pos = [0.1  0.1  0.7  0.8];
offset = pos(3)/5.5;

%Reduce width of the two axes generated by plotyy
pos(3) = pos(3) - offset/2;
set(ax,'position',pos);

%Determine the position of the third axes
pos3=[pos(1) pos(2) pos(3)+offset pos(4)];

%Determine the proper x-limits for the third axes
limx1=get(ax(1),'xlim');
limx3=[limx1(1)   limx1(1) + 1.2*(limx1(2)-limx1(1))];
ax(3)=axes('Position',pos3,'box','off',...
    'Color','none','XColor','k','YColor','r',...
    'xtick',[],'xlim',limx3,'yaxislocation','right');

hlines(3) = line(x3,y3,'Color','r','Parent',ax(3));
limy3=get(ax(3),'YLim');

%Hide unwanted portion of the x-axis line that lies
%between the end of the second and third axes
line([limx1(2) limx3(2)],[limy3(1) limy3(1)],...
    'Color',cfig,'Parent',ax(3),'Clipping','off');
axes(ax(2))

%Label all three y-axes
set(get(ax(1),'ylabel'),'string',ylabels{1})
set(get(ax(2),'ylabel'),'string',ylabels{2})
set(get(ax(3),'ylabel'),'string',ylabels{3})

统计数据分布情况函数

该函数输入两个需要统计的向量,例如发动机转速随时间变化的向量和转矩随时间变化的向量,然后输入需要给出需要统计数据分布的类型,包括 ‘energy’ 和 ‘time’ 两种情况,分别代表能量分布和时间分布情况。
既然该函数是统计两个向量数据的分布情况,必然对这两个向量组成的xy平面进行划分,默认分别对x,y向量划分20块,然后统计划分xy后每一个小区域内的分布占比(时间或者能量占比)。因此该函数输出为x,y划分后的等间距向量x_index,y_index,以及统计分布情况 map_dens。利用这三个输出参数,即可绘制三维分布情况。

function [x_index,y_index,map_dens] = map_density_cal(x,y,type_dens)
% 初始化网格
N_x=20;
N_y=20;
x_index=linspace(min(x),max(x),N_x);
y_index=linspace(min(y),max(y),N_y);
x_radius=(x_index(2)-x_index(1))/2; % 每个 bin 
y_radius=(y_index(2)-y_index(1))/2;
map_dens = zeros(N_x,N_y);
% 计算密度网格
for cpt_x=1:N_x
    for cpt_y=1:N_y
        idx_count=find((x>=(x_index(cpt_x)-x_radius)) & (x<(x_index(cpt_x)+x_radius))&(y>=(y_index(cpt_y)-y_radius)) & (y<(y_index(cpt_y)+y_radius)));
        switch(type_dens)
            case('time')
                map_dens(cpt_x,cpt_y)=numel(idx_count)/numel(x)*100;
            case('energy')
                map_dens(cpt_x,cpt_y)=sum(abs(x(idx_count).*y(idx_count)))./sum(abs(x.*y))*100;
        end
    end
end

end

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

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

相关文章

排序算法 - 选择排序

文章目录 选择排序介绍选择排序实现选择排序的时间复杂度和稳定性选择排序时间复杂度选择排序稳定性 代码实现核心&总结 每日一道算法&#xff0c;提高脑力。第四天&#xff0c;选择排序。 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素&#…

Vue3超详细的ref()用法,看这一篇就够了

ref()接受一个内部值&#xff0c;返回一个响应式的、可更改的 ref 对象&#xff0c;此对象只有一个指向其内部值的属性 .value。 ref() 将传入参数的值包装为一个带 .value 属性的 ref 对象。 1、ref 对象是可更改的&#xff0c;即可以为 .value 赋予新的值 举例&#xff1a; c…

使用Vscode调试shell脚本 环境搭建基本步骤

操作系统&#xff1a; Linux --CentOS. step1: 在Vscode 中安装Bash Debug Step2:创建一个名字为123.sh的shell脚本&#xff1b; 输入123.sh, 回车: ​​​​​​Step3:编辑简单的待打印的内容,如下&#xff1a; Step4: 配置编译器 修改为下面内容&#xff1a; Step5: 点击按…

spring源码搭建记录

spring源码搭建记录 一.环境1.1 构建工具1.1.1 Gradle简介1.1.2 与常见的项目构建工具对比1.1.3 gradle下载1.1.4 Gradle安装 1.2 jdk与源码版本1.3 源码下载与导入 一.环境 1.1 构建工具 Spring源码工程使用的项目构建工具不是Maven&#xff0c;而是Google的Gradle。首先需了…

Docker搭建配置Gitlab

Docker搭建配置Gitlab 1 参考文档2 Gitlab相关介绍2.1 Gitlab2.2 Git和SVN的区别2.3 Git、Gitlab、GitHub的简单区别 3 搭建Gitlab仓库3.1 拉取镜像3.2 启动容器3.3 修改配置文件 4 管理员登录Gitlab5 Gitlab配置邮箱6 创建组7 创建项目8 创建用户9 Gitlab 数据备份【这块待实践…

第29步 机器学习分类实战:支持向量机(SVM)建模

文章目录 前言一、数据预处理二、SVM的调参策略三、SVM调参演示总结 前言 支持向量机&#xff08;SVM&#xff09;建模。 一、数据预处理 import numpy as np import matplotlib.pyplot as plt import pandas as pd dataset pd.read_csv(X disease code fs.csv) X dataset.…

SSM整合(二) | 表现层数据封装格式及封装步骤

文章目录 表现层数据封装数据返回格式数据封装 表现层数据封装 数据返回格式 表现层数据封装是什么意思呢? 我们根据目前做的增删改查功能来看看目前返回数据的格式存在哪些问题 增删改的数据返回格式如下: true查询单条数据的返回格式如下: {"id": 1,"type&…

【致敬未来的攻城狮计划】— 连续打卡第十七天:FSP固件库开发GPT — PWM通用定时器 定时2s LED 闪烁

系列文章目录 1.连续打卡第一天&#xff1a;提前对CPK_RA2E1是瑞萨RA系列开发板的初体验&#xff0c;了解一下 2.开发环境的选择和调试&#xff08;从零开始&#xff0c;加油&#xff09; 3.欲速则不达&#xff0c;今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

MySQL提权/条件竞争漏洞分析和利用(37)

预备知识 漏洞描述 CVE编号&#xff1a;CVE-2016-6663 / CVE-2016-5616 && CVE-2016-6664-5617漏洞级别&#xff1a;严重 漏洞影响&#xff1a;漏洞影响&#xff1a; MariaDB < 5.5.52 < 10.1.18 < 10.0.28 MySQL < 5.5.51 < 5.6.32 < 5.7…

【MATLAB数据处理实用案例详解(18)】——利用自组织特征映射网络实现亚洲足球水平聚类

目录 一、问题描述二、自组织特征映射网络实现亚洲足球水平聚类原理三、算法步骤3.1 定义样本3.2 创建网络3.3 网络训练3.4 测试3.5 显示聚类结果 四、运行结果五、完整代码 一、问题描述 中国男子足球队的比赛成绩一直牵动着广大球迷的心。很多人认定中国队已处于亚洲三流甚至…

SpringBoot 多数据源及事务解决方案

1. 背景 一个主库和N个应用库的数据源&#xff0c;并且会同时操作主库和应用库的数据&#xff0c;需要解决以下两个问题&#xff1a; 如何动态管理多个数据源以及切换&#xff1f; 如何保证多数据源场景下的数据一致性(事务)&#xff1f; 本文主要探讨这两个问题的解决方案…

【C++】——C++基础知识点(C++和C语言的区别)

文章目录 1. 前言2. 命名空间2.1 命名空间定义2.2 命名空间使用 3. C的输入输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.1 函数重载概念5.2 C支持函数重载的原理——名字修饰 6. 引用6.1 引用概念6.2 引用特性6.3 常引用6.4 引用的使用场景6.5 引用和指针的…

OtterCTF

五年前的老题了&#xff0c;但还是值得一做&#xff0c;内存取证yyds! What the password? 取电脑的密码 先看缓存在内存中的注册表的偏移量 volatility_2.6_win64_standalone -f 1.vmem --profileWin7SP1x64 hivelist关注到SAM(账户密码表)和system volatility_2.6_win6…

MRI k空间概念整理

以下内容为MRI期末复习笔记&#xff0c;仅供复习参考使用。 K空间概念 K空间为包含MR数据的阵列&#xff0c;也可定义为原始数据阵列相位编码轴和频率编码轴的交叉点 MR扫描得到的数据为谱空间数据&#xff0c;谱空间数据与空间数据位置无直接对应关系 k空间每一数据点或数据…

数组、链表专题

数组、链表专题 前缀和数组LeetCode 303. 区域和检索 - 数组不可变解题思路代码实现 LeetCode 304. 二维区域和检索 - 矩阵不可变解题思路代码实现 总结 不要纠结&#xff0c;干就完事了&#xff0c;熟练度很重要&#xff01;&#xff01;&#xff01;多练习&#xff0c;多总结…

4726.ACWing.第80场周赛寻找数字

ACWing.第80场周赛寻找数字 题目算法思想代码 题目 算法思想 时间复杂度 相当于01背包的搜索时间复杂度&#xff0c;每个位上要么是 4 要么是 7 &#xff0c;而且题意位数不超过10位&#xff0c;所以dfs可以直接过搜索算法 代码 #include<bits/stdc.h> using namespac…

【LeetCode】235. 二叉搜索树的最近公共祖先

1. 问题 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可…

项目骨架搭建

CSS样式补充 精灵图 CSS精灵图&#xff08;CSS Sprites&#xff09;是一种网页优化技术&#xff0c;通过将多个小图像合并成一个大图像&#xff0c;然后通过CSS的背景定位&#xff08;background-position&#xff09;属性来显示对应的图像部分。这种技术可以减少HTTP请求次数…

【Win11 | SSH】详细教你如何在Windows 11 下完成OpenSSH的安装(保姆级攻略)

文章目录 一、问题描述二、问题尝试解决2.1 ssh的问题2.2 如何手动安装2.3 install 脚本找不到2.4 power shell 开始报错2.5 继续安装ssh 三、输入 ssh 再报错 一、问题描述 最近在测试github的连接时&#xff0c;在终端或命令行窗口中&#xff0c;输入以下命令测试你的 SSH 连…

【五一创作】医院手术室麻醉管理系统概述和功能 SQLServer 2008 R2

医院手术室麻醉管理系统概述 1.系统功能概述 手术麻醉管理系统采用下拉式汉化菜单&#xff0c;界面友好&#xff0c;实用性强&#xff0c;设有与住院、病区、药房等系统的软件接口。 系统主要功能有&#xff1a; 手术管理&#xff1a;提供手术病人检索、手术申请、手术安排…