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!
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).
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?
Help me out please! THANK YOU IN ADVANCE