bugGNU Octave - Bugs: bug #43263, control package: @lti/minreal may...

 
 

bug #43263: control package: @lti/minreal may generate inaccurate result

Submitter:  None
Submitted:  Sat 20 Sep 2014 03:42:54 AM UTC
   
 
Category:  Octave Package Severity:  1 - Wish
Priority:  5 - Normal Item Group:  Inaccurate Result
Status:  Fixed Assigned to:  None
Originator Name:  Saul Mtakula Originator Email:  -email is unavailable-
Open/Closed:  * Closed Release:  * other
Operating System:  * Any Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Tue 09 Jun 2015 04:44:47 PM UTC, comment #4: 

Thanks for reporting, I've pushed a changeset as proposed:

https://bitbucket.org/paramaniac/control/commits/9cab4686fc041bb579360985bcbafca2bc4a1f97


Lukas Reichlin <paramaniac>
Sun 31 May 2015 07:03:24 PM UTC, comment #3: 

A workaround has been proposed, but this may still be something that the control package maintainer would be willing to take a look at, adding in cc.

I can at least confirm different step response between the original example and Endre's modification to use a state-space model.

Mike Miller <mtmiller>
Group Member
Tue 23 Sep 2014 04:18:24 AM UTC, comment #2: 

Thanks Endre
I have always had to go state space for multivariable problems in Octave but did not anticipate that would be necessary for SISO problems. Anyways your solution worked well (and it is by using Scilab I was able to get the correct solution first time). Octave is great because it also runs on Android but one needs to be extra careful as demonstrated here.

Anonymous
Mon 22 Sep 2014 12:01:02 PM UTC, comment #1: 

I guess the problem is near to singularity somewhere. Scilab signals this at least.
I changed the code a bit at calculation of Gff. Thus the resulting plot looks as expected.


s=tf('s');

Gpff = 3/((1+4*s)*(1+6*s));

Gcc = (1+1/(60*s));
Glff = feedback(series(Gcc, Gpff));

## Gff = minreal(Glff);
Gff = ss(minreal(Glff));

Gplc = 0.001111*(1-30*s)/(s*(1+30*s));
Gplc = series(Gplc, Gff);

Gclc = (1+1/(2.5*60*s))*(0.2*60*s+1)/((1+6*s)*(1+1.2*s));

Gllc = minreal(series(Gclc,Gplc));

Gllc_cl = minreal(feedback(Gllc));

step(Gllc_cl);


Endre Kozma <theorizer>
Sat 20 Sep 2014 03:42:54 AM UTC, original submission:  

Control toolbox 2.6.5 refers. Code for the m file is shown below. The step response after manipulations of the transfer functions in the code should be a damped oscillation. The response obtained is not correct; my suspicion is on the minreal command because when it is omitted the step response is unbounded. It could be the feedback command is the problem.


clear
close all
clc

pkg load control

s=tf('s');

Gpff=3/((1+4*s)*(1+6*s));

Gcc=(1+1/(60*s));
Glff=series(Gcc,Gpff);
Gff=minreal(feedback(Glff))


Gplc=0.001111*(1-30*s)/(s*(1+30*s));
Gplc=series(Gplc,Gff)

Gclc=(1+1/(2.5*60*s))*(0.2*60*s+1)/((1+6*s)*(1+1.2*s))

Gllc=minreal(series(Gclc,Gplc))


figure(1)
Gllc_cl=minreal(feedback(Gllc));
step(Gllc_cl);
legend('Level')


Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by paramaniac (Posted a comment)
  • -email is unavailable- added by mtmiller (Posted a comment)
  • -email is unavailable- added by mtmiller
  • -email is unavailable- added by theorizer (Posted a comment)
  • -email is unavailable- added by None (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 9 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2015-06-17 mtmiller Open/ClosedOpen Closed
    2015-06-17 mtmiller StatusConfirmed Fixed
    2015-05-31 mtmiller Severity3 - Normal 1 - Wish
        Item GroupNone Inaccurate Result
        StatusNone Confirmed
        Release3.8.1 other
        Operating SystemMicrosoft Windows Any
        SummaryMinreal (control toolbox) may generate inaccurate result control package: @lti/minreal may generate inaccurate result
        Carbon-Copy- Added paramaniac

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code