# How to split signal in simulink?

89 ビュー (過去 30 日間)
George Francis 2018 年 3 月 20 日

Hello, I have this easy model. In matlab function block I have command ulength=length(u); and it returns me 1. It should give me 30, because in red box is set time to 30. My question is if I can split somehow the signal, because I need to use in matlab function block for loop: For example:
for k=1:30
z= [-y(k-1) u(k-1)]';
end
But it shows me error: that signal 'u' and 'y' are one dimensional with one element. So is there way how to split that signal so I could work with it like in matlab workspace?
##### 2 件のコメント表示非表示 1 件の古いコメント
George Francis 2018 年 3 月 20 日
I have to identify data using recursive least square method which should give me 4 parameters (b0,a2,a1,a0).
b0
--------------
a2*s^2+a1*s+a0
My code which I have in matlab works fine but in simulink it doesn't work because of the loop. It won't let me access y(n-l) how it shown below because it says it's one dimensional with 1 element so dunno how to change the code that it would work in simulink.
for n=3:N
for l=1:1
V(l) = y(n-l); %output
end
for i=1:3
W(i) = u(n-i+1); %input
end
z = [V';W'];
sample_out = y(n);
C = (C - ( (C*z*z'*C)/( lamda+(z'*C*z) ) ))/lamda;
P = P + (C*z* (sample_out - (z'*P) ) );
end

サインインしてコメントする。

### 採用された回答

Jim Riggs 2018 年 3 月 20 日

I'm not sure if this is the answer to your question, but Here is how to access a signal from the previous calculation iteration, y(n-1), in Simulink:
##### 2 件のコメント表示非表示 1 件の古いコメント
Jim Riggs 2018 年 3 月 21 日

Very good.
The memory block may be set to any delay you desire.
n-1, n-2, n-3, .... etc.
you specify the delay inside the block. Default is 1.

サインインしてコメントする。

### カテゴリ

Find more on Sources in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by