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 Kommentare

why, whithout matlab function? what do you want to do?
TAB
TAB am 12 Sep. 2012
Save x1=1 & x2=10 in base workspace. Take a constant block in simulink & put the value as [x1:x2]
Azzi Abdelmalek
Azzi Abdelmalek am 12 Sep. 2012
Bearbeitet: Azzi Abdelmalek am 12 Sep. 2012
at t=0; x1 and x2 are unknowns, it will not work
TAB
TAB am 12 Sep. 2012
Bearbeitet: TAB am 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.
TAB
TAB am 12 Sep. 2012
Ok, from "Save x1=1 & x2=10 in base workspace", I mean save these variables manually from command window before simulation.
Azzi Abdelmalek
Azzi Abdelmalek am 12 Sep. 2012
Bearbeitet: Azzi Abdelmalek am 12 Sep. 2012
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 am 12 Sep. 2012
Bearbeitet: Mojtaba am 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.
Azzi Abdelmalek
Azzi Abdelmalek am 12 Sep. 2012
Bearbeitet: Azzi Abdelmalek am 12 Sep. 2012
Mojtaba, just one question: matlab functions make our life much easier, why want you avoid them?
Mojtaba
Mojtaba am 12 Sep. 2012
Bearbeitet: Mojtaba am 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
TAB
TAB am 13 Sep. 2012
Mojtaba, If you hints us about your requirement, may be anyone can suggest a better alternative solution.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Kaustubha Govind
Kaustubha Govind am 12 Sep. 2012
Bearbeitet: Kaustubha Govind am 12 Sep. 2012

0 Stimmen

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 Kommentare

Mojtaba
Mojtaba am 12 Sep. 2012
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.

Melden Sie sich an, um zu kommentieren.

Azzi Abdelmalek
Azzi Abdelmalek am 12 Sep. 2012
Bearbeitet: Azzi Abdelmalek am 12 Sep. 2012

0 Stimmen

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)

Produkte

Tags

Gefragt:

am 11 Sep. 2012

Community Treasure Hunt

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

Start Hunting!

Translated by