
12

To whom it may concern
Please find attached two files I implemented to run a script from MatLab. C2D and ABCDchk
If it works for Octave I can add much more. Just let me know. With Regards,
Hamed Shakouri G.


On Wed, Jul 03, 2019 at 10:12:25 0700, Hamed Shakouri wrote:
> To whom it may concern
Hi Hamed. We certainly appreciate your interest in contributing to
Octave.
> Please find attached two files I implemented to run a script from MatLab.
> C2D and ABCDchk
The "c2d" function is already fully implemented as part of the control
package, have you installed and tried that package?
The "abcdchk" function does not appear to be a documented function I can
see described anywhere. I have seen it referenced in a few user scripts
by web search, but it doesn't seem to be a documented part of Matlab's
core library or toolboxes. Is its purpose and functionality documented
anywhere? Is it really useful? How do we validate its behavior?
Aside from that, you may want to review Octave's contribution
guidelines, for example
 https://wiki.octave.org/Contribution_guidelines https://wiki.octave.org/Mercurial https://wiki.octave.org/Help_text> If it works for Octave I can add much more.
We certainly do need lots of help, beyond creating new functions. You
might look at the bug and patch tracker to help fix or review possible
fixes for unresolved bugs and features.
 https://savannah.gnu.org/bugs/?func=browse&set=open&group=octave https://savannah.gnu.org/patch/?func=browse&set=open&group=octave
mike


To whom it may concern
Please find attached two files I implemented to run a script from MatLab. C2D and ABCDchk
If it works for Octave I can add much more. Just let me know. With Regards,
Hamed Shakouri G.
Thanks for your interest in helping octave. Have you used the control package? or the signal pkg ?
look at
Octave already has a c2d function.
 DAS


Hi there,
it seems there are some MatLab functions that are not implemented in Octave. I have loaded control and signal packages. This is the message when I tried to get C2D:
help c2d error: help: the 'c2d' function belongs to the control package from Octave Forge but has not yet been implemented. Please read < https://www.octave.org/missing.html> to learn how you can contribute missing functionality.
You are right that abcdchk is not documented but is frequently used by (mostly old) control toolbox functions. So I needed it.
On Wed, Jul 03, 2019 at 10:12:25 0700, Hamed Shakouri wrote:
> To whom it may concern
Hi Hamed. We certainly appreciate your interest in contributing to
Octave.
> Please find attached two files I implemented to run a script from MatLab.
> C2D and ABCDchk
The "c2d" function is already fully implemented as part of the control
package, have you installed and tried that package?
The "abcdchk" function does not appear to be a documented function I can
see described anywhere. I have seen it referenced in a few user scripts
by web search, but it doesn't seem to be a documented part of Matlab's
core library or toolboxes. Is its purpose and functionality documented
anywhere? Is it really useful? How do we validate its behavior?
Aside from that, you may want to review Octave's contribution
guidelines, for example
 https://wiki.octave.org/Contribution_guidelines
 https://wiki.octave.org/Mercurial
 https://wiki.octave.org/Help_text
> If it works for Octave I can add much more.
We certainly do need lots of help, beyond creating new functions. You
might look at the bug and patch tracker to help fix or review possible
fixes for unresolved bugs and features.
 https://savannah.gnu.org/bugs/?func=browse&set=open&group=octave
 https://savannah.gnu.org/patch/?func=browse&set=open&group=octave

mike
 With Regards,
Hamed Shakouri G.


Hi there,
it seems there are some MatLab functions that are not implemented in Octave. I have loaded control and signal packages. This is the message when I tried to get C2D:
help c2d error: help: the 'c2d' function belongs to the control package from Octave Forge but has not yet been implemented. Please read < https://www.octave.org/missing.html> to learn how you can contribute missing functionality.
You are right that abcdchk is not documented but is frequently used by (mostly old) control toolbox functions. So I needed it.
try
help @lti/c2d
we try and answer below the question, so try bottom posting for this list.
On Wed, Jul 03, 2019 at 10:12:25 0700, Hamed Shakouri wrote:
> To whom it may concern
Hi Hamed. We certainly appreciate your interest in contributing to
Octave.
> Please find attached two files I implemented to run a script from MatLab.
> C2D and ABCDchk
The "c2d" function is already fully implemented as part of the control
package, have you installed and tried that package?
The "abcdchk" function does not appear to be a documented function I can
see described anywhere. I have seen it referenced in a few user scripts
by web search, but it doesn't seem to be a documented part of Matlab's
core library or toolboxes. Is its purpose and functionality documented
anywhere? Is it really useful? How do we validate its behavior?
Aside from that, you may want to review Octave's contribution
guidelines, for example
 https://wiki.octave.org/Contribution_guidelines
 https://wiki.octave.org/Mercurial
 https://wiki.octave.org/Help_text
