作者归档:francis

Matlab 相关操作小结(1)

之前使用matlab进行仿真的解析计算。最近在处理实验数据,也使用到了matlab,对于一些常见的操作进行一下小结。


1. 拟合

  • 使用cftool工具箱

工具箱操作相对便捷,首先导入数据,打开工具箱,选择需要拟合的X和Y(或Z)的数据,选择拟合类型,可以实时的看到拟合的结果。

  • 使用fit命令

fit命令 可以用于拟合函数需要注意的是,fit命令返回的fitobject对象。
可以用 Fit Postprocessing 拟合后处理函数,从对象中提取需要的内容。
feval(fitobject)可以得到拟合后的数值,plot(fitobject)可以绘制拟合前后的图像。

2. 批量读取.csv文件

dir命令可以列出文件夹内容
dir(*.csv)可以列出当前文件夹所有.csv文件,然后我的做法是再再当前文件夹下保存为.mat文件,以供后续使用。

csvread('filename',r,c) 可以用来读取.csv文件,r,c,分别用于开始从表中读取数据的偏移量。

文件路径
当前路径下 (mat和m文件在一起): load ***.mat;
在下一级路径下:load .\下一级路径的文件名\***.mat;
在上一级路径下:load ..\***.mat;
在平行文件夹内: load ..\平行的文件夹\***.mat;

3. 常用函数

  • size
    主要用来获得矩阵的各个维数的大小,或者指定维数的大小。

  • length
    用来获得一维数组的长度或者多维数组中最大的维数

  • array(array==0)=[]
    删除0值

  • max 、min
    最值

  • mean 、norm
    算数平均值,平方和开根号


最后,最重要的仍然是勤于搜索和翻阅手册。

欢迎点击 Mathworks官方的 在线文档

高斯光束

最近仿真需要用到高斯光束,学习了一下高斯光束的设置和相关理论。

在一定频率下,Maxwell方程并不独立完全独立,只有法拉第定律和安培定律(加位移电流)的两个方程独立。求解电场或磁场可以得到Helmholtz方程,是一定频率下电磁波的基本方程。其解是电场代表电磁波场强在空间中的分布,每种可能的形式成为一种波模。

基本的解有平面波、球面波和高斯光束。高斯光束在束腰可以看作平面波,而在远离束腰的地方可以看作球面波,是连接平面波和球面波的一种过渡的形式。

高斯光束的方程为:
$ \frac{E(r,z,t)}{E_0}=\frac{w_0}{w(z)}exp[-(\frac{r}{w(z)})^2]exp[i(\omega t-\Phi _T-\Phi _L)]$

高斯光束的基本参数有:
– Beam radius : $w(z)=w_0\sqrt{1+(\frac{z}{z_R})^2}$,代表z点处光斑半径
– Radius of curvature of phase front : $R(z)=z[1+(\frac{z_R}{z})^2]$,代表等相位面
– Transverse phase : $\Phi T(r,z)=\frac{kr^2}{2R(z)}$
– longitudinal phase : $\Phi _L(z)=k_z-arctan(\frac{z}{z_R})$
– Rayleigh Length : $ z_R=\frac{\pi w_0^2}{\lambda }$,也称为高斯光束的共焦参数
– Divergence angle : $\Theta =2\theta =2\times \lim
{z \to \infty } arctan(\frac{w(z)}{z})\simeq \frac{\lambda _0}{\pi nw_0}$,代表远场发散角

参考:
1. Understanding the Paraxial Gaussian Beam Formula
2. Gaussian beam – wikipedia
3. Gaussian beam – Youtube

乙亥猪年寒假

乙亥猪年的寒假从2019年1月29日至2月17日,共计20天。

回家休息仿真,期间购置了新的笔记本,京东美日亚,港行ThinkPad T480。

看完了《jojo的奇妙历险》目前已经播出的动画四部加正在连载的第五部动画,十分精彩,充满想象力和大胆独特的画风。

院线支持了《流浪地球》的票房,盗版看了其他春节档电影,没有一个能打的。以及补了前一年中国产影片的口碑之作。

初一至初五,亲戚各家拜年,加上表哥家正月十二有空聚餐完毕。表妹考研尚可。然而愈发发现大人们说的话,都是他们亲身经历后留下的思维钢印。

每个年龄段都有每个年龄段该面对的问题,没有什么是一直都会存在的困扰,也没有一招鲜吃遍天的技能。目前看来,有车有房有编有人是较为成功的一个标志。

