2016-08-30 21 views
-1

Iは、次の信号実装する:I(T)= 500 *(SIN(pi.t/0.3))^ 2Matlab/Simulinkで所定の正弦波のON/OFF波形を生成するにはどうすればよいですか?

Required input

を、tは{0、Tsを}

に属し= 0、tが属し{Tsと、T}

ここで、T = 0.8およびTS = 0.3

私が試しコード:

t = 0.01 * [0:3000]';   
d = 0.8 * [0:35]';   
y = pulstran(t,d,'rectpuls',0.3); 
ut = 500.*((sin(pi*(t-floor(t/0.8)*0.8)/0.3)).^2).*y; 
plot(t,ut) 

生成される波形には、ON状態ごとに2つのピークを含むいくつかのエラーがあります。是正してください。

enter image description here

+0

私はあなたのコードを詳細にチェックしていませんが、なぜオン期間に2つのピークがないと思われますか?あなたの脈拍の周期は0.8、0.3 ON、0.5 OFFです。 sin^2波の周期は0.3です。 0.3は0.8には入っていないので、あなたの正弦波とパルスは一直線にとどまることはありません。 – kabdulla

答えて

0

あなたは(0.5秒のための)ゼロが続く(0.3秒の場合)乗正弦波のパターンを繰り返しを望んでいるように見えます。以下を達成することができる

>> Io = 500; 
>> Ts = 0.3; 
>> T = 0.8; 
>> SampleRate = 0.01; 
>> tOnePeriod = 0:SampleRate:(T-SampleRate); 
>> yOnePeriod = zeros(1,numel(tOnePeriod)); 
>> yOnePeriod(tOnePeriod<=Ts) = Io*(sin(pi*tOnePeriod(tOnePeriod<=Ts)/Ts).^2); 
>> simin.time=[]; 
>> simin.signals.values=yOnePeriod(:); 
>> simin.signals.dimenions = [1 1]; 

あなたはMATLABで生成された信号を確認したい場合は、次のようにします。

>> plot(tOnePeriod,yOnePeriod) 

は、以下の方法でのSimulinkに信号をインポート:

enter image description here

一部importan simin変数は意図的ブロックのサンプル時間が

  • 補間データが選択解除されているデフォルト値から変更された
  • を指定しない時点を有していない

    1. :ワークスペースブロックから約Tポイント
    2. 最後のデータ値の後の出力はに設定されています。循環繰り返し
  • 関連する問題