> If it works for Octave I can add much more.
We certainly do need lots of help, beyond creating new functions. You
might look at the bug and patch tracker to help fix or review possible
fixes for unresolved bugs and features.
 https://savannah.gnu.org/bugs/?func=browse&set=open&group=octave
 https://savannah.gnu.org/patch/?func=browse&set=open&group=octave

mike

With Regards,
Hamed Shakouri G.
 DAS


It worked. Thank you.
Hi there,
it seems there are some MatLab functions that are not implemented in Octave. I have loaded control and signal packages. This is the message when I tried to get C2D:
help c2d error: help: the 'c2d' function belongs to the control package from Octave Forge but has not yet been implemented. Please read < https://www.octave.org/missing.html> to learn how you can contribute missing functionality.
You are right that abcdchk is not documented but is frequently used by (mostly old) control toolbox functions. So I needed it.
try
help @lti/c2d
we try and answer below the question, so try bottom posting for this list.
On Wed, Jul 03, 2019 at 10:12:25 0700, Hamed Shakouri wrote:
> To whom it may concern
Hi Hamed. We certainly appreciate your interest in contributing to
Octave.
> Please find attached two files I implemented to run a script from MatLab.
> C2D and ABCDchk
The "c2d" function is already fully implemented as part of the control
package, have you installed and tried that package?
The "abcdchk" function does not appear to be a documented function I can
see described anywhere. I have seen it referenced in a few user scripts
by web search, but it doesn't seem to be a documented part of Matlab's
core library or toolboxes. Is its purpose and functionality documented
anywhere? Is it really useful? How do we validate its behavior?
Aside from that, you may want to review Octave's contribution
guidelines, for example
 https://wiki.octave.org/Contribution_guidelines
 https://wiki.octave.org/Mercurial
 https://wiki.octave.org/Help_text
> If it works for Octave I can add much more.
We certainly do need lots of help, beyond creating new functions. You
might look at the bug and patch tracker to help fix or review possible
fixes for unresolved bugs and features.
 https://savannah.gnu.org/bugs/?func=browse&set=open&group=octave
 https://savannah.gnu.org/patch/?func=browse&set=open&group=octave

mike

With Regards,
Hamed Shakouri G.
 DAS
 With Regards,
Hamed Shakouri G.


By the way, it doesn't support the FOH approximation method! Maybe TUSTIN can work the same. Thank you anyway. On Wed, Jul 3, 2019 at 12:43 PM Hamed Shakouri < [hidden email]> wrote: It worked. Thank you.
Hi there,
it seems there are some MatLab functions that are not implemented in Octave. I have loaded control and signal packages. This is the message when I tried to get C2D:
help c2d error: help: the 'c2d' function belongs to the control package from Octave Forge but has not yet been implemented. Please read < https://www.octave.org/missing.html> to learn how you can contribute missing functionality.
You are right that abcdchk is not documented but is frequently used by (mostly old) control toolbox functions. So I needed it.
try
help @lti/c2d
we try and answer below the question, so try bottom posting for this list.
On Wed, Jul 03, 2019 at 10:12:25 0700, Hamed Shakouri wrote:
> To whom it may concern
Hi Hamed. We certainly appreciate your interest in contributing to
Octave.
> Please find attached two files I implemented to run a script from MatLab.
> C2D and ABCDchk
The "c2d" function is already fully implemented as part of the control
package, have you installed and tried that package?
The "abcdchk" function does not appear to be a documented function I can
see described anywhere. I have seen it referenced in a few user scripts
by web search, but it doesn't seem to be a documented part of Matlab's
core library or toolboxes. Is its purpose and functionality documented
anywhere? Is it really useful? How do we validate its behavior?
Aside from that, you may want to review Octave's contribution
guidelines, for example
 https://wiki.octave.org/Contribution_guidelines
 https://wiki.octave.org/Mercurial
 https://wiki.octave.org/Help_text
