MBD学习笔记
作者:INCSKY
说明:个人学习笔记,比较简略。
1.Matlab基础
1-1.matlab脚本编程
1 | a = 1 |
- matlab变量不需要声明即可使用,默认为double。
- matlab脚本语言从1开始数而不是从0开始数。
- matlab脚本语言句尾可以不打’;’符号。
- 在命令行输入help + 对应函数名,可以快速查看说明文档(matlab的说明文档是我见过最细致的。)
1-2.matlab函数编程
1 | function [outputArg1,outputArg2] = MBD_Study2(inputArg1,inputArg2) |
- 全局函数与文件名一致
- 没有函数类型,也没有空输出函数
- 多输出函数的使用方式为
[outa,outb] = function(ina,inb)
1-3.matlab类
1 | classdef untitled2 |
- 和C++的类比较类似。
- 但matlab的类不做声明时,内容均为公有。
properties (Access = private)
设置为私有。properties (Access = {?子类名} )
设置为子类访问。properties (Hidden,Dependent)
设置为隐藏。- 外部资料
1-4.matlab命令行的使用
- 类似于windows命令行。
- clc清空命令行,clear清空工作区。注意区分。
- 注意工作空间路径。
- 多用help指令查看帮助。
1-5.matlab工具箱
- 以曲线拟合工具箱Curve Fitting为例,在APP工具栏打开该工具箱。
- 工作区以matlab当前工作区为准。
- 左上为变量选择,右上为拟合方程选择。左下为求解结果,右下为拟合曲线。最下是方差等数据。
2.Simulink基础
2-1.Simulink模块的数据类型
双击模块,在Singal Attributes和Parameter Attributes中可以设置数据类型以及最大最小值。flxdt类型为定点数,可以减少内存使用,但现在不常用。rouding mode是圆整设置。Saturate on integer overflow 勾选后,数据溢出则按最大值处理。
浮点数:f16,f32,f64
不难看出,浮点数虽然表示的范围很大,但是损失了精度。
定点数: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
有空再记