如何利用.m文件绘制不同条件下的U-I曲线

在仿真中我们常常需要绘制不同条件下的电压-电流曲线进行分析,那么如何利用.m文件绘制不同条件下的U-I曲线呢?我们以光伏电池为例,模拟不同温度下,光伏电池输出的U-I曲线。

 

 光伏电池的原理图如上图所示,Tc表示温度,s表示光照,在这里我们不讲解光伏电池是如何搭建的,我们只是利用to workplace原件将电压电流传至workplace,然后利用.m文件运行光伏电池仿真图,在温度分别是Tc=25和Tc=15的条件下,观察电压和电流的关系,绘制相应U-I曲线,代码如下:

%清平,清除历史数据
clc
clear all
%运行UI文件
tc=25     %^温度设置为25
[t1,x1,y1]=sim('UI')   %simulink文件名命名为“UI”
plot(u,i)
hold
%改变温度,再次运行文件
tc=15    %温度设置为15
[t1,x1,y1]=sim('UI')    
plot(u,i)

仿真结果如下:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Go 语言的正则表达式库来提取数据,然后使用图形库来绘制曲线。下面是一个简单的示例代码,说明了如何使用正则表达式提取数据并使用 `gonum/plot` 库绘制曲线: ```go package main import ( "fmt" "regexp" "strconv" "gonum.org/v1/plot" "gonum.org/v1/plot/plotter" "gonum.org/v1/plot/vg" ) func main() { // 假设你有一个包含数据的字符串 data := ` top - 09:00:01 up 2 days, 10:37, 1 user, load average: 0.00, 0.01, 0.05 CPU usage: 2.3% user, 1.1% sys, 96.6% idle Mem: 1024M total, 512M used, 512M free, 256M buffers Swap: 2048M total, 0M used, 2048M free ` // 使用正则表达式提取 load average 数据 loadAvgRegex := regexp.MustCompile(`load average: (\d+\.\d+), (\d+\.\d+), (\d+\.\d+)`) loadAvgMatches := loadAvgRegex.FindStringSubmatch(data) if len(loadAvgMatches) < 4 { fmt.Println("无法提取 load average 数据") return } // 提取 load average 值并转换为 float64 类型 loadAvgValues := make([]float64, 3) for i := 1; i < 4; i++ { value, err := strconv.ParseFloat(loadAvgMatches[i], 64) if err != nil { fmt.Println("无法解析 load average 数据") return } loadAvgValues[i-1] = value } // 创建一个新的绘图 p, err := plot.New() if err != nil { fmt.Println("无法创建绘图") return } // 给绘图添加一个标题 p.Title.Text = "Load Average" p.X.Label.Text = "时间" p.Y.Label.Text = "平均负载" // 创建一个具有三个点的数据集 pts := make(plotter.XYs, 3) for i, value := range loadAvgValues { pts[i].X = float64(i) pts[i].Y = value } // 绘制曲线 line, err := plotter.NewLine(pts) if err != nil { fmt.Println("无法创建曲线") return } p.Add(line) // 保存绘图为 PNG 图像文件 err = p.Save(4*vg.Inch, 4*vg.Inch, "load_average.png") if err != nil { fmt.Println("无法保存图像文件") return } fmt.Println("曲线绘制完成,并保存为 load_average.png") } ``` 在上面的代码中,我们使用正则表达式 `load average: (\d+\.\d+), (\d+\.\d+), (\d+\.\d+)` 来提取 load average 数据。然后,我们将提取的数据转换为浮点数类型,并使用 `gonum/plot` 库创建一个新的绘图,并绘制曲线。最后,我们将绘图保存为 `load_average.png` 图像文件。 请注意,这只是一个简单的示例,你可能需要根据你的具体需求进行修改和扩展。此外,你还需要确保你已经安装了 `gonum/plot` 和其他所需的库。你可以使用 `go get` 命令来安装它们: ``` go get -u gonum.org/v1/plot/... ``` 希望这可以帮助到你!如有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值