Simpack的DOE处理

记录磕磕绊绊学simpack的全过程:

打开simpack软件:打开相应的文件到这个页面

打开DOE

第一步导入这个文件

如果遇到这个界面,是配置文件位置有问题:文件位置都要不一样,第一个是DOE配置文件,第二个是需要做DOE的模型,第三个是DOE结果文件存储 的路径。

第二步:(如果不会生成csv文件)可看

1.先是生成你需要的数据,你要取那些,取的这些范围自己设,知网上查或者官网上有

2.打开trae或者其他AI软件,把你需要的这个直接截图发给AI,告诉它你要用什么模型,去抽样数据,得到csv文件

3.下面的文件只能参考,不全,要跟据你自己需要的设,AI会生成的

python 复制代码
import numpy as np
import random
import pandas as pd

'''
该文件目的是:
1.接收到一组变量范围numpy矩阵以及样本需求个数,shape = (m,2),输出样本numpy矩阵
执行ParameterArray函数即可
'''


def Partition(number_of_sample,
              limit_array):
    """
    为各变量的变量区间按样本数量进行划分,返回划分后的各变量区间矩阵
    :param number_of_sample: 需要输出的 样本数量
    :param limit_array: 所有变量范围组成的矩阵,为(m, 2)矩阵,m为变量个数,2代表上限和下限
    :return: 返回划分后的个变量区间矩阵(三维矩阵),三维矩阵每层对应于1个变量
    """
    coefficient_lower = np.zeros((number_of_sample, 2))
    coefficient_upper = np.zeros((number_of_sample, 2))
    for i in range(number_of_sample):
        coefficient_lower[i, 0] = 1 - i / number_of_sample
        coefficient_lower[i, 1] = i / number_of_sample
    for i in range(number_of_sample):
        coefficient_upper[i, 0] = 1 - (i + 1) / number_of_sample
        coefficient_upper[i, 1] = (i + 1) / number_of_sample

    partition_lower = coefficient_lower @ limit_array.T  # 变量区间下限
    partition_upper = coefficient_upper @ limit_array.T  # 变量区间上限

    partition_range = np.dstack((partition_lower.T, partition_upper.T))  # 得到各变量的区间划分,三维矩阵每层对应于1个变量
    return partition_range  # 返回区间划分上下限


def Representative(partition_range):
    """
    计算单个随机代表数的函数
    :param partition_range: 一个shape为 (m,N,2) 的三维矩阵,m为变量个数、n为样本个数、2代表区间上下限的两列
    :return: 返回由各变量分区后区间随机代表数组成的矩阵,每列代表一个变量
    """
    number_of_value = partition_range.shape[0]  # 获得变量个数
    numbers_of_row = partition_range.shape[1]  # 获得区间/分层个数
    coefficient_random = np.zeros((number_of_value, numbers_of_row, 2))  # 创建随机系数矩阵
    representative_random = np.zeros((numbers_of_row, number_of_value))

    for m in range(number_of_value):
        for i in range(numbers_of_row):
            y = random.random()
            coefficient_random[m, i, 0] = 1 - y
            coefficient_random[m, i, 1] = y

    temp_arr = partition_range * coefficient_random  # 利用*乘实现公式计算(对应位置进行乘积计算),计算结果保存于临时矩阵 temp_arr 中
    for j in range(number_of_value):  # 计算每个变量各区间内的随机代表数,行数为样本个数n,列数为变量个数m
        temp_random = temp_arr[j, :, 0] + temp_arr[j, :, 1]
        representative_random[:, j] = temp_random
    return representative_random  # 返回代表数向量


def Rearrange(arr_random):
    """
    打乱矩阵各列内的数据
    :param arr_random: 一个N行, m列的矩阵
    :return: 每列打乱后的矩阵
    """
    for i in range(arr_random.shape[1]):
        np.random.shuffle(arr_random[:, i])
    return arr_random

第三步:打开CSV文件

可以查看帮助文档:需要一定的版本,可能有的版本打不开

遇到问题:显示文件导入不进去,打开你的CSV文件用记事本打开,看看格式对不对,或者你文件的命名对不对,不能有空格,中文

这个界面是文字命名的问题,要跟你设置的系数是完全对的上的

改文件的标点符号,有的一个可能没显示出来

真的问题很多,每个问题都是我自己踩的坑,但坚持,一定有办法解决的

相关推荐
老了,不知天命2 小时前
鳶尾花項目
python·筆記
2301_816660212 小时前
如何在 Telegram Bot 中正确发送 HTML 格式的用户列表消息
jvm·数据库·python
2401_898717662 小时前
CSS如何使得响应式的侧边抽屉附带遮罩渐暗效果
jvm·数据库·python
享客多网络2 小时前
2026年蓟州区GEO软件公司如何引领科技创新潮流
人工智能·python·科技
weixin_458580122 小时前
如何在网页中完整展示数组中所有对象的全部属性
jvm·数据库·python
2403_883261092 小时前
PHP源码能否在Chromebook上运行_ChromeOS硬件限制说明【解答】
jvm·数据库·python
djjdjdjdjjdj2 小时前
golang如何编写DNS查询工具_golang DNS查询工具编写大全
jvm·数据库·python
架构师老Y2 小时前
003、Prompt设计原则:清晰、具体、结构化
python·prompt
万粉变现经纪人2 小时前
如何解决 pip install bitsandbytes 报错 仅支持 Linux+glibc(macOS/Windows 失败)问题
linux·运维·windows·python·scrapy·macos·pip