matlab中param,使用set_param和get_param进行Matlab和Simulink仿真

我使用命令set_param和get_param来控制一个非常简单的simulink模型,它只包含一个时钟块和一个范围 . 我想要的是让simulink模型运行,从Simulink到Matlab获取时钟块的实时输出,并在时钟值大于5时停止模拟 . 以下是我的Matlab脚本:

Simulink_Model='co_simulation_sl';

load_system(Simulink_Model);

open(Simulink_Model);

time=0;

while time<5

if strcmp (get_param(Simulink_Model,'SimulationStatus'), 'stopped')

set_param(Simulink_Model,'SimulationCommand','start')

elseif strcmp (get_param(Simulink_Model,'SimulationStatus'), 'paused')

set_param(Simulink_Model,'SimulationCommand','continue')

end

set_param(Simulink_Model,'SimulationCommand','pause')

block = 'co_simulation_sl/Clock';

rto = get_param(block, 'RuntimeObject');

time = rto.OutputPort(1).Data;

end

set_param(Simulink_Model,'SimulationCommand','stop')

输入图像描述是here .

但是,while循环无法正确运行 . 当我手动暂停并继续Simulink模型时,我只能观察变量“time”的变化 . 我正在使用0.1秒的固定模拟时间步长 .

我已经搜索了很多,但仍然找不到任何理由 . 你可以帮帮我吗?先感谢您 .

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值