Mercurial > hg > octave-lojdl
changeset 3464:ab5ae0aca0f1
[project @ 2000-01-20 09:48:41 by jwe]
author | jwe |
---|---|
date | Thu, 20 Jan 2000 09:49:30 +0000 |
parents | 4e817955149b |
children | 996bb7ea4507 |
files | doc/interpreter/install.txi scripts/control/marsyas/Makefile.in scripts/control/marsyas/demomarsyas.m scripts/control/marsyas/susball.m |
diffstat | 4 files changed, 7 insertions(+), 290 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/interpreter/install.txi +++ b/doc/interpreter/install.txi @@ -240,6 +240,13 @@ @url{ftp://ftp.cygnus.com/pub/g++/libg++-2.7.2-hppa-gcc-fix}. @item +On some alpha systems there may be a problem with the @code{libdxml} +library, resulting in floating point errors and/or segmentation faults in +the linear algebra routines called by Octave. If you encounter such +problems, then you should modify the configure script so that +@code{SPECIAL_MATH_LIB} is not set to @code{-ldxml}. + +@item On FreeBSD systems Octave may hang while initializing some internal constants. The fix appears to be to use
deleted file mode 100644 --- a/scripts/control/marsyas/Makefile.in +++ /dev/null @@ -1,75 +0,0 @@ -# -# Makefile for octave's scripts/control/marsyas directory -# -# John W. Eaton -# jwe@bevo.che.wisc.edu -# University of Wisconsin-Madison -# Department of Chemical Engineering - -TOPDIR = ../../.. - -script_sub_dir = control/marsyas - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -include $(TOPDIR)/Makeconf - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ - -SOURCES = *.m - -DISTFILES = Makefile.in $(SOURCES) - -FCN_FILES = $(wildcard $(srcdir)/*.m) -FCN_FILES_NO_DIR = $(notdir $(FCN_FILES)) - -BINDISTFILES = $(FCN_FILES) - -all: -.PHONY: all - -install install-strip: - $(top_srcdir)/mkinstalldirs $(fcnfiledir)/$(script_sub_dir) - for f in $(FCN_FILES_NO_DIR); do \ - rm -f $(fcnfiledir)/$(script_sub_dir)/$$f; \ - $(INSTALL_DATA) $(srcdir)/$$f $(fcnfiledir)/$(script_sub_dir)/$$f; \ - done -.PHONY: install install-strip - -uninstall: - for f in $(FCN_FILES_NO_DIR); \ - do rm -f $(fcnfiledir)/$(script_sub_dir)/$$f; \ - done -.PHONY: uninstall - -clean: -.PHONY: clean - -tags: $(SOURCES) - ctags $(SOURCES) - -TAGS: $(SOURCES) - etags $(SOURCES) - -mostlyclean: clean -.PHONY: mostlyclean - -distclean: clean - rm -f Makefile -.PHONY: distclean - -maintainer-clean: distclean - rm -f tags TAGS -.PHONY: maintainer-clean - -dist: - ln $(DISTFILES) ../../../`cat ../../../.fname`/scripts/$(script_sub_dir) -.PHONY: dist - -bin-dist: - ln $(BINDISTFILES) ../../../`cat ../../../.fname`/scripts/$(script_sub_dir) -.PHONY: bin-dist
deleted file mode 100644 --- a/scripts/control/marsyas/demomarsyas.m +++ /dev/null @@ -1,116 +0,0 @@ -## Copyright (C) 1996 Auburn University. All rights reserved. -## -## This file is part of Octave. -## -## Octave is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. -## -## Octave is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, write to the Free -## Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. - -page_screen_output = 1; -opt = 0; -QUITOPT = 7; -while (opt != QUITOPT) - opt = menu("Marsyas interface update demo:", ... - "run Marsyas on the magnetically suspended ball example", ... - "load continuous time marsyas example system", ... - "load discrete-time marsyas example system", ... - "bode plot of loaded system (MIMO)", ... - "bode plot of loaded system (SISO)", ... - "Design example", ... - "Quit"); - - if(opt == 1) - cmd = "system(""marsyas mag1d.mar"")"; - run_cmd - cmd = "system(""marplot -i"")"; - run_cmd - elseif(opt == 2) - cmd = "ballsys = margetsys();"; - run_cmd; - cmd = "sysout(ballsys);" - run_cmd - elseif(opt == 3) - cmd = "ballsys = margetsys(""disc"");"; - run_cmd - cmd = "sysout(ballsys);" - run_cmd - elseif(opt == 4) - cmd = "bode(ballsys);"; - run_cmd - elseif(opt == 5) - cmd = "bode(ballsys,[],1,1);"; - run_cmd - elseif(opt == 6) - if(!exist("ballsys")) - warning("You didn't load a system yet (option 2 or 3)"); - else - disp("Design LQG controller"); - cmd = "sysout(ballsys)"; - run_cmd - disp("add noise inputs to system...") - if(ballsys.n) - disp("continuous system:") - cmd = "ballsys1 = sysappend(ballsys,eye(ballsys.n));"; - else - disp("discrete system:") - cmd = "ballsys1 = sysappend(ballsys,eye(ballsys.nz));"; - endif - run_cmd - cmd = "sysout(ballsys1)"; - run_cmd - disp("Notice the two additional inputs, u_2, and u_3. These are the "); - disp("""entry points"" for the gaussian noise disturbance."); - disp(" "); - disp("We'll design the controller to use only position feedback:") - cmd = "ballsys1=sysprune(ballsys1,1,[]);"; - run_cmd - cmd = "sysout(ballsys1)"; - run_cmd - disp("Now design an LQG controller: Sigw: input noise") - Sigw = eye(2) - disp("Now design an LQG controller: Sigv: measurement noise") - Sigv = eye(rows(ballsys1.c)) - disp("State and input penalties:") - Q = eye(2) - R = 1 - disp("Controlled input is input 1"); - cmd="Ksys = lqg(ballsys1,Sigw,Sigv,Q,R,1);"; - run_cmd - disp("sysout(Ksys);"); - sysout(Ksys); - - disp("marsyas conversion: output in scalar form:") - cmd = "maroutsys(Ksys, ""ball_controller"",""scalar"");"; - run_cmd - disp("here's the output file:") - prompt - system("more ball_controller.mar"); - - disp("marsyas conversion: output in state space form: (default option;") - disp("the ""ss"" in the command below is not needed)") - cmd = "maroutsys(Ksys, ""ball_controller_ss"",""ss"");"; - run_cmd - disp("here's the output file:") - prompt - system("more ball_controller_ss.mar"); - - disp("marsyas conversion: output in transfer function form:") - cmd = "maroutsys(Ksys, ""ball_controller_tf"",""tf"")" - run_cmd - disp("here's the output file:") - prompt - system("more ball_controller_tf.mar"); - - endif - endif -endwhile
deleted file mode 100644 --- a/scripts/control/marsyas/susball.m +++ /dev/null @@ -1,99 +0,0 @@ -## Copyright (C) 1996 Auburn University. All rights reserved. -## -## This file is part of Octave. -## -## Octave is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. -## -## Octave is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, write to the Free -## Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. - -## -*- texinfo -*- -## @deftypefn {Function File} {@var{outputs} =} susball (@var{inputs}) -## @end deftypefn - -cmd = "ballsys = margetsys(""disc"")"; -eval(cmd); - -disp("Design LQG controller"); -cmd = "sysout(ballsys)"; -run_cmd -disp("add noise inputs to system...") - -disp("discrete system:") -[nn,nz,mm,pp] = sysdimensions(ballsys); -cmd = "ballsys = sysappend(ballsys,nz);"; -run_cmd - -cmd = "sysout(ballsys)"; -run_cmd - -disp("Notice the two additional inputs, u_2, and u_3. These are the "); -disp("""entry points"" for the gaussian noise disturbance."); -disp(" "); -disp("We'll design the controller to use only position feedback:") - -cmd = "ballsys=sysprune(ballsys,1,[]);"; -run_cmd -cmd = "sysout(ballsys)"; -run_cmd - -disp("Now design an LQG controller: Sigw: input noise") -Sigw = eye(2) -disp("Now design an LQG controller: Sigv: measurement noise") -Sigv = eye(pp); - -disp("State and input penalties:") -Q = eye(2) -R = 1 -disp("Controlled input is input 1"); - -cmd="Ksys = lqg(ballsys,Sigw,Sigv,Q,R,1);"; -run_cmd - -disp("sysout(Ksys);"); -sysout(Ksys); - -disp("\nGet rid of the disturbance inputs"); -cmd = "ballsys = sysprune(ballsys,1,1);" -run_cmd; -sysout(ballsys); -sysout(ballsys,"zp"); - -disp("\nGrouping the plant and the controller"); -cmd = "closed_loop = sysgroup(ballsys,Ksys);" -run_cmd; -sysout(closed_loop); - -disp("\nduplicating the plant input"); -cmd = "closed_loop = sysdup(closed_loop,[],1);" -run_cmd; -sysout(closed_loop); - -## disp("\nscaling the duplicated input by -1"); -## cmd = "closed_loop = sysscale(closed_loop,[],diag([1,1,1]));" -## run_cmd; -## sysout(closed_loop); - -disp("\nconnecting plant output to controller input and controller output"); -disp("to the duplicated plant input"); -cmd = "closed_loop = sysconnect(closed_loop,[1 2],[2 3]);" -run_cmd; -sysout(closed_loop); - -disp("\nkeeping only the original plant input and plant output"); -cmd = "closed_loop = sysprune(closed_loop,1,1);" -run_cmd; -sysout(closed_loop); - -sysout(closed_loop,"zp"); - -