高中同学小群聚餐两次,初中留德同学聚餐一次,大学舍友苏州聚餐一次。简单交流,互通有无,了解工作生活现状。然而大家都有各自的工作学习,并没人有切实的关心别人。

明天又要开始干活了。

《流浪地球》观后感

离开太阳系 to leave the solar system

その一

昨天晚上和高中同学聚会,吃完晚饭后去看了流浪地球,算得上是二刷支持一下票房,依旧是热泪盈眶和感慨颇深。

高中的时候看了大刘的《三体》,如实说是在高三暑假的时候,开始尝试看了很多次,都没有看下去,遂丢在一边。等到了寒假,大概是2013年初,在手机上看完了三本,思维十分震撼,最后一路狂飙。

去年暑假就在影院里看到了《流浪地球》的宣传片,当时知道《三体》改编权也放出去了,便误以为是其电影。后来才发现不是,但也很期待,终于《流浪地球》在今年春节档如期上映。

大学之后,带着高中迷恋大刘科幻残留的热情,一口气又看了《球闪》《乡村教师》《中国2185》等。电影上映前,更是回顾了一下《流浪地球》的原著。看完电影后,发现剧情并不完全相同,或许这就是科幻小说和商业科幻电影的区别,电影是需要改编的,用镜头语言给我们讲一个好故事。


その二

原著冰冷黑暗,小说的结尾更是在寂静严寒的绝望中爆发了氦闪,而后戛然而止。电影约莫有了好莱坞式电影工业的影子,成熟完整的叙事,接连不断的冲突,最后推向高潮。虽然存在有待提升的地方,但是瑕不掩瑜,整体上差强人意,更重要的也是靠同行衬托。

电影的故事可以看作围绕行星发动机展开的一系列救援。救援在不断的失败、不断地进行新的救援,从济宁到上海,再到杭州,途径马尼拉,最后在苏拉威西把离子流集中在一个喷射口,试图引爆木星。

什么是希望?或许先要理解什么是绝望,鲁迅说过悲剧就是把美的东西毁灭给人看。黄金时代体验课、想去看看外面的世界、大批行星发动机毁坏、救援行动初期的接连失败、刚子没了、姥爷活活冻死、杭州地下城三十五万人没了、最后即使救活的行星发动机全功率输出依旧改变不了偏离的航线。或许这就是绝望。


その三

电影中最令我印象深刻的是“饱和式救援”这个设定。用大量的、甚至全人类的资源去救援,一个行星发动机安排了多个救援小队执行任务,只要其中一个完成便大功告成了。这与举国体制的一将功成万骨枯不同,这里没有“将”的出现,在大自然、甚至宇宙面前,人是渺小而微不足道的,只有流血牺牲的拼命救援,构建成人类命运的共同体。

在主角抵达前,已经有别的救援队提前抵达并完成了救援。虽然其他救援队的部分一笔带过的略写,但也可以同理的想象出他们所遭遇的困难,“饱和式救援”体现的是人性的光辉,是伟大的无私奉献和牺牲精神,感受到了浓厚的人文关怀。

而另一处体现出人文关怀的,就是在主角尝试点燃木星时并点火成功,看到了另外两处喷射出的火光。这个点子,并不是个人英雄主义的由一个人想到,而是早就由以色列科学家计算出,但面对几率为零的方案,三个行星发动机的救援队仍然不放弃,勇敢拼搏,不可不谓之,人类的赞歌是勇气的赞歌,人类的伟大是勇气的伟大!摒除了个人主义,充满了人文关怀,人类在面对人类整个族群的危难时,散发出人性的光芒。

“饱和式”的行为在生活中也并不罕见,我甚至体会到目前的科研就是一种“饱和式科研”。站在人类整体的角度上,这并不为过。但是作为单一的个体,却只能体会到其残酷。当下科研谁都并不缺idea,然而实验物理面对没有仪器设备的窘境,也无法发出高档次的文章。然而这里面牵扯到的利益关系,只能感受到无奈。

Linux下重置MySQL root密码

