错误使用 plot 向量长度必须相同。 出错 tfwendu4 (第 75 行) plot(t/3600,T_air,'r',t/3600,T_roof,'b',t/3600,T_wall,'g');
时间: 2023-12-17 21:02:14 浏览: 66
这个错误通常是由于`t_air`、`t_roof`和`t_wall`这三个温度向量的长度不一致导致的。请检查代码中是否有向这三个向量中添加或删除了元素,或者是否有其他的语法错误。
如果您确认这三个向量长度相等,请检查是否有其他语法错误,例如是否有其他的变量未定义或未赋值。另外,您也可以尝试使用`hold on`命令来绘制多个曲线,这可能会解决这个问题。例如:
```matlab
t = t_start:dt:t_end;
hold on
plot(t/3600,T_air,'r');
plot(t/3600,T_roof,'b');
plot(t/3600,T_wall,'g');
title('温室内部温度随时间变化曲线');
xlabel('时间(小时)');
ylabel('温度(℃)');
legend('空气温度','顶体温度','墙体温度');
```
这段代码使用`hold on`命令来保持当前的图形,并使用多个`plot`命令绘制三条曲线。
相关问题
已知室内空气等效热容110000、墙体等效热容18600000000,建筑面积为80平方米,8:00-21:00电价为0.56,21:00-8:00电价为0.32,削峰时段16:00-20:00的补偿价格为1.3元,填谷时段0:00-4:00的补偿价格为0.65元室内空气和墙体内侧的等效热阻分别为0.0012、聚合商组织住宅区600户电采暖负荷参与电网削峰填谷,需确定削峰或填谷时段内可持续提供的最大调节功率值。问题4所解出的各时点可上调、下调功率结果是基于单纯满足温控区间约束条件的电采暖设备开关状态决定的,电采暖负荷参与功率调节将改变其原有的开关状态,进而影响后续可调节功率的时变特性,计算600户电采暖负荷在削峰时段可提供的持续最大向上调节功率值,假设上述计算所得持续最大向上、向下调节功率全部被调度中心调用,统计各时点由于参与电网调节导致开、关状态发生变化的电采暖设备数量,绘制所有住户的室内温度曲线,检验参与调节后温度变化是否满足温控区间约束的matlab程序
以下是一个Matlab程序的示例,用于计算600户电采暖负荷在削峰时段可提供的持续最大向上调节功率值,并绘制室内温度曲线:
```matlab
% 已知参数
C_air = 110000; % 室内空气等效热容
C_wall = 18600000000; % 墙体等效热容
A = 80; % 建筑面积
R_air = 0.0012; % 室内空气内侧等效热阻
R_wall = 0.0012; % 墙体内侧等效热阻
N = 600; % 电采暖负荷户数
P_max = 20000; % 单个电采暖设备的最大功率
T_min = 18; % 最低温度
T_max = 22; % 最高温度
T_set = (T_min + T_max) / 2; % 设定温度
% 电价
price_peak = 0.56; % 高峰时段电价
price_valley = 0.32; % 低谷时段电价
price_comp_peak = 1.3; % 削峰时段补偿价格
price_comp_valley = 0.65; % 填谷时段补偿价格
% 时间划分
dt = 3600; % 时间间隔
t = (0:dt:24*3600-dt)'; % 时间向量
t_peak = (t>=8*3600 & t<21*3600); % 高峰时段
t_valley = ~t_peak & (t<8*3600 | t>=21*3600); % 低谷时段
t_comp_peak = (t>=16*3600 & t<20*3600); % 削峰时段
t_comp_valley = (t>=0 & t<4*3600); % 填谷时段
% 计算电采暖负荷
H = A*(C_air*R_air + C_wall*R_wall)*ones(size(t)); % 总热负荷
P = H/dt; % 总功率
P_peak = P.*t_peak; % 高峰时段功率
P_valley = P.*t_valley; % 低谷时段功率
% 计算向上调节功率
P_adjust_peak = zeros(size(t)); % 高峰时段向上调节功率
P_adjust_valley = zeros(size(t)); % 低谷时段向上调节功率
for i = find(t_comp_peak)'
P_peak_comp = P_peak.*t_comp_peak; % 削峰时段高峰时段功率
P_adjust_peak(i) = min(P_max*N, (P_peak_comp(i) - P_max*N)*price_comp_peak/price_peak); % 计算向上调节功率
end
for i = find(t_comp_valley)'
P_valley_comp = P_valley.*t_comp_valley; % 填谷时段低谷时段功率
P_adjust_valley(i) = min(P_max*N, (P_valley_comp(i) - P_max*N)*price_comp_valley/price_valley); % 计算向上调节功率
end
% 计算实际功率
P_actual_peak = P_peak - P_adjust_peak; % 高峰时段实际功率
P_actual_valley = P_valley - P_adjust_valley; % 低谷时段实际功率
% 计算温度变化
T = zeros(size(t)); % 室内温度
T(1) = T_set; % 初始温度
for i = 2:length(t)
P_actual = P_actual_peak(i)*t_peak(i) + P_actual_valley(i)*t_valley(i); % 当前时刻实际功率
Q = P_actual*dt; % 当前时刻热量
T(i) = T(i-1) + Q/(C_air*A); % 当前时刻温度
end
% 绘制温度曲线
figure;
plot(t/3600, T);
xlabel('时间 (小时)');
ylabel('温度 (℃)');
title('室内温度曲线');
```
以上程序仅供参考,具体实现还需要根据实际情况进行调整和优化。
阅读全文