计算机控制w平面转z平面,自动化专业(控制)常用MATLAB函数及实例

自动化专业(控制)常用MATLAB函数及实例

更新时间:2020/6/4 持续更新中……

常用指令

求根

求s 2 + 2 s + 2 = 0 s^2+2s+2 = 0s2+2s+2=0的根

c = [1 2 2];

r = roots(c)

曲线标注

legend是根据曲线绘画顺序进行标注的

legend('R = 0.8的单位圆',‘阻尼比ζ = 0.5’);

多项式通分

G s = 1 / ( s + 1 ) + s 2 / ( s + 1 ) Gs = 1/(s+1)+s^2/(s+1)Gs=1/(s+1)+s2/(s+1)通分后可得到s 2 + 1 s + 1 \frac{s^2+1}{s+1}s+1s2+1​

pretty(collect(Gs))

部分分式分解

r是留数,p是极点.

示例:r = [1 -1];p = [-0.5 1];k = 2表示1 s + 0.5 + − 1 s − 1 + 1 \frac{1}{s+0.5}+\frac{-1}{s-1}+1s+0.51​+s−1−1​+1

[r,p,k] = residue(num,den)

分子分母提取

Gs = 1/(s+1),提取后num = 1;den = s+1

[num,den] = numden(Gs)

自控原理

求系统特征值(求矩阵特征值)

F = [-1 0;0.4 1];

p = eig(F)

分子(分母)乘积

num1是s 2 + 2 s − 1 s^2+2s-1s2+2s−1的系数,num2是s − 1 s-1s−1的系数,num是( s 2 + 2 s − 1 ) ( s − 1 ) (s^2+2s-1)(s-1)(s2+2s−1)(s−1)的系数

num1 = [1 2 -1];num2 = [1 -1];

num = conv(num1,num2);

零极点绘制

pzmap(num,den)%continue system

zplane(n,d)%discrete system

根轨迹绘制

可用于z平面根轨迹绘制 ,也可用于s平面根轨迹绘制

rlocus(num,den)

rlocfind %可在根轨迹上选择某一点,得出增益和闭环极点

可控可观性判断

Sc = ctrb(A,B),r1 = rank(Sc)%可控性矩阵

So = obsv(A,C),r2 = rank(So)%可观性矩阵

极点配置

利用ackerman公式可求取状态反馈增益阵,观测器增益

状态反馈

K = acker(A,B,p)%continue system

K = acker(F,G,p)%discrete system

观测器

H = acker(A',C',p)%continus system

L = acker(F',C',p)%预测观测器

L = acker(F',(C*F)',p)%现今值观测器

L = acker(F22',F12',p)%降维观测器

传递函数与状态空间的转换

ss2tf、tf2ss

计算机控制系统

传递函数离散化

method有以下几种,z变换法(脉冲响应不变),向前差分法,向后差分法,带零阶保持器的z变换’zoh’,零极点匹配法‘matched’,双线性变换法‘tustin’,预修正双线性变换法‘prewarp’

z变换法(脉冲响应不变)

对传递函数G ( s ) = 1 s + 1 G(s) = \frac{1}{s+1}G(s)=s+11​进行z变换,先进行iLaplace变换成脉冲响应函数g(t),进行采样t = kT,对采样后序列可用ztrans函数进行z变换

syms k T;

Gs = 1/(s+1);

gkT = ilaplace(Gs,k*T);%T可以取为确定值

Gz = ztrans(gkT,z)

pretty(collect(Gz)) %通分结果

向前差分法、向后差分法

按照定义直接带入

syms T;%实际使用时可以带T计算,也可以给确定值

s = (z-1)/T; %向前差分

%s = (1-z^-1)/T; %向后差分

%s = (2/T)*(z-1)/(z+1); %双线性变换

Dz = (s*s+1)/(s*s+10.1*s+1);

pretty(collect(Dz))

c2dm、d2cm函数

c2dm :continue to discrete. d2cm: discrete to continue

采样时间T = 0.5

注意:使用‘matched’时候,要消除频谱混叠还应该在分子上乘一个( z + 1 ) (z+1)(z+1),此时需要进行静态增益匹配,即G ( s ) ∣ s → 0 = G ( z ) ∣ z → 1 G(s)|_s→_0 = G(z)|_z→_1G(s)∣s​→0​=G(z)∣z​→1​

[n,d] = c2dm(num,den,0.5,'zoh')

‘prewarp’

采样周期T = 0.5s,关键频率ω = 2 r a d / s \omega = 2 rad/sω=2rad/s

[n,d] = c2dm(num,den,0.5,'prewarp',2)

状态空间离散化c2d

采样周期T = 0.5s

A = [1 1;0 -1];B = [1;1];

[F,G] = c2d(A,B,0.5)

w’变换

进行w’平面控制器设计时,可利用d2cm函数用tustin变换将z平面变换到w’平面

[num,den] = d2cm(n,d,T,'tustin')

DSP

两个序列的线性卷积

输入为x(n),系统单位脉冲响应函数为h(n),则输出y(n) = x(n)*h(n)

x1 = [1 2 1];

x2 = [1 0 2];

y = conv(x1,x2)

矩形序列

生成一个长度为10的矩形序列

xn = ones(1,10)

快速傅里叶变换FFT

对序列x(n)进行DFT的快速算法,注意变换点数一般选2^n

fft_len = 2^10;

Xk = fft(xn,fft_len)

序列补零

xn = [xn zeros(1,8)];%补8个零

频率响应

freqz函数

单位脉冲响应

dimpulse、impulse函数

在这里插入代码片

离散系统单位脉冲响应

[h,n] = impz(b,a,N)

群延迟响应

grpdelay(num,den)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值