秋月ファンクラブ掲示板 過去ログ

LTSPICE 1secごとのデータのmaxをさいようする命令 - kurin

2014/03/01 (Sat) 14:52

LTSPICEで1sec前のデータと比較して大きいほうを採用してこれを繰り返す命令を教えてください。

Re: LTSPICE 1secごとのデータのmaxをさいようする命令 - inara1

2014/03/01 (Sat) 15:37

1秒前の信号を作るには、tlineという伝送線路の遅延時間Tdを1とすればいいです。入力(左側)に信号を入れると、出力(右側)には遅延信号が出てきます。tlineの特性インピーダンス(ZO)と同じ抵抗値の抵抗(R1)で終端すれば、tlineの入出力信号の波形は、時間がTdだけずれていること以外は同じになります。

添付図では、ビヘイビア電圧源B1を使って、tlineの入出力波形(V(a)とV(b))を比較して、大きいほうの電圧を出力するようにしています。

1秒遅らせた信号(V(b))と他の信号を比較して大きいほうを出力するときは、V=max(V(b),他の信号)とすればいいです。


Re: LTSPICE 1secごとのデータのmaxをさいようする命令 - kurin

2014/03/01 (Sat) 22:40

返信ありがとうございます。

tlineを使うのは初めてです。
参考になりました。

Re: LTSPICE 1secごとのデータのmaxをさいようする命令 - inara1

2014/03/02 (Sun) 05:38

tlineを使わなくてもできます。

ビヘイビア電圧源で使える関数にabsdelayというのがあります。これは遅延信号を作るもので
absdelay(遅延させたい信号,遅延時間,[最大遅延])
という書式になります。

添付図の例では、a点の電圧を1秒遅延させたabs(V(a),1)と、a点の電圧V(a)とを比較して、大きいほうを出力するものです。結果はtlineを使ったものと同じです。

Re: LTSPICE 1secごとのデータのmaxをさいようする命令 - kurin

2014/03/02 (Sun) 13:15

最大値検出したいのですが、
添付ファイルはそうなりません。

電圧の最大値は正確ですが、電力は最大値にならない理由は何でしょうか?

Re: LTSPICE 1secごとのデータのmaxをさいようする命令 - inara1

2014/03/02 (Sun) 14:02

i(r1)が負の値になっていませんか。i(r1)が負になっていると、v(1)*i(r1)が負になってしまいます。

シミュレーション終了後にマウスカーソルをR1に合わせたとき、電流の向きを示す赤い矢印が上向きになっていませんか。

赤い矢印が上向きなら、その方向の電流が正なので、下向きに流れる電流は負になります。赤い矢印が上向きなら、抵抗の配置を上下逆にすれば、電流の符号を反転させることができます。

Re: LTSPICE 1secごとのデータのmaxをさいようする命令 - kurin

2014/03/02 (Sun) 15:01

負になっていないんですよ。

正の電力値を検出しているので間違いないと思うのですが、
peak検出になっていないです。少し差があります。


なぜだか???

Re: LTSPICE 1secごとのデータのmaxをさいようする命令 - inara1

2014/03/02 (Sun) 17:17

この回路(http://bbs3.fc2.com//bbs/img/_454800/454703/full/454703_1393733744.png)の信号源V2は、10VのDC電圧に重畳した2Vpp、1Hzのサイン波ですが、その信号はいつも同じピーク値なので、最初のピークを過ぎたらv(max)は一定値のままとなるはずです(シミュレーション結果は正しい)。

ピークホールド機能を見たいのなら、添付図のB2のように、ピーク電圧が順次大きくなっていくような波形で見たほうがいいと思います。

Re: LTSPICE 1secごとのデータのmaxをさいようする命令 - kurin

2014/03/02 (Sun) 21:14

すいません。
私のシミュレーショングラフの読み違いでした。

結果は間違っていません。

大変失礼しました。