单蓄水槽动态模型的程序那里错了
% TANK1L.M单个蓄水槽的线性化模型functionxdot=tank1l(t,x)
globalc1l c2l
xdot = c1l*x+c2l;
% TANK1L.M单个蓄水槽的非线性化模型
functionxdot=tank1nl(t,x)
globac1nl c2nl
xdot = c1l*sqrt(x)+c2nl;
% TANKCS1.M 单个蓄水槽动态特性的仿真程序
clear all,close all,nfig = 0;
% 定义ODE求解器中使用的全局变量
globalc1nl c1l c2nl c2l
% 定义相关参数
too=0; tff=25; %仿真计算的启动和结束时间(min)
rho=62.4; %水的密度(lbm/ft^3)
g=1.1592e5; %重力加速度常数(ft/min^2)
wio=1900; %参考位置的入口处液体流速(lbm/min)
ho=10; %参考位置处的液位高度(ft)
a=5; %槽底的表面积(ft^2)
ae=.02; %出水管的表面积(ft^2)
% delta input
dw1=0.1*wio; %10%的变化
dw2=0.5*wio; %50%的变化
% 非线性系数
c1nl=-ae*sqrt(2*g)/a;
% 线性模型系数
r=sqrt(2*g*ho)/(rho*g*ae); c=rho*a; c1l=-1/(r*c);
% 非线性仿真 - 脉冲&阶跃响应#1
y1o=ho+dw1/c; c2nl=wio/c;
=ode23(′tank1nl′,,y1o);
y1o=ho; c2nl=(wio+dw1)/c;
=ode23(′tank1nl′,,y1o);
% 线性仿真 - 脉冲&阶跃响应#1
y1o=dw1/c; c2l=0;
=ode23(′tank1l′,,y1o); y2i=ho+y2i;
y1o=0; c2l=dw1/c;
=ode23(′tank1l′,,y1o); y2s=ho+y2s;
%绘制结果#1
nfig=nfig+1; figure(nfig)
subplot(2,2,1),plot(t1i,y1i,′r′,t2i,y2i,′g:′),grid
title(′Impulse Response(10%)′);
xlabel(′Time(min)′),ylabel(′Height(ft)′);
legend(′NL′,′L′);
subplot(2,2,2),plot(t1s,y1s,′r′,t2s,y2s,′g:′),grid
title(′Step Response(10%)′);
xlabel(′Time(min)′),ylabel(′Height(ft)′);
legend(′NL′,′L′);
% 非线性仿真 - 脉冲&阶跃响应#2
y1o=ho+dw2/c; c2nl=wio/c;
=ode23(′tank1nl′,,y1o);
y1o=ho; c2nl=(wio+dw2)/c;
=ode23(′tank1nl′,,y1o);
% 线性仿真 - 脉冲&阶跃响应#2
y1o=dw2/c; c2l=0;
=ode23(′tank1l′,,y1o); y2i=ho+y2i;
y1o=0; c2l=dw2/c;
=ode23(′tank1l′,,y1o); y2s=ho+y2s;
% 绘制结果#2
subplot(2,2,3),plot(t1i,y1i,′r′,t2i,y2i,′g:′),grid
title(′ImpulseResponse(50%)′);
xlabel(′Time(min)′),ylabel(′Height(ft)′);
legend(′NL′,′L′);
subplot(2,2,4),plot(t1s,y1s,′r′,t2s,y2s,′g:′),grid
title(′Step Response(50%)′);
xlabel(′Time(min)′),ylabel(′Height(ft)′);
legend(′NL′,′L′);
% 线性化模型的频域仿真
b=r;a=;sys1=tf(b,a);
w=logspace(-2,2,200); %仿真的频域范围(rad/min)
nfig=nfig+1; figure(nfig)
bode(sys1,w),xlabel(′Frequency(rads/min)′)
nfig=nfig+1; figure(nfig)
subplot(2,1,1),nichols(sys1,w)
subplot(2,1,2),nyquist(sys1,w)
=nyquist(sys1,w); Resys1(:,1)=Re(1,1,:);
Imsys1(:,1)=Im(1,1,:);
这个我是按书本输入的,查了好几遍,就是出现??? Undefined function or variable 't'.由于我是刚开始学的MATLAB,希望有人帮我一下 所有function的一律另外保存
另外保存就是,重新存一个文件
[ 本帖最后由 ChaChing 于 2009-5-3 08:57 编辑 ]
回复 沙发 yufeng 的帖子
我试过了啊,可是不行啊[ 本帖最后由 ChaChing 于 2009-5-3 08:58 编辑 ]
回复 沙发 yufeng 的帖子
谢了,确实如此,我试出来[ 本帖最后由 ChaChing 于 2009-5-3 08:59 编辑 ]
页:
[1]