1 使用mathcad prime的经验总结(张)

从2012年开始使用Mathcad prime,最开始是用它代笔手算一些简单的公式,比如土压力,只要给它相应和参数,它就能输出结果,完全不用担心会发生手算摁计算器的错误。当时专门买了一本书《mathcad学步随笔》(张培忠),虽然他是基于mathcad15.0写的,但受益匪浅。2014比较系统用MP编了导流计算书,用到了他主要功能:第一可以解各种方程,这样解决了水力学好多试算的麻烦,一个方程就搞定;第二可以编程,就可以简单的进行水面线推导;第三可以把计算好的矩阵数据完全写出到excel,这样就可以方便的给水文专业提供水力学数据;最重要的一点,每个工程水力学计算模型,边界都不太一样,但是基本公式是一样的,有了编好的核心公式,拷贝修改就是一个新的边界条件计算模板。

最近几年做了一些岩土相关的项目,地基处理,基础计算,顶管井基坑等,这些之前是完全没有接触过,于是一般先通读一遍规范,然后用MP输入公式计算,一方面可以加深对规范的理解,同时Mathcad prime可以做到输入和规范写法完全一样的参数符号,这样虽然一段时间后忘记了一些符号和公式的意义,但看到Mathcad计算书公式及相关备注能很快的恢复记忆,不用一遍一遍的翻规范,并且再碰到类似的计算,就可以直接拷贝修改,很方便。

在这之前用Mathcad prime,大部分时候还只是把它当作一个手写电子笔,需要用到相关功能就去学习一下它的帮助,并未去细究它,这一个多月翻写了一些模板,通过学习收集到模板,获得了很多新的技能,发现它可以绘制很好看的曲线,这点完全不差于excel,以前我总是觉得它画的曲线不好看于是输出excel重新画,原来是没有找对方法;然后发现MP有很多函数,使用他们后原来可以这么简便,总结就是解决一个计算问题,首先输入参数,输入公式,不能解决的,请先找找它相应模块的函数,再解决不了最后自己编写一些小程序,因为函数其实也是它编好的小程序,帮助里基本上每个函数都有相应的示例可方便查找;另外规范里有很多表格,有些经验值,有些其实是公式推导来的,只是规范为了手算查找方便,特意做成了表格,比如基础平均应力影响系数,比如累积频率波高数值,规范里也给出了计算公式,MP计算时就可以直接用公式,不需用规范表格插值,总之是能找到公式的用公式,如果是经验表格,用插值。

一些比较好用及常用的功能总结描述如下:

  1. Mathcad prime可以解各种方程,工程常用的是root解一元方程和find解多元方程。
    求解函数

常用Root函数

常用Find函数

  1. Mathcad prime可以根据一个公式很方便画出曲线,不需像excel先算出数据,再生成。

a.例如如下公式:

其中,x和y都是i的函数
自动根据公式生成如下曲线

b.生成的3d图像

C.假如对自动生成的图形不满意,请调用如下chart应用程序,它可以生成你想要的效果。

  1. Mathcad prime的函数,这个是他们的精髓,解决问题,除了列公式自动计算,不要忘了它们,方程求解其实也是函数。

编制模板时经常用的函数有三角等工程函数,以及判断函数,寻找函数,最大大最小值判断函数等等:

  1. 假如在工程计算时需要进行多方案比较时,矩阵是不错的选择:

a.不同角度弯矩

b.不同设计工况下高程计算

  1. Mathcad prime7让我比较惊喜的是它增加了组合框,这样再也不用因为需要选择一个系数写一个小程序,一个组合框就够了。组合框类似矩阵,如下砼等级组合框,砼所有的参数都在里面,计算的时候我只需要选择砼等级,其他全部自动赋值。

  1. 自带函数、矩阵及组合框不能满足时可以自编小程序:

备注:关于MP程序,它优点是不需要定义参数的类型,随意赋值,这样我们可以专注于程序算法上,只要算法足够完美,一定可以编出让自己满意的程序。

  1. Mathcad prime可以内插excel表格插件,可以把你计算的结果输出给excel然后另存,也可以把原始数据放在excel里,计算时读它:

a.水面线输出excel表格

b.计算参数excel表格输入

  1. Mathcad prime可以读取外部文件数据,例如txt,也可以写出文件,输入输出函数如下:

  1. 工程模板编制时,主要依据规范,规范里有很多表格,有些经验值,有些其实是公式推导来的,只是规范为了手算查找方便,特意做成了表格,比如基础平均应力影响系数,比如累积频率波高数值,有些规范里也给出了计算公式,Mathcad prime计算时就可以直接用公式,不需用规范表格插值,总之是能找到公式的用公式,如果是经验表格,用插值。

a.规范是表格,mathcad用公式直接计算如下例子:

以上表格数值是如下公式计算得出,因此Mathcad prime里只需用公式即可,其中公式中Hm就是表格中的水深d。

b.如下表格压载系数暂时找不到原始公式,只能进行人工插值,可以用Mathcad prime自带的插值函数进行自动插值,也可以自编小程序进行自动插值,这样减少计算一次人工去翻一次规范插值。

  1. Mathcad prime 还有很多功能暂时没用到,也是在摸索阶段,Mathcad prime的帮助我觉得是软件中写的比较人性化,每个函数基本都有示例,也有教程,查询使用起来很友好,如果遇到麻烦找它就对了,它能给大家意想不到的收获,不过Mathcad prime也有它的不足,版面格式刷新起来太费事了,也可能我没找到好的方法。

2 插入图表组件


2.1 输入x,y坐标值

