0%

__init__.py,这个文件很不起眼,而且经常会被人忽略,但是实际在软件开发的过程中非常重要,在这里,我将简单介绍一下__init__.py的编写以及相关可能会遇到的坑.

Read more »

今天我意识到一个问题,在物理楼只有靠南的网线接口可以对外开放除22端口外的端口

检测手段

一般判断服务器的一个端口是否开放,最为简单的方法是使用telnet
就是telnet 10.92.1.163 445就可以检测其445端口是否开放

因为我认为需要搭建一个Linux服务器用于一些用途(比如说,练习使用Linux,或者未来搭建一些网页,以及部署偏微分方程求解器,都是很有用的).
我第一步,先在宿舍里面搭建这个服务器,好处是宿舍用的电信宽带拥有公网ip,因此我可以在任何地方访问到这台服务器,而且配置相对简单,因为不用使用校园网那样一套专门的认证系统,非常麻烦.
但相应的,缺点也非常显著,因为在宿舍,由于安全和考虑,白天必须断电,所以这就产生了定时开关机的问题
同时,一个服务器放在公网上总是显得不是那么安全,因此未来我会考虑把它搬到校内(这样的话也可以省去使用easyconnect这种软件)
下面是我在2.12日配置Linux服务器遇到的问题.

基本信息

版本: Ubuntu 20.04.5 LTS

网络配置

连上网

下面是万恶的网络配置环节,由于安装的Linux-Server是完全没有GUI界面的,结果就网络配置起来非常痛苦.
幸好我有网线,可以在网络配置的过程中方便一些,我参考的是[这篇网页][1]对我的有限网络进行配置,但有一点不同,就是在我配置好这个,并且reboot之后,实际上还是没有反应.
就在我心灰意冷准备去改为使用无线连接时,在输入

1
sudo netplan apply

之后,突然就可以了,我不确定是不是netplan的效果,但是未来也许可以参考

外网访问

我这里使用的是TP-LINK路由器提供的外网连接服务”DMZ主机”功能

我之前发现机器重启之后不能用了,原因是没有分配静态ip

关于Samba访问

似乎由于之前的一个病毒,因此445端口的访问被关闭了,所以无法正常连接samba,所以还是得移到校内局域网环境

邮件问题

邮件

这里先颠倒一下顺序,讲一下邮件
一开始,我打算使用Linux里面的mail命令,但是不幸的是,mail命令不支持修改邮件的发送者,也就是说我发送的邮件会毫无例外地被移到垃圾箱中,而且还不好移出来(会提示说邮件格式有问题),因此我打算使用mailx来解决问题
但是mailx也遇到的相应的问题,那就是对于外来的邮件似乎还是无法解析
看起来目前只有两种选项:

  1. 使用前面已经妥善处理了的python脚本进行邮件处理
  2. 就扔到垃圾箱好了
    这个问题值得去讨论
    [1]:https://www.cnblogs.com/wayneliu007/p/10312202.html

之前提到过三维路径的查找的方法,使用A*寻找,但是在找完之后就面临一个问题,如何挑选出一个合适的路径.
很明显,我们这里的这个问题是一个旅行商问题,这玩意不可能有一个”完美”的算法.
之前我所使用的方法是使用基于贪心算法的最小生成树进行路径查找但是这种方法的结果只能保证路径总代价不超过2倍.
原本我想想只需要无脑调库就可以了,但是一查,虽然有一个民间制作的蚁群优化算法,但是那些都是基于python的python库,完全没法用.

虽然你可能会觉得上面那句话很怪,但如果你了解过python的运行效率,那么就会知道这么做就是自寻死路

所以我看来又得”自己造轮子”,使用C++处理蚁群算法

Read more »

在这一篇文章中,我们将讨论两个话题:向量化和面向对象

第一个话题大家应该已经有相关的知识了,但是”可能”还缺乏一个非常清晰的理解;
而第二个话题大家可能听说的不多,虽然像”面向对象”这样的话题对于计算机程序设计非常重要,但是这对于我们做科学计算实际上意义有限,但是基本概念又不能不知道

Read more »

非常不幸,像我这种半吊子都要给大家来讲Python学习的问题了

我大概会分成以下几个部分来讲:

  1. 为什么要学python
  2. 基础的学习
  3. 进阶的学习
  4. 其他的一些建议

大家挑感兴趣的看吧

Read more »

在上一篇文章中我曾经提到有一种较好的替代算法,A*算法来处理存在障碍物的情况下对路径的寻找

不过这种算法存在一个限制条件,就是其必须在网格内执行,而不是矢量(这看起来很正常,因为矢量的算法可以说几乎找不到)

同时由于这种算法的性质,其运算过程是难以矢量化的,所以直接拿python去跑会变得非常让人难以接受,因此我们必须拿C++来实现这个功能

具体而言,我们可以将这个问题转化为:网格化->A*寻路->矢量化三步进行

Read more »

使用模型匹配法进行增益调整

所谓模型匹配法就是通过指定合适的标准模型$\mathcal{M}(s)$尽量的去模拟目标值到控制量的传递函数$\mathcal{G}_{yr}(s)$
标准模型往往采用二项式系数标准型巴特沃斯标准型
例如,二阶系统的标准模型为:
$$\mathcal{M}(s)=\frac{\omega_n^2}{s^2+2\zeta\omega_ns+\omega_n^2}$$
当我们将阻尼系数$\zeta$设为$\zeta=1$时,就是二项式系数标准型,设为$\zeta=\frac{1}{\sqrt{2}}$为巴特沃斯标准型
而无阻尼自然振荡频率$\omega_n$为决定快速性的参数,值越大控制系统启动上升越快

而对于三阶系统,其标准模型为
$$\mathcal{M}(s)=\frac{\omega_n^3}{s^3+\alpha_2\omega_ns^2+\alpha_1\omega_n^2s+\omega_n^3}$$
当$(\alpha_1,\alpha_2)=(3,3)$时这个模型为二项式系数标准型,当$(\alpha_1,\alpha_2)=(2,2)$时这个模型为巴特沃斯标准型
此外,还有ITAE最小标准型,其可以使误差绝对值的时间加权积分最小,即
$$\int_0^t\tau|e(\tau)|\mathrm{d}\tau$$
值最小,可以将$(\alpha_1,\alpha_2)=(2.15,1.75)$

Read more »