[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Creating .oct files
From: |
A Scottedward Hodel |
Subject: |
Re: Creating .oct files |
Date: |
Wed, 19 Apr 2000 09:11:26 -0500 |
Another (more complex) example of .oct file implementation
is
in my port of Boyd's semidefinite programming package
sp to octave; ftp://ftp.eng.auburn.edu/pub/hodel/semidef-oct.tar.gz
This includes interface functions that help to extract the
octave structure arguments into C++ objects (vectors,
matrices).
I've used these interface functions repeatedly in several
.oct
files I've written for my work in the last few months.
regards,
ash
At 8:52 AM +0100 4/19/00, Peter Gawthrop wrote:
Hi,
I am developing a set of system modelling tools which
ultimately generate .m files. (more info is at
http://www.mech.gla.ac.uk/~peterg/software/MTT/).
To speed things up, I now generate .oct files based on the
"Dynamically Linked Functions" section of the octave
manual. As I know
nothing about c++ I used the "oregonator.cc" example as
a
template. This all works fine.
At the moment (for example) I generate:
rcPPP_cseo.oct
rcPPP_cse.oct
rcPPP_smxa.oct
rcPPP_smxax.oct
and call them from the .m file given here.
function [y,x] = rcPPP_sim(x0,u,t,par);
% [y,x] = rcPPP_sim(x0,u,t,par);
%System rcPPP, representation sim, language m;
%File rcPPP_sim.m;
%Generated by MTT on Tue Apr 18 18:30:34 BST 2000;
%
## Initialise
ui = zero_input(2);
# Zero the input
xi = x0;
# Read in initial
state
yi = rcPPP_cseo(xi,ui,t(1),par); # First
output
##Sizes
N = length(t);
## Initialise arrays
x = zeros(1,N);
y = zeros(1,N);
y(:,1) = yi(:);
A = zeros(1,1);
Ax = zeros(1,1);
dx = zeros(1,1);
## Step size
dt = t(2)-t(1);
for i = 1:N
ti = t(i);
ui = u(:,i);
y(:,i) = yi;
x(:,i) = xi;
dxi = rcPPP_cse(xi,ui,ti,par); # State
derivative
A = rcPPP_smxa(xi,ui,dt,par);
# (I-Adt)
A = reshape(A,1,1);
Ax =
rcPPP_smxax(xi,ui,dt,par); #
(I-Adt)x
xi = A\(Ax +
dxi*dt); # Implicit
update
yi = rcPPP_cseo(xi,ui,ti,par); #
Output
endfor;
endfunction
To make things even faster, I would like to turn this rcPPP_sim.m
file
into a .oct file. This is more complicated than the
"oregonator.cc"
example as:
1. It calls user defined .oct functions
2. It calsl the octave function reshape
3. It uses the octave "\" operator.
I would be really gratefull if an octave expert could convert this
function into a .cc file for me to show me how to do it.
Thanks,
Peter.
PS If anyone has an interest in the MTT modeling tools, please let
me
know. I hope to distibute freely at some point in time.
--
=============================================================
Peter J. Gawthrop,
Centre for Systems & Control
and
Department of Mechanical Engineering
Room number: James Watt 603
(Third floor opposite the seminar room)
WWW:
http://www.mech.gla.ac.uk/~peterg (Personal)
http://www.mech.gla.ac.uk/Control/ (CSC)
http://www.mech.gla.ac.uk/
(Department)
E-mail:
address@hidden
Address:
Department of Mechanical Engineering,
University of Glasgow,
GLASGOW. G12 8QQ
Scotland.
Tel:
+44 141 330 4960 (Direct)
+44 141 330 4349 (Secretary)
+44 141 339 8855 (University switchboard)
Fax:
+44 141 330 4343
=============================================================
-----------------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.
Octave's home on the web:
http://www.che.wisc.edu/octave/octave.html
How to fund new projects:
http://www.che.wisc.edu/octave/funding.html
Subscription information:
http://www.che.wisc.edu/octave/archive.html
-----------------------------------------------------------------------
--
A S Hodel Assoc. Prof. Dept Elect and Computer Eng, Auburn Univ,AL
36849-5201
On leave at NASA Marshall Space Flight Center (256) 544-1426
Address until 31 July 2000:Mail Code TD-55, MSFC, Alabama, 35812
http://www.eng.auburn.edu/~scotte