Scilab简介
最近工作用到了仿真分析,不算很重量级。
本来考虑用Matlab的Simulink,但是出于拒绝使用盗版软件的理念我很穷,以及我那孱弱的电脑性能,和不是那么高级的需求。
搜索了网络,发现有一个开源的免费工具Scilab可供使用,及其可视化界面设计工具xcos。遗憾的是,网上的中文资料太少了,或者是版本太旧了,于是有了本篇,算是给自己做一个备忘记录,也给其他人一些分享。
Scilab官网及下载地址
https://www.scilab.org/

截止本文,官方版本是2025.1.0
我的运行环境是Debian13 + Xfce + X11
Scilab主界面

Xcos界面


仿真工程文件,建议保存为zcos,而不是xcos。实测一个简单项目,前者仅需8kB,后者会达到160kB。
经常会用到的模块

| 模块 | 功能 |
|---|---|
| 连续时间系统 | 微分,积分,PID控制等 |
| 事件处理 | 事件跳变触发器,仿真终止时间 |
| 数学运算 | 加减乘除,指数,余弦,大小比较 |
| 信号路由 | 端口聚合/分支,引用/调用,路线选择 |
| 信号处理 | 数据离散化,触发信号捕捉 |
| 数据显示 | 示波器功能 |
| 信号源 | 时钟,常量,脉冲,正余弦等 |
一个简单阶跃响应实例
信号源 -> STEP_FUNCTION
信号源 -> CLOCK_c
连续时间系统 -> CLR
数据显示 -> CSCOPE
将上述模块拖入仿真实例,并将鼠标移动至需要连接的模块端口,左键点击按下不动,拉出线条,然后松开,继续移动到另一个端口上,点击按下,即完成连线。中途如果需要折弯,可以单击从而固定折弯点。
完成案例
其中参数如下:
阶跃响应模块
时钟信号
仿真 -> 设置
设置“最终积分时间”为3秒
然后点击播放按键,完成仿真分析
部分参考资料来源于下述网站:
https://programmer-life.net/scicos_010.html
https://ftp.sun.ac.za/ftp/pub/mirrors/scilab/www.scilab.org/contrib/displayContribution.php%3FfileID=885&attachFileName=cintro.pdf
https://www.manuallib.com/download/pdf12/SCICOS-MOVE-STATE-SYSTEM-CONSTRUCT-AND-ANALOG-MAKEUSE-INTRODUCTION.PDF
https://palash.home.blog/plotting-in-scilab/