求解电路传输响应函数
一个简单的电路,由一个电阻R,一个电感L还有一个电容C组成,电压源是u(t)=sin(2*pi*w*t)求这个系统的传输函数a(t)=i(t)/u(t)=? 然后求U(F)=fft(u(t))=?我列的方程是a(t)=i(t)/u(t)=1/(R+j*w+1/j*w),然后可以先都取特殊值R=1欧姆,L=1H;C=1F,之后对a(t)求傅立叶变换,不知道怎么求?还有用MATLAB怎样实现?请高人指点,谢谢
[ 本帖最后由 eisenstange 于 2006-12-8 10:13 编辑 ] RLC是串联么? 对的,然后还有就是阶跃相应的付式变换是什么? 原帖由 青蓝忘情水 于 2006-11-6 16:53 发表
对的,然后还有就是阶跃相应的付式变换是什么?
a(t)求傅立叶变换,这个参考书上肯定有,不过积分时时域应该是从0到正无穷。
至于Matlab,看这个链接:http://www.mathworks.com/access/helpdesk/help/techdoc/ref/index.html?/access/helpdesk/help/techdoc/ref/fft.html http://www.dolc.de/forum/viewthread.php?tid=316929&extra=page%3D1
也有信号的公式 "a(t)=i(t)/u(t)=1/(R+j*w+1/j*w),"
L和C那里去了?
a(t)=i(t)/u(t)=1/(R+j*w*C+1/(j*w*L)), 1, Normieren, R, L, C (W0)
2, Übertragen Funktion mit S (Laplace-Transformation)
3, Lösung der Gleichung mit Polynom zerlegung
4, Ersetzen s mit jw (gleich Fourier-Transformation) (frequnz bereich)
5, suche zeit bereich Lösung in Tabelle und ersetzen, bekommen lösung in Zeitbereich. 还有收敛域ROC的问题 原帖由 eisenstange 于 2006-11-6 18:49 发表
1, Normieren, R, L, C (W0)
2, Übertragen Funktion mit S (Laplace-Transformation)
3, Lösung der Gleichung mit Polynom zerlegung
4, Ersetzen s mit jw (gleich Fourier-Transformation) ( ...
多谢,看来还是要先用LAPLACETRANSFORMATION,我试试看 刚查到阶跃响应的付氏变化氏1/(j*w)+pi*dirac(w),这么复杂?! 用Fourier变换的 时域积分性质 ,int (-inf,t) f(τ)dτ=F(w)/jw + πF(0)δ(w), 令f(τ)=δ(t),F(w)=1,
Fourier变换的 时域积分性质 见 页面
http://www.dolc.de/forum/viewthr ... &extra=page%3D1 如果不用这个性质,直接求,即,int (0,+int) exp(-jwτ)dτ好像要用到 复变的围道积分, 具体的步骤了我都忘了,如需我可以以后答复
最后提醒一句,Dirac delta函数,及其任意阶导数,任意阶积分(含Heavyside阶梯函数,即你所求的这个函数) 的都不是经典意义上的函数,而是分布Distribution,它们的Fourier变换也非经典意义上的Fourier变换,因为它们都不满足经典Fourier变换的前提 这种推广了的Fourier变换是为了满足工程的要求,但是存在一定问题,如所谓的Gibbs现象(如,11%振荡),就是在不满足经典Fourier变换的位置上的"奇异"现象 谢谢PANDA学习了,刚才我邻居来也跟我一起讨论了半天这个问题,然后越讨论越乱,明天决定跟教授去聊聊看,我的思路是不是正确 又看了一下你的题目,发现几个问题,
首先通常我们说的系统传输函数,是指一个双口网络,两端的电压比,而你说的电流/电压比实际上导纳函数而不是系统的传输函数。
其次,题目要你求的是U(F)=fft(u(t)),实际上是输入信号的傅里叶变化。 刚才跟教授沟通过了,是他跟我说错了,要求的系统传输函数应该是输出电压跟输入电压比,还有一个问题也是我刚才跟他讨论结果他又说是这样一个RLC串连然后加入一个阶约相应为1的电压源然后看体统时域的状况,他说电路可以是任意的其实电压源也可以是任意的,但正确的方法只有一种,然后让我再时域分析,然后在NUMERISCHANALYSEN 还有这个问题用MATLAB怎样实现呢?$郁闷$ meiner Meinung nach mit differenzieller Gleichung 2er Ordnung. http://rapidshare.com/files/2196 ... withMATLAB_muya.rar
eBook:Solving ODEs with MATLAB
Solving ODEs with MATLAB
L. F. Shampine, I. Gladwell, S. Thompson
ISBN: 0521530946 | Publisher: Cambridge University Press (2003) | Publication Date: 2003-04-28 | Number Of Pages: 272 | PDF | 1,2 MB
Book Description
This book is a text for a one-semester course for upper-level undergraduates and beginning graduate students in engineering, science, and mathematics. Prerequisites are a first course in the theory of ODEs and a survey course in numerical analysis, in addition to specific programming experience, preferably in MATLAB, and knowledge of elementary matrix theory. Professionals will also find that this useful concise reference contains reviews of technical issues and realistic and detailed examples. The programs for the examples are supplied on the accompanying web site and can serve as templates for solving other problems. Each chapter begins with a discussion of the "facts of life" for the problem, mainly by means of examples. Numerical methods for the problem are then developed, but only those methods most widely used. The treatment of each method is brief and technical issues are minimized, but all the issues important in practice and for understaning the codes are discussed. The last part of each chapter is a tutorial that shows how to solve problems by means of small, but realistic, examples. 谢谢楼上两位,今天一个上午终于解出来了,很繁琐得,算了好几页,而且情况比较负责,因为我这里有两个ENERGIESPEICHERN,下步就是用MATLAB把这个问题再解一遍比较结果,教授说用MATLAB算出来得结果应该误差比较大,所以让我用手算,最后比较 那本书我在网上找到了,要定购,不过我已经找到其他相关得网站了,多谢提供宝贵意见跟信息 可以直接下载,pdf版 我用MATLAB计算这个阶跃响应得输出函数
SYS=tf(,); step(tf);为什么我得OUTPUTSIGNAL出不来呀:mad: 不知道哪里出问题了 还是这个问题,现在要求我计算输出端电流
我的具体程序如下:
R=1; L=1e-3; C=1e-6;
t=0:.001:1;
lamda1=-R/(2*L)+sqrt(R/(2*L)-1/(L*C));
lamda2=-R/(2*L)-sqrt(R/(2*L)-1/(L*C));
ia=1/(L*(lamda1-lamda2))*(exp(lamda1*t)-exp(lamda2*t));
subplot(3,1,1)
plot(1000*t(1:500),abs(ia(1:500)))
title('Ausgangsstrom in Zeitbereich')
xlabel('Zeit(milisekonde)')
ylabel('Ausgangsstrom(Ampêr)')
grid on
Ia=fft(ia,512);
f = 1e+6*(0:255)/512;
subplot(3,1,2)
plot(f,abs(Ia(1:256)))
title('Frequenzbebeich')
xlabel('Frequency(Hz)')
ylabel('|Y(f)|')
grid on
y=ifft(fft(ia),512);
subplot(3,1,3)
plot(abs(y))
title('Zeitbebeich')
xlabel('Zeit')
ylabel('Strom');
grid on
请高手看看,为什么我的结果跟我用别的软件模拟电路出的结果不一致呢?:(
应该在频域内幅值是1.6^(-3),我的是0.025,请高手帮我看看,急 f = 1e+6*(0:255)/512;
你Sweep的区间是 从0 到 500K赫兹么?你电路的谐振频点在多少频率? 是的,因为用另一个软件模拟只能从10kHz开始,我选择了10K-1MHz,所以我这里选到500K。谐振频率?我没有考虑呀,内组数值也是随便带入的难道还要考虑谐振频率?
我开始时算输出电压
clc;
clf;
R=100; L=10^(-3); C=10^(-6);
s=tf('s');
H=1/(1+s*C*R+s^2*C*L);
h=tf(,);
ua=step(h);
subplot(3,1,1)
plot(ua)
grid on
title('Sprungantwort')
xlabel('time')
ylabel('Spannung')
Ua=fft(ua,512);
Y= Ua.* conj(Ua) / 512;
f = 1000*(0:255)/512;
subplot(3,1,2)
plot(f,Y(1:256)), grid on
title('Frequenzrebeich')
xlabel('frequency (Hz)')
y=ifft(Ua,512);
subplot(3,1,3)
plot(abs(y)),grid on
title('IFFT')
xlabel('time')
ylabel('Spannung')
经过ifft为什么在大于100时突然到零?
因为输出电压变化不大,所以教授要去我plot输出电流,我就做了上边的内些改动,不知道是否正确
[ 本帖最后由 青蓝忘情水 于 2006-12-7 16:46 编辑 ] Y= Ua.* conj(Ua) / 512;
这个是算功率谱的吧?我想问问可不可以省略这一行命令? 你两个软件 Sweep的范围要保持一致,至少上限要一致,因为S=jw,也就是说你的传输函数和频率相关,谐振可以先不考虑。你把Matlab的上限调到1M试试看。 谢谢楼上的及时回复,1M(1e+6)?那我的抽样点要多大呀? 这个你要看FFT函数的说明了,应该对于数字信号计算,是取主周期,你需要自己看帮助。
页:
[1]
2