文章目录
功能
scope 设置label 字号 字体 游标测量
打开隐藏选型 ---- view ---- configuration properties ---- Display(设置ylabel) ---- Time(勾选show)
-
matlab命令行中运行以下命令,在打开的scope会显示隐藏选项,打开隐藏选项后才能设置字体大小等:
set(0,'ShowHiddenHandles','on'); set(gcf,'menubar','figure');
-
显示横轴纵轴label
-
设置字体字号,注意需要选中箭头变换操作工具哟 否则无法设置
右侧游标测量
或者 tools — measurements — cusor measurements
simulink工程,添加系统模块
添加自定义模块,模块用S函数编写
搜索S-Function
,添加拖入该模块,
查看当前工作空间的变量
S函数
function[sys,x0,str,ts,simStateCompliance]=sfuntmpl(t,x,u,flag)
% ============= 输入参数 ==================
% t表示当前时间,X表示状态变量,u表示输入变量,
% flag表示S函数现在应该运行哪个任务,比如flag=0,就运行初始化函数
% =============== 返回值 ==================
% sys是一个通用的返回值,在每一个子函数中都可以用它返回数值
% x0表示初始状态的值,除了flag=0以外,x0均被忽略
% str是保留变量,等mathwork公司想清楚了再说
% ts的设置,例如:
希望S-function在每个时间步(连续采样时间)都运行,则应设置为[0,0];
希望 S-function 按照其所连接块的速率来运行,则应设置为[-1,0];
希望它在仿真开始的 0.1 秒后每 0.25 秒(离散采样时间)运行一次,则应设置为[0.25,0.1]。
% 可以创建一个 S-function 按照不同的速率来执行不同的任务(如:一个多速率 S-function)。
% 在这种情况下,ts 应该按照采样时间升序排列来指定 S-function 所需使用的全部采样速率。例如:
假设% 你的 S-function 每 0.25 秒执行一个任务,同时在仿真开始的 0.1 秒后每 1 秒执行另一个任务,
那么你% 的 S-function 应设置 ts 为[0.25,0;1.0,0.1]。
%主函数
switch flag,
case0,
[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;
%定义S函数的基本特性,并传送给simulink
case1,
sys=mdlDerivatives(t,x,u);
%计算连续状态量的导数,有连续状态变量时才用到
case2,
sys=mdlUpdate(t,x,u);
%计算下一拍离散状态变量的值,只有有离散状态变量时才用到
case3,
sys=mdlOutputs(t,x,u);
%计算输出
case4,
sys=mdlGetTimeOfNextVarHit(t,x,u);
%计算下一次的采样时间,只有在离散采样系统中用,多用与变步长设置
case9,
sys=mdlTerminate(t,x,u);
%一般为[],simulink仿真结束时,如果有需要设置什么,就在这里面写。
otherwise
DAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));
%flag不是0,1,2,3,4,9的话,未知的flag值
end
%主函数结束
“模块初始化”子函数
% 返回大小、初始条件和样本
function [sys,x0,str,ts]=mdlInitializeSizes
% 调用simsizes函数,返回规范格式的sizes构架, 这条指令不要修改
sizes = simsizes;
% 模块的连续状态个数,0是默认值,可自行修改
sizes.NumContStates = 0;
% 模块的离散状态个数,0是默认值,可自行修改
sizes.NumDiscStates = 0;
% 模块的输出个数,0是默认值,可自行修改
sizes.NumOutputs = 0;
% 模块的输入个数,0是默认值,可自行修改
sizes.NumInputs = 0;
% 模块中包含的直通前向馈路个数,1是默认值,可自行修改
sizes.DirFeedthrough = 1;
% 模块中采样时间的个数,1是默认值,至少需要一个样本时间,可自行修改
sizes.NumSampleTimes = 1;
% 初始化后的构架sizes经simsizes函数处理后向sys赋值,这条指令不要修改
sys = simsizes(sizes);
% 给模块初始值变量赋值,[]是默认值,可自行修改
x0 = [];
% 系统保留变量,切勿改动,保持为空
str = [];
% “二元对”描述采样时间及偏移量。
% [0 0]是默认值、 [0 0]适用于连续系统、[-1 0]则表示该模块采样时间继承其前的模块采样时间设置
ts = [0 0];
% end mdlInitializeSizes
% ====================================================
% 计算导数向量
function sys=mdlDerivatives(t,x,u)
% 此处填写计算导数向量的指令, []是模块的默认值,用户必须把算得的离散状态的导数向量赋给sys
sys = [];
% end mdlDerivatives
% ====================================================
% 计算离散状态向量
function sys=mdlUpdate(t,x,u)
% 此处填写计算离散状态向量的指令, []是模块的默认值,用户必须把算得的离散状态向量赋给sys
sys = [];
% end mdlUpdate
% ====================================================
% 计算模块输出向量
function sys=mdlOutputs(t,x,u)
% 此处填写计算模块输出向量的指令, []是模块的默认值,用户必须把算得的模块输出向量赋给sys
sys = [];
% end mdlOutputs
% ====================================================
% 计算下一采样时刻
function sys=mdlGetTimeOfNextVarHit(t,x,u)
% 该子函数仅在“采样时间”情况下使用
% sampleTime = 1 是模块默认设置,表示在当前时间1秒后再调用本模块,可自行修改
sampleTime = 1;
% 将计算得到的下一采样时刻赋给sys,切勿改动
sys = t + sampleTime;
% end mdlGetTimeOfNextVarHit
% ====================================================
function sys=mdlTerminate(t,x,u)
% 模板默认设置,一般情况不要改动
sys = [];
% end mdlTerminate
S-function怎么和.m文件建立联系
如果已经写好的.m文件,放在同一目录下,双击模块重命名xxx
与xxx.m
文件同名即可自动关联。
plot快速复制矢量图 避免AV画质
- 在编辑—复制选项,中 选择
保留信息
- 编辑—复制图层,完成清晰的矢量图到粘贴板了