前言
作者介绍
阿隆,深耕汽车控制器应用层开发多年,经历多家企业项目(包含多家中外头部企业),拥有多款控制器量产经验。主要技能包括应用层模型开发和c/c++代码编写,mil/sil测试,工具链开发,静态检查,BSW配置和手写,上位机开发等。
加V联系我:ALongAutom
使用介绍
MBD课程是阿隆从业多年后,在2022年的时候从0开始一点点录制的视频,一点点码字码出来的课程,现在分享给大家用来学习,如果对正在观看的你有帮助,可以帮忙推荐给身边的朋友,一起学习,也可以免费加入阿隆的技术交流群进行交流学习。
课程使用平台Matlab 2021b,建议初学者尽量使用同版本,避免出现版本差异带来的问题。等熟练掌握课程以后,再升级平台,出现版本差异的问题也知道该如何解决。
全网同名阿隆汽车,可以在其他平台搜索阿隆汽车找到阿隆,感谢观看。
入门篇视频观看链接如下:
实战篇01视频观看链接如下:
阿隆MBD实战篇_01_VCU扭矩查表模块与CANoe联合仿真_哔哩哔哩_bilibili
提高篇视频观看链接
11.Matlab程序设计
11.1 顺序结构
按照顺序语句进行执行,最容易理解的结构,从前到后,从上到下。
x = -2.3 : 0.1 : 0.8;
y = -1.5 : 0.1 : 1.5;
[x, y] = meshgrid(x, y); % 确定离散点横坐标和纵坐标
z = exp(-(x.^2 + y.^2)); % 产生二元函数自变量域的离散点
z(20:32, 1:14)=zeros(13, 14); % 修改部分函数值为零
mesh(z); % 根据离散点处函数值绘图
11.2 选择结构
11.2.1 if
if语法,if后面的条件表达式为真的时候,会执行if条件后面的语句command1。如果为假,执行else后面的语句command2。最后以end结束。
if condition
command1;
else
command2;
end

也可以只有if不带else,如果为真就执行if条件后面的语句command1。如果为假,直接跳过执行。
if condition
command1;
end
if和elseif做嵌套使用。c语言写法是else if。
if condition1
command1;
elseif condition2
command2;
else
command3:
end
11.2.2 switch
switch和case组合列出来多种情况,结构上比if和elseif更加的清晰。
语法:
switch 表达式
case 表达式1 语句1(语句组)
case 表达式2 语句2
…
otherwise
语句n
end
实例:

11.2.3 try
try后面跟的命令,如果执行错误,会跳到catch后面执行。这样就会给我们在程序调用错误的时候还能继续执行的方法。
语法:
try
command1;
catch
command2;
end
实例:
try
uint8_a = uint8(10);
uint16_a = uint16(10);
uint16_b = uint8_a + uint16_a;
catch ME
warning(ME.message);
uint8_a = uint8(10);
uint16_a = uint16(10);
uint16_b = uint16(uint8_a) + uint16_a;
end
11.3 循环结构
11.3.1 for循环
for循环是在for后面跟一个行向量,按照行向量的size去执行迭代的总次数,第n次迭代,行向量里的值更新为i(n)。
语法
for i = 1 : n
command;
end
实例:
var = 10;
var_n = 1;
for ii = 1 : var
var_n = var_n * var;
disp(ii);
disp(var_n);
end
11.3.2 while循环
while后面的condition为真的时候,while循环就会执行,为假的时候,循环结束
while condition
command;
end
本文详细介绍了Matlab程序设计中的顺序结构、选择结构(包括if、switch和try-catch)、以及for和while循环。通过实例演示了如何在代码中运用这些结构实现数据处理和逻辑控制。
5294

被折叠的 条评论
为什么被折叠?



