Contact US

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

How do I assign a signal value to a variable after a block?

How do I assign a signal value to a variable after a block?

How do I assign a signal value to a variable after a block?

Im a begginer using Simulink, may you help me out please? I'll try to explain myself as good as possible:

How can I assign the output signal value from a function block (for exapmle) to a variable? The case is that a table from workspace is introducing values to a "fcn" block, which has to do an operation, and after that, change the value of a variable and repit this operation everytime the block throws new data.

I think it has to be easy but I don't get the point.

Thank you!

RE: How do I assign a signal value to a variable after a block?


In other words:

I've got a model that gives an output Vs(t), so to speak a simulated voltage as a function of time. I'd like to compare this voltage Vs(t) with the real voltage Vr(t) every single moment, and obtain the error in that instant "E(t)". I want to use this error to change the next voltage Vs'(t+1), in order to reduce the difference between Vs(t+1) and Vr(t+1).


Vs(1)= 50, Vr(1)= 42 => The error will be E(1)= 8; The coefficient: 42/50=0.84

If I don't take into the account this error, this will be as big as before in the next second: Vs(2)=49, Vr(2)=40

However, if I give a feed back to Vs(t+1) with the error obtained in t: Vs'(2)= 49*0.84 = 41.16, Vr(2)= 40 => The errors decreases up to 1.16 instead of 9, however, as I don't want to modify the output Vs(t) from the model, the error E(2) used for Vs(3) will be: 49-40= 9; 40/49=0.82

Vs'(3)= 47*0.82=38.54, Vr(3)=38 => The error decreases to 0.54 instead of 9.

And so on...., THEREFORE, I DON'T WANT TO MODIFY NEITHER Vs(t) NOR Vr(t), BUT TO GET A NEW OUTPUT Vs'(t) = Vs(t)*Vr(t-1)/Vs(t-1)

This is what I have:

- Vr(t): output from a block "table from workspace" in which there are 2 columns (the first one is the time and the second the Vreal)

- Vs(t): output from a model

How can I do this?

Help me out please! THANK YOU IN ADVANCE

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login


Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close