查看: 324|回复: 4|关注: 0

[未答复] simulink如何定义初始状态多重运行

[复制链接]

新手

42 麦片

财富积分


050


2

主题

62

帖子

7

最佳答案
发表于 2020-3-24 13:24:47 | 显示全部楼层 |阅读模式
本帖最后由 siu__lam 于 2020-3-24 13:26 编辑

想要使用函数parsim对simulink模型进行多重运行,这部分的工作已经实现了的.
核心语句大致为

{code}[/model = 'MMC_Aggregate_model_HHS_unified_model';  %模型名称

open_system(model);
in=repmat(Simulink.SimulationInput,[1 num_freq]);       %预定义
for i = 1:1:num_freq
    in(i) = Simulink.SimulationInput(model);
    in(i) = in(i).setVariable('harmonic_freq',freq_seq(i));

end
out = parsim(in, 'ShowProgress', 'on','ShowSimulationManager','on','TransferBaseWorkspaceVariables','on')]

系统能很好的进行多重运行,但是如果我想定义初始状态运行就不行,即在for 循环中加入语句
‘ in(i) = in(i).setModelParameter('InitialState','xFinal','LoadInitialState','on');’
报错显示 ‘Simulink cannot load the initial SimState because the model, 'MMC_Aggregate_model_HHS_unified_model', was changed after the SimState was saved. Run the simulation again and resave the SimState.’
望求助,如何使用parsim进行多重运行+初始状态运行

回复主题 已获打赏: 0 积分

举报

新手

42 麦片

财富积分


050


2

主题

62

帖子

7

最佳答案
 楼主| 发表于 2020-3-24 13:27:37 | 显示全部楼层
不好意思,提问发代码格式不太会。第一次发帖:'(
回复此楼 已获打赏: 0 积分

举报

新手

42 麦片

财富积分


050


2

主题

62

帖子

7

最佳答案
 楼主| 发表于 2020-3-24 17:06:00 | 显示全部楼层
出错点好像找到了,但解决不了这个问题,出错点好像在于,若要定义初始状态运行,那这整个系统就不能发生改变,但是我又要在不同参数下运行啊。
总结就是,若要定义初始状态运行,那整个模型的所有参数都不能改动,一改动就报错。
回复此楼 已获打赏: 0 积分

举报

新手

42 麦片

财富积分


050


2

主题

62

帖子

7

最佳答案
 楼主| 发表于 2020-3-24 17:34:26 | 显示全部楼层
但奇怪的是,我手动去操作就不会报错,如我运行model到2s,然后记录2s的所有状态,然后将仿真时间设置为3s,并且设置从2s的状态开始运行,同时还改变model的参数,就不会报错。但是上诉操作如果是编程运行就会报错。
回复此楼 已获打赏: 0 积分

举报

新手

42 麦片

财富积分


050


2

主题

62

帖子

7

最佳答案
 楼主| 发表于 2020-3-25 09:02:22 | 显示全部楼层
新发现,用sim函数不报错,用parsim函数就报错
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表