文档库 最新最全的文档下载
当前位置:文档库 › MATLAB进行控制系统频域分析

MATLAB进行控制系统频域分析

一、基于MATLAB 的线性系统的频域分析基本知识

(1)频率特性函数)(ωj G 。

设线性系统传递函数为:

n

n n n m m m m a s a s a s a b s b s b s b s G ++⋅⋅⋅++++⋅⋅⋅++=---1101110)( 则频率特性函数为:

n

n n n m m m m a j a j a j a b j b j b j b jw G ++⋅⋅⋅++++⋅⋅⋅++=---)()()()()()()(1101110ωωωωωω 由下面的MATLAB 语句可直接求出G(jw )。

i=sqrt (—1) % 求取—1的平方根

GW=polyval (num ,i*w )./polyval(den ,i*w )

其中(num ,den )为系统的传递函数模型。而w 为频率点构成的向量,点右除(./)运算符表示操作元素点对点的运算.从数值运算的角度来看,上述算法在系统的极点附近精度不会很理想,甚至出现无穷大值,运算结果是一系列复数返回到变量GW 中。

(2)用MATLAB 作奈魁斯特图。

控制系统工具箱中提供了一个MATLAB 函数nyquist( ),该函数可以用来直接求解Nyquist 阵列或绘制奈氏图。当命令中不包含左端返回变量时,nyquist ()函数仅在屏幕上产生奈氏图,命令调用格式为:

nyquist(num ,den) nyquist (num,den ,w) 或者

nyquist(G) nyquist(G,w ) 该命令将画出下列开环系统传递函数的奈氏曲线: )

()()(s den s num s G = 如果用户给出频率向量w ,则w 包含了要分析的以弧度/秒表示的诸频率点。在这些频率点上,将对系统的频率响应进行计算,若没有指定的w 向量,则该函数自动选择频率向量进行计算。

w 包含了用户要分析的以弧度/秒表示的诸频率点,MATLAB 会自动计算这些点的频率响应。

当命令中包含了左端的返回变量时,即:

[re,im ,w]=nyquist (G )

[re ,im,w ]=nyquist (G ,w ) 函数运行后不在屏幕上产生图形,而是将计算结果返回到矩阵re 、im 和w 中。矩阵re

和im 分别表示频率响应的实部和虚部,它们都是由向量w 中指定的频率点计算得到的.

在运行结果中,w 数列的每一个值分别对应re 、im 数列的每一个值。

例5。1 考虑二阶典型环节: 18.01)(2++=s s s G 试利用MATLAB 画出奈氏图.

利用下面的命令,可以得出系统的奈氏图,如图5—1所示。

〉〉 num=[0,0,1];

den=[1,0。8,1];

nyquist (num,den)

% 设置坐标显示范围

v=[—2,2,-2,2];

axis(v)

grid

title (′Nyquist Plot of G(s )=1/(s^2+0。8s+1) ′)

(3)用MATLAB 作伯德图

控制系统工具箱里提供的bode ()函数可以直接求取、绘制给定线性系统的伯德图. 当命令不包含左端返回变量时,函数运行后会在屏幕上直接画出伯德图。如果命令表达式的左端含有返回变量,bode ()函数计算出的幅值和相角将返回到相应的矩阵中,这时屏幕上不显示频率响应图。命令的调用格式为:

[mag,phase ,w ]=bode(num ,den ) [mag ,phase,w]=bode (num ,den,w ) 或

[mag ,phase ,w]=bode (G) [mag,phase,w]=bode (G,w ) 矩阵mag 、phase 包含系统频率响应的幅值和相角,这些幅值和相角是在用户指定的频率点上计算得到的。用户如果不指定频率w ,MATLAB 会自动产生w 向量,并根据w 向量上

图5-1 二阶环节奈氏图

各点计算幅值和相角。这时的相角是以度来表示的,幅值为增益值,在画伯德图时要转换成分贝值,因为分贝是作幅频图时常用单位.可以由以下命令把幅值转变成分贝:

magdb=20﹡log10(mag )

绘图时的横坐标是以对数分度的.为了指定频率的范围,可采用以下命令格式:

logspace (d1,d2) 或

logspace(d1,d2,n ) 公式logspace (d1,d2) 是在指定频率范围内按对数距离分成50等分的,即在两个十进制数1101d =ω和 2102d =ω之间产生一个由50个点组成的分量,向量中的点数50是一个默认值。例如要在1.01=ω弧度/秒与1002=ω弧度/秒之间的频区画伯德图,则输入命令时,)(log 1101ω=d ,)(log 2102ω=d 在此频区自动按对数距离等分成50个频率点,返回到工作空间中,即

w=logspace (-1,2)

要对计算点数进行人工设定,则采用公式logspace (d1,d2,n )。例如,要在11=ω与10002=ω之间产生100个对数等分点,可输入以下命令:

w=logspace (0,3,100)

在画伯德图时,利用以上各式产生的频率向量w,可以很方便地画出希望频率的伯德图。 由于伯德图是半对数坐标图且幅频图和相频图要同时在一个绘图窗口中绘制,因此,要用到半对数坐标绘图函数和子图命令。

1)对数坐标绘图函数

利用工作空间中的向量x,y 绘图,要调用plot 函数,若要绘制对数或半对数坐标图,只需要用相应函数名取代plot 即可,其余参数应用与plot 完全一致。命令公式有:

semilogx(x ,y ,s)

上式表示只对x 轴进行对数变换,y 轴仍为线性坐标。

semilogy(x ,y ,s )

上式是y 轴取对数变换的半对数坐标图。

Loglog (x,y ,s)

上式是全对数坐标图,即x 轴和y 轴均取对数变换。

2)子图命令

MATLAB 允许将一个图形窗口分成多个子窗口,分别显示多个图形,这就要用到subplot()函数,其调用格式为:

subplot (m ,n,k )

该函数将把一个图形窗口分割成m ×n 个子绘图区域,m 为行数,n 为列数,用户可以通过参数k 调用各子绘图区域进行操作,子图区域编号为按行从左至右编号。对一个子图进行的图形设置不会影响到其它子图,而且允许各子图具有不同的坐标系.例如,subplot(4,3,6)则表示将窗口分割成4×3个部分。在第6部分上绘制图形。 MATLAB 最多允许9×9的分割。

