请问这个问题怎么用matlab plot编程序?急需……

请教用matlab编程处理fluent数据的问题 | 『 Fluent专版 』 - 傲雪论坛 - Powered by PHPWind
查看完整版本: [--
请教用matlab编程处理fluent数据的问题
请教用matlab编程处理fluent数据的问题:想通过matlab来计算由fluent输出的数据(U,V),计算对应的旋度。如何解决过程之中几个问题:如何使fluent输出数据,即:数值离散点数据,按照一定规律变化,然后才能做对应数学计算。具体问题:2D翼型流场计算,获得对应离散点的速度(U,V)数值,想通过matlab求得对应的旋度。
请兄弟们给点线索,是否需使用fluent& udf定义函数来实现fluent输出数据,即:数值离散点数据,按照一定规律变化,然后才能做对应数学计算。还是直接使用UDF实现通过(U,V)求旋度,这种求解的功能
UDF是否可以实现自定义Fluent求解器的数据分布及其规律,解决我上面的问题?谢谢。
你的意思是说你计算模型的网格分布不均,并且没有规律?如果是这样的话确实要麻烦一些。求流场的涡量(也就是你说的旋度)实际就是求一个梯度,就要知道速度差和这两个矢量的间距,如果网格是均匀的或者是有规律的,比如对于一个三维问题,流向和展向是均匀周期性,法向是非均匀采用某种函数分布,那样处理就很方便,已知分布函数就能很方便的得到涡量。如果不是这样,我觉得你是不是可以利用两个文件,一个储存计算得到的流场的每一个点的速度(U,V,W),另一个文件储存每个点的坐标(x,y),通过坐标文件求得两个矢量的间距(dX,dY),速度文件求速度差(dU,dV,dW),这样在matlab里面实现应该就不难了,个人感觉实际上matlab就是一个可以自定义求解的计算器。
也就是说你通过fluent输出两个文件就行了,分别保存速度和网格节点坐标。或者保存在一个文件也行,看你怎么来得方便怎么做。不需要专门把现有的节点和速度重新排列,直接利用原始数据就行。
引用 引用第4楼hust_sklcc于 00:33发表的& :也就是说你通过fluent输出两个文件就行了,分别保存速度和网格节点坐标。或者保存在一个文件也行,看你怎么来得方便怎么做。不需要专门把现有的节点和速度重新排列,直接利用原始数据就行。非常谢谢hust_sklcc兄的指点,确实网格并不均匀分布,看来只有按照节点求距离微差,速度求速度微差,然后再求对应变量数值了。非常感谢了。
引用 引用第5楼tonggang于 09:29发表的& :非常谢谢hust_sklcc兄的指点,确实网格并不均匀分布,看来只有按照节点求距离微差,速度求速度微差,然后再求对应变量数值了。非常感谢了。没事,其实计算量也是差不多,处理起来也不复杂。
原始数据文件导入tecplot中可以自动计算你的数据问题。
引用 引用第7楼donno于 19:11发表的& :原始数据文件导入tecplot中可以自动计算你的数据问题。谢谢,确实在Fluent/tecplot360里,可以直接计算获得这个数据。我是想练习通过编程来处理计算流场获得的数据。
导入tecplot处理吧,这样处理起来更方便快捷一些!
没必要,编程处理数据不该是人干的活。
引用 引用第10楼badapple100于 20:26发表的& :没必要,编程处理数据不该是人干的活。不太认同你的观点,你的意思所有的数据处理都能用现有的软件完成吗?我想不太可能吧,你说的只是一些常用的量,常用的数据,可以用一些软件完成,如果要得到能谱之类的数据,或者其他专业性强的结果,软件是没有办法得到的!或许是你不需要这些数据,但是不能都像你这样说吧,你觉得呢?!实际上编程处理数据也是有帮助的,至少可以帮你更直观的理解一些定义概念,对之后的自己编辑CFD程序的结果输出也有帮助吧。此外,处理实验获得数据(比如PIV等),也不是所有结果都能由软件得到,我还是认为,如果有时间有可能有兴趣的话,不妨自己编程处理玩玩。
确实如hust_sklcc兄所说,基本上自己很多想要的数据,Fluent不会提供。谢谢大家的意见。
误解了我的意思。我是说能不编程尽量不编程(当然,因为想学习而编程除外)。其实只要熟悉equestion功能,90%以上的参数可以利用tecplot得到。另一方面,正如LZ提出的问题,想要fluent按要求依序输出数据是很难的,很多时候,fluent会非常变态的东一块西一块的输出数据。
引用 引用第13楼badapple100于 00:11发表的& :误解了我的意思。我是说能不编程尽量不编程(当然,因为想学习而编程除外)。其实只要熟悉equestion功能,90%以上的参数可以利用tecplot得到。另一方面,正如LZ提出的问题,想要fluent按要求依序输出数据是很难的,很多时候,fluent会非常变态的东一块西一块的输出数据。谢谢badapple100的解答。不知道版主说的是否tecplot360的equati*****计算功能。
今天具体对比了一下使用tecplot360的alter/equati*****计算Vorticity与自身带的analyze计算V主要目的是验证是否自身计算公式是否对。但结果还是有差异。想知道具体原因在哪里,这样计算差别在哪?我认为应该是计算选取的数据不同。想知道tecplot计算选取的是node还是cell center上的数据?谢谢。
数据表如下。
tecplot在读入fluent的cas文件时有选项定义数据是node的还是cell的
我看了一下,没有。而且在fluent里面,只有输出ascii格式时候,可以选择是node还是cell.不知道具体原因差在哪里。
所以想知道fluent的数据结构。
截图的右下角
引用 引用第20楼badapple100于 21:13发表的& :截图的右下角谢谢,今天已经发现这个问题。现在看来:若默认是cell center,若点选Average to node就是节点。另外更想知道:在处理数据时候,到底是用cell center好,还是node好,node就会涉及到一个平均概念,我比较过,两者计算的结果会有些差异。
fluent计算结果是cell center的,可根据需要决定是用node还是cell。不好说哪个更好。
引用 引用第22楼badapple100于 23:34发表的& :fluent计算结果是cell center的,可根据需要决定是用node还是cell。不好说哪个更好。谢谢badapple100版主的解答。我发现一个很问题。同一组数据,不同处理方式,结果差异很大,请帮忙看看,问题在哪?哪种合理?谢谢。
只用min和max比较不能说明问题,算法不同在一些奇异点处的结果会差异很大。最好还是多取一些点进行比较。或者画出contour图。
请问fluent中后处理不是也有查看vorticity的选项吗?为什么不直接在fluent中显示呢?是tecplot有啥优势吗?
Matlab &&&CFX
查看完整版本: [--
Powered by
Time 0.014022 second(s),query:2 Gzip disabledYou can图是我在matlab编程时遇到的问题 请问最后答案为甚是1 还请具体回答 谢谢_百度知道
图是我在matlab编程时遇到的问题 请问最后答案为甚是1 还请具体回答 谢谢
/zhidao/wh%3D600%2C800/sign=/zhidao/wh%3D450%2C600/sign=5d6fc8db/35a85edf8db1cbad84b2a://a.baidu://a.com/zhidao/pic/item/35a85edf8db1cbad84b2a.hiphotos.baidu.baidu.jpg" esrc="http.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http://a<a href="http
提问者采纳
f 实际上被解释为 1;i&&&&nbsp。&&&nbsp,与冒号同时使用的一般是标量;&&gt:&&nbsp,如;=&&9有一些特殊情况,则返回一个空矩阵:9ans&nbsp:&gt:jans&&6&&3&&&nbsp:&&&8&&&6&nbsp,所以括号里的 1;&&9&nbsp:[]ans&&&&7&10这里的&&&&nbsp,因为f不是标量;&8&&&&[6&在你这个例子中;=&nbsp,即只取其中第一个值作为调用冒号的标量:1:f)就相当于是调用 f(1);&gt:j(1);&7&-1];&&&[10&nbsp:j 被matlab 解释为 i(1),如 1;1;j&5&&&&&&1:1) 其中一个为空;&&&=&nbsp:j 实际上就是 6;空矩阵;&&&&2&&&&nbsp:10&&&&&&nbsp:9 返回含有9个元素的向量;&nbsp,如;=&-3];&-5&2&nbsp在matlab中;&1&&nbsp,则形式 i:f(1) 即 1;&nbsp:f 的返回结果为1;i;&&&nbsp。那么f(1;1×02) 如果冒号两边有一边不是标量;=&&&4&&&nbsp,故 1;&&nbsp
那开始的f.&#39;又是什么意思
对于实数矩阵或向量而言,f&#39;和f.&#39;作用是一样的,都是求转置,推荐写成f&#39;即可。但对于复数矩阵而言,f&#39;和f.&#39;作用不一样,前者是求共轭转置矩阵(即先求元素的共轭复数),后者是和普通的矩阵转置一个原理。如:disp(&#39;实数矩阵,结果一样&#39;);disp(&#39;a=&#39;);a&=&[1&2;&3&4];disp(a);disp(&#39;a&#39;&#39;=&#39;);disp(a&#39;)disp(&#39;a.&#39;&#39;=&#39;);disp(a.&#39;);disp(&#39;&&#39;);disp(&#39;复数矩阵,结果不一样&#39;);a&=&[1+1i&2;&3&4-2i];disp(&#39;a=&#39;);disp(a);disp(&#39;a&#39;&#39;=&#39;);disp(a&#39;)disp(&#39;a.&#39;&#39;=&#39;);disp(a.&#39;);
提问者评价
来自团队:
其他类似问题
为您推荐:
matlab的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 matlab 的文章

 

随机推荐