minliu 发表于 2024-3-27 15:26

用GNU Octave求解系统特性

<div>&nbsp;</div>

<div>在电子领域,线性时不变系统具有广泛的代表意义。</div>

<div>系统的冲激响应h(t)和系统函数H(s)从时域和变换域两方面表征了同一系统的两个侧面。H(s)是用s域表示的系统函数,它不仅仅是频域的概念。</div>

<div>应用GNU Octave的impulse()函数,可以从系统函数H(s), 求出冲激响应h(t),</div>

<div>例如,对于系统函数H1(s),可以用以下程序求出冲激响应和阶跃响应。</div>

<div></div>

<div>num=;den=;</div>

<div>sys=tf(num,den);</div>

<div>figure(1)</div>

<div>subplot(221);</div>

<div>pzmap(sys);</div>

<div>axis([-2.5 2.5 -1.5 1.5]);</div>

<div>t=0:0.02:15;</div>

<div>subplot(222);</div>

<div>y=impulse(sys,t);</div>

<div>plot(t,y);</div>

<div>subplot(223);</div>

<div>z=step(sys,t);</div>

<div>plot(t,z);</div>

<div>图一为冲击响应: y=-2+3exp(-t)的波形</div>

<div></div>

<div>图一</div>

<div>图二为阶跃响应: y=-2t+3-3exp(-t)的波形</div>

<div></div>

<div>图二</div>

<div>但是,当遇到如下系统函数,按照上面的程序进行求解时,会遇到问题。</div>

<div></div>

<div>问题显示如下:</div>

<div></div>

<div>原因是:本例的系统函数,分子和分母都是2阶的。按照s变换的定义,在变换为时域的冲激响应时,存在&delta;(t)函数。完整的冲激响应为:h(t)= &delta;(t)-2exp(-t)*cost.但在用符号函数进行求解时,直接将h(t)写为:-2exp(-t)*cost。</div>

<div>因此,为了使用上面的程序求出这个系统的冲激响应函数,需将s函数先减去1,即,消除&delta;(t),变为如下:</div>

<div></div>

<div>图三</div>

<div>该程序输出了零极点、冲激响应h(t)、频率响应H(jw),如图四。</div>

<div></div>

<div>图四</div>

<div>总结:</div>

<div>本文通过GNU Octave软件的impulse函数,求解系统函数对应的冲激响应和频率响应曲线。</div>

<div>系统函数的分子的阶数大于等于分母的阶数时,会遇到无法求解的问题。</div>

<div>分析出原因,并加以解决。</div>
页: [1]
查看完整版本: 用GNU Octave求解系统特性