控制仿真Word格式文档下载.docx
- 文档编号:17203875
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:57
- 大小:44.66KB
控制仿真Word格式文档下载.docx
《控制仿真Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《控制仿真Word格式文档下载.docx(57页珍藏版)》请在冰豆网上搜索。
sys1=ss(a1,b1,c1,d1);
a2=[-5-3;
b2=[10]'
c2=[11];
d2=[0];
sys2=ss(a2,b2,c2,d2);
step(sys1,'
r-'
sys2,'
b-.'
);
7.3
脉冲响应
impulse(sys)
impulse(sys,t)
impulse(sys1,sys2,….sysn)
impulse(sys1,sys2,….sysn,t)
impulse(sys1,’plotstyle1’,sys2,’plotstyle2’,….,x0)
x]=impulse(sys,x0)
根据状态方程输出单一系统的脉冲响应
a=[-11-44-74-40;
1000;
0100;
0010];
b=[100
0]'
c=[00200];
d=[0];
10;
impulse(sys,t);
7.4
任意输入的时域响应曲线
1、产生输入信号
gensig
产生输入信号
[u
t]=gensig(type,tau)
t]=gensig(type,
tau,tf
ts)
Type—输入信号类型(sin正弦信号;
square方波信号;
pulse周期脉冲信号)
Tau—输入信号的周期
tf—信号的持续时间
ts—信号时间的步长
t]—输出信号历史记录
绘制正弦、方波、周期脉冲信号。
[u1t1]=gensig('
sin'
2*pi);
subplot(3,1,1);
plot(t1,u1,'
r'
axis([025-22]);
title('
sinwave'
[u2,t2]=gensig('
square'
5);
subplot(3,1,2);
plot(t2,u2,'
y'
axis([025-12]);
squarewave'
[u3t3]=gensig('
pulse'
subplot(3,1,3);
plot(t3,u3,'
b'
pulsewave'
2、任意输入信号的时域响应
lsim(sys,u,t)
lsim(sys,u,t,x0)
lsim(sys1,sys2,….sysn,u,t)
lsim(sys1,sys2,….sysn,u,t,x0)
lsim(sys1,’plotstyle1’,sys2,’plotstyle2’,….,u,t)
x]=lsim(sys,u,t,x0)
u
t—由gensig产生的信号历史记录
绘制正弦和方波输入信号作用于同一系统的响应曲线。
a=[-8-15;
b=[10]'
c=[500];
subplot(2,1,1);
lsim(sys,u1,t1);
subplot(2,1,2);
lsim(sys,u2,t2);
第六章控制系统建模
包括:
数字仿真算法、微分方程模型、传递函数模型、状态方程模型、模型转换、控制系统建模。
6.1控制系统的数学描述
6.1.1数学仿真算法
改进的欧拉法
龙格—库塔法
1、改进的欧拉法
(1)
数学含义:
对于一阶微分方程
假定y(0)=y0已给定,可求得t0处y(t0)的切线斜率f(t0,y0)和t1处的y(t1)切线斜率f(t1,y1),则改进的欧拉公式为:
其中:
(2)函数表达
[T
Y]=ode23(oedfun,tspan,y0)
Y]=ode23(oedfun,tspan,y0,options)
Y]=ode23(oedfun,tspan,y0,options,p1,p2,…)
使用改进欧拉法实现对微分方程求解。
Odefun输入函数
Tspan
时间间隔
y0初始矢量
options可选的odeset函数
p1
p2
可选参数
2、四阶龙格—库塔法
(1)数学含义
在tn-tn+1区间内,取不同的ti(i=1,…4)所对应的f(xi,yi)求加权平均值,作为该区间的斜率,则四阶龙格—库塔法公式:
[调用格式][T
Y]=ode45(oedfun,tspan,y0)
Y]=ode45(oedfun,tspan,y0,options)
Y]=ode45(oedfun,tspan,y0,options,p1,p2,…)
Odefun输入函数
6.1.2
微分方程模型
1、方法描述
微分方程模型是数学模型的一种主要形式。
当采用一阶微分方程的数值积分法进行数值计算时,应该把高阶微分方程变换成n个一阶微分方程形式。
对于微分方程而言,除了少数可以得到解析解外,大多数只能采用数值解法。
在RC低通滤波器电路中,电阻R=5,理想电压源Vi=20V,电容=70uf。
分析在电路元件电容的时域特性。
分析:
电容电压与电流关系:
根据基尔霍夫定律,得出微分方程:
利用ode函数时,必须对微分方程做以下假设:
functiondy=cir1(t,y)
vi=20;
r=5;
c=70e-06;
dy=zeros(1,1);
dy
(1)=(vi-y
(1))/(r*c);
[ty]=ode23(@cir1,[00.006],[0]);
plot(t,y(:
1));
vc-time'
xlabel('
time(sec)'
ylabel('
vc(v)'
6.1.3
传递函数模型(拉普拉斯变换与反变换)
1、范例分析:
对传递函数做幅频和相频曲线。
clf;
%分子系数
den=[3456];
%分母系数
[hw]=freqs(num,den);
%频率响应
amp=abs(h);
%幅值
semilogx(w,amp);
title('
amp'
%幅频曲线
ang=angle(h);
%相角
semilogx(w,ang);
angle'
%相频曲线
2、
传递函数的零点、极点、增益
方法描述
传递函数形式
转换为零点、极点、增益的形式:
其中,z为系统的零点
p极点
k增益
判断系统是否稳定:
极点有一个的实部是正数---系统不稳定
(所有极点实部都是负数---系统稳定)
[调用格式]
[z
p
k]=tf2zp(num,den)
num传递函数分子系数矢量
den传递函数分母系数矢量
(2)
范例分析
例1、
根据传递函数求解零点、极点、增益,并判断系统是否稳定。
num=[234];
den=[3456789];
[zpk]=tf2zp(num,den);
例2、根据传递函数求解零点、极点、增益,做幅频和相频曲线。
num=[0000234];
[h,w]=freqs(num,den);
amp-freq'
freq(rad)'
ang-freq'
ang'
3、
根据零点、增益、极点求传递函数
[num
den]=zp2tf(z,p,k)
k=2;
z=[-1-2]'
p=[-2+i*3-2-i*3-4-5]'
%zp转置必须用
[numden]=zp2tf(z,p,k);
4、
绘制零点、极点图
zplane(z,p)
zplane(num,den)
在零点、极点图中,极点用x表示,零点用o表示。
根据传递函数绘制零点、极点图。
num=[000143];
den=[118132498971780];
zplane(num,den);
5、
传递函数的部分分式展开
传递函数形式为
转换为部分分式展开形式
[r
p
k]=residue(num,den)
R部分分式留数矢量
p部分分式极点矢量
K部分分式常数矢量
num传递函数分子矢量
Den传递函数分母矢量
根据函数求解部分分式展开形式
den=[3456789];
[rpk]=residue(num,den);
6、
根据部分分式求解传递函数
den]=residue(r,p,k)
r=[123i*2-i*2]'
%转置可加,可不加
p=[1231+i1-i]'
%转置可加,可不加
k=[11];
[numden]=residue(r,p,k)
6.1.4
状态方程模型
1、
创建状态方程
sys=ss(a,b,c,d)
sys状态方程系统的名称
a矩阵的行数、列数相同,并与b矩阵的行数相同,与状态变量个数相同;
Cd矩阵的行数与输出变量的个数相同,列数与输入量的个数相同;
[abcd]=ssdata(sys)
Ssdata显示系统的状态矩阵
6.1.5
模型转换
传递函数与状态方程模型的转换
传递函数模型
[abcd]=tf2ss(num,den)
传递函数转换为状态方程模型
[numden]=ss2tf(a,b,c,d)
状态方程模型转换为传递函数
(3)
传递函数转换为状态方程
num=[001103130];
den=[1136515517472];
零点极点与状态方程模型的转换
零点极点增益模型
[abcd]=zp2ss(z,p,k)
零点极点转换为状态方程模型
[zpk]=ss2zp(a,b,c,d)
状态方程模型转换为零点极点
例1:
z=[-0.5-1];
p=[-1.5-2-3-4];
k=1.5;
[abcd]=zp2ss(z,p,k)
例2:
a=[-18-129-460-816-576;
10000;
01000;
00100;
00010];
b=[10000]'
c=[00132];
d=0;
6.1.6控制系统建模
控制系统建模包括系统模型串联(series)、并联(parallel)、反馈(feedback)、添加状态变量的输出(augstate)、构造多输入输出系统(append)、构造二阶系统的数学模型(ord2)。
模型串联
sys=series(sys1,sys2)
控制系统模型的创建函数
项目
函数
含义
Sys=tf(num,den)
创建传递函数
[numden]=tfdata(sys)
显示函数模型数据信息
传递函数零点、极点、增益模型
Sys=zpk(z,p,k)
创建零点、极点、增益模型
[zpk]=zpkdata(sys)
Sys=ss(abcd)
创建状态方程模型
实现两个传递函数模型的串联
num1=[0011];
den1=[192624];
sys1=tf(num1,den1);
num2=[0012];
den2=[192315];
sys2=tf(num2,den2);
sys=series(sys1,sys2);
[numden]=tfdata(sys);
[zpk]=zpkdata(sys);
[abcd]=ssdata(sys);
2、模型并联
sys=parallel(sys1,sys2)
实现两个传递函数模型的并联
z1=[-1];
p1=[-2-3];
k1=1;
sys1=zpk(z1,p1,k1);
z2=[-2];
p2=[-1-3-5];
k2=2;
sys2=zpk(z2,p2,k2);
sys=parallel(sys1,sys2);
[num,den]=ss2tf(a,b,c,d)
[zpk]=ss2zp(a,b,c,d)
3、模型反馈
sys=feedback(sys1,sys2)
实现两个控制系统模型负反馈互联
Sys=feedback(sys1,sys2,sign)
实现两个控制系统模型反馈互联,
sign=-1
表示负反馈互联
sign=1
表示正反馈互联
实现两个状态方程模型的反馈互联
c1=[12];
d1=0;
a2=[-4.5-4.5;
d2=0;
sys=feedback(sys1,sys2);
[abcd]=ssdata(sys);
4、添加状态变量的输出
(1)方法描述
已知状态方程模型
可以在输出中添加该状态方程的状态变量,由此得到的状态方程模型为:
其中
asys=augstate(sys)
Sys—输入控制系统模型
asys---添加状态变量后输出系统模型
(2)例:
实现状态方程模型的添加状态变量输出
a=[-1-3;
c=[12];
asys=augstate(sys);
[a1b1c1d1]=ssdata(asys);
5、构造多输入输出系统
已知单输入输出系统一状态模型为:
已知单输入输出系统二状态模型:
将两个单输入输出系统连接,组合成一个多输入输出系统,状态方程模型:
sys=append(sys1,sys2….sysn)
实现由两个单输入输出系统组合后的多输入输出系统。
a1=[-1-3;
a2=[-2-5;
c2=[13];
d2=[3];
sys=append(sys1,sys2);
6、构造两阶系统的数学模型
固有频率和阻尼因数是控制系统的两个重要参数,利用固有频率和阻尼因数可以构造控制系统的数学模型。
<
1>
使用固有频率和阻尼因数构造两阶系统状态方程模型
[abcd]=ord2(wn,z)
Wn—固有频率
z—阻尼因数
2>
使用固有频率和阻尼因数构造两阶系统传递函数模型
[numden]=ord2(wn,z)
3>
求解系统的固有频率和阻尼因数
[wnz]=damp(sys)
(2)例1:
a=[-7-12;
d=[1];
sys=ss(a,b,c,d);
[wnz]=damp(sys);
已知系统的固有频率和阻尼因数,求解状态方程和传递函数模型。
(wn=3
z=0.3)
wn=3;
z=0.3;
[abcd]=ord2(wn,z);
[numden]=ord2(wn,z);
7.1图形制作概述
步骤:
准备作图数据
选定作图窗口与作图区域
常用命令:
figure
plot
subplot
等
调入作图函数命令(用得最多的是plot)
设置图形格式
线形及标记
坐标轴范围、坐标轴标记、网格线
坐标轴标签、图例、文本等
输出所绘制的图形(1、3步必不可少,其他步骤有相应的默认格式)
7.2基本作图命令
1、单个图形窗口的创建与控制
figure(n)
n为窗口编号
[相关命令]
get(n)
获得第n个窗口属性
Set(n)
设置第n个窗口属性
hold
on
保持当前绘制窗口
off
释放当前绘制窗口
7-1做出函数y=sin(x)
在区间[0,10]上的图形。
h7.2.1.m
x0:
y=sin(x);
h=figure
(1);
plot(x,y);
get(h);
set(h,'
visible'
'
on'
holdon
holdoff
绘出函数y1=sin(x)
y2=sin(2x)在区间[0,10]上的图形
x=0:
y1=sin(x);
y2=sin(2*x);
figure,plot(x,y1,'
x,y2,'
)
y2=sin(2*x)'
legend('
y1=sin(x)'
2、多重子图窗口的创建
subplot(m,n,p)
subplot(mnp)
subplot(‘position’,[lbwh])
m—子图行数
n—子图列数
p—子图窗口序号
‘position’—subplot位置属性
[lbwh]分别为子图左下角、底部、宽度、高度的位置属性。
7-2在同一窗口、不同坐标系中做出y=sinx
y=sin2x
y=sin3x
y=sin4x
x在区间[0,2pi]的图形。
2*pi;
y3=sin(3*x);
y4=sin(4*x);
subplot(2,2,1);
plot(x,y1);
subplot(2,2,2);
plot(x,y2);
subplot(2,2,3);
plot(x,y3);
subplot(2,2,4);
plot(x,y4);
fori=1:
4
y(i,:
)=sin(i*x);
subplot(2,2,i);
plot(x,y(i,:
));
end
7.2.2
获取图像数据
读取图形窗口数据
[x,y]=ginput
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制 仿真
![提示](https://static.bdocx.com/images/bang_tan.gif)