bug 9285 fix
[scilab.git] / scilab / modules / cacsd / tests / nonreg_tests / bug_9285.tst
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
29 Process=(k*s^2-tw*s+1)/((k*s^2+(tw/2)*s+1)*(1+ts*s)^2*(ta*s+au))
30 FeedBack=1/((ty*ty)*s^2+(ty*2^0.5)*s+1) * (1 + (Kd*Td*s)/(Kd+Td*s))
31 REG=(Kp * ( 1 + Ki/s));
32
33 FT20_0_ = syslin('c', REG * Process * FeedBack);
34 [gm,fr]=g_margin(FT20_0_)
35 if ~assert_checkalmostequal(fr,0.11730083,0,6e-9) then pause,end
36 if ~assert_checkalmostequal(gm,6.69326173,0,6e-9) then pause,end
37
38 FT20_0 = tf2ss(FT20_0_);
39 [gm,fr]=g_margin(FT20_0)
40 if ~assert_checkalmostequal(fr,0.11730083,0,6e-9) then pause,end
41 if ~assert_checkalmostequal(gm,6.69326173,0,6e-9) then pause,end