POSVIM使用手册:可靠性分析与设计工具详解

需积分: 26 3 下载量 96 浏览量 更新于2024-07-15 收藏 12.2MB PDF 举报
《PosVim_help.pdf》是一份关于可靠性分析软件POSVIM的详尽使用手册,由广州宝顺信息科技有限公司编撰,于2019年7月6日发布。该手册主要针对产品可靠性设计分析提供全面的指导,覆盖了从项目创建到寿命周期费用分析等多个关键环节。 首先,手册详细介绍了如何在POSVIM中创建项目,包括手工添加产品结构信息和通过Excel格式文件导入,以便用户根据实际产品设计快速建立基础。对于可靠性预计,分为手动方式、智能预计以及针对机械件的不同策略,如机械件的可靠性预计、T-S仿真和失效率统计,同时提供了报表输出功能。 接着,可靠性建模(RBD)是手册的核心部分,包括创建项目结构、任务剖面、RBD的创建、绘制和参数设置,以及复杂RBD的构建。用户可以利用工具进行RBD计算,并对节点失效率进行管理。子图管理和节点图片的添加也是RBD建模的重要步骤,同时提供了详细的结果查看和输出选项。 可靠性分配和FMEA分析是手册的后续内容,包括分配原则的设定、结果调整,以及针对FMEA(故障模式和效应分析)的方法、标准预定义和应用。此外,还涉及了将FMEA转化为故障关系图和故障树的功能,以及故障模式、控制计划、DVP等管理。 降额设计章节着重于选择降额标准,设置降额参数,并进行合规性检查,同时还提供了定制降额准则的能力。维修性预计部分则涵盖了维修性模型的绘制、计算和结果输出,以及维修性分配的步骤,包括结果调整和特定元件的排除。 最后,寿命周期费用分析(LCC)是手册的尾声,探讨了成本效益分析的重要组成部分,包括分析标准、参数设置和报表输出,以帮助用户评估产品的经济性和整体性能。 《PosVim_help.pdf》是一份实用的工具指南,为产品可靠性工程师和管理人员提供了在POSVIM软件中进行全面可靠性分析的深入指导,确保设计的产品能够达到预定的可靠性和维修性目标。

public class MainActivity extends AppCompatActivity { Button view_button; private Context mContext; private ViewFlipper vflp_help; private int[] resId = {R.drawable.img01,R.drawable.img02, R.drawable.img03}; private final static int MIN_MOVE = 200; //最小距离 private MyGestureListener mgListener; private GestureDetector mDetector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); view_button=findViewById(R.id.view_button); view_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent); } }); mContext = MainActivity.this; //实例化SimpleOnGestureListener与GestureDetector对象 mgListener = new MyGestureListener(); mDetector = new GestureDetector(this, mgListener); vflp_help = (ViewFlipper) findViewById(R.id.vflp_help); //动态导入添加子View for(int i = 0;i < resId.length;i++){ vflp_help.addView(getImageView(resId[i])); } } //重写onTouchEvent触发MyGestureListener里的方法 @Override public boolean onTouchEvent(MotionEvent event) { return mDetector.onTouchEvent(event); } //自定义一个GestureListener,这个是View类下的,别写错哦!!! private class MyGestureListener extends GestureDetector.SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float v, float v1) { if(e1.getX() - e2.getX() > MIN_MOVE){ vflp_help.setInAnimation(mContext,R.anim.right_in); vflp_help.setOutAnimation(mContext, R.anim.right_out); vflp_help.showNext(); }else if(e2.getX() - e1.getX() > MIN_MOVE){ vflp_help.setInAnimation(mContext,R.anim.left_in); vflp_help.setOutAnimation(mContext, R.anim.left_out); vflp_help.showPrevious(); } return true; } } private View getImageView(int resId){ ImageView img = new ImageView(this); img.setBackgroundResource(resId); return img; }}

2023-06-11 上传

from pdb import set_trace as st import os import numpy as np import cv2 import argparse parser = argparse.ArgumentParser('create image pairs') parser.add_argument('--fold_A', dest='fold_A', help='input directory for image A', type=str, default='../dataset/50kshoes_edges') parser.add_argument('--fold_B', dest='fold_B', help='input directory for image B', type=str, default='../dataset/50kshoes_jpg') parser.add_argument('--fold_AB', dest='fold_AB', help='output directory', type=str, default='../dataset/test_AB') parser.add_argument('--num_imgs', dest='num_imgs', help='number of images',type=int, default=1000000) parser.add_argument('--use_AB', dest='use_AB', help='if true: (0001_A, 0001_B) to (0001_AB)',action='store_true') args = parser.parse_args() for arg in vars(args): print('[%s] = ' % arg, getattr(args, arg)) splits = os.listdir(args.fold_A) for sp in splits: img_fold_A = os.path.join(args.fold_A, sp) img_fold_B = os.path.join(args.fold_B, sp) img_list = os.listdir(img_fold_A) if args.use_AB: img_list = [img_path for img_path in img_list if '_A.' in img_path] num_imgs = min(args.num_imgs, len(img_list)) print('split = %s, use %d/%d images' % (sp, num_imgs, len(img_list))) img_fold_AB = os.path.join(args.fold_AB, sp) if not os.path.isdir(img_fold_AB): os.makedirs(img_fold_AB) print('split = %s, number of images = %d' % (sp, num_imgs)) for n in range(num_imgs): name_A = img_list[n] path_A = os.path.join(img_fold_A, name_A) if args.use_AB: name_B = name_A.replace('_A.', '_B.') else: name_B = name_A path_B = os.path.join(img_fold_B, name_B) if os.path.isfile(path_A) and os.path.isfile(path_B): name_AB = name_A if args.use_AB: name_AB = name_AB.replace('_A.', '.') # remove _A path_AB = os.path.join(img_fold_AB, name_AB) im_A = cv2.imread(path_A, cv2.IMREAD_COLOR) im_B = cv2.imread(path_B, cv2.IMREAD_COLOR) im_AB = np.concatenate([im_A, im_B], 1) cv2.imwrite(path_AB, im_AB),解释上述代码,并告诉我怎么设置文件夹格式

2023-06-10 上传