为什么PostSimFcn不断抛出运行时错误Parsim吗?

21日视图(30天)
你好,
我想使用Parsim运行模拟。由于记录的数据量巨大,我想用PostSimFcn处理数据和只返回每次运行后的平均值。
我在使用SimulationInput对象设置函数Parsim如下所示:
tmpin = tmpin.setPostSimFcn (@ (x) postsim (x));
函数newout = postsim ()
timing_signal = out.logsout {1} .Values.Time;
power_signal = out.logsout {1} .Values.Data;
avg = trapz (timing_signal power_signal) / 180;
newout。意味着= avg;
newout。p2a = max (abs (power_signal)) / avg;
结束
然后我把错误”错误执行PostSimFcn SimulationInput对象上。引起的:撑索引不支持这种类型的变量”万博1manbetx
然后我改变了代码:
函数newout = postsim ()
timing_signal = out.yout.get (“权力”).Values.Time;
power_signal = out.yout.get (“权力”).Values.Data;
avg = trapz (timing_signal power_signal) / 180;
newout。意味着= avg;
newout。p2a = max (abs (power_signal)) / avg;
结束
我抛出错误”错误执行PostSimFcn SimulationInput对象上。引起的:点索引不支持这种类型的变量”万博1manbetx
然后我改变了模型文件直接在根级别设置一万博1manbetx个外港和改变的代码:
函数newout = postsim ()
timing_signal = out.tout;
power_signal = out.yout;
avg = trapz (timing_signal power_signal) / 180;
newout。意味着= avg;
newout。p2a = max (abs (power_signal)) / avg;
结束
我抛出错误”错误执行PostSimFcn SimulationInput对象上。引起的:必须一个向量X”
我在互联网上搜索,似乎没有人提到这个问题,matlab文档setPostSimFcn不会提到任何但“out”参数的函数的副本SimulationOutput对象。 //www.tianjin-qmedu.com/help/万博1manbetxsimulink/slref/simulink.simulationinput.setpostsimfcn.html
我对Matlab运行在linux机器上的2020 a。
谁能提供一些技巧可能是什么错了吗?谢谢提前
3评论
立升阳
立升阳 2022年4月8日
这是一个很好的点!实际问题是有错误的模拟和SimulationOutput对象不包含正常输出,导致这个错误消息。

登录置评。

答案(0)

类别

找到更多的在运行多个模拟帮助中心文件交换

s manbetx 845


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!