logo资料库

实验水箱机理建模-最小二乘辨识参数说明书+源码.docx

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
一、实验要求
二、数学模型建立
2.1 机理建模
实验水箱机理建模-最小二乘辨识参数说明书 一、实验要求 1. 单容水箱(2#水箱)的液位过程的建模:采用系统辨识方法,基于实 验数据建立离散时间非线性动态模型。输入变量为入口流量,输出变量为液 位。给定的数据集采样周期为 60 秒,自己可以划分为训练集和测试集。 2. 完成机理模型(机理模型参数如出口阀(2#泄水阀)流量系数假设未 知,需要基于数据学习估计)的仿真实验研究 二、数学模型建立 目前,数学模型的建立方法有两种。一是根据过程的内在机理,通过静态与 动态物料平衡和能量关系,用数学分析的方法求取过程的数学模型,称为机理建 模;二是根据过程输入、输出数据,即通过过程辨识与参数估计的方法建立被控 过程的数学模型,称为实验建模。 2.1 机理建模 图 2.1 单容水箱(2#)液位机理建模原理图 图 2.1 是多功能过程控制平台的单容水箱系统液位机理建模原理图,首先 给水泵电机一个固定的电压PWM信号P,根据流量实验可知经过短暂时间后水泵 可以给单容水箱提供一个固定的流量1;水箱的流出量为2,可以通过改变泄 水阀的开度改变2的大小。液位 h的变化反映了1与2大小不等而引起水箱蓄 水或泄水的过程。若将水箱输入流量信号1作为被控过程的输入变量,h为其输
表 2.1 机理建模所涉及到的符号含义 符号 ℎ 1 2 含义 水箱的横截面积 水箱的液位 水箱流入量 水箱流出量 泄水阀流量系数 模型如下: 根据物料平衡关系有 横截面积A表达如下: 泄水阀处的体积流量 q 为关于液位的非线性函数: 液位机理模型使用欧拉法进行离散化如下: 其中,泄水阀流量系数μ为未知量,可通过数据学习得到。将所示单容水箱 其中h0为水箱底部到流量传感器的距离,其中μ为出口阀流量系数。得水箱液位h 出变量,则该被控过程的机理模型即为 h 与1之间的数学表达式。 1−2=ℎ =π2 =2= ℎ 与进水阀体积流量之间的微分方程形式机理模型为: ℎ=− ℎ + ℎ+1 −ℎ = ℎ() +q() 其中,为采样时间,为采样时刻。 实验所用水箱系统中,水箱参数:=0.075m ,=0.017672 . 0.01767+ () ℎ(+1)=ℎ()− ℎ() 0.01767 实验所取数据采样时间=1min,通过从实际水箱控制系统获得的40组液 位和进水阀体积流量数据,使用最小二乘法对泄水阀流量系数进行辨识,辨识 0.01767=− ℎ() ℎ(+1)−ℎ()− () 0.01767 辨识得:=−1.153×10−5。 ℎ(+1)=ℎ()+1.153×10−5 ℎ() + () 0.01767 0.01767 因此该实际水箱的液位模型为:
使用实际水箱模型的另外 40 组无关数据,对上式所示模型进行测试,结果 如下。 采用如下所示的性能评价指标均方根误差(RMSE)和平均绝对百分比误差 图 3.2 机理模型测试 (MAPE)对上图所示模型测试结果进行评价 = 1=1 [()−()]2 |()−() =1 =1 ×100% | () 求得=0.0011,=0.0057。
附录 1:机理建模源程序 %% 最小二乘辨识流量系数 %% %清除变量空间;关闭所有窗口 clear all;close all;clc; %读取、处理数据 data=xlsread('水箱数据.xlsx'); %80 组数据(80*2) IN=data(:,1); %data 的第一列数据 OUT=data(:,2); %data 的第二列数据 %创建相关数组 L=40; %取 40 组辨识,剩下 40 组测试 phi=zeros(L,1); Y=zeros(L,1); Y_test=zeros(L,1); Y_real=zeros(L,1); A=0.01767; %水箱横截面积 h=OUT./100; %所有数据除以 100 换算单位:cm->m Q=IN.*10^-5; %流量单位换算:L/min -> 立方米/分 % 要辨识的参数θ(theta);公式:Y=φ*θ(Y=phi*theta) for k=1:L phi(k,1)=-sqrt(h(k))/A; Y(k)=h(k+1)-h(k)-Q(k)/A; end % 关键公式:得到辨识参数 theta=inv(phi'*phi)*phi'*Y %% 辨识模型验证 for k=1:L Y_test(k)=h(L+k-1) - theta*sqrt(h(L+k-1))/A + Q(L+k-1)/A; %一步预测值 Y_real(k)=h(L+k); %真实值 %% 画图 plot([1:L],Y_real,'b',[1:L],Y_test,'r'); %横坐标-纵坐标-颜色;横坐标-纵坐标 end -颜色 xlabel('时间/min'); ylabel('液位/m'); legend('真实值','预测值'); title('最小二乘辨识水箱机理模型'); %% 辨识精度指标 %RMSE(均方根误差);MAPE(平均绝对百分比误差)
RMSE = sqrt((sum((Y_test-Y_real).^2))/L); MAPE = sum(abs((Y_test-Y_real)./Y_real))/L; [RMSE,MAPE]
分享到:
收藏