第一篇:中南大学化工原理仿真实验报告
化工原理计算机仿真实验
班级:化学工程与工艺1102班
姓名:王翔
学号:1505110321
日期:202_年1月1日
本套软件系统包括8个单元仿真实验:
实验一 离心泵性能的测试
实验二 管道阻力实验
实验三 传热实验
实验四 吸收实验
实验五 流体流动形态的观测
实验六 柏努利方程实验
实验七 干燥实验
实验八 精馏实验
以下是实验模拟观测过程和计算机生成的实验报告。
图1 离心泵性能的测试 观察气蚀现象(1)
图2 离心泵性能的测试 观察气蚀现象(2)
图3 离心泵性能的测试 离心泵特性曲线测定实验报告(1)
图4 离心泵性能的测试 离心泵特性曲线测定实验报告(2)
图5 离心泵性能的测试 离心泵特性曲线测定实验报告(3)
图6 离心泵性能的测试 离心泵特性曲线测定实验报告(4)
图7 管道阻力的测定实验报告(1)
图8 管道阻力的测定实验报告(2)
图9 管道阻力的测定实验报告(3)
图10 传热实验
图11 传热实验报告(1)
图12 传热实验报告(2)
图13 传热实验报告(3)
图14 传热实验报告(4)
图15 吸收实验 观察液泛现象
图16 吸收实验报告
图17 液体流动形态的观测 观察滞留形态
图18 液体流动形态的观测实验报告
图19 柏努利方程实验 观察测压孔与水流方向方位角与水位变化(1)
图20 柏努利方程实验 观察测压孔与水流方向方位角与水位变化(2)
图21 干燥实验报告(1)
图22 干燥实验报告(2)
图23 干燥实验报告(3)
图24 干燥实验报告(4)
图25 精馏实验 动态平衡调整
图26 精馏实验报告(1)
图27 精馏实验报告(2)
第二篇:中南大学系统仿真实验报告
ans =
实验一 MATLAB 中矩阵与多项式的基本运算 实验任务 1.了解 MATLAB 命令窗口和程序文件的调用。•熟悉如下 MATLAB 的基本运算:
① 矩阵的产生、数据的输入、相关元素的显示; ② 矩阵的加法、乘法、左除、右除; ③ 特殊矩阵:单位矩阵、“ 1 ”矩阵、“ 0 ”矩阵、对角阵、随机矩阵的产生和 运算; ④ 多项式的运算:多项式求根、多项式之间的乘除。
基本命令训练 1、>> eye(2)ans = 1 0 0 1 >> eye(4)ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 2、>> ones(2)1 1
ans =1 >> ones(4)ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> ones(2,2)ans = 1 1 1 1 >> ones(2,3)ans = 1 1 1 1 1 1 >> ones(4,3)ans = 1 1 1 1 1 1 1 1 1 1 1 1 3、>> zeros(2)
0 0 0 0 >> zeros(4)ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> zeros(2,2)ans = 0 0 0 0 >> zeros(2,3)ans = 0 0 0 0 0 0 >> zeros(3,2)ans = 0 0 0 0 00 4、随机阵 >> rand(2,3)ans = 0.2785 0.9575 0.1576 0.5469 0.9649 0.9706 >> rand(2,3)
ans = 0.9572 0.8003 0.4218 0.4854 0.1419 0.9157 5、>> diag(5)ans = 5 >> diag(5,5)ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> diag(2,3)ans = 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 6、(inv(A)为求 A 的逆矩阵)>> B=[5 3 1;2 3 8;1 1 1],inv(B)3 1
1
ans =
0.6250 0.2500-2.6250-0.7500-0.5000 4.7500 0.1250 0.2500-1.1250
>> A=[2 3;4 4],B=[5 3;3 8],inv(A),inv(B);AB,A/B,inv(A)*B,B*inv(A)A = 2 3 4 4 B = 5 3 3 8 ans =-1.0000 0.7500 1.0000-0.5000 ans =-2.7500 3.0000 3.5000-1.0000 ans = 0.2258 0.2903 0.6452 0.2581 ans =-2.7500 3.0000
3.5000 -1.0000 ans =-2.0000 2.2500 5.0000-1.7500 7、>> p =[1,-6,-72,-27], roots(p)p = 1-6-72-27 ans = 12.1229-5.7345-0.3884 >> p=[2,3,6],roots(p)p = 2 3 6 ans =-0.7500 + 1.5612i-0.7500-1.5612i 8、(A 为 n*n 的方阵)>> A=[0 1 0;-4 4 0;-2 1 2],poly(A),B=sym(A),poly(B)A = 0 1 0-4 4 0-2 1 2 ans =-6 12-8
B = [ 0, 1, 0] [-4, 4, 0] [-2, 1, 2]
ans = x A 3-6*x A 2+12*x-8 9,、(conv 是多项式相乘,deconv 是多项式相除)>> u=[1 2 4 6 ],v=[5 0 0-6 7],conv(u,v)u = 1 2 4 6 v =0 0-6 7
ans =10 20 24-5-10-8 42
>> v=[1 2 4 6 ],u=[5 0 0-6 7],deconv(u,v)v = 1 2 4 6 u = 5 0 0-6 7 ans = 5-10 10、(点乘是数组的运算,没有点的乘是矩阵运算)
>> a = [2 5;3 4], b =[3 1;4 7],a.*b,a*b a = 2 5 3 4 b = 3 1 4 7 ans = 6 5 12 28 ans = 26 37 25 31 >> a = [2 3];b = [4 7];a.*b = [8 21];a*b %错误 a*b“ = 29;11、(who 可以看到你用过的一些变量,来了)
>> who Your variables are: A B a ans b p u >> whos Name Size Bytes whos 是把该变量及所存储的大小等信息都显示出 Class Attributes 2x2 32 double
B 2x2 32 double a 1x2 16 double ans 1x2 16 double b 1x2 16 double p
1x3 24 double u 1x5 40 double v 1x4 32 double12、>> A=[2 5 3;6 5 4],disp(A),size(A),length(A)A = 2 5 3 6 5 4 2 5 3 6 5 4 ans = 2 3 ans = 3 实验二 MATLAB 绘图命令 实验任务 熟悉 MATLAB 基本绘图命令,掌握如下绘图方法:.坐标系的选择、图形的绘制;•图形注解(题目、标号、说明、分格线)的加入;3 •图形线型、符号、颜色的选取 基本命令训练 1、>>t=[0:pi/360:2*pi];x=cos(t)+ cos(t*4);y=si n(t)+ sin(t*4);xlabel(”x 轴“);ylabel(”y 轴“);plot(y,x),grid;2、>> t=0:0.1:100;x=3*t;y=4*t;z=si n(2*t);plot3(x,y,z, ”g:“)
■15 i 0 5 0 05 1 1 5 2
3、>>x = linspace(-2*pi,2*pi,40);y=si n(x);stairs(x,y)4、>> t=[0:pi/360:2*pi];x=cos(t)+ cos(t*4)+ sin(t*4);y=si n(t)+ si n(t*4);plot(y,x, ”r:“);
xlabel(”x 轴“);ylabel(”y 轴“);
6、>>th=[0:pi/20:2*pi];x=exp(j*th);plot(real(x),imag(x),”r-.“);grid;text(0,0,”中心“);
5、>> th=[0:pi/1000:2*pi]”;r=cos(2*th);polar(th,r);title(“四叶草图”)270 四叶草图
7、>>x=-2:0.01:2;8、y=-2:0.01:2;9、[X,Y] = meshgrid(x,y);Z = Y.*exp(-X.A 2-Y.A 2);[C,h] = con tour(X, YZ);set(h,“ShowText”,“o n”,“TextStep”,get(h,“LevelStep”)*2)_ 1OS •I ,5 2 ■n.s o o.s 8、>>x = 0:0.2:10;y = 2*x+3;subplot(411);plot(x,y);grid;title(“y 的原函数”);subplot(412);semilogy(x,y);grid;title(“对 y 取对数”);丫的原画数 40----------1------------------------------------------1--------------------1--------------------1-----------------------------------------1--------------------1-------------------1--------
l| I p | il ■ | i| I 九 _____ 1-___ — ___ I ____ L ___ :…… :
___ J _
_______ L ___ u i| I |l I , il _-■」 “ j I ■I __ h-_____________ I I ■ Q 」 【 I 1
F I I I I II I I IT 10 1
□ 1 2 3 4 5 6 r 6 9 10 , 对 y 取对数 对弋观对数 subplot(413);semilogx(x,y);10 10 id 10 1lZ 10 w 10 10 40 20 0 对好对数 •掌握循环、分支语句的编写,学会使用 look for、help 命令
grid;title(”对 x 取对数“);subplot(414);loglog(x,y);grid;title(”对 xy 均取对数“);9、>>x =-3:0.3:3;bar(x,exp(-x.*x),”g“)实验三 MATLAB 程序设计 实验任务 1 •熟悉 MATLAB 程序设计的方法和思路;
程序举例 1、>> f=[1,1];i=1;while f(i)+f(i+1)<1000 f(i+2)=f(i)+f(i+1);i=i+1;end f,i f = Columns 1 through 14 1 1 2 3 5 8 13 21 34 55 89 144 233 377 Columns 15 through 16 610 987 i = 15 2、>> m=3;n=4;for i=1:m for j=1:n a(i,j)=1/(i+j-1);end end format rat1/2 1/3 1/2 1/3 1/4 1/3 1/4 1/5(分数格式形式。用有理数逼近显示数据)>>m=5;n=4;for i=1:m for j=1:n a(i,j)=1/(i+j-1);end end format rat a a = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7 1/5 1/6 1/7 1/8 3、程序中没有 format rat 命令时,如果上次运行结果没有清除,输出的结果就是上次运行的 结果!但是运用 clear 命令清楚之前的运行结果之后就会正常运行。
4、>> x=input(”请输入 x 的值:’);if x==10 y=cos(x+1)+sqrt(x*x+1);else y=x*sqrt(x+sqrt(x));1/4 1/5 1/6
end y
请输入 x 的值 :2 y = 2391/647 x=input(“请输入 x 的值:’);if x==10 y= fprintf(” 不在定义域内,请重新输入:
“);return else y=1/(x-10);end y 请输入 x 的值 :2-1/8 5、>> p=[0 0 0 1 3 0 2 0 0 9];for i=1:length(p), if p(1)==0,p=p(2:length(p));end;end;p
p = Columns 1 through 5 3
0
0 Columns 6 through 7
0 9
>>p=[0 0 0 1 3 0 2 0 0 9];p(p==0)=[];p
p =3
6、>> e2(500)
ans =1 2 3 5 8 13 21 34 55 89 144 233
377 >> lookfor ffibno e2-ffibno 计算斐波那契亚数列的函数文件 >> help e2 ffibno 计算斐波那契亚数列的函数文件 n 可取任意自然数 程序如下(用法:
lookfor 关键词 在所有 M 文件中找 “关键词 ”,比如:
lookfor max(即寻找关键词 “ max”)
其实就和我们平时用 CTRL+F 来查找关键词”是一样的 而 help 是显示 matlab 内置的帮助信息 用法:
help 命令,比如 help inv,作用就是调用 inv 这个命令的帮助)
程序设计题 用一个 MATLAB 语言编写一个程序:输入一个自然数,判断它是否是素数,如果是,输出“ It is one prime ”,如果不是,输出“ It is n ot o ne prime.”。要求通 过调用子函数实现。
最好能具有如下功能:
①设计较好的人机对话界面,程序中 含有提示
性的输入输出语句。
②能实现循环操作,由操作者输入相关命令来控制 是否继续进行素数的判断。
如果操作者希望停止这种判断,则可以退出程序。
③ 如果所输入的自然数是一个合数,除了给出其不是素数的结论外,还应给出至少 一种其因数分解形式。例:输入 6,因为 6 不是素数。则程序中除了有“ It is not one prime ”的结论外,还应有:“ 6=2*3 ”的说明。
function sushu while 1 x=input(” 请输入一个自然数 “);if x<2 disp(” 既不是质数又不是合数 “);Else if isprime(x)==1 disp(” 这是一个素数 “);Else disp(” 这是一个合数,可以因式分解为:
“)for n=2:sqrt(x)if rem(x,n)==0 num3=x;num1=n;num2=x/n;disp([num2str(num3),”=“,num2str(num1),”x“,num2str(num2)])End End End
end y=input(” 是否继续判断?继续请按 1 ,按任意键退出 :
“); if y~=1 break end end 实验四 MATLAB 的符号计算与 SIMULINK 的使用 实验任务 1.掌握 MATLAB 符号计算的特点和常用基本命令;2.掌握 SIMULINK 的使用。
程序举例 1.求矩阵对应的行列式和特征根 >> a=sym(”[a11 a12;a21 a22]“);da=det(a)ea=eig(a)da = a11*a22-a12*a21 ea = 1/2*a11+1/2*a22+1/2*(a11 A 2-2*a11*a22+a22 A 2+4*a12*a21)A(1 /2)1/2*a11+1/2*a22-1/2*(a11 A 2-2*a11*a22+a22 A 2+4*a12*a21)A(1 /2)a=sym(”[2 3;1 5]“);
da=det(a)ea=eig(a)da = 7 ea = 7/2+1/2*21A(1/2)7/2-1/2*21A(1/2)2.求方程的解(包括精确解和一定精度的解)>> r1=solve(”xA2+x-1“)rv=vpa(r1)rv4=vpa(r1,4)
rv20=vpa(r1,20)r1 = 1/2*5 八(1/2)-1/2-1/2*5 八(1/2)-1/2 rv =.6894848260-1.689484826 rv4 =.6180-1.618 rv20 =.689484820-1.68948482 3 . a=sym(”a“);b=sym(”b“);c=sym(w=10;x=5;y=-8;z=11;A=[a,b;c,d] B=[w,x;y,z] det(A)det(B)A = [ a, b] ”c“);d=sym(”d“);%定义 4 个符号变量 %定义 4 个数值变量 %建立符号矩阵 A %建立数值矩阵 B %计算符号矩阵 A 的行列式 %计算数值矩阵 B 的行列式
[ c, d]
X
10-8 11 ans = a*d-b*c ans = 150 4.» syms x y;s=(-7*x A 2-8*y A 2)*(-x A 2+3*y A 2);expand(s)% 对 s 展开 collect(s,x)% 对 s 按变量 x 合并同类项(无同类项)
factor(ans)% 对 ans 分解因式
ans = 7*xA4-13*xA2*yA2-24*yA4 ans = 7*xA4-13*xA2*yA2-24*yA4 ans =(8*yA2+7*xA2)*(xA2-3*yA2)5.对方程 AX=b 求解 >> A=[34,8,4;3,34,3;3,6,8];b=[4;6;2];X=linsolve(A,b)% 调用 linsolve 函数求解 Ab % 用另一种方法求解
0.0675 0.1614
diff(f)%未指定求导变量和阶数,按缺省规则处理
0.1037 ans = 0.0675 0.1614 0.1037 6 . 对方程组求解 a11*x1+a12*x2+a13*x3=b1 a21*x1+a22*x2+a23*x3=b2 a31*x1+a32*x2+a33*x3=b3 >>syms a11 a12 a13 a21 a22 a23 a31 a32 a33 b1 b2 b3;A=[a11,a12,a13;a21,a22,a23;a31,a32,a33];b=[b1;b2;b3];XX=Ab %用左除运算求解(X=linsolve(A,b)%调用 linsolve 函数求的解)XX =(a12*a23*b3-a12*b2*a33+a13*a32*b2-a13*a22*b3+b1*a22*a33-b1*a32*a23)/(a11*a22*a33-a11*a32*a23-a12*a21*a33+a32*a21*a13-a22*a31*a13+a31*a12*a 23)-(a11*a23*b3-a11*b2*a33-a21*a13*b3-a23*a31*b1+b2*a31*a13+a21*b1*a33)/(a11*a22*a33-a11*a32*a23-a12*a21*a33+a32*a21*a13-a22*a31*a13+a31*a12* a23)(a32*a21*b1-a11*a32*b2+a11*a22*b3-a22*a31*b1-a12*a21*b3+a31*a12*b2)/(a11*a22*a33-a11*a32*a23-a12*a21*a33+a32*a21*a13-a22*a31*a13+a31*a12*a 23)7 . syms a b t x y z;f=sqrt(1+exp(x));
%求 f 对 x 的二阶导数 %求 f 对 x 的三阶导数 %按参数方程求导公式求 y 对 x 的导数 ans = 1/2/(1+exp(x))A(1/2)*exp(x)ans =-2*si n(x)-x*cos(x)ans =-3*cos(x)+x*si n(x)ans =-b*cos(t)/a/si n(t)三、SIMULINK 的使用
f=x*cos(x);diff(f,x,2)diff(f,x,3)f1=a*cos(t);f2=b*si n(t);diff(f2)/diff(f1)
diff(f)%未指定求导变量和阶数,按缺省规则处理
仿真图: 波形图: 其中: G i(R
0.14
实验五 MATLAB 在控制系统分析中的应用 实验任务 1.掌握 MATLAB 在控制系统时间响应分析中的应用;2.掌握 MATLAB 在系统根轨迹分析中的应用; 3.掌握 MATLAB 控制系统频率分析中的应用; 4.掌握 MATLAB 在控制系统稳定性分析中的应用 基本命令 1.step 2.impulse 3.in itial 4.Isim 5.rlocfi nd 6.bode 7.margin 8.nyquist 9.Nichols 10.cloop 程序举例 1.求下面系统的单位阶跃响应 1.5 G(s)
t >> num=[4];den=[1 , 1 , 4];step(num , den)[y , x , t]=step(num , den);tp=spli ne(y , t , max(y))% 计算峰值时间 max(y)% 计算峰值 tp = Step Response 0.5 Time(sec)p m 1.6062 ans = 1.4441 0.18 0.16
2.求如下系统的单位阶跃响应 X i 0 1 X i 0 u X 2 6 5 X 2 1
>> a=[0,1;-6,-5];b=[0;1];c=[1,0];d=0;[y,x]=step(a,b,c,d);Plot(y)
1,0 X i X 2 3.求下面系统的单位脉冲响应: G(s)儿 >> num=[4];den=[1 , 1 ,4];impulse(nu m,de n)Time(sec)Response to Initial Conditions 4.已知二阶系统的状态方程为: e u p m A 0.25 0.2 0.15 0.1 0.05 0-0.05
L I 1-
r
-厂、、/ Impulse Response
c=[1 , 0] ;
d=[0];xO=[1 ,0] ; subplot(1 , 2,1);in itial(a , b , c ,d,x0)subplot(1 , 2,2);impulse(a , b , c , d):系统传递函数为: G(s)占 输入正弦信号时,观察输出 信号的相位差。
>> num=[1];den=[1 ,1];t=0 : 0.01 : 10;u=s in(2*t);hold on plot(t,u, ”r“)lsim(nu m,de n,u,t)
Real Axis
6.有一二阶系统,求出周期为 4 秒的方波的输出响应 2s 2
5s 1 ~2 s 2s 3 >>num=[2 5 1];den=[1 2 3];t=(0:.1:10);period=4;u=(rem(t,period)>=period./2);% 看 rem 函数功能 lsim(nu m,de n,u,t);7.已知开环系统传递函数,绘制系统的根轨迹,并分析其稳定性
G(s)k(s 2)(s 2
4s 3)2
>>num=[1 2];den 仁 [1 4 3];den=conv(de n1,de n1);figure(1)-6 rlocus(num,den)[k,p]= rlocfi nd(nu m,de n)l L l ■ 匚一 L — C--------------------
---------
-r t r r
-10-8-6-4-2 4 6 Root Locus 0 2 2 2
0 0 2 2--CPXA vyanma n-8 2.5 G(s)Lin ear Simulati on Results1.5 e 0.5-0.5-1-1.5-2 Time(sec)p m
impulse response(k=55)
5
figure(2)k=55;num 仁 k*[1 2];den=[1 4 3];den 1=c onv(de n,den);[nu m,de n]=cloop(nu m1,de n1,-1);impulse(nu m,de n)title(”impulse resp onse(k=55)“)-1.5-1 0 200 400 600 Time(sec)800 1000 1200 5 5
0 05
0 0
o
--x 10 8!-------
impulse resp on se(k=56)figure(3)k=56;num 仁 k*[1 2];den=[1 4 3];den 1=c onv(de n,den);[nu m,de n]=cloop(nu m1,de n1,-1);impulse(nu m,de n)-2-4-6-8 L
0 500 1000 Time(sec)title(”impulse resp on se(k=56)“)1500 202_ 2500
Select a point in the graphics win dow selected_po int =-2.5924-0.0248i 0.7133-3.4160-2.5918-0.9961 + 0.4306i-0.9961-0.4306i Bode Diagram 8.作如下系统的 bode 图 G(s)>> n=[1 , 1];d=[1 , 4,11 , 7];bode(n , d),grid on Frequency(rad/sec)s 1 s 3
4s 2
11s 7 9.系统传函如下 G(s)s 1 0.5s e(s 2)3 求有理传函的频率响应,然后在同一张图上绘出以四阶伯德近似表示的系统频 率响应 >> num=[1];de n=co nv([1 2],co nv([1 2],[1 2]));
w=logspace(-1,2);t=0.5;
ylabel(”gai n“);subplot(2,1,2);semilogx(w,p1,w,p2,”g--“);grid on;xlabel(”freque ncy“);ylabel(”phase“);10.已知系统模型为
求它的幅值裕度和相角裕度 >> n=[3.5];d=[1 2 3 2];[Gm,Pm,Wcg,Wcp]=margi n(n,d)
G(s)3.5 s 3
2s 2
3s 2 bode plot [m1,p1]=bode(nu m,de n, 2);p1=p1-t*w”*180/pi;[n 2,d2]=pade(t,4);nu mt=c onv(n2,nu m);den t=(c onv(de n, d2));2 freque xlabel(“freque
Gm =
1.1433 Pm =
7.1688 Wcg =
1.7323 Wcp =
1.6541
nyq uist(n, d1);hold on nyq uist(n, d2);nyq uist(n, d3);nyq uist(n, d4);Nyquist Diagram 80 |--------------------
--------------------[--------------------[---------
11.二阶系统为: G(s)n s 2n S S 令 wn=1, 分别作出 E =2,1 , 0.707 , C A 5 y
a 时的 nyquist 曲线。
m >> n=[1];d 仁 [1 , 4,1];d2=[1 , 2 , 1] ; d3=[1 , 1.414,1];d4=[1,1,1];Nyquist Diagram Real Axis 12.已知系统的开环传递函数为
_一-”—一 一-一_一_ ~-60
005
S S
2)
S S32
S S
v vr ra an nk ky ya a
14.一多环系统,其结构图如下,使用 Nyquist 频率曲线判断系统的稳定性。
16.7s(0.85s 1)(0.25s 1)(0.0625s 1)绘制系统的 Nyqusit 图, 并讨论系统的稳定性.>> G=tf(1000,co nv([1,3,2],[1,5]));nyquist(G);axis(”square“)13.分别由 w 的自动变量和人工变量作下列系统的 nyquisF 曲线:
m
G(s)1 s(s 1)>> n=[1];d=[1 , 1 ,0];nyquist(n ,d);% 自动变量 n=[1];d=[1 , 1 ,0];w=[0.5 : 0.1 : 3];nyq uist(n , d , w);% 人工变量-2-1-1.5-0.9-0.8-0.7-0.6-0.5 Real Axis-0.4-0.3-0.2-0.1 5 5
--0 0
S SI IX XA A
u u^ ^a an nT T9 9a a
卩
G(s)
30 20 10 0
figure(2)[nu m2,de n2]=cloop(nu m,de n);impulse(nu m2,de n2);
>> k1=16.70.0125;z1=[0];p1=[-1.25-4-16];[nu m1,de n1]=zp2tf(z1,p1,k1);[nu m,de n]=cloop(nu m1,de n1);[z,p,k]=tf2zp(nu m,de n);p figure(1)nyq uist(nu m,de n)-2-1 Nyquist Diagram-0.5 0 0.5 Real Axis 1 1.5 1 0.5 s a 0 n g m-0.5-1-1.5 1.5 20 Impulse Resp onse-10.5969 +36.2148i-10.5969-36.2148i-0.0562 15.已知系统为: eanML—pm
-5-10-15 0 0.1 0.2 0.3 Time(sec)Nichols Chart 0.4 0.5 0.6-2 10 0 10 2
Open-Loop Phase(deg)Frequency(rad/sec)
G(s)s(s 1)作该系统的 nichols 曲线。
>> n=[1];d=[1 , 1 , 0];ni chols(n , d);16.已知系统的开环传递函数为: G(s)k s(s 1)(s 2)当 k=2 时,分别作 nichols 曲线和波特图 >> num=1;den=conv(co nv([1 0],[1 1]),[0.5 1]);subplot(1,2,1);ni chols(nu m,de n);grid;B
% n ichols 曲线 G subplot(1,2,2);2 g=tf(nu m,de n);bode(feedback(g,1,-1));grid;Nichols Chart koflr ea M^hnaaM
msuvesaB—
50
--
00
-270 Bode Diagram
90--
% 波特图 17.系统的开环传递函数为:
分别确定 k=2 和 k=10 时闭环系统的稳定性 >> d 仁 [1 , 3,2,0];n 仁 [2];[nc1 , dc1]=cloop(n1 , d1 ,-1);roots(dc1)d2=d1;n2=[10];[nc2 , dc2]=cloop(n2 , d2,-1);roots(dc2)ans =-2.5214-0.2393 + 0.8579i-0.2393-0.8579i ans =-3.3089 0.1545 + 1.7316i 0.1545-1.7316i 18.系统的状态方程为:
X 1 4 3 0 X 1 1 X 2 1 0 0 X 2 0 u X 3 0 1 0 X 3 0
X 1
y 0 1 2 x 2
X 3
G(s)k s(s 1)(s 2)
试确定系统的稳定性。
>> a=[-4,-3,0;1,0,0;0,1,0];b=[1;0;0];c=[0,1,2];d=0;eig(a)% 求特征根 ran k(ctrb(a,b))ans = 0-1-3 ans = 3 实验六连续系统数字仿真的基本算法 实验任务 1.理解欧拉法和龙格-库塔法的基本思想; 2 •理解数值积分算法的计算精度、速度、稳定性与步长的关系;程序举例 1.取 h=0.2 ,试分别用欧拉法、RK2 法和 RK4 法求解微分方程的数值解,并 比较计算精度。
注:解析解:y(t).1 2t >> clear t(1)=0 ; y(1)=1;y_euler(1)=1;y_rk2(1)=1;y_rk4(1)=1;h=0.001;% 步长修改为 0.001 for k=1:5 y(t)y(t)y(0)2t y(t)1
t(k+1)=t(k)+h;y(k+1)=sqrt(1+2*t(k+1));end for k=1:5 y_euler(k+1)=y_euler(k)+h*(y_euler(k)-2*t(k)/y_euler(k));end for k=1:5 k1= y_rk2(k)-2*t(k)/y_rk2(k);k2=(y_rk2(k)+h*k1)-2*(t(k)+h)/(y_rk2(k)+h*k1);y_rk2(k+1)=y_rk2(k)+h*(k1+k2)/2;end for k=1:5 k1= y_rk4(k)-2*t(k)/y_rk4(k);k2=(y_rk4(k)+h*k1/2)-2*(t(k)+h/2)/(y_rk4(k)+h*k1/2);k3=(y_rk4(k)+h*k22)-2*(t(k)+h/2)/(y_rk4(k)+h*k2/2);k4=(y_rk4(k)+h*k3)-2*(t(k)+h)/(y_rk4(k)+h*k3);
y_rk4(k+1)=y_rk4(k)+h*(k1+2*k2+2*k3+k4)/6;end disp(” 时间 解析解 yt=[t“, y”, y_euler“, y_rk2”, y_rk4“];disp(yt)欧拉法 RK2 法 RK4 法 ”)时间 解析解 欧拉法 RK2 法 RK4法0 1.0000 1.0000 1.0000 1.0000 0.0010 1.0010 1.0010 1.0010 1.0010 0.0020 1.0020 1.0020 1.0020 1.0020 0.0030 1.0030 1.0030 1.0030 1.0030 0.0040 1.0040 1.0040 1.0040 1.0040 0.0050 1.0050 1.0050 1.0050 1.0050
y(t)2Ry(t)y(t)0 在 0 t 10 上的数字仿真解(已知:
y(0)y(0)0),并将不同步长下的仿真结果与解析解进行精度比较。
说明:
已知该微分方程的解析解分别为:
100,yt y t 100cost(当 R 0)100e 2t c°s 仝 t 10 ^ e*s in 仝 t 2 3 2(当 R 0.5)采用 RK4 法进行计算,选择状态变量: 2.考虑如下二阶系统:
x 1 y x 2 y 则有如下状态空间模型及初值条件 x 1 x 2 x 1(0)100 x 2 x 1 2Rx 2 x 2(0)0 y x 1 采用 RK4 法进行计算。
>> clear h=input(“ 请输入步长 h=”);M=round(10/h);t(1)=0;y_0(1)=100;y_05(1)=100;和 y_05 分别对应于为 R=0 和 R=0.5)x1(1)=100;x2(1)=0;y_rk4_0(1)=x1(1);y_rk4_05(1)=x1(1);% 求解析解 for k=1:M t(k+1)=t(k)+h;y_0(k+1)=100*cos(t(k+1));y_05(k+1)=100*exp(-t(k+1)/2).*cos(sqrt(3)/2*t(k+1))+100*sqrt(3)/3*exp(-t(k+1)/2).*si n(sqrt(3)/2*t(k+1));end% 输入步长 % 置总计算步数 % 置自变量初值 % 置解析解的初始值(y_0 % 置状态向量初值 % 置数值解的初值
% 利用 RK4 法求解 % R=0 for k=1:M k11=x2(k);k12=-x1(k);k21=x2(k)+h*k12/2;k22=-(x1(k)+h*k11/2);k31=x2(k)+h*k22/2;k32=-(x1(k)+h*k21/2);k41=x2(k)+h*k32;k42=-(x1(k)+h*k31);x1(k+1)=x1(k)+h*(k11+2*k21+2*k31+k41)/6;x2(k+1)=x2(k)+h*(k12+2*k22+2*k32+k42)/6;y_rk4_0(k+1)=x1(k+1);end % R=0.5 for k=1:M k11=x2(k);k12=-x1(k)-x2(k);k21=x2(k)+h*k12/2;k22=-(x1(k)+h*k11/2)-(x2(k)+h*k12/2);k31=x2(k)+h*k22/2;k32=-(x1(k)+h*k21/2)-(x2(k)+h*k22/2);k41=x2(k)+h*k32;k42=-(x1(k)+h*k31)-(x2(k)+h*k32);x1(k+1)=x1(k)+h*(k11+2*k21+2*k31+k41)/6;x2(k+1)=x2(k)+h*(k12+2*k22+2*k32+k42)/6;y_rk4_05(k+1)=x1(k+1);end % 求出误差最大值 err_0=max(abs(y_0-y_rk4_0));err_05=max(abs(y_05-y_rk4_05));% 输出结果 disp(“ 最大误差(R=0)
最大误差(R=0.5)”)
err_max=[err_0,err_05];disp(err_max)
请输入步长 h=0.5 最大误差(R=0)
最大误差(R=0.5)
0.4299 0.0460 没运行一次程序,输入一个步长,记得可到相应的最大误差,将结果可列表如 下:
步长 h 0.0001 0.0005 0.001 0.005 0.01 0.05 0.1 0.5
F =0 5.4330 1.6969 1.0574 4.1107 6.6029 4.1439 6.6602 4.2988 差 最大误 X 10-10 X 10-10 X 10-10 X 10-9 X 10-8 X 10-5 X 10-4 X 10-1
R=0.5 2.7649 6.8123 5.3753 4.0902 6.5425 4.1365 6.7152 4.5976 差 最大误 X 10-11 X 10-12 X 10-12 X 10-10 X 10-9 X 10-6 X 10-5 X 10-2 从上表中可以看出,当步长 h=0.001 时,总误差最小;当步长 h 小于 0.001 时,由于舍入误差变大而使总误差增加;当步长 h 大于 0.001 时,则由于截断误 差的增加也使得总误差加大。另外,当系统的解变化激烈时(如 R=0),误差对 步长的变化较为敏感;当系统的解变化平稳时,步长的变化对误差的影响就要缓 和得多。数值积分算法确定以后,在选择步长时,需要综合考虑。
第三篇:化工原理实验报告封面格式
课程名称: 化工原理实验 课题
系院:
专业:
实验人员:
学号:
同组人员:
实验时间:
指导教师:流体流动阻力的测定生物与化学工程系11级应用化学朱颖妍1***
47、戴军凡
49、陈谢萍
51、徐晓丽
52、丁忱202_年2 月 25 日杨金杯
第四篇:化工原理实验报告评分标准
化工原理实验报告评分标准
化工原理实验报告评分分为五部分:
预习20%,考勤10%,实验操作10%,实验数据处理40%,思考题20%。
1.预习评分标准
进实验室之前,仔细阅读实验讲义相关内容,认真写好实验预习报告。完整的预习报告应包括如下内容:实验名称、实验班级、姓名、学号以及实验目的、实验内容、基本原理、设备流程(设备工艺流程图)、实验步骤及注意事项等。缺内容者酌情扣分。
2.考勤评分标准
按时到实验室签到,着装整齐者为10分。每迟到一分钟扣一分。
3.实验操作评分标准
正确操作实验装置者得10分。
4.实验数据处理评分标准
实验数据及中间处理过程表格化,每一计算步骤需要有详细的计算举例,计算公式正确,结果合理40分。
5.思考题评分标准
结合实验,认真完整地回答实验讲义后面的思考题,且回答正确20分。
第五篇:化工原理仿真系统研究论文
一、化工原理仿真系统的制作
化工原理实验包括流体流动阻力测定、离心泵性能测定、传热、精馏、吸收与解吸、干燥、萃取等基本单元操作,分别由不同的仪器仪表和管道组合而成。在仿真软件中,把各种设备和管道用flash画出,再根据每一套装置流程图的要求,以真实、立体的效果来实现。
1.整体结构。实验仿真系统的开发过程分为三个阶段:实验前的准备、实验过程及数据记录和数据处理。前两个阶段在Flash动画制作软件上完成,第三阶段在VisualStudio2005软件开发工具上完成,并且使用Ac-cess数据库进行数据的存储与交换。
2.仿真系统的实现。在计算机模拟化工原理实验时,需要通过动态数学模型来模拟真实的实验操作,该模型主要包括实验指导、素材演示、仿真操作、数据处理、考题测试、帮助功能等内容。下面以离心泵性能测定为例详细说明仿真系统的制作过程。在实验准备阶段与实验开始阶段的Flash动画的制作过程中,考虑到实验步骤有先后,以及更好地做到人机交互,必须使用专门为Flash脚本开发的ActionScript语言。如点击水泵开启按钮必须在阀门开启以后才能启动,直至水灌满后,才可以点击关闭水泵按钮。为了使实验更具有真实性,需设置阀门的流量控制,分为10个级别,可以逐渐增大或减小。运用VisualStudio.Net开发环境编写C#程序,可以通过拖动添加组件,并自动生成组件需要的代码。在制作化工原理实验模拟课件时,可通过VisualStudio属性窗口设置各种开发元素属性如外观、名称等,且属性窗口中显示的内容,随着选择开发元素的不同而动态改变。利用VisualStudi“o工具箱”,可以向应用程序添加标准控件。在设置好窗体和控件后,利用Vi-sualStudio的代码编辑器编写程序代码。在命令窗口中,可以直接输入并执行各种命令,调试应用程序,并通过在即时窗口的命令行中输入表达式或变量名,可以得到它们的值。编写程序过程中,难免会遇到一些错误,开发人员需要对应用程序进行调试,查找错误的根源,以期达到设计要求。离心泵性能测定实验涉及到流体流动、水泵运转、仪表变化、阀门打开或关闭等动作,在仿真系统中通过Flash动画来实现这些动作的动态效果,使整个实验过程表现得更加真实。用Flash中的按钮实现动画交互效果,控制整个实验的操作并对数据进行采集,同时将数据传入C#,由C#对数据库进行读写操作,然后作出离心泵特性曲线图。
3.实验数据产生及处理。化工原理实验过程中往往要测定温度、压强、浓度、流速等数据,同时必须对这些参数进行整理和分析,并运用相关的理论公式进行计算,才能达到实验预期目的。化工原理实验实测数据多,绘图耗时费力,计算公式复杂,有时甚至需要进行迭代计算,借助计算机辅助程序可圆满解决这些问题。在仿真软件中,通过C#语言设计数据处理程序。根据各化工单元操作理论建立数学模型,使仿真数据在实际操作的数据范围内随机产生,以保证每个学生在进行仿真实验时即使初始条件相同,也不会得到完全相同的实验结果,更接近真实操作状况。试验完成后,点击“记录数据”按钮,计算机会自动记录数据,并在后台进行数据传递,然后根据预先输入的计算公式进行数据处理。数据处理后被保存到Access数据库中,再通过调用,将数据输出在DataGridView进行显示,或据此数据绘制实验曲线。
二、操作过程及功能概述
主界面使用VisualStudioC#中的窗体,通过添加菜单栏来控制试验的选择。其特点是方便、简单易用,更重要的是为今后仿真系统的逐步完善提供了空间。首先水泵的开关按钮是不可用的,必须在打开阀门以后,才能启动水泵。当水泵与阀门同时启动后,便开始灌水,在这期间禁用系统中所有的按钮。待灌水过程结束,先关阀门再关水泵。点击“开始实验”按钮,可以开启下一个界面继续实验。先打开水泵,然后打开阀门,通过阀门调节流量级别,仪表数值会随之变化。点击“记录数据”按钮,将仪表的数值记录在数据库中。当数据记录完毕,点击“查看数据”按钮,屏幕上显示10组数据以及由公式计算得出的“扬程”、“有效功率”、“效率”数值。点击“绘图”按钮,可直接绘制出H-Q、P-Q及η-Q三条特性曲线。无论是实验结束还是中途关闭实验窗体,都将出现一个对话框以提示实验者“是否保存当前数据?”操作者可根据提示对实验数据进行取舍。集合Flash动画和C#语言优点开发的化工原理实验仿真系统,具有界面直观、操作简单、支持人机交互、占用空间小等特点,能显著提高化工原理实验教学的效果,减少实验设备投资和损坏,降低实验投入成本,避免实验事故的发生。计算机辅助教学,特别是计算机仿真实验在化工教学过程中的应用,使学生接触了一种全新的实验手段,激发了学生学习的积极性和主动性,使学生创新意识得到培养,从而提高了整体教学质量。