Scicos macros: fix steadycos 71/18871/3
Paul Bignier [Thu, 12 Jan 2017 14:03:02 +0000 (15:03 +0100)]
 * Allows bug_12424.tst to pass

Change-Id: Ib07131c08bcc4af0ea60a92873c660f3b66f1f7b

scilab/modules/scicos/macros/scicos_auto/steadycos.sci

index 76c07b6..44cc371 100644 (file)
@@ -263,7 +263,15 @@ function [f,g,ind]=cost(ux,ind)
 
     sys = lincos(%cpr,X,U,param); //** lincos is used here
 
-    g  = xp'*[sys.B(:,Indu) sys.A(:,Indx)] - err'*[sys.D(:,Indu) sys.C(:,Indx)];
+    x_der = xp'*[sys.B(:,Indu) sys.A(:,Indx)];
+    x_err = err'*[sys.D(:,Indu) sys.C(:,Indx)];
+    if isempty(sys.A) && isempty(sys.B) then
+        g  =  x_err;
+    elseif isempty(sys.C) && isempty(sys.D) then
+        g  =  x_der;
+    else
+        g = x_der - x_err;
+    end
 
 endfunction