×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Are you an
Engineering professional?
Join Eng-Tips Forums!
• Talk With Other Members
• Be Notified Of Responses
• Keyword Search
Favorite Forums
• Automated Signatures
• 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.

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?

(OP)
Hi,
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?

(OP)

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).

FOR INSTANCE:

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?

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.

Resources

Low-Volume Rapid Injection Molding With 3D Printed Molds
Learn methods and guidelines for using stereolithography (SLA) 3D printed molds in the injection molding process to lower costs and lead time. Discover how this hybrid manufacturing process enables on-demand mold fabrication to quickly produce small batches of thermoplastic parts. Download Now
Examine how the principles of DfAM upend many of the long-standing rules around manufacturability - allowing engineers and designers to place a partâ€™s function at the center of their design considerations. Download Now
Taking Control of Engineering Documents
This ebook covers tips for creating and managing workflows, security best practices and protection of intellectual property, Cloud vs. on-premise software solutions, CAD file management, compliance, and more. Download Now

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:

• Talk To Other Members
• Notification Of Responses To Questions
• Favorite Forums One Click Access
• Keyword Search Of All Posts, And More...

Register now while it's still free!