Jack_chengs 2024-04-26 13:16 采纳率: 14.3%
浏览 1

matlab/simulink

我的matlab/simulink仿真的代码由什么问题,出来的图像不完整


for S=600:200:1200
    T=25;
sim('jzh.slx')
figure(1)
plot(V,P,'DisplayName',['S=',num2str(S)])
hold on
axis([0 50 0 400])
xlabel('U/V')
ylabel('P/W')
title('光照变化P-U特性曲线')
legendm

figure(2)
plot(V,I,'DisplayName',['S=',num2str(S)])
hold on
axis([0 50 0 20])
xlabel('U/V')
ylabel('I/A')
title('光照变化I-U特性曲线')
legend
end


for T=10:10:40
 S=1000;
sim('jzh.slx')

figure(3)
plot(V,P,'DisplayName',['T=',num2str(T)])
hold on

axis([0 50 0 400])
xlabel('U/V')
ylabel('P/W')
title('温度变化P-U特性曲线')
legend

figure(4)
plot(V,I,'DisplayName',['T=',num2str(T)])
hold on
axis([0 50 0 20])
xlabel('U/V')
ylabel('I/A')
title('温度变化I-U特性曲线')
legend
end

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-26 13:16
    关注

    引自免费微信小程序:皆我百晓生

    在您的MATLAB/Simulink仿真代码中,您尝试通过两个循环分别改变参数S(光照强度)和T(温度),然后对每个组合运行Simulink模型并绘制P-U和I-U特性曲线。但是,从您提供的信息来看,问题可能出在以下几个方面:

    1. 您没有正确地保存每次模拟的结果(V、P和I)。这意味着每次新的模拟开始时,之前的数据会被覆盖。
    2. 没有在每次迭代后更新图形,而是每次都创建了新的图形窗口。

    为了解决这个问题,您可以按照下面的建议修改代码:

    首先,在循环外部定义一个数组来存储所有结果,这样可以保留每次模拟的所有数据点。然后,将这些数据添加到已经存在的图形上,而不是创建新图。以下是修改后的代码:

    % 定义用于存储结果的数组
    PV_data = cell(1, 3); % P-V特性曲线数据
    IV_data = cell(1, 3); % I-V特性曲线数据
    
    % 光照强度循环
    for S=600:200:1200
        T=25;
        sim('jzh.slx');
        
        % 获取模拟结果(假设V、P和I是输出信号的名字)
        V_sim = evalin('base', 'V'); % 假设V为电压输出
        P_sim = evalin('base', 'P'); % 假设P为功率输出
        I_sim = evalin('base', 'I'); % 假设I为电流输出
        
        PV_data{end+1} = [V_sim; P_sim]; % 存储P-V数据
        IV_data{end+1} = [V_sim; I_sim]; % 存储I-V数据
    end
    
    % 温度循环
    for T=10:10:40
        S=1000;
        sim('jzh.slx');
    
        V_sim = evalin('base', 'V');
        P_sim = evalin('base', 'P');
        I_sim = evalin('base', 'I');
    
        PV_data{end+1} = [V_sim; P_sim];
        IV_data{end+1} = [V_sim; I_sim];
    end
    
    % 绘制光照变化的P-U特性曲线
    figure(1)
    hold on
    for i = 1:length(PV_data)
        plot(PV_data{i}(1,:), PV_data{i}(2,:),'DisplayName',['S=',num2str(S(i))])
    end
    axis([0 50 0 400])
    xlabel('U/V')
    ylabel('P/W')
    title('光照变化P-U特性曲线')
    legend('show')
    
    % 绘制光照变化的I-U特性曲线
    figure(2)
    hold on
    for i = 1:length(IV_data)
        plot(IV_data{i}(1,:), IV_data{i}(2,:),'DisplayName',['S=',num2str(S(i))])
    end
    axis([0 50 0 20])
    xlabel('U/V')
    ylabel('I/A')
    title('光照变化I-U特性曲线')
    legend('show')
    
    % 温度变化的P-U特性曲线
    figure(3)
    hold on
    for i = length(PV_data):-1:i
        plot(PV_data{i}(1,:), PV_data{i}(2,:),'DisplayName',['T=',num2str(T(i))])
    end
    axis([0 50 0 400])
    xlabel('U/V')
    ylabel('P/W')
    title('温度变化P-U特性曲线')
    legend('show')
    
    % 温度变化的I-U特性曲线
    figure(4)
    hold on
    for i = length(IV_data):-1:i
        plot(IV_data{i}(1,:), IV_data{i}(2,:),'DisplayName',['T=',num2str(T(i))])
    end
    axis([0 50 0 20])
    xlabel('U/V')
    ylabel('I/A')
    title('温度变化I-U特性曲线')
    legend('show')
    

    这段代码会根据光照强度S和温度T的变化,收集每个条件下的模拟结果,并在对应的图形上显示这些结果。注意,这里我们使用了evalin('base', 'signal_name')来获取Simulink模型中的输出信号值。确保在Simulink模型中正确设置了输出变量名称。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月26日

悬赏问题

  • ¥15 supLink 用户定位
  • ¥15 materials studio中sorption模块得到的吸附量如何计算出绝对吸附量和自由气量
  • ¥15 odoo17生产成品入出库会计日记账设置及自动产生会计分录
  • ¥15 MCU控制20V PWM波输出的控制电路
  • ¥15 关于智能数据系统的问题
  • ¥15 python 打包sdk不成功,如何解决?
  • ¥15 adv找不到可向其添加属性的有效项目。
  • ¥15 cesm2.2.0移植问题。./manage_externals/checkout_externals
  • ¥15 ntp对时中的时标问题
  • ¥35 pcb上电后,不一会儿,主控过热烧毁