Syncope: new object-oriented control package

View: New views
5 Messages — Rating Filter:   Alert me  

Syncope: new object-oriented control package

by paramaniac :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dear Octave Community

I'm an engineering student and I participate in Octave's Control  
Package development in my free time. The basics of that package were  
written by an American professor in the first half of the nineties and  
are not compatible with Matlab's Control Systems Toolbox. They have  
several inherent problems, mainly because they are not object-oriented  
(e. g. you can't write sys3 = sys2 * sys1 for a series connection).

In order to overcome these drawbacks, I started development of a new  
control package. It's completely object-oriented and as Matlab-
compatible as possible. What makes it unique is its "model abstraction  
layer", i. e. commands like append, connect, feedback, series,  
parallel, horzcat, vertcat, subsref,+, -, * and so on are written  
model-independently. They all rely on just three (!) basic commands  
for model manipulation which need to be implemented in ss, tf or zpk.

At the moment, my package contains the basics for the handling of  
state-space and transfer function objects. Before I continue with zero/
pole/gain models and start porting higher-level user functions like  
"bode" or "step", I'd like to get some feedback in order to hammer out  
the basics. Therefore, I wish to publish my work as an "extra package"  
on the octave-forge server (under GPL 3, what else? :-). Luca  
Favatella (slackydeb), maintainer of the "old" control package, agreed  
to be the "new" package's maintainer. Could someone please create an  
empty package with the name "control-oo", "control-rewrite" or similar  
on the server?

AFAIK, Syncope (short for "SYstems aNd COntrol PackagE" and a pun on  
"Octave") is one of the first octave-forge packages to use object-
oriented programming, and comments/feedback/advice would be highly  
appreciated. I hope that Syncope can supersede the "old" OCST in the  
long term.

http://n.ethz.ch/student/lukasre/download/syncope/

Cheers,
Lukas Reichlin

BTW: My octave-forge user name is "paramaniac"



_______________________________________________
Help-octave mailing list
Help-octave@...
https://www-old.cae.wisc.edu/mailman/listinfo/help-octave

Re: Syncope: new object-oriented control package

by Søren Hauberg :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Sorry 'bout the late reply...

fre, 16 10 2009 kl. 14:39 +0200, skrev Lukas Reichlin:
> In order to overcome these drawbacks, I started development of a new  
> control package. It's completely object-oriented and as Matlab-
> compatible as possible. What makes it unique is its "model abstraction  
> layer", i. e. commands like append, connect, feedback, series,  
> parallel, horzcat, vertcat, subsref,+, -, * and so on are written  
> model-independently. They all rely on just three (!) basic commands  
> for model manipulation which need to be implemented in ss, tf or zpk.

This sounds great! I don't work in control, so I can't comment on your
work, though. I hope somebody else can help you test this.

> At the moment, my package contains the basics for the handling of  
> state-space and transfer function objects. Before I continue with zero/
> pole/gain models and start porting higher-level user functions like  
> "bode" or "step", I'd like to get some feedback in order to hammer out  
> the basics. Therefore, I wish to publish my work as an "extra package"  
> on the octave-forge server (under GPL 3, what else? :-). Luca  
> Favatella (slackydeb), maintainer of the "old" control package, agreed  
> to be the "new" package's maintainer.

I don't have any objections to you creating a new package, but is there
a reason why your work doesn't go directly into the current 'control'
package?

>  Could someone please create an  
> empty package with the name "control-oo", "control-rewrite" or similar  
> on the server?

I've given you access to the Octave-Forge SVN, so you can do this
yourself :-)

Søren

_______________________________________________
Help-octave mailing list
Help-octave@...
https://www-old.cae.wisc.edu/mailman/listinfo/help-octave

Re: Syncope: new object-oriented control package

by paramaniac :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 18.10.2009, at 00:04, Søren Hauberg wrote:

