Results 1 to 8 of 8

Math Help - Control system response/MATLAB

  1. #1
    Newbie
    Joined
    Jun 2008
    Posts
    14

    Control system response/MATLAB

    This is an EE problem that I'm having a bit of trouble with. It's pretty math heavy and I used to come here with diff eqs help so I thought I would give it a shot.

    I have a control system with an open loop transfer function of

    G(s) = 1 / s(s^2 + s + 15)

    The transfer function describes the input/output relationship of a spring-mass-damper system.

    I am simply asked to simulate the step response of the system through MATLAB. Now, I know how to do this, but the response I'm getting on MATLAB doesn't fit what I would expect.

    It gives me an almost perfectly linear line, like y = 2x. If I have a spring mass damper system and I provide a step voltage to the motor controlling the mass, I would expect some oscillations in the spring before it settled down at a constant position, but my MATLAB simulation doesn't show this.

    I must be missing something. The MATLAB code I have looks like:

    num = [1];
    den = [1 1 15 0];
    sys = tf(num, den);
    step(sys)

    Which is the correct code, because I've done this stuff for other circuits many times. So I must be missing something about the transfer function itself. Thanks for any help.
    Last edited by griffsterb; March 10th 2009 at 08:25 AM.
    Follow Math Help Forum on Facebook and Google+

  2. #2
    Grand Panjandrum
    Joined
    Nov 2005
    From
    someplace
    Posts
    14,972
    Thanks
    4
    Quote Originally Posted by griffsterb View Post
    This is an EE problem that I'm having a bit of trouble with. It's pretty math heavy and I used to come here with diff eqs help so I thought I would give it a shot.

    I have a control system with an open loop transfer function of

    G(s) = 1 / s(s^2 + s + 15)

    The transfer function describes the input/output relationship of a spring-mass-damper system.

    I am simply asked to simulate the step response of the system through MATLAB. Now, I know how to do this, but the response I'm getting on MATLAB doesn't fit what I would expect.

    It gives me an almost perfectly linear line, like y = 2x. If I have a spring mass damper system and I provide a step voltage to the motor controlling the mass, I would expect some oscillations in the spring before it settled down at a constant position, but my MATLAB simulation doesn't show this.

    I must be missing something. The MATLAB code I have looks like:

    num = [1];
    den = [1 1 1 15];
    sys = tf(num, den);
    step(sys)

    Which is the correct code, because I've done this stuff for other circuits many times. So I must be missing something about the transfer function itself. Thanks for any help.
    den=[1,1,15,0] ?

    CB
    Follow Math Help Forum on Facebook and Google+

  3. #3
    Newbie
    Joined
    Jun 2008
    Posts
    14
    Yeah that was an error in typing up my post. I have it as [1 1 15 0] in my code.
    Follow Math Help Forum on Facebook and Google+

  4. #4
    Grand Panjandrum
    Joined
    Nov 2005
    From
    someplace
    Posts
    14,972
    Thanks
    4
    Quote Originally Posted by griffsterb View Post
    This is an EE problem that I'm having a bit of trouble with. It's pretty math heavy and I used to come here with diff eqs help so I thought I would give it a shot.

    I have a control system with an open loop transfer function of

    G(s) = 1 / s(s^2 + s + 15)

    The transfer function describes the input/output relationship of a spring-mass-damper system.

    I am simply asked to simulate the step response of the system through MATLAB. Now, I know how to do this, but the response I'm getting on MATLAB doesn't fit what I would expect.

    It gives me an almost perfectly linear line, like y = 2x. If I have a spring mass damper system and I provide a step voltage to the motor controlling the mass, I would expect some oscillations in the spring before it settled down at a constant position, but my MATLAB simulation doesn't show this.

    I must be missing something. The MATLAB code I have looks like:

    num = [1];
    den = [1 1 15 0];
    sys = tf(num, den);
    step(sys)

    Which is the correct code, because I've done this stuff for other circuits many times. So I must be missing something about the transfer function itself. Thanks for any help.
    With the transfer function:

    G(s) = 1 / s(s^2 + s + 15)

    we have:

    o'''(t)+o''(t)+15o'(t)=1

    for t>0. If this ever has a steady state solution all the derivatives of the output will be 0, but that would imply 0=1. So no steady state.

    CB
    Follow Math Help Forum on Facebook and Google+

  5. #5
    Newbie
    Joined
    Jun 2008
    Posts
    14
    What would that mean physically though? I mean the motor controls a mass, and you give it a step input so it's going to start moving the mass until it reaches some point. At that point wouldn't you be reading a "steady" output from the position of the mass?
    Follow Math Help Forum on Facebook and Google+

  6. #6
    Grand Panjandrum
    Joined
    Nov 2005
    From
    someplace
    Posts
    14,972
    Thanks
    4
    Quote Originally Posted by griffsterb View Post
    What would that mean physically though? I mean the motor controls a mass, and you give it a step input so it's going to start moving the mass until it reaches some point. At that point wouldn't you be reading a "steady" output from the position of the mass?
    Well I don't have the system diagram, so I can't tell you what it means physically. But no as it stands that impulse response never reaches an steady state.

    CB
    Follow Math Help Forum on Facebook and Google+

  7. #7
    Newbie
    Joined
    Oct 2009
    Posts
    1

    Smile maybe....

    your MATLAB code is
    num = [1];
    den = [1 1 15 0];
    sys = tf(num, den);
    step(sys)

    shoudlnt it be more like
    num = [1 0 0 0];
    den = [1 1 15 0];
    sys = tf(num, den);
    step(sys)

    or like [0 0 0 1] for NUMerator?
    try it....
    Follow Math Help Forum on Facebook and Google+

  8. #8
    Grand Panjandrum
    Joined
    Nov 2005
    From
    someplace
    Posts
    14,972
    Thanks
    4
    Quote Originally Posted by tish29 View Post
    your MATLAB code is
    num = [1];
    den = [1 1 15 0];
    sys = tf(num, den);
    step(sys)

    shoudlnt it be more like
    num = [1 0 0 0];
    den = [1 1 15 0];
    sys = tf(num, den);
    step(sys)

    or like [0 0 0 1] for NUMerator?
    try it....

    tf should understand what was originally posted, as done here

    CB
    Follow Math Help Forum on Facebook and Google+

Similar Math Help Forum Discussions

  1. Laplace Transforms - find the system response
    Posted in the Differential Equations Forum
    Replies: 1
    Last Post: September 12th 2011, 09:57 PM
  2. Maximising the response of a system
    Posted in the Advanced Applied Math Forum
    Replies: 2
    Last Post: August 22nd 2010, 04:02 AM
  3. [SOLVED] Continuous-Time Fourier Transform of a Response (matlab)
    Posted in the Differential Equations Forum
    Replies: 1
    Last Post: July 1st 2010, 12:04 PM
  4. response to Forced 2DOF system
    Posted in the Advanced Applied Math Forum
    Replies: 0
    Last Post: April 12th 2009, 03:01 PM
  5. Laplace Transform - Determine response of the system
    Posted in the Differential Equations Forum
    Replies: 7
    Last Post: February 9th 2009, 11:47 AM

Search Tags


/mathhelpforum @mathhelpforum