一、手动修改

  1. 停止MySQL服务
    执行:/etc/init.d/mysql stop,你的机器上也不一定/etc/init.d/mysql也可能是/etc/init.d/mysqld

  2. 跳过验证启动MySQL
    /usr/local/mysql/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1 &
    注:如果mysqld_safe的位置如果和上面不一样需要修改成你的,如果不清楚可以用find命令查找。

  3. 重置密码
    等一会儿,然后执行:/usr/local/mysql/bin/mysql -u root mysql
    出现mysql提示符后输入:update user set password = Password('要设置的密码') where User = 'root';
    回车后执行:flush privileges; 刷新MySQL系统权限相关的表。再执行:exit; 退出。

  4. 重启MySQL
    杀死MySQL进程:killall mysqld
    重启MySQL:/etc/init.d/mysql start

二、使用重置脚本

wget http://soft.vpser.net/lnmp/ext/reset_mysql_root_password.sh;sh reset_mysql_root_password.sh

适合lnmp或MySQL管理脚本在/etc/init.d/mysql 且mysql安装在/usr/local/mysql/的。否则需要修改脚本后再执行sh reset_mysql_root_password.sh。

参考

Linux 下重置Mysql root密码

Shadowsocks 相关

前言

乙亥猪年第一天,发现SSR的IP好像被封了,VPS的IP可以ping通,也可以用SSH连接上。但是使用SSR提示ERR_SOCKS_CONNECTION_FAILED,而且使用IP查询,也无法获得有效的翻墙IP。

所以将Vultr上的VPS,take snapshot,并在sydney选了一个$3.5/mo的进行了restore。

目前使用的安装脚本是 秋水逸冰 大神的 Shadowsocks 一键安装脚本(四合一)

包含一键安装 Shadowsocks-Python, ShadowsocksR, Shadowsocks-Go, Shadowsocks-libev 版(四选一)服务端。
支持以多次运行来安装多个版本,且各个版本可以共存(注意端口号需设成不同)。

安装方法

使用root用户登录,运行以下代码

wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log

安装完成后,提示

Congratulations, your_shadowsocks_version install completed!
Your Server IP        :your_server_ip
Your Server Port      :your_server_port
Your Password         :your_password
Your Encryption Method:your_encryption_method

Your QR Code: (For Shadowsocks Windows, OSX, Android and iOS clients)
 ss://your_encryption_method:your_password@your_server_ip:your_server_port
Your QR Code has been saved as a PNG file path:
 your_path.png

Welcome to visit:https://teddysun.com/486.html
Enjoy it!

卸载方法

若已安装多个版本,则卸载时也需多次运行(每次卸载一种);

./shadowsocks-all.sh uninstall

使用方法

分别对应各版本:启动,停止,重启,查看状态。

/etc/init.d/shadowsocks-python start | stop | restart | status

/etc/init.d/shadowsocks-r start | stop | restart | status

/etc/init.d/shadowsocks-go start | stop | restart | status

/etc/init.d/shadowsocks-libev start | stop | restart | status

各版本默认配置文件的位置

/etc/shadowsocks-python/config.json

/etc/shadowsocks-r/config.json

/etc/shadowsocks-go/config.json

/etc/shadowsocks-libev/config.json

开启多端口的方法

python版、R版和Go版,分别修改对应默认配置文件,并重启即可。
配置文件示例如下:

#python版
{
    "server":"0.0.0.0",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
         "9000":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "method":"your_encryption_method",
    "fast_open": false
}

R版
{
    "server":"0.0.0.0",
    "server_ipv6": "[::]",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
        "9000":"password0",
        "9001":"password1",
        "9002":"password2",
        "9003":"password3",
        "9004":"password4"
    },
    "timeout":300,
    "method":"your_encryption_method",
    "protocol": "your_protocol",
    "protocol_param": "",
    "obfs": "your_obfs",
    "obfs_param": "",
    "redirect": "",
    "dns_ipv6": false,
    "fast_open": false,
    "workers": 1
}

