matlab-bb
- 格式:doc
- 大小:315.38 KB
- 文档页数:6
姓名:白贝
学号: 1167106221 学院:信息工程学院
班级:自动化2班
一、课题分析
X=A*x+B*u;Y=C*x+D*u;
A=[2.25 -5 -1.25 -0.5;2.25 -4.25 -1.25 -0.25;0.25 -0.5 -1.25 -1;1.25 -1.75 -0.25 -0.75]
B=[4 6;2 4;2 2;0 2];C=[0 0 0 1;0 2 0 2];D=zeros(2,2);
由上得知:该系统有四个变量,输入有两个u1和u2,输出有两个y1和y2,没有离散变量,为纯真的连续系统。
因为D矩阵为零矩阵,故系统的输出只与状态变量有关系,跟输入u没有关系。
我们发现,对于这个系统,如果用模块来搭建,相当复杂,A矩阵为4行4列,很难用简单的模块搭建起来,故我们采用s函数对系统进行封装处理,那么在我们的仿真中,仅仅是一个很简单我们定义的s-function模块。
二、程序编写:
function [sys,x0,str,ts] =test(t,x,u,flag)
A=[2.25 -5 -1.25 -0.5;2.25 -4.25 -1.25 -0.25;0.25 -0.5 -1.25 -1;1.25 -1.75 -0.25 -0.75];
B=[4 6;2 4;2 2;0 2];C=[0 0 0 1;0 2 0 2];D=zeros(2,2);
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D);
case 1,
sys=mdlDerivatives(t,x,u,A,B,C,D);
case 2,
sys=[];
case 3,
sys=mdlOutputs(t,x,u,A,B,C,D);
case 4,
sys=[];
case 9,
sys=[];
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D)
sizes = simsizes;
sizes.NumContStates = 4;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 2;
sizes.NumInputs = 2;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
x0 = [0 0 0 0];
str = [];
ts = [0 0];
function sys=mdlDerivatives(t,x,u,A,B,C,D)
sys =A*x+B*u;
function sys=mdlOutputs(t,x,u,A,B,C,D) sys =C*x+D*u
三、控制仿真
1、未加pid控制器的仿真图
2、加入pid的控制仿真图
PID控制u1的参数
PID控制u2的参数
四、实训中遇到的问题
首先是s函数编写的过程中,虽然matlab已经给了一个完整的模板,而且有相当详细的注释,但是,如果你不去找一个详细的例子去观察如何运用模板编写出本系统的s函数,确实很困难。
通过从网上查询,找到一个简单的单输入单输出的连续系统s函数实例。
通过观察他所改动的地方,然后运用到我们这个系统中,于是,本系统的s函数就编写出来了。
接下来就是调节pid参数的问题了。
因为将系统已经封装成了一个双输入双输出的系统,故可采用双pid控制器对双个输入分别控制,然后对双个输出分别反馈。
那么,问题来了:在将u2反馈到pid2控制器时,仿真时老是出现问题,然后通过网上查询,得到的答案是说多次在s函数内部运算时出现了负数,下面是显示错误的对话框。
采用网上给出的方法时,依然不能解决问题。
最后通过去问老师,才得知就是pid参数没调好。
仔细研究发现,pid2的微分给的太大,就会导致上述问题。
知道问题后,再经过仔细的调节,最终将pid的参数调出了一组。
虽然不是很完美,但是已经能够看到系统稳定了。
五、实训心得
通过本次实训,我对matlab的了解又加深了一步。
记得上学期学自控的时候,我只是用matlab用来仿真我们自控实验的波形,感觉matlab好强大。
而这次实训过后,我再一次感觉到matlab这个软件能够掌握好,是相当有利的事情,不论是学习中,还是工作中。
对于简单的系统,你可以仅仅用给出的模块搭建,而对于复杂的系统,你可以自己去封装子系统或者去用s函数封装,然后再利用给出的模块加以组合就可以仿真。
总之,这次实训受益匪浅,希望学院一直保持下去。