首页 > 其他分享 >m基于神经网络预测模型的室内温度调节控制系统matlab仿真

m基于神经网络预测模型的室内温度调节控制系统matlab仿真

时间:2023-05-09 23:55:35浏览次数:36  
标签:仿真 控制 方法 模型 神经网络 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

 

  

 

标签:仿真,控制,方法,模型,神经网络,matlab,优化
From: https://www.cnblogs.com/51matlab/p/17386710.html

相关文章

  • LEACH网络协议性能仿真包括能耗,死亡节点,剩余存活节点
    1.算法仿真效果matlab2022a仿真结果如下:      2.算法涉及理论知识概要         LEACH协议,全称是“低功耗自适应集簇分层型协议”(LowEnergyAdaptiveClusteringHierarchy),是一种无线传感器网络路由协议。基于LEACH协议的算法,称为LEACH算法。LEACH......
  • 深度学习—神经网络优化
    激活函数   作用:增加非线性因素Relu激活函数,含GELUsoftmax激活函数:优势和劣势都无限扩大,每个都是自然数次方sofrmax和sigmoid的区别:sigmoid激活函数:每个神经元激活时只看自己激活前的值,不满足各个神经元激活......
  • 逆变器重复控制。 采用simulink仿真嵌入C语言实现了逆变器重
    逆变器重复控制。采用simulink仿真嵌入C语言实现了逆变器重复控制模型的搭建,整个仿真没有任何模块,全是用C语言写的代码。重复控制算法,陷波器,二阶低通滤波器,都是用C代码实现。对整个代码给出了详尽的注释。输出电压的THD只有0.47%。整个仿真全部离散化,采用离散解析器,主电路与控制部......
  • 单相锁相环。 在simulink中采用C语言实现锁相环,不是matlab编程语
    单相锁相环。在simulink中采用C语言实现锁相环,不是matlab编程语言ifend、forend,而是C语言,与DSP和32编程中的语言一样,整个仿真没有一个模块,只有C需要写的锁相环函数,程序的运行频率和实际的开关频率一致。仿真结果如图所示,基于双二阶广义积分器的锁相环成功锁得电网相位。且在初......
  • 背靠背两电平电路拓扑仿真。 前级为两电平整流器,网侧相电压有效值
    背靠背两电平电路拓扑仿真。前级为两电平整流器,网侧相电压有效值为220V。采用双闭环前馈解耦控制,实现并网单位功率因数,稳定直流母线电压,直流母线电压稳定在650V,网侧电流THD只有1.05%。后级为两电平逆变器,实现输出电压稳定在给定值,输出相电压为220V,输出电压THD只有0.51%。整个系统......
  • PWM整流器。 整个仿真采用simulink嵌C语言实现,不是matlab编程
    PWM整流器。整个仿真采用simulink嵌C语言实现,不是matlab编程语言ifend、forend,而是C语言,与DSP和32编程中的语言一样,整个仿真没有一个模块,只有C语言写的程序,程序的运行频率和实际的开关频率一致。包括基于双二阶广义积分器的锁相环、双闭环前馈解耦、SVPWM都是用C语言写的,代码可......
  • 三相锁相环。 在simulink中采用C语言实现锁相环,不是matlab
    三相锁相环。在simulink中采用C语言实现锁相环,不是matlab编程语言ifend、forend,而是C语言,与DSP和32编程中的语言一样,整个仿真没有一个模块,只有C需要写的锁相环函数,程序的运行频率和实际的开关频率一致。仿真结果如图所示,基于双二阶广义积分器的锁相环成功锁得电网相位。且在初......
  • PWM整流器。 在simulink中采用C语言实现整个仿真,包括基于双二阶广义积
    PWM整流器。在simulink中采用C语言实现整个仿真,包括基于双二阶广义积分器的三相锁相环、双闭环前馈解耦控制、SVPWM都是用C语言编写的,不是matlab编程语言ifend、forend,而是C语言,与DSP和32编程中的语言一样,整个仿真没有一个模块,只有C语言写的程序,程序的运行频率和实际的开关频率......
  • CANoe对SPI、UART和I2C等串行总线的同步仿真与测试
    “转载自维克多汽车技术(上海)有限公司,作者VectorChina”在ECU和传感器系统中,除去各种汽车总线以及智能传感器之间的PSI5和SENT协议之外,在短距离和低成本通信场景中还会广泛使用SPI、UART、RS232、RS485、RS422和I2C等通用串行总线。在HIL系统中,如果被测对象涉及上述串行总线,则需......
  • PWM整流器仿真。 在simulink中搭建了PWM整流器,采用电
    PWM整流器仿真。在simulink中搭建了PWM整流器,采用电压电流双闭环控制,实现了网侧电压与电流同相位,单位功率因数运行。采用基于双二阶广义积分器的锁相环,锁得电网相位。整个仿真全部离散化,运行时间更快,主电路与控制部分以不同的步长运行,更加贴合实际。ID:3565680860221930......