2017-12-01 17 views
0

私はSimulinkを使い始めましたが、matlab for loopを使って伝達関数を変更することについて質問があります。 =基本的に私は時間から5回のSimulinkのシミュレーションを実行したいloop-simulinkの伝達関数を変更する

enter image description here

enter image description here

そして、私の目標は、「システム」に等しくなるということです。

レッツは、私は次のような問題を持っていると言います5つの異なる伝達関数に対して0から時間= 10。

何か助けていただければ幸いです。 ありがとうございます。

+0

... 'i'シミュレーション数であり、例えば、' I = 1:5'最初の2回の反復は、非ゼロ出力を与えますか? –

+2

'(1 + s * 5/i)^ i'は反復' i'の閉ループ伝達関数か 'system '伝達関数ですか?また、私はS-Functionを使用しません。そのようなことは不必要に複雑です。 – am304

+0

システムの式は非因果的です。それが正しいと確信していますか? (私の代わりに力がなければならない?) –

答えて

0

あなたの質問に間違いがない限り、私はこのようなことにSimulinkを使用する必要はないと思います。次はあなたが何をしようとしての私の理解で、それは(control system toolbox付き)平野MATLABで行うことができます

t = 0:1e-3:10; 
u = ones(size(t)); 
y = zeros(5,length(t)); 
for k=1:5 
    H = (1 + tf('s')*5/k)^k; % system transfer function 
    CL = 1/((tf('s'))^2*(1-H)); % closed-loop transfer function 
    y(k,:) = (lsim(CL,u,t))'; 
end 
plot(t,y) 
legend('#1','#2','#3','#4','#5','Location','NorthWest') 
grid on 
xlabel('Time [s]') 
ylabel('Output') 

(オクターブで)次のプロットを生成します。

enter image description here

関連する問題