MATLAB土木工程研发应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB土木工程研发应用相关的知识,希望对你有一定的参考价值。

参考技术A

总结历来解决的问题,在土木工程科研技术领域,MATLAB主要可以解决以下几类问题:

这一方面主要用于实验数据的基本处理。获取基本的工程、实验数据之后,往往需要对原始的数据进行运算处理、统计分析、以及图形化显示,以揭示我们预期传达的信息。

上图为弯矩图的插值,采用有限元计算得到的弯矩数值仅为少数结点的弯矩,而从概念可以知道,结构的弯矩分布是连续的,因此可以采用高次曲线或样条曲线对基本数据插值,从而获得平滑的弯矩图。

一张图,基本展示了MATLAB-2D绘图的全部潜力。
高度图形化的展示揭示了桥梁的受力状况特点。

最简单,最规范的实验数据绘图。横轴、纵轴、单位、网格线、曲线、图例,一切表达要素完备。
其他软件也能绘制基本的数据图形,如Excel、Origin,相比之下,MATLAB的可操纵性最强,所想即可得。

土木工程的实验研究往往是经验性的,很难得到完全符合解析理论的结果,往往通过实验方法,测试出两个物理量的具体数值,如力-位移。
为了便于推广应用,往往拟合出形如y=a x^2+b x+c等拟合公式,以便工程实践应用。

此处缺少案例。

物理问题的精确表述往往都是微分方程,尤其偏微分方程的形式,如力学的结构振动问题、热传导问题。故而演化出了一大类数学物理方程。
然而,微分方程的解析求解非常困难,而时间问题又是复杂多变的。为了解决实际问题,往往使用数值方法(差分法)近似求解。

研究钢结构构件温度随空气温度的升高。本例与王浩合作解决。

中心差分法求解结构在地震激励下的运动方程。

方法同上,结构恢复力非线性,此时数值方法是实验以外的唯一求解手段。

物理问题在单自由度的条件下,往往以微分方程的形式表达。而实际的多自由度问题会变成 微分方程组 ,无法直接求解,往往引入多种简化假设,分离解耦,最终转化成矩阵方程的形式求解。

多自由度的结构振型求解,实质上是矩阵的特征值求解问题。

结构分析的数值方法主要为 有限元方法 ,在此基础上又演化出了一系列其他方法:边界元法、有限样条法、谱元法等等。

本例与赵诗宇合作实现。

土木工程的检测、监测技术正在兴起发展。利用仪器和设备对结构进行检测监测,首先获得的是一系列 物理量的时间序列 ,即 信号
所以,检测监测的关键技术之一就是————从信号中识别结构系统特征。

常用的信号处理技术有:

小波变换非常适合处理频率成分突变的非平稳信号,如超声导波检测信号。摘自Reference-free corrosion damage diagnosis in steel strands using guided ultrasonic waves。

除了以上各类具体的分析处理,为了避免直接操作MATLAB源码引入的 技术门槛 ,需要采用图形化交互界面(GUI)来封装程序技术。

大二以来通过MATLAB解决的各类技术问题汇总:

最美应用:从 Android 研发工程师的角度之“最美时光”



小编有话说

原文 http://www.jianshu.com/p/bc7a3f022854

@author ASCE1885的 Github 简书 微博 CSDN

