Jump to content
  • Advertisement
Sign in to follow this  
staticVoid2

Signal Flow Graph and Integration

This topic is 2533 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm trying to convert the basic Mass-spring-damper ODE into a signal flow graph (in it's frequency domain representation) as a function of the Mass position. The problem I'm having is that I need to apply gain to the signal in the time domain (i.e. scale it by the coefficients of the terms in the differential equation). The equation is:


codecogseqni.gif


So I need to scale by M, b and k. The integration terms are obviously just 1/s but how do I represent multiplication by a coefficient in the time-domain as multiplication (or addition) in the frequency domain (just using Signal Flow Graphs)?

Share this post


Link to post
Share on other sites
Advertisement
Multiplication by a scalar in one domain is equivalent to multiplication by that same scalar in the other. The Laplace transform is a linear operator, which means that, if f is a function and k is a scalar, then L(k f) = k L(f).

Share this post


Link to post
Share on other sites
Have we gotten rid of the "EDIT" feature? I would have just added more to my last post, but, if that's still possible, I'm not seeing the button to do it.

Anyway...

I'll define

a = y''
v = y'
x = y.

Knowing only that much, we can draw this signal flow graph:

a --[1/s]--> v --[1/s]--> x

Now, we also know one more thing: The equation that you wrote tells us,

a = (1/m) [ -B v - k x]

which we can represent by adding two more edges feeding back from v and x, weighted by -B/m and -k/m, respectively.

Finally, I should add that there are many equivalent signal flow graphs, all of which represent the same ODE. E.g., you could move that common (1/m) factor somewhere else in the graph -- or even define your nodes to be some other set of variables that contain the same information as a,v,and x. Say, you could use

z1 = a - v
z2 = a + v
z3 = a + v + x

and figure out the relationships between these three.

Each of these different representations is called a "realization," and the different variables that you're using for your nodes are called "state variables." The particular representation that I showed you with a, v, and x is the simplest one to construct from an ODE like the one you wrote, and is called the controllable canonical form.

Share this post


Link to post
Share on other sites
I was thinking about that right after I posted, the Laplace transform is a Linear transform and thus should satisfy the Homogeneity property like you stated. I think I'm getting confused because I've heard that "Multiplication" in the frequency domain is equivalent to Convolution in the time domain but now that I think about it it refers to multiplication with another signal rather than just a single scalar. And if you perform the inverse Laplace transform of a single scalar you get an Impulse function which when Convolved with the time signal should produce the scaled time signal?

Please correct me if I'm wrong. I think my head is about to explode.

Share this post


Link to post
Share on other sites
Yes, when people say "multiplication in the frequency domain is equivalent to convolution in the time domain," they're talking about multiplying and convolving signals. It goes the other way as well; convolving in the frequency domain is equivalent to multiplication in the time domain.

When you talk about the Laplace (or inverse Laplace) transform of a "single scalar..." I'd think of it this way: The Laplace transform doesn't take scalars as its input. That's not the data type it works on. It works on functions, which it maps to other functions.* So when you say "single scalar," what you really mean is "constant-valued function."** And yes, the constant-valued function is mapped to the Dirac delta by the Laplace transform.

* Well, not quite technically. It works on tempered distributions. Think "functions, but also with stuff like Dirac deltas being well defined."

** If it's not clear, I mean the difference between (to speak C/C++ for a moment), "double x = 7.0;" and "double f(double t){return 7.0;}."

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!