能否在XCOS框图中创建按钮自动打印To Workspace模块生成的曲线?
解决Xcos一键仿真并自动绘图的方案
方法1:利用Xcos内置Script模块实现仿真后自动绘图
Xcos的Script模块可绑定仿真事件,直接在框图内嵌入脚本,实现仿真完成后自动执行绘图逻辑:
- 在Xcos框图中添加Script模块(路径:
Palettes -> Basic Blocks -> Script) - 双击模块打开编辑界面,在Execution event下拉菜单选择
End of simulation(确保仿真完成后再绘图,避免数据未写入Workspace) - 在脚本输入框中粘贴你的绘图代码,示例:
% 假设To Workspace模块输出的时间变量是tout,输出变量是yout clf(); // 清空之前的绘图 plot(tout, yout, 'LineWidth', 2); xlabel('时间(s)'); ylabel('输出值'); title('优化后的仿真曲线'); grid on;
- 保存框图后,直接点击仿真运行按钮,仿真结束后会自动弹出绘制好的曲线
方法2:创建自定义工具栏按钮,一键启动仿真+绘图
如果需要更快捷的一键操作,可在Xcos界面添加自定义按钮,整合仿真启动和绘图逻辑:
- 在Scilab控制台运行以下代码(可保存到Scilab启动脚本
scilab.start,每次打开Scilab自动加载):
function sim_and_plot() % 启动当前Xcos框图的仿真 xcos_simulate(scs_m, 4); // 4表示"Run"模式,对应仿真启动按钮 % 执行绘图脚本 clf(); plot(tout, yout, 'r-', 'LineWidth', 2); xlabel('时间(s)'); ylabel('输出值'); title('一键仿真绘图结果'); grid on; endfunction % 向Xcos工具栏添加自定义按钮 xcosAddToolbarButton(.. 'sim_and_plot', .. // 绑定的函数名 '一键仿真绘图', .. // 按钮提示文本 'SCI/modules/xcos/images/icons/run.png', .. // 按钮图标(可替换为自定义路径) '启动仿真并自动绘制To Workspace输出曲线' .. // 按钮描述 );
- 打开你的Xcos框图后,工具栏会出现新的按钮,点击即可完成仿真+绘图的全流程
注意事项
- 确保To Workspace模块的Variable name设置正确(比如
tout和yout),脚本中要对应这些变量名 - 如果你的绘图逻辑复杂,可以把绘图代码写成单独的Scilab函数,在Script模块或自定义按钮中调用该函数即可
内容的提问来源于stack exchange,提问作者Pascal77
相关产品推荐
相关产品推荐

