自动控制常见MATLAB函数的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自动控制常见MATLAB 函数的应用
1、在matlab 中采用roots 函数求解多项式的根,采用conv 函数实
现多项式的积,相互连接的模块的模型求解也相当简单(1)、串联连接命令G=G1*G2(2)、并联连接命令G=G 1±G2(3)、反馈连接命令G=feedback (G1,G2,Sign )(sign 用来表示系统是正反馈或负反馈,sign=-1为负反馈)
例如:①
程序如下:
>>p=[1304];
>>roots(p)
ans =
-3.3553
0.1777+1.0773i
0.1777-1.0773i
②、用matlab 实现:
程序如下:
>>p=[321];q=[14];
>>n=conv(p,q)
n =
31494③、一个传递函数模型,可以由下面的命令输入:32()34p s s s =++2
()(321)(4)n s s s s =+++325()345
s G s
s s s +=+++
>>num=[15];den=[1345];
>>G=tf(num,den)
Transfer function:
s +5
---------------------
s^3+3s^2+4s +5
④、如下图所示,前向传递函数为G (S )
,反馈回路传递函数为H(S),利用feedback 计算系统的闭环传递函数
程序如下:
>>numg=[1];deng=[50000];
>>numh=[11];denh=[12];
>>[num,den]=feedback(numg,deng,numb,denh,-1);
>>[num,den]=feedback(numg,deng,numh,denh,-1);
>>G=tf(num,den)
()
R S −−−→
Transfer function:
s +2
--------------------------
500s^3+1000s^2+s +1
2、在matlab 中,可以轻松的求解系统的所有极点,从而判断其稳定性
例子:系统的传递函数为:用matlab 判断其稳定性,程序如下:
>>num=[1,7,24,24];
>>den=[1:9];
>>roots(den)
ans =
-1.2888+0.4477i
-1.2888-0.4477i
-0.7244+1.1370i
-0.7244-1.1370i
0.1364+1.3050i
0.1364-1.3050i
0.8767+0.8814i
0.8767-0.8814i
可见4个极点带有正实部,所以系统不稳定
3287653272424()2346789
S S S G S S S S S S S S +++=+++++++
3、MATLAB 中给出了一个函数step ()直接求取线性系统的阶跃
响应,该函数的调用方式如下:y=step (G,t )(G 为系统的传递函数,t 为要计算的点到所在时刻的值组成的时间向量,t 一般可以由t=0:dt :t_end 等步长地产生,t-end 为终值时间,而dt 为步长;y 为系统的输出量)
例子:系统的传递函数为:线性系统的稳态值可以通过dcgain ()来求得,impulse ()函数可以求出系统的脉冲响应
程序如下:>>num=[1,7,24,24];den=[1,10,35,50,24];
>>G=tf(num,den);
>>t=0:0.1:10;
>>y=step(G,t);
>>plot(t,y)
>>Y=dcgain(G)
Y =
1
>>hold on
>>y1=impulse(G,t);
>>plot(t,y1)
3272424()S S S G S +++=++++
例子:控制精度变化时,系统的闭环传递函数为:
应用如下MATLAB 语言,可得到=10、=40、=80时的系统响应。可见,当
时,系统响应速度明显加快,但出现振荡
程序如下:
>>ka=80;
>>nf=[5000];df=[11000];
>>ng=[1];dg=[1200];>>[num,den]=series(ka*nf,df,ng,dg);
>>[n,d]=cloop(num,den);
>>t=[0:0.01:2];
>>y=step(n,d,t);
>>plot(t,y,'black'),grid
on
a k 123212()()5000()1()()1020200005000a a a a
k G S G S K s k G S G S s s s k φ==++++a k a k a k 80
a k =
4、用matlab绘制根轨迹
MTLAB中提供了rlocus()函数,用来绘制给定的根轨迹,该函数
的调用方式为:R=rlocus(G,K)
(G为系统的模型,
输入变量k为用户自己选择的增益,返回的变量R为根轨迹各点构成的复数矩阵)如果k值不给定,则该函数自动选择k,在这种情况下,调用格式为[,]()
R K r l o c u s G
这样产生的k值可以用来确定闭环系统稳定的增益范围
如果在函数调用中不返回任何参数,则将在图形窗口中自动绘制系统
根轨迹曲线Rlocus(G)