File: csim.cat

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (65 lines) | stat: -rw-r--r-- 2,039 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
csim             Scilab Group             Scilab Function              csim
NAME
   csim - simulation (time response) of linear system
  
CALLING SEQUENCE
 [y [,x]]=csim(u,t,sl,[x0 [,tol]])
PARAMETERS
 u    : function, list or string (control)
      
 t    : real vector specifying times  with, t(1) is the initial  time
      (x0=x(t(1))).
      
 sl   : list (syslin)
      
 y    : a  matrix such that   y=[y(t(i)], i=1,..,n
      
 x    : a  matrix such that   x=[x(t(i)], i=1,..,n
      
 tol  : a 2 vector [atol rtol] defining absolute and relative tolerances
      for ode solver (see ode)  
      
DESCRIPTION
   simulation of the controlled linear system sl. sl is assumed to be a
  continuous-time system  represented by a syslin list.
  
   u is the control and x0 the initial state.
  
   y is the output and x the state.
  
   The control can be:
  
   1. a function : [inputs]=u(t)
  
   2. a list : list(ut,parameter1,....,parametern) such that:
  inputs=ut(t,parameter1,....,parametern) (ut is a function)
  
   3. the string "impuls" for impulse response calculation (here sl is
  assumed SISO without direct feed through and x0=0)
  
   4. the string "step" for step response calculation  (here sl is assumed
  SISO without direct feed-through and x0=0)
  
   5. a vector giving the values of u correponding to each t value.
  
EXAMPLE
 s=poly(0,'s');rand('seed',0);w=ssrand(1,1,3);w('A')=w('A')-2*eye();
 t=0:0.05:5;
 //impulse(w) = step (s * w)
 xbasc(0);xset("window",0);xselect();
 plot2d([t',t'],[(csim('step',t,tf2ss(s)*w))',0*t'])
 xbasc(1);xset("window",1);xselect();
 plot2d([t',t'],[(csim('impulse',t,w))',0*t'])
 //step(w) = impulse (s^-1 * w)
 xbasc(3);xset("window",3);xselect();
 plot2d([t',t'],[(csim('step',t,w))',0*t'])
 xbasc(4);xset("window",4);xselect();
 plot2d([t',t'],[(csim('impulse',t,tf2ss(1/s)*w))',0*t'])
 
 //input defined by a time function
 deff('u=input(t)','u=abs(sin(t))')
 xbasc();plot2d([t',t'],[(csim(input,t,w))',0*t'])
 
SEE ALSO
   syslin, dsimul, flts, ltitr, rtitr, ode, impl