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 signature.asc (849 bytes) Download Attachment 
In reply to this post by Hamed Shakouri
On Wed, Jul 3, 2019 at 1:24 PM Hamed Shakouri <[hidden email]> wrote:
Have you used the control package? or the signal pkg ? look at Octave already has a c2d function. 
In reply to this post by Mike Miller4
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 3, 2019 at 11:02 AM Mike Miller <[hidden email]> wrote: On Wed, Jul 03, 2019 at 10:12:25 0700, Hamed Shakouri wrote: With Regards, Hamed Shakouri G. 
On Wed, Jul 3, 2019 at 3:27 PM Hamed Shakouri <[hidden email]> wrote:
try help @lti/c2d we try and answer below the question, so try bottom posting for this list.

It worked. Thank you. On Wed, Jul 3, 2019 at 12:34 PM Doug Stewart <[hidden email]> wrote:
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:
With Regards, Hamed Shakouri G. 
On Wed, Jul 3, 2019 at 3:49 PM Hamed Shakouri <[hidden email]> wrote:
Do you want to make us a FOH method?

Administrator

On Wed, Jul 3, 2019 at 3:52 PM Doug Stewart <[hidden email]> wrote:
FYI  the control package page can be found here: with function reference here: https://octave.sourceforge.io/control/overview.html 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: ’impulse’ Impulse Invarient transformation.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: ’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:
With Regards, Hamed Shakouri G. 
Administrator

On Wed, Jul 3, 2019 at 4:11 PM Hamed Shakouri <[hidden email]> wrote:
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:
With Regards, Hamed Shakouri G. 
Administrator

On Wed, Jul 3, 2019 at 18:49 Hamed Shakouri <[hidden email]> wrote:
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: 
Administrator

On Wed, Jul 3, 2019 at 19:09 Hamed Shakouri <[hidden email]> wrote:
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 c2dm.m (796 bytes) Download Attachment 
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

In reply to this post by Hamed Shakouri
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 Thu, Jul 4, 2019 at 12:47 PM John W. Eaton <[hidden email]> wrote: On 7/4/19 2:33 PM, Hamed Shakouri wrote: >> I don't see the issue this much complicated! What do you mean by "which I am involved"? Are you a developer of that >> 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 >> 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 >> 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. 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_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. 
On Mon, Jul 8, 2019 at 8:54 AM CROZIER Richard <[hidden email]> wrote:
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. 
Free forum by Nabble  Edit this page 