背景:
使用simulink验证(5)中的系统的非线性
原理:
做题解答:
.m文件:
clear all;
format long; %设置 MATLAB 的数字显示格式为长格式,即较长的小数显示
clc;
open_system("model_1_24_5")
in_k=(0:1:100)';
in_value1=0.5*ones(101,1);
in_value2=0.5*ones(101,1);
out = sim("model_1_24_5.slx");
out1 = get(out,"out1");
out = sim("model_1_24_5.slx");
out2 = get(out,"out2");
out = sim("model_1_24_5.slx");
out3 = get(out,"out3");
out = sim("model_1_24_5.slx");
out4 = get(out,"out4");
figure();
plot(in_k,out3-out1-out2);
title('1.24(5)题-验证线性');
xlabel('k');
ylabel('out3-out1-out2');
解释:
1、打开系统,建立.m文件和系统之前的联系
open_system("model_1_24_5") %打开系统,括号内为你创建系统的名称
in_k=(0:1:100)'; %信号发生的时间,可以理解为函数的自变量
in_value1=0.5*ones(101,1); %信号输入f1(k),用于验证线性性质(叠加)
in_value2=0.5*ones(101,1); %信号输入f2(k),用于验证线性性质(叠加)
2、从系统中得到输出out3、out2、out1
out = sim("model_1_24_5.slx");
out1 = get(out,"out1");
out = sim("model_1_24_5.slx");
out2 = get(out,"out2");
out = sim("model_1_24_5.slx");
out3 = get(out,"out3");
out = sim("model_1_24_5.slx");
out4 = get(out,"out4");
·说明:
1、
.m调用simulink不会像手动运行simulink的仿真程序一样,将设置成保存在工作空间的数据保存。需执行下列语句,才能获取:
yout= simout.get('yout');
2、MATLAB官方文档说明:
-
您可以将使用 To Workspace 模块记录的数据转换为数据集格式。如果您使用其他记录方法,例如使用数据集格式的信号记录,转换数据可以使后处理更容易。有关详细信息,请参阅Convert timeseries object to Dataset object。
-
当您调用用于仿真模型的函数时,仿真中记录的数据将返回到函数工作区。要将从通过函数进行的仿真记录的数据返回到基础工作区,请使用 assignin 函数。例如,以下名为
myfunc
的函数对模型myModel
进行仿真,该模型包括一个 To Workspace 模块,该模块将数据记录到变量simout
中,并将 To Workspace 模块记录的数据发送到基础工作区。function myfunc out = sim("myModel"); toWksData = get(out,"simout"); assignin("base","toWksData",toWksData); end
即此处想要得到simulink的输出有两种方式
-
方式一:
-
out3=simout.get('out3');
·方式二:
-
out=sim('你的模型的name') out3=get(out,'out3')
解释:
-
1、get()函数里面的第一个
out
在这里是一个变量名,表示了sim
函数的输出。这个out
变量是由sim
函数返回的仿真结果。 -
2、out = sim("model_1_24_5.slx");
这一行代码的作用是执行一次模型的仿真,并将仿真结果存储在out
变量中。 -
3、然后第二行代码就表示从
out
变量(数组)中提取名为out3
的变量并储存。
解释:
sim函数功能:
在 MATLAB 中,sim
函数用于执行 Simulink 模型的仿真。它的作用是将模型中定义的系统或控制算法与给定的输入数据进行仿真,从而计算系统的输出,并可以在仿真结束后获取或分析这些输出数据。
具体来说,sim
函数的功能包括:
-
加载模型:
sim
函数通过传递模型文件的名称或模型对象来加载 Simulink 模型。 -
仿真模型:一旦模型被加载,
sim
函数会运行模型,并根据输入信号和模型中定义的系统行为或控制算法来模拟系统的动态响应。 -
获取仿真结果:仿真结束后,
sim
函数可以返回模拟结果,通常是系统的输出信号数据。这些数据可以用于进一步的分析、绘图或其他后处理操作。 -
控制仿真参数:
sim
函数可以接受一系列参数,用于控制仿真的各个方面,如仿真时间范围、仿真求解器选项等。
总的来说,sim
函数是 MATLAB 中用于执行 Simulink 模型仿真的关键函数,它使得用户能够在 MATLAB 环境中对模型进行仿真,并获取仿真结果以进行进一步的分析和处理。
输出结果:
含义理解:绘制图像本质上就是f1(k)+f2(k)对应的响应(out3)分别减去f1(k)和f2(k)的响应的和,即out1+out2,得到的结果是震荡的,即二者不相等,即非线性。
总结:有理解不正确的地方希望大家指正。