🏈指点迷津 | Brief🍪语言内容分比
🍇MATLAB电路分析
假设我们要绘制以下三个函数:
v1(t)=5cos(2t+45 deg. )v2(t)=2exp(−t/2)v3(t)=10exp(−t/2)cos(2t+45 deg. ) 以下是允许我们执行此操作的 MATLAB 命令序列。这不是一组唯一的命令。
>> t=0:0.1:10;
>> v1=5*cos(2*t+0.7854);
>> taxis=0.000000001*t;
>> plot(t,taxis,'w',t,v1,'r')
>> grid
>> hold on
>> v2=2*exp(-t/2);
>> plot (t,v2,'g')
>> v3=10*exp(-t/2).*cos(2*t+0.7854);
>> plot (t,v3,'b')
>> title('Example 1 -- Plot of v1(t), v2(t) and v3(t)')
>> xlabel ('Time in seconds')
>> ylabel ('Voltage in volts')
>> text (6,6,'v1(t)')
>> text (4.25,-1.25,'v2(t)')
>> text (1,1.75,'v3(t)')
在 MATLAB 中处理复数很容易。MATLAB 使用矩形表示。要输入复数,请在提示符下键入:
EDU>>z = a +bj or a + bi
要找到 z 的大小和角度,请使用 abs()
和 angle ()
函数。
Mag = abs(z) Angle = angle(z)
angle 函数以弧度表示角度。要转换为度数,您可以使用:
angle_deg = angle(z)*180/pi
在 MATLAB 中输入:V = (5+9j)*(7+j)/(3-2j)
要查找复数 z 的实部和虚部,请输入:
real_z=real(z) imag_z=imag(z)
假设您有以下两个线性复杂方程,其中未知数为 I1 和 I2:
(600+1250j)I1+100j.I2=25100j.I1+(60−150j)⋅I2=0 这可以写成矩阵形式:A.I = B。要在 MATLAB 中解决这个问题,可以使用矩阵左除运算符:
或者也可以使用以下命令:I = inv(A)*B
MATLAB代码如下:
EDU»A=[600+1250j 100j;100j 60-150j];
EDU»B=[25;0];
EDU»I=A\B
I =
0.0074 - 0.0156i
0.0007 - 0.0107i
EDU»MAGN=abs(I)
MAGN =
0.0173
0.0107
EDU»ANGLE=angle(I)*180/pi
ANGLE =
-64.5230
-86.3244
使用 abs() 运算符来查找复数的幅度,使用 angle() 运算符来查找角度(以弧度为单位)。为了得到以度为单位的结果,我们将角度乘以 180/pi,如上所示。
求下列形式的多项式的根:
A=amsm+am−1sm−1+am−2sm−2+…a1s1+a0 定义多项式如下:A = [ am am-1 am-2 ... a1 a0]
;
例如:A=4s2+12s+1
>> A=[4 12 1];
>> roots(A)
ans =
-2.9142
-0.0858
A=5s2+3s+2
>> A=[5 3 2];
>> roots(A)
ans =
-0.3000 + 0.5568i
-0.3000 - 0.5568i
当传递函数指定为两个多项式的比率时,使用 Bode 命令。
H(s)=D(s)N(s)=bnsn+bn−1snm−1+…b1s1+b0amsm+am−1sm−1+…a1s1+a0 在 MATLAB 中,指定 D 和 N:
num = [am am-1 ... a1 ao] den = [bn bn-1 ... b1 bo]
要绘制传递函数(幅度和相位),请输入:bode (num, den)
例如:
H(s)=(0.5s+1)/(1E−4s2+0.01s+1) num = [0.5 1];
den = [1e-4 0.01 1] ;
bode (num, den)
当给定极点和零点时绘制传递函数:
H(s)=K(s+s1)(s+s2)(1+as+bs2)/(s+s3)(s+s4)(1+cs+ds2) 例如:
H(s)=72x(s+2)/s(s+50)(s+250)(s+1000)(s2+2.4s+144) 首先找到分母为 s(s+50)(s+250)(s+1000)
对应的多项式的系数:
rootsd1=[0; -50; -250; -1000 ];
d1=poly(rootsd1);