MBD学习笔记


MBD学习笔记

作者:INCSKY
说明:个人学习笔记,比较简略。

1.Matlab基础

1-1.matlab脚本编程

1
2
3
4
5
6
7
8
9
a = 1
b = 2
c = a + b;

for i = 1:100
output(i) = sin(i);
t(i) = i;
end;
plot(t,output);
  • matlab变量不需要声明即可使用,默认为double。
  • matlab脚本语言从1开始数而不是从0开始数。
  • matlab脚本语言句尾可以不打’;’符号
  • 在命令行输入help + 对应函数名,可以快速查看说明文档(matlab的说明文档是我见过最细致的。)

1-2.matlab函数编程

1
2
3
4
function [outputArg1,outputArg2] = MBD_Study2(inputArg1,inputArg2)
outputArg1 = inputArg1;
outputArg2 = inputArg2;
end
  • 全局函数与文件名一致
  • 没有函数类型,也没有空输出函数
  • 多输出函数的使用方式为 [outa,outb] = function(ina,inb)

1-3.matlab类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
classdef untitled2
%UNTITLED2 此处显示有关此类的摘要
% 此处显示详细说明

properties
Property1
end

methods
function obj = untitled2(inputArg1,inputArg2)
%UNTITLED2 构造此类的实例
% 此处显示详细说明
obj.Property1 = inputArg1 + inputArg2;
end

function outputArg = method1(obj,inputArg)
%METHOD1 此处显示有关此方法的摘要
% 此处显示详细说明
outputArg = obj.Property1 + inputArg;
end
end
end
  • 和C++的类比较类似。
  • 但matlab的类不做声明时,内容均为公有。
  • properties (Access = private) 设置为私有。properties (Access = {?子类名} )设置为子类访问。properties (Hidden,Dependent)设置为隐藏。
  • 外部资料

1-4.matlab命令行的使用

  • 类似于windows命令行。
  • clc清空命令行,clear清空工作区。注意区分。
  • 注意工作空间路径。
  • 多用help指令查看帮助。

1-5.matlab工具箱

Curve Fitting

  • 以曲线拟合工具箱Curve Fitting为例,在APP工具栏打开该工具箱。
  • 工作区以matlab当前工作区为准。
  • 左上为变量选择,右上为拟合方程选择。左下为求解结果,右下为拟合曲线。最下是方差等数据。

2.Simulink基础

2-1.Simulink模块的数据类型

  • 双击模块,在Singal Attributes和Parameter Attributes中可以设置数据类型以及最大最小值。flxdt类型为定点数,可以减少内存使用,但现在不常用。rouding mode是圆整设置。Saturate on integer overflow 勾选后,数据溢出则按最大值处理。

  • 浮点数:f16,f32,f64

    mbd2

    不难看出,浮点数虽然表示的范围很大,但是损失了精度。

  • 定点数:q7,q15,q31等

    qx代表有x位表示小数部分,精度就为1/2^x。

2-2.仿真基础设置

  • Simulation time:仿真时间,输入inf即为无限。
  • Slover Selection:求解方法。软件开发只能选Fixed-step和discrete。
  • Fixed-step size 步长,单位为秒。
  • 模型参数均为静态的,动态修改需要使用set_param()函数。

2-3.模块化

  • 端口,模块等需要命名,提高可读性和可维护性。
  • 子系统嵌套层数不要太多。
  • 好像没找到解除组合的功能。
  • 子系统变体和模型变体:子系统变体用于小规模算法,模型变体用于大规模算法。
  • 常用,成熟的模块可以建库。搜索slblocks有将库添加进library browser的教程。

2-4.数据字典

  • matlab工作区的数据易被污染。
  • 数据字典需要引入到模型中。

2-5.S-Function

有空再记


本文不允许转载。
  目录