changeset 10725:c573aaa8f2d4 octave-forge

control: add some checks
author paramaniac
date Fri, 24 Aug 2012 16:27:38 +0000
parents ed06355bdf36
children 6005d2ebb778
files main/control/inst/sensitivity.m
diffstat 1 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/main/control/inst/sensitivity.m	Fri Aug 24 16:13:36 2012 +0000
+++ b/main/control/inst/sensitivity.m	Fri Aug 24 16:27:38 2012 +0000
@@ -87,11 +87,6 @@
 
 function [ret, ws] = sensitivity (G, varargin)
 
-  ## TODO: show nyquist diagram of L with circle
-  ##       center (-1, 0) and radius equal to the
-  ##       shortest distance 1/Ms, frequency w is
-  ##       [Ms, w] = norm (S, inf)
-
   if (nargin == 0)
     print_usage ();
   elseif (nargin == 1)              # L := G
@@ -111,9 +106,13 @@
     if (length (Ms) > 1)
       error ("sensitivity: plotting only works for a single controller");
     endif
+    if (! issiso (L))
+      error ("sensitivity: Nyquist plot requires SISO systems");
+    endif
     if (iscell (L))
       L = L{1};
     endif
+
     [H, w] = __frequency_response__ (L, [], false, 0, "ext");
     H = H(:);
     re = real (H);
@@ -121,6 +120,7 @@
     Hs = freqresp (L, ws);
     res = real (Hs);
     ims = imag (Hs);
+    
     plot (re, im, "b", [-1, res], [0, ims], "r")
     axis ("equal")
     xlim (__axis_margin__ (xlim))