最近发现 最美应用(http://zuimeia.com/?platform=2) 这样一个网站,它会定期推介一些很有意思的app,作为开发者,每次看到很棒的app都会从实现角度进行剖析,想着如果是自己将如何实现呢?因此,就有了这个系列的文章,旨在从技术选型和架构的角度解读一些有意思的app。

最美时光是最美应用团队出品的一个纪念日app,用于记录和分享那些重要的日子,我们就先从这个开始吧!


使用的开源函数库

1. 开源日志记录函数库JakeWharton's Timber

https://github.com/JakeWharton/timber

Timber是明星程序员 JakeWharton 开源的一个日志记录函数库,它基于Android Log类基础上, 提供了简洁可扩展的API。

日志记录行为被抽象为一颗一颗的树��,例如有打印日志到Logcat的树,有打印日志到文件的树等等,如果我们要使用某种类型的树,首选需要创建一个实例,并调用Timer.plant函数将其种植下来,之后就可以随意使用了。


2. 轻量级的ORM框架ActiveAndroid

https://github.com/pardom/ActiveAndroid

ActiveAndroid是目前常见的几个ORM框架之一(除此之外,比较有名的开源解决方案还有 GreenDAOORMLite ),可以极大的简化数据库的使用,使用面向对象的方式管理数据库,告别手写SQL的历史。每一个数据库表都可以被映射为一个类,开发者只需使用类似save()或者delete()这样的函数即可。

参考文档:

官方文档(http://www.activeandroid.com/)


3. JSON解析函数库GSON

https://github.com/google/gson

GSON是Google出品的函数库,可以将JSON字符串反序列化为对应的Java对象,或者反过来将Java对象序列化为对应的JSON字符串。免去了开发者手动通过JSONObject和JSONArray逐个JSON字段进行解析的烦恼,也减少了出错的可能性,增强了代码的质量。

参考文档:

官方的用户指南http://sites.google.com/site/gson/gson-user-guide

第三方的用户指南http://www.studytrails.com/java/json/java-google-json-introduction.jsp


4. 点击涟漪效果控件RippleView

https://github.com/siriscac/RippleView

这个控件是在Android 2.3及以上平台实现的兼容Android L平台引入的View点击涟漪效果。

最美应用:从 Android 研发工程师的角度之“最美时光”


5. 现代的HTTP函数库OkHttp

https://github.com/square/okhttp

OkHttp是一个高效的HTTP客户端,具有如下特性:

  • 支持HTTP/2和SPDY,对同一台主机的所有请求共享同一个socket

  • 当SPDY不可用时,使用连接池减少请求的延迟

  • 透明的GZIP压缩减少下载的数据大小

  • 缓存响应避免重复的网络请求

更详细的使用方法参见 文档


6. 滚轮选择器控件android-wheel

https://github.com/maarek/android-wheel

android-wheel是Android平台上使用广泛的滚轮选择器,可用于实现日期时间选择器,省市区三级选择菜单等等。在最美时光这个app里面是作为日期时间选择器使用,效果如下所示:

最美应用:从 Android 研发工程师的角度之“最美时光”


7. 现代的I/O操作函数库okio

https://github.com/square/okio

okio作为java.io和java.nio的补充,是由square公司开发的一个函数库,使得开发者可以更方便的访问,存储和处理数据。一开始是作为okhttp的一个组件存在的,当然我们也可以单独使用它。


8. 类型安全的REST客户端Retrofit

https://github.com/square/retrofit

Retrofit是将REST API转换成Java接口的一个开源函数库,它要求服务器API接口遵循REST规范。它基于注解使得代码变得很简洁,Retrofit默认情况下使用GSON作为JSON解析器,使用OkHttp实现网络请求,三者通常配合使用,当然我们也可以将这两者替换成其他解析函数库。


参考文档:

Retrofit官方文档

http://square.github.io/retrofit/

快速Android开发系列网络篇之Retrofit

http://www.cnblogs.com/angeldevil/p/3757335.html

Retrofit – Java(Android) 的REST 接口封装类库

http://blog.chengyunfeng.com/?p=491&utm_source=tuicool

再谈RESTAPI最佳实践

http://blog.jobbole.com/70511/

使用Android API最佳实践

http://blog.jobbole.com/65170/

深入剖析Android网络开发库-part1: OkHttp, Volley and Gson

http://www.devtf.cn/?p=985


9. 下拉刷新组件Android-PullToRefresh

https://github.com/chrisbanes/Android-PullToRefresh

Android平台上广泛使用的下拉刷新组件,Github上star五千多,目前不再维护。支持的下拉刷新控件有:

  • ListView

  • ExpandableListView

  • GridView

  • WebView

  • ScrollView

  • HorizontalScrollView

  • ViewPager


10. 图片异步加载缓存函数库Android-Universal-Image-Loader

https://github.com/nostra13/Android-Universal-Image-Loader

这个函数库简称UIL,是一个功能强大灵活且高度可自定义的用于加载,缓存和显示图片的开源函数库,它提供一系列配置选项,并能很好的控制图片加载和缓存的过程。

主要特性有:

  • 同步或者异步的多线程图片加载

  • 高度可自定义:线程池,下载器,解码器,内存和磁盘缓存,图片显示选项等等

  • 每张图片的显示支持多种自定义选项:默认存根图片,缓存切换,解码选项,Bitmap处理和显示等

  • 图片可缓存在内存或者磁盘(设备的文件系统或者SD卡)上

  • 可实时监听图片加载流程,包括下载进度。


参考文档:

Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)

http://blog.csdn.net/vipzjyno1/article/details/23206387

Android 开源框架Universal-Image-Loader完全解析

http://blog.csdn.net/xiaanming/article/details/26810303

Android Universal Image Loader 源码分析

http://codekk.com/open-source-project-analysis/detail/Android/huxian99/Android%2520Universal%2520Image%2520Loader%2520%25E6%25BA%2590%25E7%25A0%2581%25E5%2588%2586%25E6%259E%2590

使用的第三方SDK

1. 小米推送(MiPush)

http://dev.xiaomi.com/doc/?page_id=1670

小米推送(MiPush)是小米公司为开发者提供的消息推送服务,通过在云端和客户端之间建立一条稳定、可靠的长连接,为开发者提供向客户端应用推送实时消息的服务,帮助开发者有效地拉动用户活跃。


2. 友盟统计分析SDK

http://dev.umeng.com/analytics/android-doc/integration

友盟统计分析平台是国内最大的移动应用统计分析平台。我们帮助移动应用开发商统计和分析流量来源、内容使用、用户属性和行为数据,以便开发商利用数据进行产品、运营、推广策略的决策。


3. 友盟用户反馈SDK

http://dev.umeng.com/feedback/android/integration

友盟用户反馈SDK两行代码实现开发者和用户轻松高效沟通。收集用户建议,了解用户需求,解决用户问题,全在应用之内。


4. 新浪微博SDK

https://github.com/sinaweibosdk/weibo_android_sdk

微博 Android 平台 SDK 为第三方应用提供了简单易用的微博API调用服务,使第三方客户端无需了解复杂的验证机制即可进行授权登陆,并提供微博分享功能,可直接通过微博官方客户端分享微博。

分析与总结

最美时光app用到的底层函数库基本上遵循 Android开发者必知的5个开源库http://www.csdn.net/article/2014-06-16/2820224-top-5-android-libraries 这篇文章介绍的函数库进行搭建。技术选型中规中矩,都是一些成熟稳定且常见的函数库,避免了开发人员流动造成的代码熟悉成本,团队新成员能够较快上手,而且也避免了开源库隐藏的bug可能造成的版本delay,因为越是成熟的开源库社区越成熟,bug也越少,就算出现新的bug,也能很快得到解决。


对于规模较小的团队,我们建议技术选型时尽量选择成熟的框架,特别是对初创公司。当公司和团队发展到一定阶段后,可以适时的引入新技术或者新框架,激活团队成员的技术敏感度。在大公司中,一般存在基础架构组这样一个团队,他们服务于全公司各个产品线,为其提供基础能力建设。当然对于团队成员整体技术水平都很高的团队来说,就算是初创公司,也有很多抛弃成熟稳定的技术或框架,转而选择新崛起的技术或者框架,因为往往新技术或框架相比成熟的技术或者框架而言更优,虽然可能存在更多的隐藏bug。说到底,技术选型是公司规模和团队素质的一个综合选择。


国外开发者对新技术的接受度和敏感度远高于国内开发者,这一点是毋庸置疑的,下一篇文章我们将来看看德国出品的一款厨房故事app,可以很容易看到技术选型上面的差异化。


文末摄影鉴赏

最美应用:从 Android 研发工程师的角度之“最美时光”



回复“1”,获取Android酷炫实用的开源框架(UI框架)

回复“2”,获取Google将不再支持Android Eclipse Tools

回复“3”,获取小处显逼格!APP界面如何在细节上提升气质?

回复“4”,获取Android终于官方支持按百分比来设置空间的宽高

回复“5”,获取最全最强解析:支付宝钱包系统架构内部剖析(架构图)

回复“6”,获取【源码】jiandan煎蛋—高仿也如此的专业

回复“7”,获取【干货】源码《在路上》and《高仿淘宝客户端》

回复“8”,获取2015中国程序员生存报告,你苦你先看

回复“9”,获取如何给你的Android安装文件(APK)瘦身

回复“0”,获取Android Studio的一些小技巧


以上是关于MATLAB土木工程研发应用的主要内容,如果未能解决你的问题,请参考以下文章

硬件工程师

土木工程专业学生想学习matlab 求介绍教材 主要应该是用于工程计算!

杭州阿里云-云原生中间件研发工程师

C++研发工程师 | 翼课网

内推2020微软亚太研发集团在北京上海苏州热招300+软硬件研发工程师

实习|阿里云生云原生中间件研发工程师(实习)