- SIMCOS
SIMCOS (an
acronym standing for "SIMulation of COntinuous Systems") is acomputer language and adevelopment environment forcomputer simulation . In1989 it was developed by Slovenian experts led byBorut Zupančič .Properties
The purpose of the language is
simulation of dynamicmathematical model s of systems, given as set ofordinary differential equation s. It is an equation oriented and compiler type of language. Despite its name it can be used fordiscrete simulation as well. The language suits well to theCSSL'67 standard of simulation languages so portability among other languages conforming to the same standard (e.g.Tutsim , ACSL etc.) is quite simple. It is aDOS based software occasionally it is slightly modified so it can be run under actual versions ofMicrosoft Windows . Apart from the simulation itself it can also performparametrization (a series of simulations with different values ofparameter s),linearization of models and optimization (finding such values of parameters that a criterion function is minimized).imulation process
When a simulation scheme must be prepared it must be described in the SIMCOS language. It can be "drawn" (similarly as with an
analog computer ) using an enclosed block library graphics tool (it contains basic elements such asintegrator s,amplifier s,summator s, some basicinput signals etc.) but more often it is entered as a program using one of text editors, e.g. Edit enclosed with MS DOS. Whichever form of entry of the model is used, the first phase of simulation reprocesses it intospace of states form and rewrites the program intoFortran and prepares files with input parameters. This Fortran program is compiled into an executable file (.EXE) and executed. The executable program reads parameter values from input files, performs the simulation and writes requested calculated values into another file. When it terminates, SIMCOS takes control again and can display results as a graphic plot.The "heart" of the executable is function INTEG which can solve
differential equation s using one of severalnumerical method s. First it reads necessary values (e.g. values of parameters, initial conditions) from files then it calls the function DERIV where the model is actually described as series of functions of itsderivative s. The returned values are used at the selected numerical method. Requested calculated results are written into the file and the whole procedure is repeated until the termination condition is satisfied.Example
Continuous simulation of
dead time (itsLaplace transform is ) is not a trivial task and usually we use one ofPadé approximation s. We will simulate Padé approximation of 2nd order:and 4th order::Input signal is a unit step, communication interval equals 0.01s, length simulation run is 5s, results will be compared with output of built-in discrete function "delay" (it requires additional array ("del" in our case) of appropriate size)."y1" is a result of simulation of Padé approximation of 2nd order, "y2" is a result of simulation of Padé approximation of 4th order and "y3" is result of the discrete function "delay".
When
transfer function s of both Padé approximation are developed using one of simulation schemes, the model can be described with the following program:program padeconstant tm=1.0constant tfin=5array del(101)variable t=0.0u=step(t,0.)u11d=12/(tm*tm)*u-12/(tm*tm)*y1u11=integ(u11d,0.)u21d=u11-u*6/tm-y1*6/tmu21=integ(u21d,0.)y1=u21+uu12d=u*1680/(tm*tm*tm*tm)-y2*1680/(tm*tm*tm*tm)u12=integ(u12d,0.)u22d=u12-u*840/(tm*tm*tm)-y2*840/(tm*tm*tm)u22=integ(u22d,0.)u32d=u22+u*180/(tm*tm)-y2*180/(tm*tm)u32=integ(u32d,0.)u42d=u32-u*20/tm-y2*20*tmu42=integ(u42d,0.)y2=u42+uy3=delay(u,tm,#del,ci)
cinterval ci=0.01hdr Pade approximation of dead timeprepar y1,y2,y3output 10,y1,y2,y3termt(t.ge.tfin)
end
After the simulation run is finished the results can be displayed as plots. It is possible to trace values of plots, select which plots to display, turning on a grid, zoom etc.
References
In
Slovenian language :
* Borut Zupančič (with contributions byRihard Karba andDrago Matko ), "Simulacija dinamičnih sistemov", Založba FER, Ljubljana, 1995, ISBN 86-7739-078-2
* Borut Zupančič, "SIMCOS - jezik za simulacijo zveznih in diskretnih dinamičnih sistemov", Založba FER, Ljubljana, 1992, ISBN 86-7739-016-2External links
* [http://msc.fe.uni-lj.si/Staff.asp?person=2 Borut Zupančič's homepage]
* [http://msc.fe.uni-lj.si/Download.asp LMSC download page] (the link to SIMCOS is at the bottom)
Wikimedia Foundation. 2010.