博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SCILAB及其在控制系统仿真中的应用
阅读量:2066 次
发布时间:2019-04-29

本文共 4252 字,大约阅读时间需要 14 分钟。

科学计算软件SCILAB及其在控制系统仿真中的应用

黄慧敏 徐华中

(武汉理工大学 自动化学院,湖北 武汉,430070

摘要:Scilab (Science laboratory)是一种类似于商业软件MatlabXmathMatrix的科学计算软件,Scilab集成了多种工具箱,其中最著名的就是Scicos(Connected Object simulation),它是一个动态仿真的图形化的结构图编辑器。Scios在功能上类似于MATLAB中的SIMULINK。该仿真器用图形模块的方式来直观、有效地表现物理过程或数字模型中的数据传递、演算、变换、显示等过程。

关键词:Scilab软件;Scicos工具箱;超级模块;仿真;

中图分类号TP273   文献标识符:A

Science computation software SCILAB and its in control

system simulation application

Abstract: Scilab (Science laboratory) was one kind is similar to commercial software Matlab, Xmath, Matrix science computation software, Scilab integrated the many kinds of toolboxes, most was famous is Scicos (Connected Object simulation), it was a dynamic simulation graph structure drawing editor. Scicos is similar in the function to in MATLAB SIMULINK. This simulator comes direct-viewing, in the effective surface present physical process or the numerical model data with the graph module way transmits, process and so on calculation, transformation, demonstration.

Key word: Scilab software; Scicos toolbox; Super module; Simulation;

一、引言                

    Scilab (Science laboratory)是一种类似于商业软件MatlabXmathMatrix的科学计算软件,与上述商业软件不同之处在于Scilab是开放源码的自由软件,其开发者是法国国家信息与自动化研究院(INRIA)和法国著名的国立桥路大学。 INRIAENPC的许多计算机科学家正积极参与在全世界特别是发展中国家宣传软件源码开放的工作。软件行业的源码开放潮流对人世之后的中国打破软件国际垄断并创新更多拥有自主知识产权的软件核心技术具有深远的意义。由中法两国的相关机构创设的“SCILAB竞赛”已举办了两届。Scilab以其卓越的性能正在引起国内科技人员的重视。

自由软件的首要特征是源代码开放,它在二十世纪最后几年的发展给人以耳目一新的感觉,最著名的自由软件当首推Linux操作系统。信息产业界的许多大公司,如IBM, SUN,网景等等,纷纷将他们的产品转移到开放源代码的平台上,把原来的商业产品开放源代码。自由软件已经成为一类重要的软件资源。

二、SCILAB

    数学软件Scilab是法国INRIA实验室开发的。Scilab采用NetLib收集的FortranC计算程序库作为基本的函数库。为了应用的需要,比如系统控制、信号处理、并行计算和数学建模等,INRIA独立开发了一部分功能扩展库。最后,制作了一个图形化的交互界面和一个与Matlab语言兼容的高级语言解释器。上述三个部分组成了我们今天所见到的ScilabINRIA实验室通过不断修正问题和扩展软件功能,在很多志愿者的共同努力合作下,目前已经把Scilab移植到了大多数的操作系统上。由于Scilab使用的是NetLib的计算函数库,而NetLib所搜集和整理的计算函数库基本都是自由软件,为了遵循NetLib的授权协议,Scilab也采取开放源代码的策略。

    Scilab可运行于所有目前流行的操作系统,如:Unix, Linux, Windows等。在INRIA的网站http//scilabsoft.inria.fr/ 可以下载相应的安装程序。安装程序分源代码版本和运行版本,一般应用使用运行版本既可。安装完成后即可运行其指令解释器。Scilab采用命令解释方式工作,每输人一条指令按回车后,执行操作并显示结果。例如:输人S=[163213;5 10 11 8;9 6 7 12;4 15 141],建立矩阵S并显示其值。需连续执行一系列操作时,可用任何文本编辑器编辑Sci文件。Sci文件由Scilab指令组成,以.sci为扩展名保存文件。在命令窗口输人exec( 'Pathname'),在图形窗口中显示正弦波。它还具有灵活多样的图形显示函数,依据输出要求不同,其语法具有多种形式。可以显示二维、三维图形、同一窗口中显示多条曲线、同一窗口中显示多个图形等等。

三、Scious在仿真中的应用

    Scilab集成了多种工具箱,其中最著名的就是Scicos(Connected Object simulation),它是一个动态仿真的图形化的结构图编辑器。由于采用图形化用户界面,并且集成了大量模块,避免了用户记忆大量语句及编程工作。因此,它更适合教学等形象化要求较高的场合。Scios在功能上类似于MATLAB中的SIMULINK。该仿真器用图形模块的方式来直观、有效地表现物理过程或数字模型中的数据传递、演算、变换、显示等过程。scicos本身不独立结出版本定制,而是以SCILAB的版本为准,它可以理解为是SCILAB内建的工具箱。下面是scicos的基本特征:

    (1)为基于用户图形界面(GUI)编辑器的动态建模方法;

    (2)可以采用超级模块方式实现多极模块结构;

    (3)适于各种应用的标准模块库;

    (4)可以应用CFORTRAN语言的动态连接方式,或SCILAB语句方式重建用户定义的专用模块;

    (5)采用强有力的、包容各种模型(如连续单模型或混杂模型)的统一化处理方式;

    (6)快速的仿真计算过程。

Scicos包括一些自建函数模块的应用。函数形式有CFORTRAN以及SCILAB语言。

 

1  scious模型

1表示一个一阶连续系统对象应用一个数字离散方式铰制器完成正弦信号的跟踪控制。对于这样的一个系统,可以想象被控对象是一个单输入单输出的温度器单元模型,其中,该模型的时间常数是1s(单击被控对象,由传递函数可以看到该设定值)。此模型忽略了延迟因素,但是在输入端受到了白噪音的干扰。其控制目标是使该温度器单元输出跟踪预定的正弦周期信号。实际应用中可以考虑温度器单元正在实施温度周期疲劳试验。

从图1的设计中可以看到,其中的事件信号发生器是由一个超级模块完成的。单击该超级模块,可以获得图2的窗口显示。这里应用了一个事件时钟分频模块。在超级模块的两个事件输出端口,第二端口是第一端口的10分频。这一点可以通过应用上面例题中的计数器来验证。在图1的超级模块的表示中,左端口对应第一端口;右端口对应第二端口。因此随机信号发生器是以更高的频率刷新随机信号输出,而离散控制器是以低10倍的频率计算输出。其中用零阶保持采样单元模块实现连续信号到离散信号的变换。图3显示模拟控制结果。比较阶梯形状的曲线是控制作用量;而比较连续形状的曲线是控制输出响应。此输出响应对应均值为零,方差为10的白噪音输入干扰。如果把方差降低为2,并改变超级模块中事件时钟分频模块的设定“Basic period0.01,则可以得到较好的正弦周期跟踪曲线。

2  超级模块

3  数字信号示波器显示的仿真结果

从此例子中可以看到,多通道数字或事件信号加和模块可以完成各通道是个等事件频率的加和功能。在本例中,数字信号为X1,事件周期为T1,数字信号为X2,事件周期为T2,经加和之后的表达形式为:

    其中,加和后的数字信号输出是按照“逻辑或”的方式传递事件信号周期的。

四、结语

    开放源代码会成为软件开发与发行的重要方式之一在自由软件的授权协议(Li-cense)里,会具体说明授予使用者(包括个人用户和商业或者企业用户)的权力。大部分的自由软件,允许用户根据软件的授权协议,自己修改,有些软件甚至允许以用户的名义发行这个软件,或者把这个软件放在自己的软件产品里面发售。如同Scilab这样的自由数学软件,对用户的好处是显而易见的。首先它是免费使用的,功能类似的商业数学软件,一个用户的价格都是数千美元。其次,Scilab是一个透明而开放的计算环境,用户可以有效地使用它所提供的资源.用户能控制整个Scilab环境,不但可以使用Scilab解释支持的高级语言,使用方便的图形化的计算环境,而且可以使用Scilab的函数库和扩展功能函数库,可以直接利用它所携带FortranC子例程,同时,用户能直接面对Scilab的源代码进行优化和扩展。可以预见,自由数学软件由于它的开放性,它们功能会不断丰富,性能会逐步提高,能够满足更多用户的要求。

与著名的商业性数学软件Matlab相比,无论从功能还是从性能上Scilab都不逊色。在国内目前Matlab等商业性数学软件售后服务和技术支持有限,而且价格昂贵的情况下,完全可以替代使用Scilab。研制和开发国内自有的科学计算环境,是计算数学和科学工程计算工作者多年探索的问题。借助现有的自由数学软件,特别是可以遵照GPL协议由用户再发布的自由数学软件,汉化并加以扩充可能更加现实。

五、参考文献

1科学计算机软件SCILAB研究开发与应用,李实等编 2005-10-1

2Scilab教程,胡包钢,赵星,康孟珍编,清华大学出版社,2003-1

3MATLAB程序设计[M],阮沈勇,王永利,桑群芳.北京:电子工业出版社,2004

 

转载地址:http://mwfmf.baihongyu.com/

你可能感兴趣的文章
【Pyton】【小甲鱼】文件
查看>>
【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜
查看>>
【Pyton】【小甲鱼】异常处理:你不可能总是对的
查看>>
APP性能测试工具
查看>>
【Pyton】【小甲鱼】类和对象
查看>>
压力测试工具JMeter入门教程
查看>>
作为一名软件测试工程师,需要具备哪些能力
查看>>
【Pyton】【小甲鱼】类和对象:一些相关的BIF(内置函数)
查看>>
【Pyton】【小甲鱼】魔法方法
查看>>
单元测试需要具备的技能和4大阶段的学习
查看>>
【Loadrunner】【浙江移动项目手写代码】代码备份
查看>>
Python几种并发实现方案的性能比较
查看>>
[Jmeter]jmeter之脚本录制与回放,优化(windows下的jmeter)
查看>>
Jmeter之正则
查看>>
【JMeter】1.9上考试jmeter测试调试
查看>>
【虫师】【selenium】参数化
查看>>
【Python练习】文件引用用户名密码登录系统
查看>>
学习网站汇总
查看>>
【Python】用Python打开csv和xml文件
查看>>
【Loadrunner】性能测试报告实战
查看>>