variable discrete vector generation in Simulink

I need to make sequence (1D vector) from 2 constants in Simulink.
e.g.: x1=1 and x2=10 as input constant
Desired vector: X=[1 2 3 4 5 6 7 8 9 10]
I know It is very easy to generate such vector in matlab, but I really want to do it in terms of blocks and not even Embedded Matlab Function Block.
Thanks in Advance

14 Comments

why, whithout matlab function? what do you want to do?
Save x1=1 & x2=10 in base workspace. Take a constant block in simulink & put the value as [x1:x2]
at t=0; x1 and x2 are unknowns, it will not work
TAB
TAB on 12 Sep 2012
Edited: TAB on 12 Sep 2012
@Azzi Abdelmalek: x1 and x2 are in base workspace, so they will be evaluated during model update. So at t=0, values will be available in constant block.
Can you let me know how you have tried this ?
TAB, I have simulated your idea, and it did'nt work.
Ok, from "Save x1=1 & x2=10 in base workspace", I mean save these variables manually from command window before simulation.
But during simulation, they can't be updated,I guess x1 and x2 are outputs of other blocks
Azzi: I think TAB is saying that x1 and x2 should be parameters to the MATLAB Function block, not inputs.
The question said to avoid Matlab function.
Mojtaba
Mojtaba on 12 Sep 2012
Edited: Mojtaba on 12 Sep 2012
Making x1 and x2 as variable and the using a constant block [x1:x2]works but the problem is that x1 and x2 change during the simulation.
Mojtaba, just one question: matlab functions make our life much easier, why want you avoid them?
Mojtaba
Mojtaba on 12 Sep 2012
Edited: Mojtaba on 12 Sep 2012
my advisor told me that do not use them because after completing the simulation model we are going to make the code out of it(maybe HDL/PLC code) that if we use embedded matlab block it is not possible to do it. Have you ever heard of it?
Matlab function is supported by HDL coder. Depends on verision of matlab you are using
Mojtaba, If you hints us about your requirement, may be anyone can suggest a better alternative solution.

Sign in to comment.

Answers (2)

Kaustubha Govind
Kaustubha Govind on 12 Sep 2012
Edited: Kaustubha Govind on 12 Sep 2012
Mojtaba: Do x1 and x2 change during simulation? If not, try defining them as workspace variables.
  • Constant block: Enter [x1:x2] as Value.
  • MATLAB Function block: Make them non-tunable parameters on the block's Ports and Data Manager and compute output using [x1:x2].

2 Comments

yes they change during simulation.
I think this is a lot harder to do. You will need to understand Variable-Size Signals because if x1 and x2 change during simulation, the size of the signal also changes. I don't see any easy way to do this without the MATLAB Function block, but even with that block, I think this will be tricky.

Sign in to comment.

Azzi Abdelmalek
Azzi Abdelmalek on 12 Sep 2012
Edited: Azzi Abdelmalek on 12 Sep 2012
check the blocks supported by HDL coder at http://www.mathworks.com/help/hdlcoder/ug/summary-of-block-implementations.html at the end of the page(simulink/User-Defined Functions/MATLAB Function)
MATLAB Function (was Embedded function for previous versions)

Products

Tags

Asked:

on 11 Sep 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!