信号与线性系统分析-1.24(5)使用simulink验证线性系统

背景:

使用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 函数的功能包括:

  1. 加载模型:sim 函数通过传递模型文件的名称或模型对象来加载 Simulink 模型。

  2. 仿真模型:一旦模型被加载,sim 函数会运行模型,并根据输入信号和模型中定义的系统行为或控制算法来模拟系统的动态响应。

  3. 获取仿真结果:仿真结束后,sim 函数可以返回模拟结果,通常是系统的输出信号数据。这些数据可以用于进一步的分析、绘图或其他后处理操作。

  4. 控制仿真参数:sim 函数可以接受一系列参数,用于控制仿真的各个方面,如仿真时间范围、仿真求解器选项等。

总的来说,sim 函数是 MATLAB 中用于执行 Simulink 模型仿真的关键函数,它使得用户能够在 MATLAB 环境中对模型进行仿真,并获取仿真结果以进行进一步的分析和处理。

输出结果:

含义理解:绘制图像本质上就是f1(k)+f2(k)对应的响应(out3)分别减去f1(k)和f2(k)的响应的和,即out1+out2,得到的结果是震荡的,即二者不相等,即非线性。

总结:有理解不正确的地方希望大家指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值