m基于神经网络预测模型的室内温度调节控制系统matlab仿真
Posted 51matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了m基于神经网络预测模型的室内温度调节控制系统matlab仿真相关的知识,希望对你有一定的参考价值。
1.算法仿真效果
matlab2022a仿真结果如下:
2.算法涉及理论知识概要
先简单的介绍一下BP神经网络:
给定一组样本:
输入S层的相应单元,A层各单元的激活值为:
MPC方法一个潜在的弱点是优化问题必须能严格地按要求推算,尤其是在非线性系统中。模型预测控制已经广泛地应用于线性MPC问题中,但为了减小在线计算时的计算量,该部分的计算为离线。
一个非常强大的函数逼近器为神经网络,它能很好地用于表示非线性模型或控制器。基于模型跟踪控制的方法已经普遍地应用在神经网络控制,这种方法的一个局限性是它不适合于不稳定地逆系统,基此本文研究了基于优化控制技术的方法。
许多基于神经网络的方法已经提出了应用在优化控制问题方面,该优化控制的目标是最小化一个与控制相关的代价函数。一个方法是用一个神经网络来逼近与优化控制问题相关联的动态程式方程的解。
在模型预测控制(MPC)中,控制信号的确定是通过在每个采样时刻输入序列为 时,最小化代价函数(2)。只有优化输入序列的第一个元素u(k)作为系统的输入,在下一个采样时刻k+1,新的优化问题是对于给定的优化控制问题而言的。在这种方法中,终止条件 可以看作是一个当时刻K+N趋于无穷时最小化代价函数的逼近器,但实际上更多的是用于保证闭环的稳定性。模型预测控制方法有一个非线性的缺点,且需要通过在每个采样时刻得到受约束的优化问题,同时需要通过在线计算来实现.
3.MATLAB核心程序
%参考轨迹 %参考轨迹 yr = zeros(ALL_Times,1); yr = func_reference(ALL_Times,CV,OAT,ZT); number1 = 25; number2 = 16; Set_Vlaue = 10; yout_1 = 0; cube_define; %% %循环仿真 %循环仿真3 for k=2:2*ALL_Times-10 if k <= ALL_Times%在线辨识学习 %控制器 [yout,Errs,u] = func_controller0(y_1,K,e,Set_Vlaue,u,A0,k,ALL_Times,number1,number2,CV(k),OAT(k),ZT(k)); ........................................................... %在线神经网络训练 %Inner network for j=1:1:Nums I(j) = State\'*w1(:,j); Iout(j) = 1/(1+exp(-I(j))); %隐含层 end %Output of network err_estimate(k) = w2\'*Iout; e1(k) = err_estimate(k)-e(k); %Updata the weight w2 = w2d1-(Learn_Rate*0.1*e1(k))*Iout+Alpha*(w2d1-w2d2); for j=1:1:Nums FI(j)=exp(-I(j))/(1+exp(-I(j)))^2; end %隐含层权值的更新 for i=1:1:Nums2 for j=1:1:Nums dw1(i,j)=e1(k)*Learn_Rate*FI(j)*w2(j)*State(i); end end %权值的更新 .......................................................... %开始实际的工作 Ind = k-ALL_Times+2; %被控对象 yout(Ind) = func_system_model(y_1,u_1,CV(Ind),OAT(Ind),ZT(Ind)); %控制器输出 ................................................................. %辨识输出 .............................................. %延迟 %延迟 State(1) = yout(Ind); State(2) = yout(Ind-1); State(3) = u(Ind); State(4) = u(Ind-1); end end
基于神经网络拟合模型的2020084期双色球预测
双色球预测
最近几天,小白突发奇想的想尝试——现在最流行的神经网络模型来预测2020084期的双色球。
我们利用matlab的神经网络工具箱来做预测。
简化问题:基于神经网络拟合模型的双色球预测。
首先,利用爬虫获取我们想要的数据,再利用matlab代码导入数据集
data = xlsread('C:\Users\Administrator\Desktop\双色球\data.csv');
[n,m] = size(data);
old_red1 = data(:,1);
old_red2 = data(:,2);
old_red3 = data(:,3);
old_red4 = data(:,4);
old_red5 = data(:,5);
old_red6 = data(:,6);
old_blue1 = data(:,7);
x = linspace(1,n,n)';
for i=1:7
subplot(4,2,i)
plot(x,data(:,i))
end
得到最近2000多期的红篮球顺序分布图
再通过神经网络工具箱训练得到net模型,再利用sim预测函数和net模型对下一次数据进行预测。
训练的步骤如下
选择自变量和因变量
训练集:校验集:测试集 = 3:1:1
调节神经元个数,我们设置为默认值
利用贝叶斯算法进行模型训练
R2检验结果如下
预测下一次的代码
sim(net,length(x)+1)
预测红球1的结果为
再重复上述的步骤就可以得到所有的预测结果
2020084期的双色球
预测的结果为:05 10 14 18 24 19 08。
然而实际双色球的结果为:03 07 16 17 23 30 07。
R2检验的结果只有0.068,远小于1。
看到这里,就会发现——就算是神经网络也没法预测独立事件的双色球。
还是好好读书吧,不要做梦了!!!
以上是关于m基于神经网络预测模型的室内温度调节控制系统matlab仿真的主要内容,如果未能解决你的问题,请参考以下文章
粮食温度预测基于matlab GA优化BP神经网络粮食温度预测研(多输入单输出)(含优化前的对比)含Matlab源码 2404期
预测模型基于matlab粒子群算法预测含Matlab源码 1326期