例5。2 给定单位负反馈系统的开环传递函数为:

)7()1(10)(++=s s s s G 试画出伯德图。

利用以下MATLAB 程序,可以直接在屏幕上绘出伯德图如图5—2。

〉〉 num=10*[1,1];

den=[1,7,0];

bode(num,den )

grid

title (′Bode Diagram of G (s)=10*(s+1)/[s (s+7)] ′)

该程序绘图时的频率范围是自动确定的,从0.01弧度/秒到30弧度/秒,且幅值取分贝值,ω轴取对数,图形分成2个子图,均是自动完成的。

如果希望显示的频率范围窄一点,则程序修改为:

>> num=10*[1,1];

den=[1,7,0];

w=logspace (—1,2,50); % 从0。1至100,取50个点。

[mag , phase, w ]=bode(num , den, w );

magdB=20*log10(mag ) % 增益值转化为分贝值。

% 第一个图画伯德图幅频部分。

subplot (2,1,1);

semilogx (w ,magdB , ′—r ′) % 用红线画

grid

title(′Bode Diagram of G(s )= 10*(s+1)/[s (s+7)] ′)

xlabel (¹Frequency(rad/s )¹)

ylabel(¹Gain (dB )¹)

图5—2 自动产生频率点画出的伯德图

% 第二个图画伯德图相频部分。

subplot(2,1,2);

semilogx(w,phase, ¹—r¹);

grid

xlabel(¹Frequency(rad/s)¹)

ylabel(′Phase(deg) ′)

修改程序后画出的伯德图如5—3所示。

图5-3用户指定的频率点画出的伯德图

(4). 用MATLEB求取稳定裕量

同前面介绍的求时域响应性能指标类似,由MATLAB里bode()函数绘制的伯德图也可以采用游动鼠标法求取系统的幅值裕量和相位裕量。例如,我们可以在图20的幅频曲线上按住鼠标左键游动鼠标,找出纵坐标(Magnitude)趋近于零的点,从提示框图中读出其频率约为7.25dB。然后在相频曲线上用同样的方法找到横坐标(Frequence)最接近7。25dB的点,可读出其相角为-53。9度,由此可得,此系统的相角裕量为126.1度。幅值裕量的计算方法与此类似.

此外,控制系统工具箱中提供了margin()函数来求取给定线性系统幅值裕量和相位裕量,该函数可以由下面格式来调用:

[Gm,Pm, Wcg,Wcp]=margin(G);(67)

可以看出,幅值裕量与相位裕量可以由LTI对象G求出,返回的变量对(Gm, Wcg)为幅值裕量的值与相应的相角穿越频率,而(Pm, Wcp)则为相位裕量的值与相应的幅值穿越频率.若得出的裕量为无穷大,则其值为Inf,这时相应的频率值为NaN(表示非数值),Inf和NaN 均为MATLAB软件保留的常数。

如果已知系统的频率响应数据,我们还可以由下面的格式调用此函数。

[Gm, Pm, Wcg, Wcp]=margin(mag, phase, w);

其中(mag, phase, w )分别为频率响应的幅值、相位与频率向量。

例5.3 已知三阶系统开环传递函数为: )232(27

)(23+++=s s s s G

利用下面的MATLAB 程序,画出系统的奈氏图,求出相应的幅值裕量和相位裕量,并求出闭环单位阶跃响应曲线.

>> G=tf (3.5,[1,2,3,2]);

subplot (1,2,1);

% 第一个图为奈氏图

nyquist(G);

grid

xlabel ('Real Axis')

ylabel('Imag Axis’)

% 第二个图为时域响应图

[Gm ,Pm ,Wcg ,Wcp]=margin(G)

G_c=feedback (G,1);

subplot (1,2,2);

step (G_c)

grid

xlabel (′Time (secs) ′)

ylabel (′Amplitude ′)

显示结果为:

ans=1。1429 1。1578

1。7321 1。6542

画出的图形如图5-4 所示。由奈氏曲线可以看出,奈氏曲线并不包围(—1,j0)点,故

图5-4 三阶系统的奈氏图和阶跃响应图

闭环系统是稳定的。由于幅值裕量虽然大于1,但很接近1,故奈氏曲线与实轴的交点离临

界点(-1,j0)很近,且相位裕量也只有7。1578o ,所以系统尽管稳定,但其性能不会太好。

观察闭环阶跃响应图,可以看到波形有较强的振荡。

如果系统的相角裕量γ〉45o ,我们一般称该系统有较好的相角裕量。

例5。4 考虑一个新的系统模型,开环传递函数为: )9)(1()5(100)(22

++++=s s s s s G 由下面MATLAB 语句可直接求出系统的幅值裕量和相位裕量:

>〉 G=tf(100*conv ([1,5],[1,5]), conv([1,1],[1,1,9]));

[Gm, Pm, Wcg , Wcp ]=margin (G )

结果显示 Gm = Pm =

Inf 85。4365

Wcg = Wcp =

NaN 100。3285

再输入命令

>〉 G_c=feedback (G ,1);

step (G_c)

grid

xlalel (′Time(sec ) ′)

ylalel(′Amplitude ′)

可以看出,该系统有无穷大幅值裕量,且相角裕量高达85。4365o 。所以系统的闭环响

应是较理想的,闭环响应图如图5-5.

(5).时间延迟系统的频域响应

(1) 时间延迟系统的传递函数模型

带有延迟环节e —Ts 的系统不具有有理函数的标准形式,在MATLAB 中,建立这类系统的模

型。要由一个属性设置函数set ()来实现。该函数的调用格式为:

set(H, ′属性名′, ′属性值′)

图5-5 较理想的系统响应

其中H 为图形元素的句柄(handle ).在MATLAB 中,当对图形元素作进一步操作时,只需对该句柄进行操作即可。例如以下调用格式

h=plot(x ,y )

G=tf(num ,den )

Plot ()函数将返回一个句柄h ,tf ()函数返回一个句柄G ,要想改变句柄h 所对应曲线的颜色,则可以调用下面命令:

Set (h ,color,[1,0,0]);

即对“color"参数进行赋值,将曲线变成红色(由[1,0,0]决定)

同样,要想对G 句柄所对应模型的延迟时间’T d '进行修改,则可调用下面命令

Set(G , ′T d ′,T )

其中T 为延迟时间。由此修改后,模型G 就已具有时间延迟特性。

(2) 时间延迟系统的频域响应

含有一个延迟环节的系统,其开环频域响应为

ωωϕωωωT j jT e j G e j G --=)()()(

可见,该系统的幅频特性不变,只加大了相位滞后。

例5.5 考虑系统的开环模型为:

Ts e s s G -+=1

1)( 当T=1时,我们可以由下面的MATLAB 命令绘出系统的奈氏图,如图5—6所示,此系统对应的时域响应图为5-7.

〉> G=tf (1,[1, 1]);

T=[1];

w=[0, logspace (-3, 1, 100), logspace(1,2,200)];

set (G,‘Td’, T ); % 延迟1秒。

nyquist(G,w)

grid

figure % 建立一个新的绘图窗口

step (G)

例5.6 控制系统如图5-8所示,试分析其闭环特性。

图5-6 时间延迟系统奈氏图

图5—7 时间延迟系统的阶跃响应

图5—8

下面是该系统的演示过程,带符号%语句为注释语句。%清文字屏

%clc

%清图形屏

%clf

%系统1描述

a1=[1 3 0];

b1=2;

%系统2描述

a2=[1 2 2];

b2=[1 2];

%两系统串联后的传递函数:

[b12,a12]=series(b1,a1,b2,a2);

%串联后频率响应(波特图)

figure(1)

bode(b12,a12);pause

%clf

%求振幅及相位裕度

figure(2)

[m,p,w]=bode(b12,a12)

%求开环振幅Gm和相位裕度Pm及其对应频率margin(m,p,w);

[Gm,Pm,Wg,Wp]=margin(m,p,w);pause

%画nichols曲线,先用ngrid函数画坐标网

figure(3)

ngrid(’new’);

nichols(b12,a12);pause

%clf

%画根轨迹,先消除画nichols曲线时冻结的坐标系,%用axis命令恢复自动定标。

figure(4)

axis;

rlocus(b12,a12);

%用鼠标器找适当的极点

[k1,p1]= rlocfind(b12,a12);pause

%将环路闭合

b1=k1*b1;

b121=k1*b12;

%再看闭环振幅及相位裕度

figure(5)

[m,p,w]=bode(b121,a12);

margin(m,p,w);

[Gm,Pm,Wg,Wp]=margin(m,p,w);pause

%求闭环传递函数,[ bb,ab]指单位反馈情况,

%[ bb1,ab1]指将系统2置于反馈通道上:

[bb,ab]=cloop(b121,a12);pause

[bb1,ab1]=feedback(b1,a1,b2,a2,-1);pause

%求闭环频率响应

figure(6)

bode(bb1,ab1);pause

%clg;

%闭环过渡过程

figure(7)

step(bb1,ab1);pause

%clg

figure(8)

impulse(bb1,ab1);pause

%clg;

%再求闭环零一极点,作为校核:

[zb,pb,kb]=tf2zp(bb,ab);pause

printsys(zb,pb,kb);

format

echo off

%演示结束

运行结果:

开环系统幅值裕量及相位裕量:Gm=3。5435,Pm=55。022,Wg=1。6159,Wp=0.66898

在根轨迹上选择一点:selected_point = —4。0158 + 0。0309i

此时闭环系统幅值裕量及相位裕量:Gm= 0.34677,Pm= —29。162,Wg= 1。6159,Wp= 2.5192

根据选定根轨迹上一点的位置可计算出相应的闭环零点,闭环极点及闭环增益值。

二、附录 基于MATLAB 的线性系统的频域分析的其它实例

例5.7 已知单位负反馈系统前向通道的传递函数为:

s

s 5s 10s 10s 5s 2

s 8s 12s 8s 2)s (G 2

3456234+++++++++= 试绘制出Bode 图并计算系统的频域性能指标。 程序及结果如下: num=[0 0 2 8 12 8 2];den=[1 5 10 10 5 1 0]; sys=tf(num,den);

[mag ,phase ,w]=bode(sys );

[gm ,pm,wcp,wcg]=margin(mag ,phase ,w); margin (mag,phase ,w ) kg=20*log (gm )

结果:gm=332。17, pm=38。692, wg=25.847, wc=1.249

例5。8 已知一带延迟因子的系统开环传函为:0.8s

-2

e )

3s (5s 10

)s (G ++=, 试求其有理传递函数的频率响应,同时在同一坐标中绘制以Pade 近似延迟因子式系统的Bode 图,并求此时系统的频域性能指标。

程序及结果如下: n1=[10 50];

d1=conv ([1 3],[1 3]); s1=tf(n1,d1);

w=logspace(—1,2);

[mag1,phase1]=bode(n1,d1,w ); [np ,dp ]=pade(0.8,4); %s1=tf(n1,d1)*tf (np ,dp); numt=conv (n1,np ); dent=conv (d1,dp ); s2=tf (numt ,dent );

[mag2,phase2]=bode(numt ,dent,w); subplot (211);

semilogx(w,20*log10(mag1),w,20*log10(mag2),’r -—');grid on title ('bode plot');

xlabel ('Frequency (rad /sec )'); ylabel (’Gain db’); subplot (212);grid

semilogx (w ,phase1,w ,phase2,'r ——’);grid on xlabel('Frequency (rad /sec )’); ylabel('Phase deg’);

[gm1,pm1,wcp1,wcg1]=margin (s1); [gm2,pm2,wcp2,wcg2]=margin (s2);

例5。9 已知知两个单位负反馈系统开环传递函数分别为:

s 4s 5s 7.2)s (G 231++=

,s

4s 5s 7

.2)s (G 2

32-+= 试用Bode 图法判断闭环系统的稳定性。 程序如下:

num1=[0 0 0 2。7]; den1=[1 5 4 0]; sys1=tf(num1,den1);

figure(1);hold on

[gm,pm,wcp,wcg]=margin(sys1);

margin(sys1);

title('对数频率特性图1');

xlabel('频率rad/sec');

ylabel(’Gain dB’);

num2=[0 0 0 2.7];

den2=[1 5 -4 0];

sys2=tf(num2,den2);

figure(2);

[gm,pm,wcp,wcg]=margin(sys2);

margin(sys2);

title(’对数频率特性图2');

xlabel('频率rad/sec');

ylabel('Gain dB');

结论:系统1稳定,系统2不稳定(Warning: The closed—loop system is unstable.)

利用Matlab进行频谱分析的方法

利用Matlab进行频谱分析的方法引言 频谱分析是信号处理和电子工程领域中一项重要的技术,用于分析信号在频率 域上的特征和频率成分。在实际应用中,频谱分析广泛应用于音频处理、图像处理、通信系统等领域。Matlab是一种强大的工具,可以提供许多功能用于频谱分析。 本文将介绍利用Matlab进行频谱分析的方法和一些常用的工具。 一、Matlab中的FFT函数 Matlab中的FFT(快速傅里叶变换)函数是一种常用的频谱分析工具。通过使 用FFT函数,我们可以将时域信号转换为频域信号,并得到信号的频谱特征。FFT 函数的使用方法如下: ``` Y = fft(X); ``` 其中,X是输入信号,Y是输出的频域信号。通过该函数,我们可以得到输入 信号的幅度谱和相位谱。 二、频谱图的绘制 在进行频谱分析时,频谱图是一种直观和易于理解的展示形式。Matlab中可以 使用plot函数绘制频谱图。首先,我们需要获取频域信号的幅度谱。然后,使用plot函数将频率与幅度谱进行绘制。下面是一个示例: ``` X = 1:1000; % 时间序列

Y = sin(2*pi*10*X) + sin(2*pi*50*X); % 输入信号 Fs = 1000; % 采样率 N = length(Y); % 信号长度 Y_FFT = abs(fft(Y)); % 计算频域信号的幅度谱 f = (0:N-1)*(Fs/N); % 频率坐标 plot(f, Y_FFT); ``` 通过上述代码,我们可以得到输入信号在频谱上的特征,并将其可视化为频谱图。 三、频谱分析的应用举例 频谱分析可以应用于许多实际问题中。下面将介绍两个常见的应用举例:语音 信号分析和图像处理。 1. 语音信号分析 语音信号分析是频谱分析的一个重要应用领域。通过对语音信号进行频谱分析,我们可以探索声波的频率特性和信号的频率成分。在Matlab中,可以使用wavread 函数读取音频文件,并进行频谱分析。下面是一个示例: ``` [waveform, Fs] = wavread('speech.wav'); % 读取音频文件 N = length(waveform); % 信号长度 waveform_FFT = abs(fft(waveform)); % 计算频域信号的幅度谱 f = (0:N-1)*(Fs/N); % 频率坐标

MATLAB进行控制系统频域分析

一、基于MATLAB 的线性系统的频域分析基本知识 (1)频率特性函数)(ωj G 。 设线性系统传递函数为: n n n n m m m m a s a s a s a b s b s b s b s G ++⋅⋅⋅++++⋅⋅⋅++=---1101110)( 则频率特性函数为: n n n n m m m m a j a j a j a b j b j b j b jw G ++⋅⋅⋅++++⋅⋅⋅++=---)()()()()()()(1101110ωωωωωω 由下面的MATLAB 语句可直接求出G(jw )。 i=sqrt (—1) % 求取—1的平方根 GW=polyval (num ,i*w )./polyval(den ,i*w ) 其中(num ,den )为系统的传递函数模型。而w 为频率点构成的向量,点右除(./)运算符表示操作元素点对点的运算.从数值运算的角度来看,上述算法在系统的极点附近精度不会很理想,甚至出现无穷大值,运算结果是一系列复数返回到变量GW 中。 (2)用MATLAB 作奈魁斯特图。 控制系统工具箱中提供了一个MATLAB 函数nyquist( ),该函数可以用来直接求解Nyquist 阵列或绘制奈氏图。当命令中不包含左端返回变量时,nyquist ()函数仅在屏幕上产生奈氏图,命令调用格式为: nyquist(num ,den) nyquist (num,den ,w) 或者 nyquist(G) nyquist(G,w ) 该命令将画出下列开环系统传递函数的奈氏曲线: ) ()()(s den s num s G = 如果用户给出频率向量w ,则w 包含了要分析的以弧度/秒表示的诸频率点。在这些频率点上,将对系统的频率响应进行计算,若没有指定的w 向量,则该函数自动选择频率向量进行计算。 w 包含了用户要分析的以弧度/秒表示的诸频率点,MATLAB 会自动计算这些点的频率响应。 当命令中包含了左端的返回变量时,即: [re,im ,w]=nyquist (G ) 或 [re ,im,w ]=nyquist (G ,w ) 函数运行后不在屏幕上产生图形,而是将计算结果返回到矩阵re 、im 和w 中。矩阵re

利用Matlab进行控制系统设计和分析

利用Matlab进行控制系统设计和分析 控制系统是各个工程领域中不可或缺的一部分。它可以用来控制机器人、飞行器、电机以及其他众多的实际工程应用。Matlab作为一种功能强大的数值计算软件,提供了丰富的工具和函数来进行控制系统设计和分析。本文将介绍如何利用Matlab来进行控制系统的设计和分析。 一、控制系统基本概念 在开始之前,我们先来了解一些控制系统的基本概念。控制系统由三个基本组成部分构成:输入、输出和反馈。输入是指信号或者指令,输出则是系统对指令的响应,而反馈则是输出信号对系统输入的影响。 二、Matlab中的控制系统工具箱 Matlab提供了专门用于控制系统设计和分析的工具箱。其中最重要的是Control System Toolbox。该工具箱中包含了一系列用于控制系统设计和分析的函数和工具。使用Control System Toolbox,我们可以很方便地进行控制系统的建模、设计和分析。 三、控制系统的建模 控制系统的建模是指将实际系统抽象为数学模型。在Matlab中,我们可以使用State Space模型、Transfer Function模型以及Zero-Pole-Gain模型来描述控制系统。 1. 状态空间模型 状态空间模型是一种常用的描述系统动态响应的方法。在Matlab中,我们可以使用stateSpace函数来创建状态空间模型。例如,我们可以通过以下方式创建一个简单的二阶状态空间模型:

A = [0 1; -1 -1]; B = [0; 1]; C = [1 0]; D = 0; sys = ss(A, B, C, D); 2. 传递函数模型 传递函数模型是另一种常用的描述系统动态响应的方法。在Matlab中,我们可以使用tf函数来创建传递函数模型。例如,我们可以通过以下方式创建一个简单的一阶传递函数模型: num = 1; den = [1 2]; sys = tf(num, den); 3. 零极点增益模型 零极点增益模型是用来描述系统频域特性的一种方法。在Matlab中,我们可以使用zpk函数来创建零极点增益模型。例如,我们可以通过以下方式创建一个简单的二阶零极点增益模型: z = [0; -1]; p = [-2; -3]; k = 1; sys = zpk(z, p, k); 四、控制系统的设计

基于MATLAB自动控制系统时域频域分析与仿真

基于MATLAB的自动控制系统时域频域分析与仿真 摘要 自动控制系统就是在无人直接操作或干预的条件下,通过控制装置使控制对象自动的按照给定的规律运行,使被控量按照给定的规律去变化的系统。在现代工业生产中,自动控制系统已经遍布每一个角落,对于线性时不变控制系统,可以通过时域、频域分析法来分析系统的性能,但是对于多输入多输出的控制系统,时域、频域分析已经无能为力,鉴于这样的控制系统,可以通过线性系统的状态空间分析法来分析。本文针对自动控制系统的设计很大程度上还依赖于实际系统的反复实验,结合具体的实例,介绍了利用先进的MATLAB软件对自动控制系统进行时域、频域分析与仿真和线性系统状态空间分析的方法,通过快速直观的仿真和分析达到自动控制系统的优化。 关键词:MATLAB 自动控制系统时域频域状态空间

ABSTRACT Automatic control system makes object operate according to a certain law automatically to let the controlled quantity change by given law on the condition that nobody operate and control directly. Automatic control system exists every corner of the world in the modern industrialized production, which can analyze the performance of the system by time domain and frequency domain for the linear time-invariant control systems. However, to the system with multiple inputs and multiple outputs, the way to analyze through time domain and frequency domain can not do anything . Due to the control system, it can analyze through linear system state space. Due to this point that the design of automatic control system largely depends on repeated practice and modification, combined with the concrete example,this paper introduces the ways to analyze and simulate the time domain and frequency domain and linear system state space of automatic control system by advanced MATLAB,it can reach the optimal of automatic control system by direct and fast. Key words: MATLAB Automatic control system Time domain Frequency domain State space

matlab 频域响应

matlab 频域响应 频域响应是指系统对不同频率的输入信号的响应特性。在信号处理和控制系统中,频域响应是一个重要的概念,用于描述系统对输入信号频率成分的处理能力和变化情况。在Matlab中,我们可以通过计算系统的频域响应来分析和设计系统的性能。 频域响应的计算常常涉及到傅里叶变换和频谱分析的方法。傅里叶变换是一种将时域信号转换为频域信号的数学工具,它可以将一个信号分解为一系列的正弦和余弦波的叠加。在Matlab中,我们可以使用fft函数来进行傅里叶变换的计算。通过傅里叶变换,我们可以得到系统在不同频率下的频谱信息,从而分析系统的频域响应。 频域响应可以通过系统的传递函数来计算。传递函数是描述系统输入与输出之间关系的数学表达式,它包含了系统的所有动态特性。在Matlab中,我们可以使用tf函数来创建传递函数对象,并使用freqresp函数来计算传递函数的频域响应。通过频域响应,我们可以得到系统在不同频率下的幅度响应和相位响应。 频域响应可以用来分析系统的稳定性和频率特性。在控制系统中,我们常常关注系统的稳定性和抗干扰能力。通过分析系统的频域响应,我们可以确定系统的稳定性边界和频率响应范围。对于滤波器设计和信号处理,频域响应可以用来分析滤波器的通带和阻带特性,从而实现信号的滤波和去噪。

在Matlab中,我们可以使用bode函数来绘制系统的频域响应曲线。bode函数可以同时绘制系统的幅度响应和相位响应曲线,直观地反映系统的频率特性。通过分析bode图,我们可以确定系统的增益边界、截止频率和相位裕度,从而评估系统的性能和稳定性。 除了分析系统的频域响应,我们还可以利用频域响应来设计系统。在控制系统中,我们常常需要根据要求来设计系统的控制器。通过分析系统的频域响应,我们可以确定系统的频率特性和动态响应要求,从而选择合适的控制器结构和参数。通过频域响应的设计方法,我们可以实现系统的性能优化和控制器的自动调整。 总结来说,频域响应是描述系统对不同频率输入信号响应能力的重要指标。在Matlab中,我们可以通过计算系统的频域响应来分析系统的性能和设计控制器。通过傅里叶变换和频谱分析的方法,我们可以得到系统的频谱信息,并通过传递函数的计算和bode图的绘制来分析系统的频率特性和稳定性。频域响应的分析和设计方法在信号处理和控制系统中具有重要的应用价值。

Matlab中的时间频域分析与信号解析技术

Matlab中的时间频域分析与信号解析技术 1. 引言 时间频域分析是一种用于研究和解释信号中频率和时间变化的技术。在信号处 理和通信领域,时间频域分析是一项重要的研究内容。而Matlab作为一个强大的 数学计算工具,提供了许多用于时间频域分析和信号解析的函数和工具包。本文将介绍一些Matlab中常用的时间频域分析技术和信号解析方法。 2. 傅里叶变换 傅里叶变换是时间频域分析中最基本且最重要的方法之一。它能够将时域信号 转换为频域信号,从而揭示信号中各个频率分量的强度和相位信息。在Matlab中,可以使用fft函数对信号进行傅里叶变换。 例如,我们有一个包含多个频率分量的信号s(t),可以使用下述代码对其进行 傅里叶变换: ```matlab s = sin(2*pi*10*t) + sin(2*pi*20*t) + sin(2*pi*30*t); % 生成一个包含10、20和 30 Hz频率分量的信号 Fs = 1000; % 采样率 t = 0:1/Fs:1-1/Fs; % 时间序列 Y = fft(s); % 对信号进行傅里叶变换 f = Fs*(0:(length(Y)/2))/length(Y); % 计算频率轴 plot(f, abs(Y(1:length(Y)/2))); % 绘制频谱图 xlabel('频率 (Hz)');

ylabel('幅度'); ``` 这段代码中,我们首先生成了一个包含10、20和30 Hz频率分量的信号s(t), 然后使用fft函数对信号进行傅里叶变换得到频域表示Y。最后,通过计算频率轴f,并使用plot函数绘制出信号的频谱图。 3. 短时傅里叶变换 傅里叶变换对于稳态信号分析效果较好,但在非稳态信号分析中存在一些问题。为了解决这个问题,短时傅里叶变换(Short-Time Fourier Transform,简称STFT) 被提出。 STFT将信号分成小段,并对每一小段进行傅里叶变换。这样做可以得到信号 在时间和频率上的变化情况。在Matlab中,可以使用spectrogram函数实现STFT。 以下是一个使用spectrogram函数进行STFT分析的示例代码: ```matlab s = sin(2*pi*10*t) + sin(2*pi*20*t) + sin(2*pi*30*t); % 生成一个包含10、20和 30 Hz频率分量的信号 Fs = 1000; % 采样率 t = 0:1/Fs:1-1/Fs; % 时间序列 spectrogram(s, 256, 250, [], Fs, 'yaxis'); % 计算并绘制STFT谱图 xlabel('时间 (s)'); ylabel('频率 (Hz)'); ```

使用Matlab进行控制系统设计与分析

使用Matlab进行控制系统设计与分析引言: 控制系统是现代工程和科学中一个非常重要的领域。它涉及到将输入信号转换成所需的输出信号,以实现预期的目标。在控制系统的设计和分析过程中,Matlab 是一个强大而常用的工具。本文将介绍如何使用Matlab进行控制系统的设计和分析。 一、控制系统基础 1.1 控制系统的定义和组成 控制系统是由输入、输出、控制器和被控制对象组成的。输入是控制系统接收的信号,输出是控制系统生成的信号,控制器是控制系统中用于处理输入信号的设备,被控制对象是受到控制器控制的设备或系统。 1.2 控制系统的类型 控制系统可以分为开环控制和闭环控制。开环控制是指输出不会影响输入的控制方式,闭环控制是指输出会影响输入的控制方式。闭环控制系统具有更好的稳定性和鲁棒性,因此在实际应用中被广泛采用。 二、Matlab在控制系统设计中的应用 2.1 建立系统模型 在控制系统设计和分析过程中,首先需要建立控制系统的数学模型。Matlab提供了丰富的工具和函数来建立系统模型,比如利用传递函数、状态空间模型或者差分方程描述系统。可以使用tf函数、ss函数或者zpk函数来建立模型。 2.2 控制系统设计

在控制系统设计中,我们常常需要设计一个控制器来实现系统的期望响应。Matlab提供了多种控制器设计方法,比如经典控制设计方法和现代控制设计方法。可以使用pid函数、lqr函数、kalman函数等来设计控制器,根据系统的需求选择 合适的方法。 2.3 系统响应分析 控制系统设计完成后,需要进行系统响应分析来评估系统的性能。Matlab提供 了丰富的信号处理和分析函数来分析系统的时域响应、频域响应和稳定性。比如可以使用step函数、bode函数和pzmap函数来绘制系统的步响应、频率响应和零极 点图。 三、示例:温度控制系统设计与分析 为了更好地说明Matlab在控制系统设计与分析中的应用,接下来将以一个温 度控制系统为例进行说明。 3.1 系统建模 假设我们需要设计一个用于维持房间温度的温度控制系统。可以建立如下的传 递函数模型来描述该系统: G(s) = 1 / (s + 1) 使用Matlab中的tf函数可以轻松地建立这个模型: G = tf([1], [1 1]) 3.2 控制器设计 为了实现系统的期望响应,我们需要设计一个合适的控制器。这里我们选择 PID控制器,并使用Matlab中的pid函数进行设计。比如我们可以选择PID参数为Kp=1, Ki=0.5, Kd=0.2,代码如下: Kp = 1;

matlab频域分析实验报告

matlab频域分析实验报告 Matlab频域分析实验报告 引言 频域分析是信号处理领域中的重要内容,它能够帮助我们理解信号在频域上的特性和行为。而Matlab作为一款强大的数学计算软件,可以帮助我们进行频域分析,并且提供了丰富的工具和函数来实现这一目的。本实验报告将介绍使用Matlab进行频域分析的方法和步骤,并通过实验数据展示其应用效果。 实验目的 本实验旨在通过Matlab软件进行频域分析,掌握信号在频域上的特性和行为,了解频域分析在实际应用中的重要性和价值。 实验内容 1. 信号生成:首先,我们使用Matlab生成一个具有特定频率和幅度的信号,以便进行后续的频域分析。 2. 时域分析:接下来,我们将对生成的信号进行时域分析,包括波形图和功率谱密度图的绘制,以便了解信号在时域上的特性。 3. 频域分析:然后,我们将使用Matlab提供的FFT函数对信号进行频域分析,得到信号在频域上的频谱图,并分析其频率成分和能量分布情况。 4. 频率响应:最后,我们将对信号进行频率响应分析,通过滤波器设计和频率域滤波来改变信号的频域特性,并观察其对信号的影响。 实验结果 通过以上实验步骤,我们得到了生成信号的波形图和功率谱密度图,以及信号的频谱图和频率响应分析结果。通过对这些结果的分析,我们可以清晰地了解

信号在时域和频域上的特性和行为,以及频率响应对信号的影响。 结论 本实验通过Matlab频域分析工具,帮助我们深入了解信号在频域上的特性和行为,为我们进一步应用频域分析提供了重要的参考和指导。同时,Matlab的强大功能和丰富的工具库,为频域分析提供了便利和支持,使得我们能够更加高效地进行信号处理和分析工作。因此,频域分析在实际应用中具有重要的意义和价值。 总结 通过本实验,我们深入了解了Matlab频域分析的方法和步骤,以及其在实际应用中的重要性和价值。频域分析对于理解信号的特性和行为具有重要意义,而Matlab作为一款强大的数学计算软件,为我们提供了丰富的工具和函数来实现频域分析,从而帮助我们更好地进行信号处理和分析工作。希望本实验报告能够对读者有所启发,引起对频域分析的兴趣和重视,为进一步深入研究和应用频域分析奠定基础。

基于MATLAB自动控制系统时域频域分析与仿真

基于MATLAB自动控制系统时域频域分析与仿真 MATLAB是一款强大的数学软件,也是自动控制系统设计的常用工具。它不仅可以进行时域分析和频域分析,还可以进行相关仿真实验。本文将 详细介绍MATLAB如何进行自动控制系统的时域和频域分析,以及如何进 行仿真实验。 一、时域分析 时域分析是指对系统的输入信号和输出信号进行时域上的观察和分析,以了解系统的动态特性和稳定性。MATLAB提供了一系列的时域分析工具,如时域响应分析、稳态分析和步骤响应分析等。 1.时域响应分析 通过时域响应分析,可以观察系统对于不同的输入信号的响应情况。 在MATLAB中,可以使用`lsim`函数进行系统的时域仿真。具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。 -定义输入信号。 - 使用`lsim`函数进行时域仿真,并绘制系统输出信号。 例如,假设我们有一个二阶传递函数模型,并且输入信号为一个单位 阶跃函数,可以通过以下代码进行时域仿真: ``` num = [1]; den = [1, 1, 1];

sys = tf(num, den); t=0:0.1:10; u = ones(size(t)); [y, t, x] = lsim(sys, u, t); plot(t, y) ``` 上述代码中,`num`和`den`分别表示系统的分子和分母多项式系数,`sys`表示系统模型,`t`表示时间序列,`u`表示输入信号,`y`表示输出信号。通过绘制输出信号与时间的关系,可以观察到系统的响应情况。 2.稳态分析 稳态分析用于研究系统在稳态下的性能指标,如稳态误差和稳态标准差。在MATLAB中,可以使用`step`函数进行稳态分析。具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。 - 使用`step`函数进行稳态分析,并绘制系统的阶跃响应曲线。 例如,假设我们有一个一阶传递函数模型,可以通过以下代码进行稳态分析: ``` num = [1]; den = [1, 1]; sys = tf(num, den);

控制系统设计与分析MATLAB

控制系统设计与分析MATLAB 1. 引言 控制系统是现代工程中的重要部分,它在各个领域中起着至关重要的作用。MATLAB (Matrix Laboratory) 是一种广泛应用于科学与工程计算的高级技术计算与模型设计与仿真软件。本文将介绍使用MATLAB进行控制系统的设计与分析的基本原理和方法。 2. 控制系统设计 2.1. 控制系统概述 控制系统主要由输入、输出和控制器组成。输入是指系统的外部输入信号,输出是系统产生的响应信号,而控制器则决定输出信号如何调整以使系统达到所需的性能指标。 2.2. 开环控制系统设计 开环控制系统是一种不考虑系统输出信号对控制器的影响的控制系统。在MATLAB中,可以使用控制系统工具箱进行开环控制系统的设计。首先,我们需要构建系统的传递函数模型,然后可以使用工具箱中的函数来设计控制器。 2.3. 闭环控制系统设计 闭环控制系统是一种通过系统输出信号反馈给控制器来调整输出信号的控制系统。在MATLAB中,可以使用控制系统工具箱进行闭环控制系统的设计。与开环控制系统类似,我们需要构建系统的传递函数模型,并使用工具箱中的函数设计控制器。不同的是,闭环系统设计中还需要考虑稳定性和性能指标。 2.4. 调整控制器参数 在控制系统设计过程中,控制器的参数调整对系统性能有很大影响。MATLAB 提供了多种方法来帮助我们调整控制器参数,例如PID调节器和根轨迹设计等。通过实时仿真和反馈,我们可以调整控制器参数以满足系统性能要求。 3. 控制系统分析 3.1. 系统响应分析 控制系统的性能可以通过分析系统的响应来评估。在MATLAB中,可以使用step函数、impulse函数和freqresp函数等来分析系统的阶跃响应、脉冲响应和

使用Matlab进行控制系统设计的基本步骤

使用Matlab进行控制系统设计的基本步骤 控制系统设计是一项重要的工程任务,它涉及到系统建模、控制器设计和系统 分析等方面。而Matlab作为一款强大的数学工具软件,提供了丰富的功能和工具,可以帮助工程师实现控制系统设计的各个环节。本文将介绍使用Matlab进行控制 系统设计的基本步骤。 一、系统建模 控制系统设计的第一个关键步骤是系统建模。系统建模是将实际的物理系统或 过程转化为数学方程的过程。Matlab提供了多种建模方法,可以根据实际需求选 择适合的方法。 1.1 时域建模 时域建模是一种基于微分方程和代数方程的建模方法,适合描述连续系统的动 态特性。可以使用Matlab的Simulink工具箱进行时域建模,通过拖拽模块和连接 线的方式,构建系统模型。 1.2 频域建模 频域建模是一种基于频率响应的建模方法,适合描述系统的幅频、相频特性。 可以使用Matlab的控制系统工具箱进行频域建模,通过输入系统的传递函数或状 态空间矩阵,得到系统的频域特性。 1.3 时频域建模 时频域建模是一种综合了时域和频域特性的建模方法,适合描述非线性和时变 系统。可以使用Matlab的Wavelet工具箱进行时频域建模,通过连续小波变换或 离散小波变换,得到系统的时频域特性。 二、控制器设计

在系统建模完成后,接下来是设计控制器。控制器设计的目标是使得系统具有所需的稳定性、响应速度和鲁棒性等性能。 2.1 经典控制器设计 Matlab提供了经典控制器的设计函数,如比例控制器(P控制器)、比例积分控制器(PI控制器)和比例积分微分控制器(PID控制器)等。可以根据系统的特性和性能要求,选择合适的控制器类型和调节参数。 2.2 线性二次调节器设计 线性二次调节(LQR)是一种优化控制方法,可以同时优化系统的稳态误差和控制能量消耗。在Matlab中,可以使用lqr函数进行LQR控制器的设计,通过调整权重矩阵来获得不同的控制性能。 2.3 非线性控制器设计 对于非线性系统,经典控制器往往无法满足要求。Matlab提供了非线性控制器的设计工具,如自适应控制器和模糊控制器等。可以根据系统的非线性特性,选择适合的非线性控制器并进行参数优化。 三、系统分析 控制器设计完成后,需要对系统进行分析,评估控制性能和稳定性。Matlab提供了多种方法和工具,可以对系统进行频域分析和时域分析。 3.1 频域分析 频域分析可以通过绘制系统的波特图、极点分布图和频率响应图等,来评估系统的稳定性和频率特性。Matlab的控制系统工具箱提供了bode和nyquist等函数,可以方便地进行频域分析。 3.2 时域分析

在MATLAB中使用频域方法进行信号分析

在MATLAB中使用频域方法进行信号分析 信号分析是一种用于探索信号特征、提取有用信息以及解决实际问题的方法。在信号分析中,频域方法是一种常用且有效的工具。频域方法通过将信号从时域转换为频域,可以更好地理解信号的频率特征和谱密度。 MATLAB是一款功能强大的数学计算和数据分析软件,在信号处理领域广泛应用。通过其丰富的函数库和强大的计算能力,我们可以使用多种频域方法进行信号分析。本文将介绍一些MATLAB中常用的频域方法,并展示如何使用这些方法进行信号分析。 第一部分:频域变换 频域变换是将时域信号转换为频域信号的过程。在MATLAB中,常用的频域变换方法包括傅里叶变换、快速傅里叶变换等。下面我们将详细介绍这些方法的原理和使用。 1. 傅里叶变换 傅里叶变换是频域分析的基础。它将信号表示为一组正弦和余弦波的和,可以将信号的时域特征转化为频域特征。在MATLAB中,可以使用fft函数进行傅里叶变换。 例如,我们有一段包含正弦信号的时域数据,可以使用fft函数计算其频域表示。代码如下: ```MATLAB t = 0:0.01:1; % 时间范围 f = 10; % 信号频率 x = sin(2*pi*f*t);

X = fft(x); ``` 通过上述代码,我们可以得到信号x的频谱表示X。可以使用plot函数绘制频谱图,代码如下: ```MATLAB f = (0:length(X)-1)/length(X)*Fs; % 频率范围 plot(f, abs(X)) ``` 上述代码中,我们计算了频率范围f,并使用abs函数计算频域信号的模。绘制得到的图形可以直观地显示信号的频率成分。 2. 快速傅里叶变换(FFT) 傅里叶变换是一种高效的频域变换方法,但是当信号长度较大时,计算复杂度较高。为了解决这个问题,快速傅里叶变换(FFT)被广泛应用。FFT算法通过分治策略将傅里叶变换的复杂度从O(n^2)降低到O(nlogn),大大提高了计算效率。 在MATLAB中,可以使用fft函数进行FFT计算。和上述傅里叶变换代码类似,只需要将fft函数替换为fft函数即可。 第二部分:频域滤波 频域滤波是一种常用的信号处理技术。它通过将信号转换到频域,对频域信号进行滤波操作,然后再将滤波后的信号转换回时域。频域滤波可以用于滤除噪声、增强信号以及去除不需要的频率成分。 1. 频域滤波器设计

matlab频域分析实验报告

Matlab频域分析实验报告 引言 频域分析是一种常用的信号处理技术,可以帮助我们理解信号的频率特性和频率成分。在本实验中,我们将使用Matlab进行频域分析,并通过实际的信号示例来说明其应用。 实验目标 本实验的目标是通过Matlab进行频域分析,了解信号的频率特性,并能够对信号进行频域滤波、谱估计和频域增强。 实验步骤 步骤一:加载信号数据 首先,我们需要加载信号数据。在Matlab中,我们可以使用load()函数来加载数据文件。假设我们的信号数据文件名为signal.mat,则可以使用以下代码进行加载: load('signal.mat'); 步骤二:绘制时域波形图 加载信号数据后,我们可以通过绘制时域波形图来观察信号的时域特性。可以使用plot()函数来绘制信号的时域波形图。以下是示例代码: plot(signal); xlabel('时间'); ylabel('信号幅度'); title('信号的时域波形图'); 步骤三:进行傅里叶变换 为了将信号转换到频域,我们需要进行傅里叶变换。在Matlab中,可以使用fft()函数对信号进行傅里叶变换。以下是示例代码: signal_freq = fft(signal); 步骤四:绘制频域幅度谱 进行傅里叶变换后,我们可以绘制信号的频域幅度谱来观察信号的频率特性。可以使用abs()函数来计算频域幅度,并使用plot()函数来绘制频域幅度谱图。以下是示例代码:

signal_freq_amp = abs(signal_freq); plot(signal_freq_amp); xlabel('频率'); ylabel('幅度'); title('信号的频域幅度谱'); 步骤五:频域滤波 频域分析不仅可以帮助我们观察信号的频率特性,还可以进行频域滤波。例如,我们可以通过在频域中将低幅度的频率成分设置为0来实现低通滤波。以下是示 例代码: signal_freq_filtered = signal_freq; % 设置频率成分的阈值 threshold = 10; % 将低幅度的频率成分设置为0 signal_freq_filtered(signal_freq_amp < threshold) = 0; 步骤六:进行逆傅里叶变换 频域滤波后,我们需要将信号转换回时域。可以使用ifft()函数进行逆傅里叶变换。以下是示例代码: signal_filtered = ifft(signal_freq_filtered); 步骤七:绘制滤波后的时域波形图 最后,我们可以绘制滤波后的信号的时域波形图来观察滤波效果。以下是示例 代码: plot(signal_filtered); xlabel('时间'); ylabel('信号幅度'); title('滤波后的信号的时域波形图'); 总结 通过本实验,我们了解了使用Matlab进行频域分析的基本步骤,并掌握了绘 制时域波形图、进行傅里叶变换、绘制频域幅度谱、频域滤波和逆傅里叶变换的方法。频域分析在信号处理中具有广泛的应用,可以帮助我们理解信号的频率特性,并进行信号增强、谱估计等操作。

MATLAB系统根轨迹和频域分析实验

实验三 MATLAB系统根轨迹和频域分析实验 一、实验目的 1.学习使用MATLAB求特征多项式的根,分析系统稳定性; 2.学习使用MATLAB由传递函数求零点和极点; 3.学习使用MATLAB绘制根轨迹; 4.掌握由根轨迹分析系统性能的方法; 5.学习使用MATLAB绘制Bode图和Nyquist图; 6.掌握使用Bode图和Nyquist图分析系统性能的方法。 二、实验仪器 计算机 三、实验内容 3.1 特征多项式求解 3.1.1直接求特征多项式的根 设P为特征多项式的系数矢量,用MATLAB函数roots( )可直接求出方程P=0在复数范围内的解,该函数的调用格式为: v=roots(p) 例二十三已知系统的特征多项式为: 特征方程的解可由下面的MATLAB命令得出: p=[1,0,3,2,1,1] v=roots(p) 结果显示: v =

0.3202+1.7042i 0.3202-1.7042i -0.7209 0.0402+0.6780i 0.0402-0.6780i 利用多项式求根函数roots( ),可方便的求出系统的零点和极点,然后根据零极点分析系统稳定性和其他性能。 3.1.2 由根创建多项式 如果已知多项式的因式分解式或特征根,可由MATLAB函数poly( )直接得出特征多项式系数矢量,其调用格式为:p=poly(v)。 如上题中: v =[0.3202+1.7042i;0.3202-1.7042i;-0.7209;0.0402+0.6780i; 0.0402-0.6780i]; p=poly(v) 结果显示: p=1.0000 -0.0000 3.0000 2.0000 1.0000 1.0000 由此可见,函数roots( )与函数poly( )互为逆运算。 3.1.3 多项式求值 在MALAB中通过函数polyval( )可求得多项式在给定点的值,该函数的调用格式为:polyval(p,v )。 对于上题中的p值,求取多项式在x点的值,可输入如下命令: p=[1,0,3,2,1,1]; x=1 polyval(p,x)

相关文档
相关文档 最新文档