自控常用MATLAB工具函数

1.建立模型
s=tf(‘s’)
G=1/(s+1)
sys=tf(num,den,…); 生成传递函数模型;
sys=zpk(z,p,k,…); 生成零极点增益模型;
sys=ss(a,b,c,d,…); 生成状态空间模型;
已知二阶系统的自然频率和阻尼比,建立传递函数:
[num,den]=ord2(1,0.5);
G=tf(num,den)
传递函数延迟
s=tf(‘s’);
G=1/(s+2)^3;
G.ioDelay=2
或: G=tf(1,[1 2 3],‘iodelay’,0.5);
2.模型之间的转换
Gtf=tf(sys)
Gss=ss(sys)
Gzpk=zpk(sys)
或者
[A,B,C,D] = tf2ss(num,den)
[num,den] = ss2tf(A,B,C,D)
[z,p,K] = ss2zp(A,B,C,D,iu) %iu为输入个数
[A,B,C,D] = zp2ss(z,p,K)
[z,p,K] = tf2zp(num,den)
[num,den] = zp2tf(z,p,K)
3.模型运算、数学运算
串联 sys = series(sys1,sys2)
并联 sys = parallel(sys1,sys2)
反馈 sys = feedback(sys0,H) %默认为负反馈
零极点对消 sys_min = minreal(sys)
求矩阵的逆: inv(A) 或 A^-1
求矩阵特征值 : [V,D]=eig(A)
一些常用操作:
变量替换
syms x s;
F=x5+3*x4+4x3+2*x2+3x+6;
subs(F,x,(s-1)/(s+1))

4.获取系统参数、数据、零极点、根轨迹
[num,den]=tfdata(sys)
[z p k]=zpkdata(sys)
[A B C D]=ssdata(sys)
求系统的阻尼和自然频率:
damp(H)
在这里插入图片描述
5.时域响应
impulse(sys);单位脉冲响应
step(sys);单位阶跃响应
任意输入下的响应:
创建输入信号
[u,t]=gensig(‘type’,tau); %按照指定的类型typetypetype和周期tautautau生成特定类型的激励信号uuu,其中typetypetype可以选择sinsinsin(正弦)、squaresquaresquare(方波)、pulsepulsepulse(脉冲);
lsim(sys,u,T);LTI模型的任意输入响应函数,计算线性时不变系统syssyssys在任意输入uuu持续时间TTT的作用下的输出yyy,只返回图形。
简单的使用方法如下
[u,t]=gensig(‘square’,6,12,0.1);
plot(t,u,’-.’);hold on;
sys=tf([1 1],[1 2 5]);
lsim(sys,u,t)
6.频域分析
在这里插入图片描述
7.状态空间分析
可控性分析
Co=ctrb(sys); 或Co=ctrb(A,B);
求系统的可控性矩阵Co,若Co满秩则系统可控
可观性分析
Ob=obsv(sys); 或Ob=obsv(A,C);%求系统的可观性矩阵Ob,若Ob满秩则系统可观
线性变换、非奇异变换、坐标变换
通用相似变换函数ss2ss()
syst=ss2ss(sys,T);
%通过非奇异变换矩阵TTT,把状态变量xxx变成z=Txz=Txz=Tx,变换后的状态空间模型systsystsyst为:
在这里插入图片描述
Jordan标准型:
G=ss(A,B,C,D,‘InputDelay’,0.3,‘OutputDelay’,0.5)
[G1,T]=canon(G,‘modal’)
可控性分解
[Abar,Bbar,Cbar,T,k]=ctrbf(A,B,C)
把系统分解可控和不可控两部分。
可观性分解
[Abar,Bbar,Cbar,T,k]=obsvf(A,B,C)
把系统分解为可观和不可观两部分。
8.控制器设计
8.1极点配置
在这里插入图片描述
8.2鲁棒控制
鲁棒控制工具箱
Matlab 提供了很多 H∞设计函数,与 H∞设计相关的几个重要的工具箱有:
Control System Toolbox,mu-Analysis and Synthesis Toolbox(mu-tools),Robust
Control Toolbox(RCT)和 LMI Control Toolbox 。Matlab7.0 之后的版本中, LMI
和 mu-tools 都包含在 RCT v3.0.1 中,Matlab 7.0 之前的版本中这些工具箱是独立
的。
8.3最优控制
连续系统的lqr控制器设计
lqr(A,B,Q,R)

9.离散时间系统
1.连续变离散
[G,H] = c2d(A,B,Ts) %Ts是以秒为单位表示的采样周期
离散转连续: d2c(Gz)
离散传递函数
num=[6 -0.6 -0.12];
den=[1 -1 0.25 0.25 -0.125];
H=tf(num,den,‘Ts’,0.1)

  • 16
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值