首页 > 编程语言 >使用Python脚本运行Amesim模型(2)

使用Python脚本运行Amesim模型(2)

时间:2024-06-10 17:02:11浏览次数:35  
标签:脚本 sname Python pylab amesim displacement Amesim time data

上期使用Python脚本运行Amesim模型 我们介绍了使用python脚本运行一简单的模型,本次带来一阀控缸的模型。涉及文件命名等具体操作细节可以参考上一期。

在这里插入图片描述

该模型所需模块如上图所示。

Python脚本代码:

# Import Simcenter Amesim Python module
import amesim
import pylab
import subprocess


# Store the model name in a variable
sname = 'PositionControlScript'


# Open model, check it, compile and close
msg = subprocess.check_output(
         'AMECirChecker -g -q --nobackup --nologfile ' + sname + '.ame',
         stderr=subprocess.STDOUT,
         shell=True)
print(msg)


# Unpack the model file
popen = subprocess.Popen(["AMELoad", sname + '.ame'])
popen.wait()


# Get the parameter and variable name from datapath
# - get the gain parameter
[gain_parname] = amesim.amegetparamnamefromui(sname, 'k@elect01')


# - get the mass displacement variable
[displacement_varname] = amesim.amegetvarnamefromui(sname, 'x1@mass_friction2port')


# Create an array containing 4 different values of gain
gain_value = [100.0, 200.0, 500.0, 1000.0]


# Set simulation end time at 1s and the print interval to 0.001s
sim_opt = amesim.amegetsimopt(sname)
sim_opt.finalTime = 1.0
sim_opt.printInterval = 0.001


fig = pylab.figure()
fig.suptitle('Cylinder Displacement [m]', fontsize=14, fontweight='bold')
ax=pylab.subplot(211)


for i, k in enumerate(gain_value):
   # Set parameter
   amesim.ameputp(sname, gain_parname, k)


   # Run simulation
   [ret_stat, msg] = amesim.amerunsingle(sname, sim_opt)


   # Get results
   [time_data, displacement_data], names = amesim.ameloadvarst(sname, [displacement_varname])


   # Plot mass displacement vs. time
   pylab.plot(time_data, displacement_data)


pylab.xlim(0.0, 1.0)
pylab.title('- multiple single run simulations -')




# Setup and run a batch simulation
batch_cfg = {'type' : 'set', 'param' : [{'type' : 'real', 'name' : 'k@elect01'}]}
batch_cfg['param'][0]['set'] = gain_value
ret_stat = amesim.ameputbatch(sname, batch_cfg)
[ret_stat, msg] = amesim.amerunbatch(sname, sim_opt)
runs = amesim.amegetbatchrunstatus(sname)


# Present batch simulation results in a subplot
pylab.subplot(212)


for k in runs:
    # Get results
    [time_data, displacement_data], names = amesim.ameloadvarst(sname, [displacement_varname], k)
  
    # Plot mass displacement vs. time
    pylab.plot(time_data, displacement_data)


time_label = names[0]
pylab.xlabel(time_label)
pylab.xlim(0.0, 1.0)
pylab.title('- batch run simulation -')
pylab.show()


# Save and close the system
popen = subprocess.Popen(["AMESave", sname + '.ame'])

将脚本代码与amesim模型文件保存至同一文件夹。

通过在python终端输入:AMEPython+“脚本文件名”运行脚本即可得到运算结果。

在这里插入图片描述

关注公众号后台回复:“amepython2”即可获取案例及代码文件

标签:脚本,sname,Python,pylab,amesim,displacement,Amesim,time,data
From: https://blog.csdn.net/laughzjh/article/details/139576613

相关文章

  • 【四种语言一网打尽(C\C++\Python\Golang)】L1-006 连续因子
    L1-006连续因子一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为3×5×6×7,其中5、6、7就是3个连续的数字。给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数N(1<N<2^31)。输......
  • pythonD盘JPG全部转成PDF
    importosfromPILimportImagefromreportlab.lib.pagesizesimportletterfromreportlab.pdfgenimportcanvasdefget_jpg_files(directory):"""获取指定目录下所有JPG文件的路径"""jpg_files=[os.path.join(directory,f)f......
  • 端午安康代码PYTHON
    importrandomfrommathimportsin,cos,pi,logfromtkinterimport*CANVAS_WIDTH=640CANVAS_HEIGHT=480CANVAS_CENTER_X=CANVAS_WIDTH/2CANVAS_CENTER_Y=CANVAS_HEIGHT/2IMAGE_ENLARGE=11HEART_COLOR="#FF99CC"defcent......
  • python爬虫笔记——学习笔记—6
    爬虫笔记——学习笔记—61.安装scrapy打开此电脑![img](file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png在桌面的上栏目输入cmd并打开再命令框中升级python:python-mpipinstall–upgradepip安装scrapy:pipinstallscrapy安装......
  • python-数据分析-Pandas-5、DataFrame-index
    Index类型,它为Series和DataFrame对象提供了索引服务,有了索引我们就可以排序数据(sort_index方法)、对齐数据(在运算和合并数据时非常重要)并实现对数据的快速检索(索引运算)。由于DataFrame类型表示的是二维数据,所以它的行和列都有索引,分别是index和columns。Index类型的创建的比较简单......
  • 如何用python修复一张有多人图像的老照片,修复后照片是彩色高清
    要修复一张有多人图像的老照片,可以使用OpenCV库和深度学习模型。以下是一个简单的示例:```pythonimportcv2importnumpyasnpimporttensorflowastffromtensorflow.keras.modelsimportload_model#加载预训练的深度学习模型model=load_model('path/to/your/mode......
  • python常用函数
    python常用函数一、进制转换#字符串与ASCII码转换print(ord("A"))#65print(chr(65))#A#进制转换print(bin(78))#0b1001110print(oct(78))#0o116print(hex(78))#0x4eprint(int('4e',16))二、数学函数函数返回值(描述)abs(x)返......
  • 将这张图片修复为彩色高清,然后在Python中,可以使用以下库来执行上述任务
    将这张图片修复为彩色高清,然后在Python中,可以使用以下库来执行上述任务OpenCV:用于图像处理、面部检测等。dlib:用于面部检测和特征点标记。Scikit-image:用于图像处理和修复。TensorFlow或PyTorch:用于训练和使用深度学习模型,如图像修复GAN和超分辨率模型。首先,我们需要将......
  • python快速生成二维码及读取二维码内容 pyqrcode MyQR pyzbar
    目录效果图生成二维码方式1:pyqrcode方式2:MyQR  读取二维码效果图生成二维码方式1:pyqrcode安装pipinstallpyqrcode代码实现importpyqrcode#text为保存在二维码的内容。text为完整链接时,扫描后可直接跳转到该链接text='https://www.baidu.com/'qr=pyqrc......
  • 使用Python去除PNG图片背景
    要使用Python自动去除PNG图片的背景,你可以使用remove.bg的API,或者使用一些图像处理库如OpenCV和Pillow结合MaskR-CNN等深度学习模型。以下是一个使用Pillow库的简单示例:安装所需库:pipinstallpillownumpy使用以下代码去除背景:fromPILimportImageimportnumpyas......