matlab 在Simulink中使用功能块和范围的步进图

fnx2tebb  于 8个月前  发布在  Matlab
关注(0)|答案(1)|浏览(111)

我试图从下面的代码中获得一个步骤图(从我的主项目中提取):

代码:

function y = fcn(~)
    tic;
    y = 0
    pause(5);
    y = 1;
    pause(3);
    y = 0;
    pause(5);
    timeVal = toc;
    fprintf("Simulation time: %f",timeVal);
end

但我在瞄准镜里看到了一个平面线图。

我总是得到与最后一个赋值相对应的平线。如何得到变量在执行过程中所有变化的曲线图?

iyfamqjs

iyfamqjs1#

1.-
您所定义的函数不是在SIMULINK模块MatlabFunction中定义MATLAB函数的方法,至少不是测量SCOPE上的STEP RESPONSE of a SYSTEM
SIMULINK block MatlabFunction Help
SIMULINK Matlab function block properties
甚至还有一个编辑器来生成SIMULINKMatlab块函数
MATLAB BLOCK EDITOR help page
虽然我们可以编写类似于您在问题中发布的MATLAB函数,
1.1.-生成步骤
1.2.-进料步骤至系统
1.3.-测量响应

2.-定义采样时间

实际上,作用域没有任何时间引用,因为你写的函数没有时间引用。
为作用域提供时间参考的最简单方法是

将输入信号插入功能块

输入信号经过Matlab功能块,生成并输出传播输入信号提供的时间基准。
例如,考虑使用以下视频中建议的步骤生成器块

3.-观看此视频解释如何在SIMULINK中构建基本阶跃响应。

https://youtu.be/_uPZx9iDfbc?feature=shared

4.-建立一个这样的

5.-范围是平坦的,因为没有输入

一旦你向系统输入一个步骤,示波器就会显示一个信号。

6.- Level-2 S-FUNCTION

Defining a level-2 S-function as explained here https://uk.mathworks.com/help/simulink/sfg/writing-level-2-matlab-s-functions.html

S函数甚至可以用C或C++编写。

一旦遵循了这些步骤,如果仍然有任何疑问如何继续,请不要犹豫,并提出补充意见,看看可以做些什么。
感谢您的时间和关注。

相关问题