> If it works for Octave I can add much more.
We certainly do need lots of help, beyond creating new functions. You
might look at the bug and patch tracker to help fix or review possible
fixes for unresolved bugs and features.
 https://savannah.gnu.org/bugs/?func=browse&set=open&group=octave
 https://savannah.gnu.org/patch/?func=browse&set=open&group=octave

mike

With Regards,
Hamed Shakouri G.
 DAS

With Regards,
Hamed Shakouri G.
 With Regards,
Hamed Shakouri G.


By the way, it doesn't support the FOH approximation method! Maybe TUSTIN can work the same. Thank you anyway.
Do you want to make us a FOH method?
On Wed, Jul 3, 2019 at 12:43 PM Hamed Shakouri < [hidden email]> wrote: It worked. Thank you.
Hi there,
it seems there are some MatLab functions that are not implemented in Octave. I have loaded control and signal packages. This is the message when I tried to get C2D:
help c2d error: help: the 'c2d' function belongs to the control package from Octave Forge but has not yet been implemented. Please read < https://www.octave.org/missing.html> to learn how you can contribute missing functionality.
You are right that abcdchk is not documented but is frequently used by (mostly old) control toolbox functions. So I needed it.
try
help @lti/c2d
we try and answer below the question, so try bottom posting for this list.
On Wed, Jul 03, 2019 at 10:12:25 0700, Hamed Shakouri wrote:
> To whom it may concern
Hi Hamed. We certainly appreciate your interest in contributing to
Octave.
> Please find attached two files I implemented to run a script from MatLab.
> C2D and ABCDchk
The "c2d" function is already fully implemented as part of the control
package, have you installed and tried that package?
The "abcdchk" function does not appear to be a documented function I can
see described anywhere. I have seen it referenced in a few user scripts
by web search, but it doesn't seem to be a documented part of Matlab's
core library or toolboxes. Is its purpose and functionality documented
anywhere? Is it really useful? How do we validate its behavior?
Aside from that, you may want to review Octave's contribution
guidelines, for example
 https://wiki.octave.org/Contribution_guidelines
 https://wiki.octave.org/Mercurial
 https://wiki.octave.org/Help_text
> If it works for Octave I can add much more.
We certainly do need lots of help, beyond creating new functions. You
might look at the bug and patch tracker to help fix or review possible
fixes for unresolved bugs and features.
 https://savannah.gnu.org/bugs/?func=browse&set=open&group=octave
 https://savannah.gnu.org/patch/?func=browse&set=open&group=octave

mike

With Regards,
Hamed Shakouri G.
 DAS

With Regards,
Hamed Shakouri G.

With Regards,
Hamed Shakouri G.
 DAS


By the way, it doesn't support the FOH approximation method! Maybe TUSTIN can work the same. Thank you anyway.
Do you want to make us a FOH method?
FYI  the control package page can be found here:
you can compare any function there with it's matlab equivalent by searching on the mathworks site. doing so for c2d reveals that under Methods: Matlab supports: 'zoh' — Zeroorder hold (default). Assumes the control inputs are piecewise constant over the sample time Ts. 'foh' — Triangle approximation (modified firstorder hold). Assumes the control inputs are piecewise linear over the sample time Ts. 'impulse' — Impulse invariant discretization 'tustin' — Bilinear (Tustin) method 'matched' — Zeropole matching method 'leastsquares' —
while Octave supports:
’impulse’ Impulse Invarient transformation. ’zoh’ Zeroorder hold or matrix exponential. ’tustin’, ’bilin’ Bilinear transformation or Tustin approximation. ’prewarp’ Bilinear transformation with prewarping at frequency w0. ’matched’ Matched pole/zero method.
so FOH and Least Squares appear unimplemented.
similarly, the Control package wiki contains a listing of implementation status, so you can see things that would be useful to get help on:


