bug 9285 fix
[scilab.git] / scilab / modules / cacsd / tests / nonreg_tests / bug_9285.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 //
8 // <-- JVM NOT MANDATORY -->
9 //
10 // <-- Non-regression test for bug 9285 -->
11 //
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/show_bug.cgi?id=9285 
14 //
15 // <-- Short Description -->
16 // g_margin returned bad results in some special cases.
17 s=%s;
18 Kp=2.054;
19 Ki=0.13383297644539613;
20 Td=0.605;
21 Kd=5.0;
22 ts=0.25;
23 k=0.001712328003555509;
24 tw=1.4731525037117905;
25 ta=8.678149822856799;
26 au=0.0;
27 ty=0.1;
28 Process=(k*s^2-tw*s+1)/((k*s^2+(tw/2)*s+1)*(1+ts*s)^2*(ta*s+au))
29  Process  =
30  
31                                                 2                    
32                      1 - 1.4731525s + 0.0017123s                     
33     -------------------------------------------------------------    
34                            2            3            4            5  
35     8.6781498s + 10.731194s + 3.7533037s + 0.4069374s + 0.0009287s   
36 FeedBack=1/((ty*ty)*s^2+(ty*2^0.5)*s+1) * (1 + (Kd*Td*s)/(Kd+Td*s))
37  FeedBack  =
38  
39                   5 + 3.63s                  
40     -------------------------------------    
41                                2          3  
42     5 + 1.3121068s + 0.1355599s + 0.00605s   
43 REG=(Kp * ( 1 + Ki/s));
44 FT20_0_ = syslin('c', REG * Process * FeedBack);
45 [gm,fr]=g_margin(FT20_0_)
46  fr  =
47  
48     0.1173008  
49  gm  =
50  
51     6.6932617  
52 if ~assert_checkalmostequal(fr,0.11730083,0,6e-9) then bugmes();quit;end
53 if ~assert_checkalmostequal(gm,6.69326173,0,6e-9) then bugmes();quit;end
54 FT20_0 = tf2ss(FT20_0_);
55 [gm,fr]=g_margin(FT20_0)
56  fr  =
57  
58     0.1173008  
59  gm  =
60  
61     6.6932617  
62 if ~assert_checkalmostequal(fr,0.11730083,0,6e-9) then bugmes();quit;end
63 if ~assert_checkalmostequal(gm,6.69326173,0,6e-9) then bugmes();quit;end