2.2 双击上图的绘图区域进入chart编辑区域

2.3 编辑坐标轴标题内容等

2.4 可折叠表头栏


2.5 如果需要插入第二条曲线,一定要如下写法

3 解决Mathcad 14调入Mathcad 13版中文文档出现乱码的问题

http://blog.sina.com.cn/s/blog_548fcf44010009r1.html
当调入一个Mathcad 13版的文档时,出现下图的中文乱码现象。经过试验,发现借助Word2003过度,可以使中文乱码的问题得到解决。

第一步,对Mathcad 14版进行中文输入设置。步骤如下:

  1. 在主菜单选“格式”点“样式”

  1. 在打开的“文本样式”界面中选“普通”,点“修改”

  1. 在打开的“定义样式”界面中选“字体”,点“确定”

  1. 在打开的“文本格式”界面中选“字体”为“宋体”,“脚本”为“CHINESE_GB2312”,最后按“确定”。

第二步,调入Mathcad 13版的文档进行修改

  1. 打开Mathcad 13版的文档,如图:

  1. 在Mathcad 14 中,选择要转换的文字,并把字体设为“宋体”。
    这时字体变为如下样式,但仍为乱码, 选择该文字,点“复制”再 粘贴。

  1. 直接在M14版里做,就是选择文本设为“宋体”,复制接着粘贴,就能使字体正常显示了。

4 朱老剑客(百度贴吧)

这一年我利用Mathcad做了不少实际工作中的计算建模的事儿,有时想在MC吧里分享,但由于以上原因,我就啥都没弄。今年有了以下几点心得:

  1. 一定要写注释,注释比程序本身要重要得多!而且我感觉一般情况下注释的内容要比程序多2~3倍,有时要写好几千字的注释,否则就很难在下次继续使用这个工作表的时候能够掌握当时自己的思路,也很难查找出原来的程序中的不足和错误。如果在工作表里的注释篇幅太大的话,我会另开一个.txt文件,用MadEdit-Mod大篇幅的记录,然后把文件路径拷贝到工作表里,这样就很容易查了。

  2. 能用Excel完成事情就不要用Mathcad,不要特意的使用Mathcad做大量的活儿。终归Excel表格的数据密集度要比Mathcad的文本文档式的文件的密集度大很多。我现在对简单的数据处理、统计、分析什么的都用Excel,Mathcad主要用来编程建模,解决一些复杂的计算问题。在我看来,Mathcad是研究用的(或者说自娱自乐),可以很方便的对数学模型进行各种函数和参数的影响研究,而Excel是干活儿用的,一些在Mathcad里得到的已经有定论的数值关系,移植到Excel里可很大的提高工作效率。

  3. 在Mathcad里多开分区,把“赋值”、“公式”、“函数处理”、“计算结果”以及“变量替换”等等分门别类的放在不同的指定的分区里,有助于使工作表条理清楚。而且尽量定义并使用多个工作表共用的变量对照表和符号对照表,甚至在函数的定义规则上也力求统一,这样即使某个工作表缺少注释,也会根据定义规则比较方便的理解当时的思路了——在这个基础上才能有效的用Mathcad建立自己的函数库、知识库,从而不断的提高Mathcad是运行效率和应用价值。

  4. Mathcad的 随机数 程序确实有问题,有些内置的高级函数也有问题,不管是MC还是MP都是这样。我当时还查了Matlab、Maxima和Maple,存在的问题是一样的,不知道Mathematica怎么样(我不和怪兽打交道)。此时最好的办法是自己编写函数,尽管自己编写的函数不是C语言的,运行速度较差,但怎么运行的心知肚明,刻意避免很多麻烦。下载一个专用的随机数生成器是很有必要的,现在这几个大M类软件的随机生成器都是伪随机数,在做比较大的数值模拟的时候是不能用的。

  5. 尽量避免在实际编程的过程中出现“数字”,能赋值给一个变量的,争取都给做成字母代表的变量,这样在检查程序的时候可以少很多麻烦,而且也能充分保证自己编的程序是“活的”,可以移植或引用到其他工作表里继续发挥作用。

5 python的应用

6 mathcad导入txt、excel文件数据作为矩阵值

为了适应PASS不引用文件,不调用excel表格,必须将这些txt文件或excel表格种的数据直接导入到mathcad中来使用。或作为用户输入数据来用。
方法:prime中输入 READFILE("D:\mathcad\某某.txt","delimited")
如下图:
prime导入txt数据到矩阵

下面方法过于复杂,弃用。
第1步:数据导入向导,记得是mathcad,不是mathcad prime哦

数据导入向导

第2步:选择带分隔符的文本文件,excel类似操作

选择带分隔符的文本

第3步:复制表格里的内容:

复制生成的表格内容

第4步:插入一个2*2以上的矩阵:

插入一个2*2矩阵

第5步:把刚才复制的粘贴到矩阵中,复制的数据会成为矩阵中一个数据内,并且带了一个大的方括号

粘贴到矩阵里

第6步:再次复制这个矩阵中刚才粘贴的区域(小括号中的部分),粘贴到变量中来

粘贴矩阵到变量中

第7步:可以获取矩阵值了

获取矩阵值

总结,就是先将导入数据生成的表格复制到一个矩阵中,再次复制矩阵中的值出来。或许有更简单的方法。
excel表格也是如此操作,没有问题。关键就是将表格种的数据选中后赋值,粘贴到某个矩阵中。

作者:秦晓川  创建时间:2022-07-03 13:17
最后编辑:秦晓川  更新时间:2024-04-22 14:06