Thanks, I'll check them out.
On Wed, Jul 3, 2019 at 1:09 PM Nicholas Jankowski < [hidden email]> wrote:
By the way, it doesn't support the FOH approximation method! Maybe TUSTIN can work the same. Thank you anyway.
Do you want to make us a FOH method?
FYI  the control package page can be found here:
you can compare any function there with it's matlab equivalent by searching on the mathworks site. doing so for c2d reveals that under Methods: Matlab supports: 'zoh' — Zeroorder hold (default). Assumes the control inputs are piecewise constant over the sample time Ts. 'foh' — Triangle approximation (modified firstorder hold). Assumes the control inputs are piecewise linear over the sample time Ts. 'impulse' — Impulse invariant discretization 'tustin' — Bilinear (Tustin) method 'matched' — Zeropole matching method 'leastsquares' —
while Octave supports:
’impulse’ Impulse Invarient transformation. ’zoh’ Zeroorder hold or matrix exponential. ’tustin’, ’bilin’ Bilinear transformation or Tustin approximation. ’prewarp’ Bilinear transformation with prewarping at frequency w0. ’matched’ Matched pole/zero method.
so FOH and Least Squares appear unimplemented.
similarly, the Control package wiki contains a listing of implementation status, so you can see things that would be useful to get help on:
 With Regards,
Hamed Shakouri G.


Thanks, I'll check them out.
Once again, the convention of this mailing list is to bottom post, not top post. in Gmail it means you have to click the 3 dots in your reply window to display the quoted text.


Got it. Thank you.
Again I take the opportunity to say that it seems the problem with the command window's line editor is not solved in version 5.1 It should not be so hard to improve it even further so that character selection and delete/replace are also possible there. On Wed, Jul 3, 2019 at 1:20 PM Nicholas Jankowski < [hidden email]> wrote: Thanks, I'll check them out.
Once again, the convention of this mailing list is to bottom post, not top post. in Gmail it means you have to click the 3 dots in your reply window to display the quoted text.
 With Regards,
Hamed Shakouri G.


e.g. the escape button works for deleting the entire line in MatLab, but it is not defined in Octave.
But you’re still top posting. Please post at the end of the quoted email like this. And be sure to Reply All, not just to me.
A lot of that has to do with the way the terminal interfaces with the GUI. There has recently been quite a bit of discussion about reworking the underlying terminal. You can search the mailing list archives at nabble:


On Wed, Jul 3, 2019 at 4:01 PM Nicholas Jankowski < [hidden email]> wrote: e.g. the escape button works for deleting the entire line in MatLab, but it is not defined in Octave.
But you’re still top posting. Please post at the end of the quoted email like this. And be sure to Reply All, not just to me.
A lot of that has to do with the way the terminal interfaces with the GUI. There has recently been quite a bit of discussion about reworking the underlying terminal. You can search the mailing list archives at nabble:
Sorry, I pushed the three dots but forgot to go to the bottom! I was busy at that time.
Here is the C2Dm with FOH method included. Indeed, I needed it.
I suggest activation of escape button and character selection/replacement on the command line.
Please reply all
I expect that to maintain matlab compatibility your method would need to get worked into the existing control package’s c2d function. Have you had a look at it? Do you know how to work up a patch for submittal and consideration?
Please see

Administrator

It's also essential that your contributions be your work and not derived
from any proprietary sources, and that you have the right to release the
code you write under the terms of the GPL.
jwe

Administrator

On 7/3/19 3:26 PM, Hamed Shakouri wrote:
> You are right that abcdchk is not documented but is frequently used by
> (mostly old) control toolbox functions. So I needed it.
Do you mean that some old code that you have that was written to work
with an older version of the Matlab control toolbox uses it, so you
needed a replacement?
Or did you mean that you are trying to run some functions from an old
version of the Matlab control toolbox in Octave?
jwe

Administrator

On 7/4/19 2:33 PM, Hamed Shakouri wrote:
> Many Matlab scripts in the control toolbox (which I am involved) do use
> abcdchk.m
> See e.g. c2d.m, estim.m, lqe.m, ... in ver. 2013a.
What do you mean by "which I am involved"? Are you a developer of that
Matlab toolbox?
If you have access to a copy of the Matlab control toolbox and you have
examined it in enough detail to know that these functions call an
undocumented function, then I'm not sure we could accept contributions
from you that are reimplementations of these same functions. For
example, if you were writing independent implementations of them, then
how would you even know that there was an internal undocumented function
called abcdchk?
We could accept other contributions from you, but we need to know that
the code you contribute is your own, not derived from Matlab or other
proprietary sources, and that you have the right to distribute your work
under the terms of the GPL.
Also, please reply all when replying to messages on the mailing list so
that the discussion stays on the list and others may participate.
Thanks,
jwe


