通过脚本运行Simulink模型

通过脚本运行Simulink模型

在MATLAB中,通过脚本启动simulink模型。将测试用例写入excel表格中,通过脚本读取测试用例的输入与期望输出,自动运行simulink模型,将模型输出结果与期望结果进行比较,输出测试结果,将测试结果写入excel,从而实现模型的功能测试。

测试模型如下:
在这里插入图片描述

测试用例如下:

在这里插入图片描述

对模型进行一些设置,将模型输入与workspace中的数据关联起来:

在这里插入图片描述

编写脚本如下:

clc
clear
% model setting
[num, txt] = xlsread('testcase.xlsx');
input1 = num(1:end,2);
input2 = num(1:end,3);
% auto script
step_size = 0.01;
stop_time = step_size*(size(input1,1) - 1);
t = [0:step_size:stop_time]';
InportInfo=find_system('test01','FindAll','On','SearchDepth',1,'BlockType','Inport');
Name_Inports = get(InportInfo,'Name');
OutportInfo = find_system('test01','SearchDepth',1,'BlockType','Outport');
InportDimen = size(InportInfo,1);
OutportDimen = size(OutportInfo,1);
u(:,1) = input1;
u(:,2) = input2;
simout = sim('test01', 'SolverType', 'Fixed-step',...
    'Solver', 'ode4',...
    'FixedStep', num2str(step_size),...
    'StopTime', num2str(stop_time),...
    'LoadExternalInput','on');
stairs(get(simout,'tout'),simout.yout{1}.Values.Data)
for i = 1:size(input1,1)
    ResultJudge(i) = (num(i,4)== simout.yout{1}.Values.Data(i));
    if ResultJudge(i) == 1
        ResultOutput(i) = "TRUE";
    else
        ResultOutput(i) = "FALSE"; 
    end
end
xlswrite('testcase.xlsx',ResultOutput','Sheet1','E2');

运行脚本,结果如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值