bug 3796 fix: pb with tf2ss
[scilab.git] / scilab / modules / cacsd / tests / nonreg_tests / bug_3796.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2010 - INRIA - Serge Steer
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- JVM NOT MANDATORY -->
8 // <-- Non-regression test for bug 3796 -->
9 //
10 // <-- Bugzilla URL -->
11 // http://bugzilla.scilab.org/show_bug.cgi?id=3796
12 //
13 // <-- Short Description -->
14 //In some situation the "tf2ss()" function is not capable to compute
15 //correctly the state space representation of a transfer function.
16 s = poly(0,'s');
17 E  = 15.0 ;
18 Vo =  5.0 ;
19 D = Vo/E      ;
20 Delta_Vo = 0.1;
21 Ts = 1*10^(-3);
22 t_on = D*Ts ;
23 t_of = Ts-t_on;
24 Ro = 5.1 ;
25 L  = 2.28*10^(-3);
26 Error=0.1;    // ramp error desired
27 Delta_i_L=(E*(1-D)*D*Ts)/L;
28 C = (Delta_i_L*Ts)/(8*Delta_Vo);
29 fdt_Vo_d = syslin('c',E,((L*C)*s^(2)+(L/Ro)*s+1) );
30 fa0 = 50;        // [Hertz]
31 wa0 = 2*%pi*fa0; // [rad/sec] pulsation
32 Kc=1/(E*Error);
33 Ctipo=syslin('c',Kc,s);
34 K=10^(35/20);
35 ma=20;
36 wta=0.8;
37 Ca=syslin('c',1+(wta/wa0)*s,1+s*(wta/wa0)/ma);
38 Cds = K*Ctipo*Ca*Ca;
39 Lds = Cds*fdt_Vo_d;
40 uno = syslin('c',1,1);
41 Wds =Lds/.uno;
42 Wds_ss = tf2ss(Wds);
43 if size(Wds_ss.A)<>5 then bugmes();quit;end