Go版
{
    "port_password":{
         "9000":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "method":"your_encryption_method",
    "timeout":300
}

libev版开启多端口的步骤如下:
1. 下载脚本并赋予权限

wget -O /etc/init.d/shadowsocks-manager https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-manager
chmod 755 /etc/init.d/shadowsocks-manager
  1. 新建配置存放目录
mkdir /etc/shadowsocks-manager
  1. 创建多端口配置文件 /etc/shadowsocks-manager/config.json 示例
{
    "server":"0.0.0.0",
    "port_password":{
         "9000":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "user":"nobody",
    "method":"your_encryption_method",
    "nameserver":"8.8.8.8",
    "mode":"tcp_and_udp"
}

其他

以前用过一个带有多用户管理的SSR脚本感觉很好,换了VPS后,提示安装不成功。脚本来自都比根据地(doubi.io),可以最近主站上不去了,站长也不见了。

找到了几个粉丝做的备份:
1. 逗比云
2. 逗比根据地backup

参考:

  1. Shadowsocks 一键安装脚本(四合一)
  2. 如何启用 Shadowsocks 的多端口
  3. 自建ss服务器教程 Alvin9999

苏州纳米所综合培训

2018年12月6日-8日,参加了苏州纳米所综合培训。

官方网络资料:新用户培训资料下载

周四(6日)
下午14:00高铁从上海出发,转苏州地铁2号线,到达苏纳所,去纳米加工平台B618找柏燕,缴费报名,600元。

周五(7日)
上午9:00,在纳米加工平台B616综合培训,就是念PPT,和下载的资料一样。
上午10:30,参观净化室,共4层。
下午13:30,理论考试,机考,当场出分。
下午15:00,净化室清洗间理论培训,看了三个视频,包括基本常识、有机、无机。根据理论考试通过人数,安排清洗间操作考核。

周六(8日)
下午13:30,清洗间操作考核。考试用水代替实际溶液,无大错(器皿选择、防护穿戴、废液稀释、废液分类),比较容易。

理论考试的我的错题(加粗为正确答案)

  • 下面哪个不是乙醇的禁配物:A强氧化剂 B酸类 C碱金属 D碱类
  • 下面哪个对硝酸描述不对:A易挥发 B见光分解 C与水混溶 D透明或胶状液体
  • 在超净104实验室有一个消防栓:错误
  • 以下关于工艺预约时间描述正确的有哪几项:A晚上的工艺需要在5点之前预约 B晚上的工艺可以和白天一样随时预约 C周末的工艺需要在星期五下午4点预约 D 周末工艺可以在周六早上9点之前预约 E中午12:00-13:30的工艺,在11:50之前预约即可

Decade 与 Octave 电子与音乐

电子技术中的频谱(幅频、相频)常用decade对数坐标,横轴是频率的对数坐标,纵轴是增益的dB表示。

考虑幅度时,幅值增益通常$10\log_{10}\frac{a}{b}$

由于功率是幅值的平方,功率增益通常 $10\log_{10}\frac{a^2}{b^2} = 20\log_{10}\frac{a}{b}$

举例,常见的3dB点,$3dB = 10\log_{10}\frac{a^2}{b^2}$
$\frac{a^2}{b^2} = 10^{\frac{3}{10}} = 1.99526…$
功率变为原来的一半,幅值变为原来的$\sqrt{2}$倍

另外有octave对数坐标,则是借用音乐中的八音度
$n=\log_{2}(\frac{f_1}{f_2})$
当$ n=1 $,为八音度

十二平均律,将八度音的频率分为十二等分,即是分为十二个等比级数,也就是每个音的频率为前一个音的2的12次方根($\sqrt[12]{2} = 2^{1/12}$)

20dB/decade = approx. 6dB/octave
10dB/decade = approx. 3dB/octave.

参考:
1 八音度
2 什么是倍频程
3 Decade(log scale)
4 Octave
5 dB/dec 与 dB/oct
6 十二平均律

超临界干燥技术

临界点干燥技术是扫描电镜生物样品制备的常用方法。

首先利用无水乙醇等对生物样品脱水,接着利用液体二氧化碳置换乙醇,然后通过升温加压,使二氧化碳达到临界状态,随着二氧化碳的缓慢排出,样品被干燥。

当二氧化碳达到临界状态时,气液界面消失,因而由液体的表面张力在样品干燥过程中造成的样品伸缩降到最小,有利于样品形态结构的保存

临界点干燥是应用最为普遍的一种干燥方式,其基本原理为利用物质在特定的温度和压力下可达到液气相并存的特性,使物质之液相与气相之界面消失,物体在此状态下干燥,可避免表面张力的改变,而保存物体原本的细微构造, 此特定温度与压力即所谓临界点 (critical point)

通常每种物质均有其特定的临界点,而被用来作为临界点干燥的物质称为转换液 (transitional fluid),欲干燥的样品必须完全浸泡于其中。 一般最常使用的转换液为液态二氧化碳,此乃由于二氧化碳的临界点较低较容易达到,且在生物标本能容忍的范围内。

参考:
臨界點乾燥技術
超临界流体
临界点干燥仪
临界点干燥(Critical Point Drying, CPD)