AutoEM Projectplan
manual
2022.4.3
作者: n5321
目的
实现APP自动搜寻出匹配工程师目标的性能方案。
两个阶段。
1.
建立正确的仿真模型,关键在环境噪音的模拟上面。
2.
定义好合适的变脸,使用AI算法搜索求解。
准备工作。
1.
一个ansoft模型(暂时用的WL58)
a)
暂时的问题就是限定一个模型了(侧重点在于寻找合理的设计方案上)。
i.
问题模型上有两类变量,一类是设计变量。一类是环境噪音变量。
b)
一个实际的测功曲线。
c)
一整套的script。
实际操作:
1.
绘制fig界面。
a)
设计变量
b)
按键
c)
搜索目标(输入)
d)
搜索结果
2.
对搜索目标callback设置入handles。
3.
设置搜索函数(EM_analysis)
4.
设置目标函数。
The most
challenging part of programming is conceptualizing the problem, and
1.
problem definition
1.
公司市场开拓能力不足(谨慎接单,谨慎生产,谨慎销售)。
2.
公司研发管理能力不足(部门经理难以批评,指导工程师的工作)。
3.
员工研发能力欠缺(工程师一筹莫展,无法提供有可行性的设计方案)。
2.
Product vision
1.
计算机生成多个设计方案,工程师选择一个。
2.
研发工作参数化,可以一目了然
3.
大幅度缩减研发工作的时间,研发工作的人员,研发工作的成本(积极接单、积极生成、积极销售)
3. Components.
Program Organization
Major Classes
Data Design
The architecture
should describe the major files and table designs to be used
Business Rules
User
Interface Design
Input/Output
Resource
Management
Security
Performance
Scalability
Interoperability
Internationalization/Localization
Error Processing
Fault Tolerance
Architectural Feasibility
Overengineering
Buy-vs.-Build Decisions
Reuse Decisions
Change Strategy
General Architectural Quality
2022.3.23
1.
数据处理改csv格式。显著提高了速度。
a)
Ansoft数据导出改csv格式。
b)
测功数据用txt,csv都可以。不用xlsread函数了。
c)
数据导入用csvread(文件名,1,0)格式。
2.
Matlab可以直接打开maxwell文件,并且可以更改数据,ansoft可能就是直接用maxwell编的应用。
3.
五轴曲线图做了完整的重新优化。
a)
昨天改的版本还是有优化的空间。
i.
对于计算数据从向量加到矩阵里,方便查看,记录处理。
ii.
对于图面的控制,style的数据量稍微大了一点点。应该有优化的空间,怎么样能够方面查看,方便修改。
iii.
暂时搞出来的东西查看是OK了。
iv.
长远来看还是JavaScript搞出来的东西更加漂亮。
1.
杨的建议:通过matlab generate html来出图。
2.
可以给远程看测功结果(逼格就彻底出来了)
a)
给客户的信任度、认可度会高很多。
b)
用highchart里面的Multiple axes(未来熟悉了解html5)。
4.
对于结果文件的处理。
a)
要两类数据
i.
五轴曲线图,需要和客户样机做对比
1.
这里就需要一个五轴曲线图的函数。
2.
这个函数可以添加曲线也可以删减曲线
3.
这会一个大一点的复杂一点的曲线函数。或者说做多个函数也可以?
ii.
Google对于搜索结果的rating是怎么做的?
对于一个性能方案的评估如何建立类似的rating呢?
如何来做这样一个比较呢?
这个也许是一个非常复杂的工作。
当然是一个极端有价值的工作。
2021年6月份的优化思路(应用SA算法)。
1.
打开程序(定义全局变量)。
2.
定义目标函数——EmOpt。
3.
应用函数saoptimset
4.
Options用的gaoptimset函数。
5.
跑起来的函数simulannealbnd()
EmOpt
就是简单的打开ansoft,更改变量,进行运算,导出结果。
把概念再理顺一点。
一夫当关万夫莫开的效果。
有很多个方面可以做工作。
1.
app在UI方面的细化迭代
2.
写一个完整的应用程序还是工作量偏大(一般还是需要一个团队来做这个事情,自己写一个prototype)
3.
combinatorial algorithms上面的熟悉
4.
线性代数上面的东西也有许多可以熟悉的地方。
5.
数据库的东西需要再细化。
a)
可以对于R&D流程的可视化,理顺研发流程,简化研发工作。
b)
对于neural network也是必须要有一个合理的database来用。
6.
对于BLDC或者说ASSM的设计
7.
对于电控的熟悉,电控的东西应该只是要一点点机会就OK了。
8.
做R&D work analysis之后优化job structure
9.
Developing novice engineer
10.
R&D manager的工作,就是envision enable and motivation
11.
Service work提供优化公司商业模型的意见建议。
11.Html5上面的东西也可以搞,在visualization上面的效果还是很夸张的。
12. JavaScript的东西和C的东西也可以搞一下。
在concept上面的东西需要更加深入,在philosophy上面有空间,在具体细节上面需要迭代。
3.24
下午重新设计了一整套的cost function,应该还是有点技术含量,有点价值的。
晚上试验,槽满率的数据不好在后处理里面出,奇怪的限制。所以评价标准里面槽满率一下估计要另外想别的办法了。
后处理的数据还是应该要做成数据库。
尽量多存一点数据。
改了saengine函数。
实现的功能是可以存储每一次计算的X and fval.
每一次的变量和结果都可以保存下来了。
然后存成了一个矩阵。这个矩阵是可以分析的。
这样子看都可以做神经网络函数了。
也就是说可以简化到一个令人吃惊的程度了。输入结果,然后计算出可能的需要的设计变量。
那如果还是继续沿用从前的性能研发模式,就可以完全实现一夫当关、万夫莫开的效果了。
Sa engine里面改了几个东西,效果很好。
问题。输入的若干个变量总是浮点型数据,期望generate出来的数据是整型的,暂时好像不行。
Double是双精度浮点型的简称。
Any value stored as a double requires 64
bits, formatted as shown in the table below:
在generate newdata上面暂时放弃。嵌入的东西太深入了。
实际对比,存在3-4次生成几乎一致的数据。所以如果改成按要求生成数据,肯定可以提升效率。只是对于算法的理解程度不高,内部可能要去改一下东西。需要的时间不好评估。暂时放弃,以后再说。
Interval上面数据改成5算了。本来就是一个搜索求解的过程。
数据屯多一点点,后续可以用神经网络来搞一下了。
昨天晚上值晚班,还是有一点影响精力的。
下午8点,已经颇为困倦了。
设计了一个新的cost function
用rand出的数据来筛的话,效果很好,比预想中的还好一点。
用SA来算,效果没有预期中的好,几个问题。
1.
generate出来的输入变量好像不是很对劲。
2.
计算出来的数据是可以很好的存储起来了。
3.
评估关键数据4个,跟ansoft的互动设计得不够好,自己已经有点困倦了。
算了。不搞了。
把逻辑搞清楚一点就算完了。
Performance measure:
基准额定点
1.
额定点扭力
2.
额定点效率
3.
材料成本
4.
热负荷
额外的数据。
材料单价(铜 and 钢)。
问题:自己相当于是用的指数函数,加幂函数来做了一个数据的归一化。
那现在是这个归一化的数据,和实际需要重点查看的几个数据量的关系不明了。
然后跟输入的关系也不够直观。
把问题简化一下再看看。
把数据整理一下看对比
Costfunction用了指数函数好像把问题搞复杂了。Saengine无法生成数据了。
换新思路,
改用if函数来看看。
目标数据四个,三个是bound,一个是stand
那样子问题会简单一点。
3-26
把cost function简化了以后看起来效果不错。
具体来说就是用的if函数,然后对于其他四个数据做了四则运算。
这样子以后,SA的求导链条应该是简单了很多。然后出结果的效率提高了非常多。
于是考虑做一个完整的APP出来。
3-27
把APP搭得七七八八,各个方面也都还算是满意。
被一个问题卡住了。
Pushbutton调用SA,SA调用EMopt的计算函数。
然后EMopt进入了循环。
目标是在EMopt循环期间,把所有的变量和计算结果调出来,显示在界面上。
对于提升用户体验来说很有价值的一项目。
结果发现搞不定。
1.
EMopt在循环的时候,其他的变量都是静态的。
2.
EMopt的所有的输入输出数据,在函数间的交流都被粉装了。变量可以用global,或者persistant来搞,但是对于structure好像没办法了。
什么办法都试过了。还是难搞。
下午去请教杨。
杨给了一个嵌套的函数的用法,一下次实现了子程序反过来控制母程序。
但是他中间的数据交流还是函数的变量和应变量的范围内。
这个方法开始没看明白。回办公室来搞的时候,发现了问题。
EMopt因为要配合SA的使用已经简化封装好啦。
也就是说在EMopt上面是不能动的了。
杨那个办法当然也算是好用,可是需要对变量和自变量做更改,于是就跟SA冲突了。
想了半天没想到解决的办法。
搜help。
他的逻辑还是匿名函数的嵌套的调用。自己原来没怎么用这个东西。那自己对于这个问题还是想得不够明白。
Help里面看Multiple
Anonymous Functions——关键。
还是要把这个东西理解下来。
3-29.
想起可以把界面get出来,然后再改,就把问题解决了。
实际上还是看李辉煌那本书出来的灵感。
1.
当然GUI的东西还是接触不够,仅就接触到的操作而言总还是在fig对应的m里面想办法,总还是想在生成界面的代码里面来动刀子。
2.
看李辉煌那本2019年的书,直接改figure,加了很多空间进取,里面加menu,加对话框等等的东西用的简单干脆、直接,比想象中的还要溜。然后就想把原来的idea丢掉
3.
李还真的是牛逼的人才。在3D建模,FEA领域,现在是编程领域全面出书。确实是牛人,可能出去还要另外找一点他的东西看一下。
4.
Follow李的思路,居然还分分钟就改了。
a)
具体的路径如下。Get界面,然后在界面里找objects。有几个当然链条长一点,但是还是固定的,可以寻的。
b)
东西找出来以后就用set变东西。
c)
一下子就把问题解决了。
d)
现在是时候做一个完整的东西出来了。
5.
看help看到data函数,找到一个between(),可以直接算间隔日期,excel里面应该是没有,在剩余刑期的时间处理上确实是比想象中的还要方便。未来,后续,倒是可以考虑做prison system,用database搭上matlab来出东西。不过杨大神说很少有人用matlab来最后出成品。暂时想关键的一点是他不能出很漂亮的图纸出来。
6.
4-4.
遇到的两个大一点的问题。
1.App里面嵌入的东西越来越多,代码量增加,函数功能增加,复杂性增加。如何对于App应该提供的功能做一个好的管理,好像卡住了,问彭,解释用一个线上的功能管理工具。
2.软件提供什么功能,功能用什么样的方式来展示,用户的应用场景以及用户的使用思路有很大的不确定性,于是一个app改来改去,改得心理没底。
思来想去,装了axure,比想象中的简单,比想象中的好用。
这种构件拖动的东西,然后又是自己熟悉的领域,上来就可以用。
然后做了三个界面(4-3出品)。
在漂亮的程度上不满意,可是在功能的布局上,在满足用户需求上应该还是有了大的跨越,同样的,这个界面理论上提供了一个极好的functions管理工具。
Axure把大问答题拆解成了小问答题+填空题。
比想象中的好使。
后续,肯定还是要继续使用这个工具的。未来的东西未来再说!!!
3.界面做好了之后,左看右看要把性能图填进去,然后考虑把figure里面东西填进去。
试验了两天,理论的东西其实还是简单。
也就是大对象不同。小对象一致。都是axes。
麻烦的地方是axes要处理的细节点实在是多得有点繁琐。
好在也还是搞定了。不错。
试了一个晚上,把性能曲线加进去了,已经可以做为一个独立的app使用了。
所有的因数都加进去了,理论上已经做成了一个可用,虽然不是很成熟的产品。
剩下的东西就是把东西打磨得更加漂亮一点而已。
看一桶金搞得到不了。!!!