> Hi,
>
> Sorry 'bout the late reply...
>
> fre, 16 10 2009 kl. 14:39 +0200, skrev Lukas Reichlin:
>> In order to overcome these drawbacks, I started development of a new
>> control package. It's completely object-oriented and as Matlab-
>> compatible as possible. What makes it unique is its "model  
>> abstraction
>> layer", i. e. commands like append, connect, feedback, series,
>> parallel, horzcat, vertcat, subsref,+, -, * and so on are written
>> model-independently. They all rely on just three (!) basic commands
>> for model manipulation which need to be implemented in ss, tf or zpk.
>
> This sounds great! I don't work in control, so I can't comment on your
> work, though. I hope somebody else can help you test this.
>
>> At the moment, my package contains the basics for the handling of
>> state-space and transfer function objects. Before I continue with  
>> zero/
>> pole/gain models and start porting higher-level user functions like
>> "bode" or "step", I'd like to get some feedback in order to hammer  
>> out
>> the basics. Therefore, I wish to publish my work as an "extra  
>> package"
>> on the octave-forge server (under GPL 3, what else? :-). Luca
>> Favatella (slackydeb), maintainer of the "old" control package,  
>> agreed
>> to be the "new" package's maintainer.
>
> I don't have any objections to you creating a new package, but is  
> there
> a reason why your work doesn't go directly into the current 'control'
> package?

The reason is that they're not compatible, e.g. the "low-level"  
command ss for creating a state-space model exists in both packages,  
but the "old" ss creates a struct for storing the model data, while  
the "new" ss creates an instance (usage: sys = ss (A, B, C, D).
Now there are "high-level" commands like bode that are expecting model  
data (usage: bode (sys)). Obviously, these functions need to be ported  
to the new format first, which means a lot of work. Therefore,  
gradually merging the packages won't work.

IMHO the old control package should remain the "official" one until  
the new one is 100% ready.

>> Could someone please create an
>> empty package with the name "control-oo", "control-rewrite" or  
>> similar
>> on the server?
>
> I've given you access to the Octave-Forge SVN, so you can do this
> yourself :-)
>
> Søren

Thanks, I hope I don't mess things up!

Regards,
Lukas


_______________________________________________
Help-octave mailing list
Help-octave@...
https://www-old.cae.wisc.edu/mailman/listinfo/help-octave

Re: Syncope: new object-oriented control package

by Søren Hauberg :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

søn, 18 10 2009 kl. 10:11 +0200, skrev Lukas Reichlin:
> The reason is that they're not compatible, e.g. the "low-level"  
> command ss for creating a state-space model exists in both packages,  
> but the "old" ss creates a struct for storing the model data, while  
> the "new" ss creates an instance (usage: sys = ss (A, B, C, D).

Okay that makes sense.

> IMHO the old control package should remain the "official" one until  
> the new one is 100% ready.

OK.

>  I've given you access to the Octave-Forge SVN, so you can do this
> > yourself :-)
>
> Thanks, I hope I don't mess things up!

Just let us know if you have questions.

Søren

_______________________________________________
Help-octave mailing list
Help-octave@...
https://www-old.cae.wisc.edu/mailman/listinfo/help-octave

Re: Syncope: new object-oriented control package

by paramaniac :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 18.10.2009, at 10:14, Søren Hauberg wrote:

> søn, 18 10 2009 kl. 10:11 +0200, skrev Lukas Reichlin:
>> The reason is that they're not compatible, e.g. the "low-level"
>> command ss for creating a state-space model exists in both packages,
>> but the "old" ss creates a struct for storing the model data, while
>> the "new" ss creates an instance (usage: sys = ss (A, B, C, D).
>
> Okay that makes sense.
>
>> IMHO the old control package should remain the "official" one until
>> the new one is 100% ready.
>
> OK.
>
>> I've given you access to the Octave-Forge SVN, so you can do this
>>> yourself :-)
>>
>> Thanks, I hope I don't mess things up!
>
> Just let us know if you have questions.

Is there a way to create the folders "@lti", "@ss", "@tf" and  
"@tfpoly" in
octave-forge/extra/control-oo/inst/
Somehow, my SVN doesn't accept folder names starting with "@", it  
creates "inst@lti" instead. The "@" in front of the folder name is  
needed for oo-programming in Octave.

Lukas
_______________________________________________
Help-octave mailing list
Help-octave@...
https://www-old.cae.wisc.edu/mailman/listinfo/help-octave