前言
作者介绍
阿隆,深耕汽车控制器应用层开发多年,经历多家企业项目(包含多家中外头部企业),拥有多款控制器量产经验。主要技能包括应用层模型开发和c/c++代码编写,mil/sil测试,工具链开发,静态检查,BSW配置和手写,上位机开发等。
加V联系我:ALongAutom
使用介绍
MBD课程是阿隆从业多年后,在2022年的时候从0开始一点点录制的视频,一点点码字码出来的课程,现在分享给大家用来学习,如果对正在观看的你有帮助,可以帮忙推荐给身边的朋友,一起学习,也可以免费加入阿隆的技术交流群进行交流学习。
课程使用平台Matlab 2021b,建议初学者尽量使用同版本,避免出现版本差异带来的问题。等熟练掌握课程以后,再升级平台,出现版本差异的问题也知道该如何解决。
全网同名阿隆汽车,可以在其他平台搜索阿隆汽车找到阿隆,感谢观看。
入门篇视频是在Bilibili进行免费观看,链接如下:
https://www.bilibili.com/video/BV1xC411376N
https://www.bilibili.com/video/BV1Mt421P7HS
实战篇01视频可以在Bilibili进行免费观看,链接如下:
https://www.bilibili.com/video/BV1Pm421x7UJ
提高篇视频观看链接
25. UserDefinedFunctions
25.1 概述
用户自定义功能,提供了比如MatlabFuction,C Caller,S Function等模块可以去编写代码,调用外部函数等。
25.2 MatlatFunction
在Simulink里面使用m语言做功能开发,比较灵活。一些老牌企业可能不允许使用,小公司为了更快开发逻辑会使用。
双击到模块里,对输入和输出可以直接在function上修改,类似m函数。也可以点击到Model Explorer进行添加和设置的操作。

点进来设置。

对模块进行仿真,看到排序是从1到大排的。

也可以用来生成代码。
25.3 MatlabSystem
工作中几乎没见过使用的,与MatlabFunction的区别是,它使用的类,就是面向对象的编程。
直接添加进来会显示没有指定。

如果已经有定义好的类,可以直接加载进来使用。或者可以点击New进行新建。

点击New,自动创建一个模板。

模板代码
classdef untitled3 < matlab.System
% untitled3 Add summary here
%
% This template includes the minimum set of functions required
% to define a System object with discrete state.
% Public, tunable properties
properties
end
properties(DiscreteState)
end
% Pre-computed constants
properties(Access = private)
end
methods(Access = protected)
function setupImpl(obj)
% Perform one-time calculations, such as computing constants
end
function y = stepImpl(obj,u)
% Implement algorithm. Calculate y as a function of input u and
% discrete states.
y = u;
end
function resetImpl(obj)
% Initialize / reset discrete-state properties
end
end
end
修改类的名字并进行保存。

对类进行实现
classdef AddSum < matlab.System
% untitled3 Add summary here
%
% This template includes the minimum set of functions required
% to define a System object with discrete state.
% Public, tunable properties
properties
end
properties(DiscreteState)
end
% Pre-computed constants
properties(Access = private)
data;
end
methods(Access = protected)
function setupImpl(obj)
obj.data = 0;
% Perform one-time calculations, such as computing constants
end
function y = stepImpl(obj,u)
obj.data = obj.data + u;
% Implement algorithm. Calculate y as a function of input u and
% discrete states.
y = obj.data;
end
function resetImpl(obj)
obj.data = 0;
% Initialize / reset discrete-state properties
end
end
end
实例化两个对象。

每调一次step(1),就会累加1.

每调一次step(2),就会累加2。obj1和obj2的结果是独立的。

定义完成以后,可以在Matlab System模块里进行加载。

第一次仿真,结果等于2.

第二次,结果等于4,符合预期。

2万+

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



