仿真复习资料.docx
- 文档编号:8867782
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:18
- 大小:136.82KB
仿真复习资料.docx
《仿真复习资料.docx》由会员分享,可在线阅读,更多相关《仿真复习资料.docx(18页珍藏版)》请在冰点文库上搜索。
仿真复习资料
仿真复习资料
一,基本矩阵和函数的操作
1.已知x=[246] ,y=[135]
1)a=x+ya=3711加法
2)b=x*y’b=44y’表示矩阵的转置
3)c=x.*yc=21230直接相乘
4)d= x.^yd=2647776前者为底数后者为指数
5)e=conv(x,y)e=210283830代数式相乘(conv只能用于两个相乘,多了就要嵌套)
6)f=poly(x)f=1-1244-48(x-2)(x-2(x-6)的系数
7)g=roots(f) g=2.000;4.000;6.000求根
8)h=polyval(x,3)h=36赋值
9)m=polyder(x)m=44求导
10)x(5)=7x=24607第五项赋值为5,第四项自动为0
2.已知x=[246] ,y=[135] 多项式拟合。
>>x=[246];y=[135];
>>p=polyfit(x,y,3)3表示拟合的阶数
p=-0.02080.25000.08330
3,常用的函数
Sin(),cos(),tin(),cot(),esp(x)=
,sqrt(x)=
,a^b=
,abs(x)=|x|
asin(x)=arcsin(x),atant(),acos()
round(x):
四舍五入至最近整数
log(x):
以e为底的对数,log10(x)以10为底的对数
log2(x):
以2为底的对数,pow2(x):
2的指数
例如:
表示为y=sqrt(1-sin(x));
二,基本的二维画图指令
plot(x,y)表示y对x的函数图象;
subplot(m,n,p)表示将一个窗口分成m*n,取第p个窗口;
polar(x,y)表示在极坐标下y对x的函数图象;
semlilogx(x,y)表示x轴对数坐标图;
semlilogy(x,y)表示y轴对数坐标图;
loglog(x,y)表示x轴和y轴都为对数的坐标图;
plot(x1,y1,x2,y2)表示在同一坐标系下划两个图;
xlabel('')表示对x轴注解;
ylabel('')表示对y轴注解;
Title('')表示对当前图象的标题。
例如:
>>x=0:
0.01:
10;
>>y=sqrt(1-sin(x));
>>subplot(221);
>>plot(x,y);
>>title('正常坐标图');
>>subplot(222);
>>polar(x,y);
>>title('极坐标图');
>>subplot(223);
>>semilogx(x,y);
>>title('x轴对数坐标图');
>>subplot(224);
>>semilogy(x,y);
>>title('y轴对数坐标图');
图象见试题
三,矩阵的赋值和运算
函数zeros
格式B=zeros(n)%生成n×n全零阵
B=zeros(m,n)%生成m×n全零阵
B=zeros([mn])%生成m×n全零阵
B=zeros(size(A))%生成与矩阵A相同大小的全零阵
函数eye
格式Y=eye(n)%生成n×n单位阵
Y=eye(m,n)%生成m×n单位阵
Y=eye(size(A))%生成与矩阵A相同大小的单位阵
函数ones
格式Y=ones(n)%生成n×n全1阵
Y=ones(m,n)%生成m×n全1阵
Y=ones([mn])%生成m×n全1阵
Y=ones(size(A))%生成与矩阵A相同大小的全1阵
命令正态分布随机矩阵
函数randn
格式Y=randn(n)%生成n×n正态分布随机矩阵
Y=randn(m,n)%生成m×n正态分布随机矩阵
Y=randn([mn])%生成m×n正态分布随机矩阵
命令产生线性等分向量
函数linspace
格式y=linspace(a,b)%在(a,b)上产生100个线性等分点
y=linspace(a,b,n)%在(a,b)上产生n个线性等分点
函数logspace
格式y=logspace(a,b)%在(
)之间产生50个对数等分向量
y=logspace(a,b,n)
y=logspace(a,pi)
函数deconv
格式[q,r]=deconv(v,u)%多项式v除以多项式u,返回商多项式q和余多项式r。
矩阵的转置a=a’
格式d=det(X)%返回方阵X的多项式的值
函数trace
格式b=trace(A)%返回矩阵A的迹,即A的对角线元素之和。
格式k=rank(A)%求矩阵A的秩
函数diag
格式X=diag(v,k)%以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。
X=diag(v)%以v为主对角线元素,其余元素为0构成X。
v=diag(X,k)%抽取X的第k条对角线元素构成向量v。
k=0:
抽取主对角线元素;k>0:
抽取上方第k条对角线元素;k<0抽取下方第k条对角线元素。
v=diag(X)%抽取主对角线元素构成向量v。
格式B=rot90(A)%将矩阵A逆时针方向旋转90°
格式B=fliplr(A)%将矩阵A左右翻转
格式B=flipud(A)%将矩阵A上下翻转
四,系统的一些基本操作
1,传递函数,状态空间,零极点增益的基本操作
注意在以下表示中用num表示传递函数的分子,den表示传递函数的分母;a,b,c,d为状态空间表示,z,p,k为零极点增益。
如(s+1)/(s+2),num=[11],den=[12],从右往左为常数项到最高次的系数。
系统的表示
tf(num,den)表示以num为分子以den为分母的传递函数;
ss(a,b,c,d);zp(z,p,k);
不同表示之间的转化
[num,den]=ss2tf(a,b,c,d);将状态空间转化为传递函数;
[z,p,k]=ss2zp(a,b,c,d);将状态空间转化为零极点增益;
以下类似[a,b,c,d]=zp2ss(z,p,k);[num,den]=zp2tf(z,p,k);
[r,p,k]=residue(num,den)
[num,den]=residue(r,p,k)
2.系统之间的连接
先定义两个系统g1和g2,g1=tf(num1,den1);g2=ft(num2,den2);
串联[num,den]=series(g1,g2);或g=g1*g2;
并联[num,den]=paralle(g1,g2);
反馈[num,den]=feedback(g1,g2).
3,系统的仿真
先定义系统g=tf(num,den);或g=ss(a,b,c,d);或g=zp(z,p,k)
单位阶跃响应step(g);step(num,den);step(a,b,c,d).
4,根轨迹
先定义系统g=tf(num,den);或g=ss(a,b,c,d);或g=zp(z,p,k)
rlocus(g);rlocus(num,den);rlocus(a,b,c,d)
5,奈氏曲线
先定义系统g=tf(num,den);或g=ss(a,b,c,d);或g=zp(z,p,k)
nyquist(g);nyquist(num,den);nyquist(a,b,c,d)
6,波特图
先定义系统g=tf(num,den);或g=ss(a,b,c,d);或g=zp(z,p,k)
[m,p,w]=bode(g);或bode(num,den);
[mag,phase,wc,wg]=margin(g);或margin(num,den);
五,数值积分法仿真
一下程序中加粗加下划线的为需要变化的,其他的不变。
1,欧拉法
dy/dt=f(t,y),y(t0)=y0,y(k+1)=y(k)+hf(t(k),y(k)).
例题:
已知dy/dt=2t,y(0)=0,试用欧拉法进行仿真
h=0.01;Tf=10;t=0;
y=0;m=Tf/h;对y赋初值
fori=1:
m
y(i+1)=y(i)+h*2*t(i);y(i+1)=y(i)+h*f(t(i),y(i))
t=[t,t(i)+h];
end
plot(t,y);
grid
状态空间的欧拉仿真
a=[-14910;12-910;24-24-18];b=[2.8412]';c=[111];状态空间输入
x=[000]';y=0;u=100;t=0;y,u初始化值
h=0.01;Tf=10;m=Tf/h;
fori=1:
m
x=x+h*(a*x+b*u);
t=[t,t(i)+h];
y=[y,c*x];
end
plot(t,y);
grid
2,二阶龙格-库塔法仿真(还有一个例题见试卷,注意次仿真方法的表达式不唯一,注意看清题目)
y(k+1)=y(k)+h/2*(k1+k2),k1=f(t(k),y(k)),k2=f(t(k)+h,y(k)+hk1)
例题:
a=[-14,9,10;12,-9,10;24,-24,-18];
b=[2.8;4;12];
c=[1,1,1];
x=[0;0;0];Tf=10;h=0.01;
u=100;t=0;m=Tf/h;y=0;
fori=1:
m
k1=a*x+b*u;
k2=a*(x+h*k1)+b*u;
x=x+h*(k1+k2)/2;
y=[y,c*x];
t=[t,t(i)+h];
end
plot(t,y);
Grid
3,四阶龙格-库塔法仿真
a=[-14,9,10;12,-9,10;24,-24,-18];
b=[2.8;4;12];c=[1,1,1];d=0;
x=[0;0;0];tf=10;h=0.01;t=0;
u=100;m=tf/h;y=0;
fori=1:
m
k1=a*x+b*u;
k2=a*(x+h*k1/2)+b*u;
k3=a*(x+h*k2/2)+b*u;
k4=a*(x+h*k3)+b*u;
x=x+h*(k1+2*k2+2*k3+k4)/6;
y=[y,c*x];
t=[t,t(i)+h];
end
plot(t,y);
grid
六,可控标准型的状态空间参数
已知传递函数为:
,编写程序求其可控标准型的状态空间参数A,B,C,D。
>>a=[302];
>>b=[3521];(分子和分母的输入)
>>b=b/a
(1);a=a/a
(1);
>>n=length(a)-1;
>>A=a(2:
n+1);
>>A=[rot90(rot90(eye(n-1,n)));-fliplr(A)]
>>B=[zeros(1,n-1),1]'
>>m1=length(b);
>>C=[fliplr(b),zeros(1,n-m1)]
七,面向数字结构图的数字仿真
1..典型闭环系统仿真实现
1.输入数据
a=[a0,a1,…,an];
b=[b0,b1,…,bm];
X=[0,0,…,0]’;(n-1个)
V=v0;
T0=0;Tf=10;
h=0.01;
R=r;
y=0;t=T0;
2.闭环系数矩阵
b=b/a
(1);a=a/a
(1);n=length(a)-1;
A=a(2:
n+1);
A=[rot90(rot90(eye(n-1,n)));
-fliplr(A)];
B=[zeros(1,n-1),1]’;
m1=length(b);
C=[fliplr(b),zeros(1,n-m1)];
Ab=A-B*C*V;
3.运用四阶龙格-库塔公式求解
N=round((Tf-T0)/h);
fori=1:
N
k1=Ab*X+B*R;
k2=Ab*(X+h*k1/2)+B*R;
k3=Ab*(X+h*k2/2)+B*R;
k4=Ab*(X+h*k3)+B*R;
X=X+h*(k1+2*k2+2*k3+k4)/6;
y=[y,C*X];
t=[t,t(i)+h];
end
plot(t,y);
grid
2.,复杂联接的闭环系统数字仿真
例已知系统结构图如下图所示,写出系统联结矩阵和输入联结矩阵。
wo,wc,w.
注意:
方框中每个都为传递函数,而不是数值
还有一个例题见试卷最后一题。
八,系统校正
1,某系统开环传函如右,求它的幅值裕量和相位裕量,并求闭环阶跃响应。
num=3.5;den=[1232];
G=tf(num,den);
bode(G);grid;
[Gm,Pm,Wcg,Wcp]=margin(G)
G_close=feedback(G,1);
step(G_close)
2,已知系统开环传递函数如下,绘出伯德图,并讨论其稳定性
>>k=1.5;num=1;
den=poly([0,-1,-2]);
w=logspace(-1,1,100);
[m,p]=bode(k*num,den,w);
subplot(2,1,1);
semilogx(w,20*log10(m));
grid;
ylabel('增益(dB)');
subplot(2,1,2);semilogx(w,p);
grid;
xlabel('频率(rad/s)');
ylabel('相角(deg)');
3,超前校正
k0=1000;要求43 做原系统的Bode图与阶跃响应曲线,检查是否满足题目要求 k0=1000;num=1; den=conv(conv([1,0],[0.1,1]),[0.001,1]); figure (1); margin(k0*num,den);holdon figure (2);s1=tf(k0*num,den); sys=feedback(s1,1);step(sys);holdon 求超前校正器的传递函数 >>k0=1000;num=1; den=conv(conv([1,0],[0.1,1]),[0.001,1]); g0=tf(k0*num,den); [m,p,w]=bode(g0); [gm0,pm0,wcg0,wcp0]=margin(g0); r=45; gama=r-pm0+5; gama=gama*pi/180; a=(1+sin(gama))/(1-sin(gama)); wc=spline(m,w,1/sqrt(a)); T=1/(wc*sqrt(a)); gc=tf([a*T,1],[T,1]) 校验系统校正后是否满足题目要求。 >>g=g0*gc; >>figure (1); >>margin(g); 计算系统校正后阶跃响应曲线和性能指标。 >>sys=feedback(g,1); >>figure(3); >>step(sys); 4,滞后校正 k0=30;r>40;wc>2.3 做原系统的Bode图与阶跃响应曲线,检查是否满足题目要求 >>k0=30;n1=1; >>d1=conv(conv([1,0],[0.1,1]),[0.2,1]); >>s1=tf(k0*n1,d1); >>figure (1);margin(s1);holdon >>figure (2);sys=feedback(s1,1);step(sys) 滞后校正器的传递函数。 根据题目要求,wc>2.3 >>wc=2.3; >>na=polyval(k0*n1,j*wc); >>da=polyval(d1,j*wc); >>g=abs(na/da); >>T=1/(0.1*wc); >>bt=g*T; >>Gc=tf([T,1],[bt,1]) 校验系统校正后是否满足题目要求。 >>s1=tf(k0*n1,d1); >>s=s1*Gc; >>sys=feedback(s,1); >>step(sys); 方法二(运用给定的r=40) >>k=30;num=1; den=conv(conv([1,0],[0.1,1]),[0.2,1]); g0=tf(k*num,den); figure (1);margin(g0);holdon [m0,p0,wcg0,wcp0]=margin(g0); [m,p,w]=bode(g0); r=40; gama=-180+r+10; wc=spline(p,w,gama); b=spline(p,m,gama); t=10/wc; gc=tf([t,1],[b*t,1]); g=g0*gc; figure (1);margin(g); 5.滞后-超前校正 k0=10;r>45;wc>1.5 做原系统的Bode图与阶跃响应曲线,检查是否满足题目要求。 >>k0=20;num=1; >>den=conv(conv([1,0],[1,1]),[1,2]); >>g0=tf(k0*n1,d1); >>[mag,phase,w]=bode(g0); >>figure (1);margin(g0);holdon >>figure (2);sys=feedback(g0,1);step(sys) 求滞后校正器的传递函数 >>wc=1.5;beta=9.5;T=1/(0.1*wc);(bata一般取10或9.5) >>betat=beta*T;Gc1=tf([T,1],[betat,1]) 求超前校正器的传递函数 sope=g0*Gc1; gama=45;(r的取值) gamal=gama+5; gam=gamal*pi/180; alfa=(1-sin(gam))/(1+sin(gam)); wc=1.5; T=1/(wc*sqrt(alfa)); alfat=alfa*T; Gc=tf([T,1],[alfat,1]) 校验系统校正后是否满足题目要求 s=g0*Gc1*Gc; margin(s); 作出系统校正后阶跃响应曲线 sys=feedback(s,1); >>step(sys) 方法2 >>k=20;num=1; >>den=conv(conv([1,0],[1,1]),[1,2]); >>g0=tf(k*num,den); >>figure (1);margin(g0);holdon >>figure (2);sys=feedback(g0,1); >>step(sys); >>[m0,p0,wcg0,wcp0]=margin(g0); >>wc=wcg0; >>t2=10/wc; >>b=10;(b取10或9.5) >>t1=b*m0/wc; >>gc1=tf([t1,1],[t1/b,1]); >>gc2=tf([t2,1],[b*t2,1]); >>gc=gc1*gc2; >>g=g0*gc; >>figure (1);margin(g); >>sys=feedback(g,1); >>figure(3);step(sys); 其外还有一个滞后-超前校正的例题见试题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仿真 复习资料