On 7/4/19 2:33 PM, Hamed Shakouri wrote:
> Many Matlab scripts in the control toolbox (which I am involved) do use
> abcdchk.m
> See e.g. c2d.m, estim.m, lqe.m, ... in ver. 2013a.
>> I don't see the issue this much complicated!
What do you mean by "which I am involved"? Are you a developer of that
Matlab toolbox?
>> I meant I have been looking at MatLab scripts and functions for many years and getting ideas to develop my software.
If you have access to a copy of the Matlab control toolbox and you have
examined it in enough detail to know that these functions call an
undocumented function, then I'm not sure we could accept contributions
from you that are reimplementations of these same functions. For
example, if you were writing independent implementations of them, then
how would you even know that there was an internal undocumented function
called abcdchk?
>> It's easy to find. If you look to the functions/scripts you see that these undocumented functions such as abcdchk are used. These are usually simple functions that there is no need for research or hard work to develop. e,g, abcdchk just checks for the proper sizes of the state space matrixes.
We could accept other contributions from you, but we need to know that
the code you contribute is your own, not derived from Matlab or other
proprietary sources, and that you have the right to distribute your work
under the terms of the GPL.
Also, please reply all when replying to messages on the mailing list so
that the discussion stays on the list and others may participate.
Thanks,
jwe
>> Can I ask to reveal how LSIM discretizes a continuous system for simulation? It calls a linear simulation function by: cellfun (@__linear_simulation__, ... (line 145) which I cannot see its logic and method. Thank you. With Regards,
Hamed Shakouri G.


>
> >> It's easy to find. If you look to the functions/scripts you see that
> these undocumented functions such as abcdchk are used.
> These are usually simple functions that there is no need for research or
> hard work to develop. e,g, abcdchk just checks for the proper sizes of
> the state space matrixes.
>
His point is that, you have just shown, and put on record in a public
mailing list that you have opened and examined the Matlab source code
for the control package functions. This means that The Mathworks (who
are the owners of the Matlab code) could claim that you have infringed
their copyright if you create code which is similar to theirs. Octave
code must be produced without any knowledge of how the code is
implemented in Matlab, see
https://en.wikipedia.org/wiki/Clean_room_designfor more information. Generally one should only look at the
documentation for Matlab code when developing an equivalent of a Matlab
function for Octave.
Otherwise, The Mathworks might sue the pants off the Octave project.
Hopefully this explains the concerns better?
Regards,
Richard
The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.


On Mon, Jul 8, 2019 at 8:54 AM CROZIER Richard < [hidden email]> wrote:
>
> >> It's easy to find. If you look to the functions/scripts you see that
> these undocumented functions such as abcdchk are used.
> These are usually simple functions that there is no need for research or
> hard work to develop. e,g, abcdchk just checks for the proper sizes of
> the state space matrixes.
>
His point is that, you have just shown, and put on record in a public
mailing list that you have opened and examined the Matlab source code
for the control package functions. This means that The Mathworks (who
are the owners of the Matlab code) could claim that you have infringed
their copyright if you create code which is similar to theirs. Octave
code must be produced without any knowledge of how the code is
implemented in Matlab, see
https://en.wikipedia.org/wiki/Clean_room_design
for more information. Generally one should only look at the
documentation for Matlab code when developing an equivalent of a Matlab
function for Octave.
Otherwise, The Mathworks might sue the pants off the Octave project.
Hopefully this explains the concerns better?
Regards,
Richard
The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.
Hi Richard,
I know that some codes are valuable properties of their builders. However, the function I mentioned is a very simple straightforward one that anybody can implement without knowing anything from its inside, its logic is clear. For the other, FOH discretization method, I didn't use a MatLab function (it's not easy to find how it works!). One can get the formulation from published papers.
A reference is here: Bingulac, S. and Sinha, N. K.: 'On the identification of
continuoustime multivariable systems from samples of inputoutput data', Proc. 7th International Conference on
Mathematical and Computer Modelling, Chicago, 1989.
Or: Franklin G., J. Powell, and M. Workman, Digital Control of Dynamic Systems, 1990. Thank you for the clarification.
With Regards,
Hamed Shakouri G.

12
