智能控制课后仿真资料讲解Word文档下载推荐.docx
- 文档编号:21345402
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:17
- 大小:718.54KB
智能控制课后仿真资料讲解Word文档下载推荐.docx
《智能控制课后仿真资料讲解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《智能控制课后仿真资料讲解Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
y_2=0;
%设定初值,y_1是第(k-1)步系统对象输出量
x=[0,0,0]'
;
%设定误差x1误差导数x2误差积分x3变量初值
x2_1=0;
%设定误差导数x2_1的初值
kp=0.6;
%设定比例环节系数
ki=0.03;
%设定积分环节系数
kd=0.01;
%设定微分环节系数
error_1=0;
%设定误差error_1的初值
fork=1:
1:
5000%for循环开始,k从1变化到500,每步的增量为1
time(k)=k*ts;
%仿真时长[0.0010.5]s
r(k)=1.0;
%TracingStepSignal系统输入信号
u(k)=kp*x
(1)+kd*x
(2)+ki*x(3);
%PIDControllerPID控制器
%Expertcontrolrule
%Rule1:
Unclosedcontrolrule规则1:
开环控制
ifabs(x
(1))>
0.8%if循环开始,产生式规则,if...then...;
误差的绝对值大于
u(k)=0.45;
%控制器输出量等于
elseifabs(x
(1))>
0.40
u(k)=0.40;
0.20
u(k)=0.12;
0.01
u(k)=0.10;
end%if循环结束
%Rule2规则2
ifx
(1)*x
(2)>
0|(x
(2)==0)%if循环开始,如果误差增大或不变
=0.05%内嵌if循环开始,如果误差绝对值大于
u(k)=u_1+2*kp*x
(1);
%控制器输出量施加较强控制
else%否则
u(k)=u_1+0.4*kp*x
(1);
%控制器输出量施加一般控制
end%内嵌if循环结束
%Rule3规则3
if(x
(1)*x
(2)<
0&
x
(2)*x2_1>
0)|(x
(1)==0)%if循环开始,如果误差减小或消除
u(k)=u(k);
%控制器输出量不变
%Rule4规则4
ifx
(1)*x
(2)<
x
(2)*x2_1<
0%if循环开始,如果误差处于极值状态
u(k)=u_1+2*kp*error_1;
u(k)=u_1+0.6*kp*error_1;
%Rule5:
IntegrationseparationPIcontrol规则5;
运用PI控制来消除误差
ifabs(x
(1))<
=0.001%if循环开始如果误差绝对值小于(很小)
u(k)=0.5*x
(1)+0.010*x(3);
%控制器输出量用比例和积分输出
%Restrictingtheoutputofcontroller对控制输出设限
ifu(k)>
=10
u(k)=10;
%设控制器输出量上限值
end
ifu(k)<
=-10
u(k)=-10;
%设控制器输出量下限值
%LinearmodelZ变化后系统的线性模型
y(k)=-den
(2)*y_1-den(3)*y_2+num
(1)*u(k)+num
(2)*u_1+num(3)*u_2;
error(k)=r(k)-y(k);
%系统误差error的表达式,等于系统输入减去输出
%--------Returnofparameters--------%每步计算时的参数更新
u_2=u_1;
u_1=u(k);
%u(k)代替u_1
y_2=y_1;
y_1=y(k);
%y(k)代替y_1
x
(1)=error(k);
%CalculatingP赋误差error值于x1
x2_1=x
(2);
%赋值前步计算时的误差导数X2的值等于X2_1
x
(2)=(error(k)-error_1)/ts;
%CalculatingD求误差导数x2,用于下一步的计算
x(3)=x(3)+error(k)*ts;
%CalculatingI求误差积分x3
error_1=error(k);
%赋误差error值于error_1
end%for循环结束,整个仿真时长计算全部结束
figure
(1);
%图形1
plot(time,r,'
b'
time,y,'
r'
%画图,以时间为横坐标,分别画出系统输入、输出随时间的变化曲线
xlabel('
time(s)'
ylabel('
r,y'
%标注坐标
figure
(2);
%图形2
plot(time,r-y,'
%画r-y,即误差随时间的变化曲线
error'
专家PID控制MATLAB仿真程序过程及结果:
1.在MATLAB编辑环境下编写专家PID控制仿真程序
2.编译运行程序后
Figure1:
PID控制阶跃响应曲线
Figure2:
误差响应随时间变化曲线
题目3-4:
如果
且
,则
。
现已知
,利用模糊推理公式(3.27)和(3.28)求
,并采用MATLAB进行仿真。
模糊推理MATLAB仿真程序清单:
%关闭所有界面图形?
A=[1;
0.5];
%输入各元素在A中的隶属度
B=[0.1,0.5,1];
%输入各元素在B中的隶属度
C=[0.2,1];
%输入各元素在C中的隶属度
%CompoundofAandB%合成A和B
fori=1:
2%A矩阵的行数取值i
forj=1:
3%B矩阵的列数取值j
AB(i,j)=min(A(i),B(j));
%实现A,B的“与”关系
end
%TransfertoColumn%转换列向量
T1=[];
%定义转置矩阵T1
2%AB矩阵的行数取值i
T1=[T1;
AB(i,:
)'
];
%转置AB矩阵
%GetfuzzyR%确立模糊关系矩阵R
6%R矩阵列数取值i
2%R矩阵行数取值j
R(i,j)=min(T1(i),C(j));
%确定模糊关系矩阵R
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A1=[0.8,0.1];
%输入各元素在A1中的隶属度
B1=[0.5,0.2,0];
%输入各元素在B1中的隶属度
2%A1矩阵的行数取值i
3%B1矩阵的行数取值j
AB1(i,j)=min(A1(i),B1(j));
%实现A1和B1的“与”关系
%TransfertoRow%转换行向量
T2=[];
%定义转置矩阵T2
2%AB1矩阵的行数取值i
T2=[T2,AB1(i,:
)];
%扩展A1B1矩阵
%GetoutputC1%确定输出
6%转置矩阵T2列数取值
2%模糊矩阵R行数取值
D(i,j)=min(T2(i),R(i,j));
C1(j)=max(D(:
j));
%输出C1矩阵
模糊推理MATLAB仿真程序过程及结果:
1.在MATLAB编辑环境下编写模糊推理仿真程序
AB与关系:
转置矩阵T1:
模糊矩阵R:
A1B1与关系:
转置矩阵T2:
输出矩阵C1:
题目4-3:
已知某一炉温控制系统,要求温度保持在600℃恒定。
针对该控制系统有以下控制经验:
(1)若炉温低于600℃,则升压;
低得越多升压越高。
(2)若炉温高于600℃,则降压;
高得越多降压越低。
(3)若炉温等于600℃,则保持电压不变。
设模糊控制器为一维控制器,输入语言变量为误差,输出为控制电压。
输入、输出变量的量化等级为7级,取5个模糊集。
试设计隶属度函数误差变化划分表、控制电压变化划分表和模糊控制规则表。
解:
输入(e)以及输出(u)分为5个模糊集:
NB、NS、ZO、PS、PB。
输入变量(e)以及输出变量(u)分为7个等级:
-3、-2、-1、0、+1、+2、+3。
炉温变化e划分表
隶属度
变化等级
-3
-2
-1
1
2
3
模
糊
集
PB
0.5
PS
ZO
NS
调研结论:
综上分析,我们认为在学院内开发“DIY手工艺品”商店这一创业项目是完全可行的。
此次调查以女生为主,男生只占很少比例,调查发现58%的学生月生活费基本在400元左右,其具体分布如(图1-1)0
NB
控制电压变化划分表
综上所述,DIY手工艺品市场致所以受到认可、欢迎的原因就在于此。
我们认为:
这一市场的消费需求的容量是极大的,具有很大的发展潜力,我们的这一创业项目具有成功的前提。
三、主要竞争者分析-1
调研课题:
可见“体验化消费”广受大学生的欢迎、喜欢,这是我们创业项目是否成功的关键,必须引起足够的注意。
(四)大学生对手工艺制品消费的要求模
模糊控制规则表
若(IF)
NBe
NSe
ZOe
PSe
PBe
则(THEN)
NBu
NSu
ZOu
PSu
PBu
炉温模糊控制MATLAB仿真程序清单:
%FuzzyControlforfurnacetemperature
a=newfis('
fuzz_temperature'
%模糊炉温
a=addvar(a,'
input'
'
e'
[-3,3]);
%Parametere输入参数e的取值范围
a=addmf(a,'
1,'
NB'
zmf'
[-3,-1]);
NS'
trimf'
[-3,-1,1]);
Z'
[-2,0,2]);
PS'
[-1,1,3]);
PB'
smf'
[1,3]);
output'
u'
%Parameteru输出参数u的取值范围
[-3,-2,1]);
[-1,2,3]);
rulelist=[1111;
%Edit?
rule?
base编辑规则库
2211;
3311;
4411;
5511];
a=addrule(a,rulelist);
a1=setfis(a,'
DefuzzMethod'
mom'
%Defuzzy
writefis(a1,'
temperature'
%Savetofuzzyfile"
temperature.fis"
保存模糊文件"
a2=readfis('
plotfis(a2);
%画图
plotmf(a,'
1);
figure(3);
%图形3
flag=1;
%设标志位1
ifflag==1%如果标志位为1
showrule(a)%Showfuzzyrulebase显示模糊规则库
ruleview('
%DynamicSimulation动态模拟
end%结束
disp('
-------------------------------------------------------'
fuzzy?
controller?
table:
e=[-3,+3],u=[-3,+3]'
7
e(i)=i-4;
Ulist(i)=evalfis([e(i)],a2);
Ulist=round(Ulist)
e=-3;
%Error出错
u=evalfis([e],a2)%Usingfuzzyinference利用模糊推理
炉温模糊控制MATLAB仿真程序过程及结果:
1.在MATLAB编辑环境下编写炉温模糊控制仿真程序
Figure3:
炉温规则查看器:
调整输入变量可得到不同的输出
仿真心得:
通过这次课后仿真,让我对专家控制、模糊控制有了更进一步的理解,同时也对MATLAB这个重要的专业工具的使用更加熟练。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 控制 课后 仿真 资料 讲解
![提示](https://static.bdocx.com/images/bang_tan.gif)