长期技巧记忆
Python
本文梳理重新学习DeepCFD相关代码中遇到的一些问题和查找的资料,以记录为主,不在意格式。
类的继承问题
CSDN: python中super().init()
断言assert和raise的用法
CSDN: python中assert的用法(简洁明了)
C语言中文网: Python raise用法(超级详细,看了无师自通)
关于copy
CSDN: python中的copy.copy和copy.deepcopy
CSDN: 系统学习Python——字典(dict):copy()函数
关于trainhe和eval
CSDN: 【Pytorch】model.train() 和 model.eval() 原理与用法
CSDN: python之*的用法
html
学习资料
本人跟学的bilibili的加百利先生的视频:
https://www.bilibili.com/video/BV1kb411n7NJ?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click
我已经学完了,将我 ...
D2L-2:从回归到感知机
本文章基于李沐老师的《动手学深度学习》(pytorch版),在此学习观礼膜拜。
课程主页:https://courses.d2l.ai/zh-v2
教材: https://zh-v2.d2l.ai/
课程论坛讨论:https://discuss.d2l.ai/c/16Pytorch
论坛: https://discuss.pytorch.org/
线性回归
介绍一些基本元素:
训练数据集(Training Dataset)、验证数据集(Validation Dataset)、测试数据集(Test Dataset)。这些数据是我们进行线性回归甚至是深度学习的基础。数据集中的每一行数据称作一个样本(sample),里面帮助预测所用到的数据称为特征(feature)或协变量(convariate),标注好的对应的目标称为标签(label)或目标(target)。
由特征x经过网络训练计算可以得到预测结果y^\hat{y}y^,将其与实际的结果y(标签)相对比,就可以得出运算正确与否。w为权重weight,b为偏置bias。
y^=w1x1+⋯+wdxd+b=w⊤x+b\hat{y} = ...
6/6 线性离散系统的分析
离散系统理论与连续系统理论既有本质的区别,又有极大的相似性。本章的内容就是讨论它们的区别和联系的。本章首先讨论离散信号的数学描述,引入Z变换理论及差分方程,建立线性离散控制系统的数学模型,在此基础上分析离散系统稳定性及计算稳态误差,并分析离散系统的动态性能与数字校正设计。
基本概念
采样和数控技术在自动控制领域中得到了广泛的应用,其主要原因是采样系统,特别是数字控制系统较之相应的连续系统具有如下的特点:
(1)由数字计算机构成的数字校正装置,效果比连续式校正装置好,且由软件实现的控制规律易于改变,控制灵活。
(2)采样信号,特别是数字信号的传递可以有效地抑制噪声,从而提高了系统的抗干扰能力。
(3)允许采用高灵敏度的控制元件,以提高系统的控制精度。
(4)可用一台计算机分时控制若干个系统,提高了设备的利用率,经济性好。
(5)对于具有传输延迟,特别是大延迟的控制系统,可以引入采样的方式稳定。
由于在离散系统中存在脉冲或数字信号,若仍然沿用连续系统中的拉普拉斯变换方法来建立系统各个环节的传递函数,则在运算过程中会出现复变量s的超越函数。为了克服这个障碍,需要采用Z变换法建立离散系统的 ...
D2L-1:数据操作
数据操作
N维数组是机器学习和神经网络的主要数据结构;
创建数组需要:形状,元素类型,元素的值;
访问的时候可以从一个元素开始、一行一列、子区域,甚至是带步长的分离区域。
连结,Concatenate
我们也可以把多个张量连结(concatenate)在一起, 把它们端对端地叠起来形成一个更大的张量。 我们只需要提供张量列表,并给出沿哪个轴连结。 下面的例子分别演示了当我们沿行(轴-0,形状的第一个元素) 和按列(轴-1,形状的第二个元素)连结两个矩阵时,会发生什么情况。 我们可以看到,第一个输出张量的轴-0长度( 6 )是两个输入张量轴-0长度的总和( 3+3 ); 第二个输出张量的轴-1长度( 8 )是两个输入张量轴-1长度的总和( 4+4 )。
12345678910111213X = torch.arange(12, dtype=torch.float32).reshape((3,4))Y = torch.tensor([[2.0, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])torch.cat((X, Y), dim=0), torch.c ...
5/6 线性系统的频域分析法(下)
线性系统的稳定性分析
频率域稳定判据
推导
总结:
对于每一个s,函数F(s)都有唯一的一个值与之对应,称为映射。s平面的曲线也与F(s)平面曲线相对应。
若s平面的曲线不包围F(s)的零点和极点,则F(s)平面曲线不包围原点,且Гs顺时针时,Г_F也顺时针。
若s平面的曲线Гs顺时针包围F(s)的Z个零点,Г_F也顺时针包围原点Z次;若s平面的曲线Гs顺时针包围F(s)的P个极点,Г_F则逆时针包围原点P次;重根应重复计算。
幅值原理。
线性系统的开环传递函数是有理分式函数,设
G(s)H(s)=B(s)A(s)G(s)H(s)=\frac{B(s)}{A(s)}
G(s)H(s)=A(s)B(s)
对应的闭环传递函数为
Φ(s)=G(s)1+G(s)H(s)=A(s)G(s)A(s)+B(s)\Phi(s)=\frac{G(s)}{1+G(s)H(s)}=\frac{A(s)G(s)}{A(s)+B(s)}
Φ(s)=1+G(s)H(s)G(s)=A(s)+B(s)A(s)G(s)
取F(s)为以下形式
F(s)=1+G(s)H(s)=1+B(s)A(s)=A(s) ...
miniconda环境安装(d2l包为主)
本文章基于李沐老师的《动手学深度学习》(pytorch版),在此学习观礼膜拜。
课程主页:https://courses.d2l.ai/zh-v2
教材: https://zh-v2.d2l.ai/
课程论坛讨论:https://discuss.d2l.ai/c/16Pytorch
论坛: https://discuss.pytorch.org/
深度学习介绍
当前深度学习和机器学习(在数学上的)的可解释性不是很好,更多地将其认定为黑盒,在等待更好的学术进展。
领域专家是指能为数据科学家辅助提供相关专业知识的人,类似于甲方。
MxNet下载GPU版本,需要卸载CPU版本。
数据科学家和AI专家的关系类似于应用和研发,前者转换问题,后者提升精度性能。
环境安装与配置
本环境的安装共分为以下几步:
安装Miniconda并配置好环境变量:去Miniconda官网找到对应版本(我选的是Windows installers中的Python 3.8 Miniconda3 Windows 64-bit),安装推荐教程;
下载老师的压缩课件,正常解压压缩包,自选文件路径。最好把文件夹 ...
5/6 线性系统的频域分析法(上)
本章首先介绍控制系统的频率特性的基本概念,并建立系统频率特性函数,然后研究用伯德图、奈奎斯特图,尼科尔斯图等图解方法来表示频率特性函数。在讨论了各种典型环节和系统的频率特性后,着重研究利用奈奎斯特稳定性判据和对数稳态判据进行系统稳定性能分析。本章还简要分析了开环系统频率特性与闭环系统频率特性的关系,以及它们与系统时域性能指标的关系;介绍了反馈控制系统的频域校正方法。最后,本章以一个高速列车倾斜控制系统为例,用频率法进行了分析和设计。
引言
本章将研究系统在正弦信号输入下的稳态响应。实验和数学推导都表明,当输入是正弦信号时,线性定常系统的稳态输出也是正弦信号,输出信号的频率与输入信号频率相同,其幅值和相角则是该频率的函数。即输入信号的频率发生变化时,系统稳态响应的幅值和相角变化情况,这也就是系统的频率特性。相应的分析方法,称为系统的频域分析法。主要采用图解。
与其他方法相比较,频率分析法具有如下特点:
频率特性可以由前述传递函数确定,也可以用实验的方法来确定,对于难以列写微分方程式的元部件或系统,它便于工程上的使用。
频率响应法借助开环频率特性的图形对系统进行分析,因而具有形象、直 ...
4/6 线性系统的根轨迹法
本章研究一种分析和设计线性系统的图解方法-根轨迹法。首先研究闭环零、极点和开环零、极点的关系,得到根轨迹方程;其次给出以开环增益为可变参数时绘制根轨迹的基本法则;接着又给出以非开环增益为可变参数时绘制广义根轨迹的方法,讨论如何通过根轨迹定性地分析和定量地估算系统性能;最后介绍如何应用根轨迹法设计超前、滞后和超前-滞后控制器对系统进行校正,使其满足瞬态和稳态性能要求。
根轨迹法的基本概念
根轨迹是指当系统中某个参数(如开环增益K)从零变到无穷大时,闭环特征根在s平面上移动的轨迹。
在第二章中也曾介绍过,一般情况下,前向通道传递函数G(s)和反馈通道传递函数H(s)可分别表示为:
G(s)=KG(τ1s+1)(τ22s2+2ζ1τ2s+1)⋯sν(T1s+1)(T22s2+2ζ2T2s+1)⋯=KG∗∏i=1f(s−zi)∏i=1q(s−pi)H(s)=KH∗∏j=1f(s−zj)∏j=1q(s−pj)K∗=KG∗⋅KH∗\begin{aligned}
G(s)&=\frac{K_G(\tau_1s+1)(\tau_2^2s^2+2\zeta_1\tau_2s+1)\cdot ...
傅里叶变换
傅里叶变换是用三角函数表示目标函数,傅里叶变换广泛的应用在信号处理、偏微分方程、热力学、概率统计等领域:大到天体观测,小到我们手机中图片、音频应用等,没有傅里叶变换就没有如今丰富多彩的信息化时代。在人工智能领域中,可利用傅里叶变换证明中心极限定理,而中心极限定理是概率学最重要的基石;傅里叶变换本质是将时域的信息汇总到频域中,当两组数据的傅里叶变换结果相同时,称为两者依概率收敛。
如果你不想知道傅里叶变换的原理,只是想知道它能做什么事、实现什么功能,推荐阅读链接:An Interactive Introduction to Fourier Transforms或者它的中文版讲解。
从傅里叶级数开始
法国数学家傅里叶认为,任何周期函数都可以用正弦函数和余弦函数构成的无穷级数来表示。即使用三角函数集合{1,sinx,cosx,sin2x,cos2x,sin3x,cos3x,...,sinnx,cosnx}\{1,\sin x,\cos x,\sin 2x,\cos 2x,\sin 3x,\cos 3x,...,\sin nx,\cos nx\}{1,sinx,cosx,s ...
3/6 线性系统的时域分析法
本章主要讲述物理系统如何在时间域内进行分析和设计。系统的动态和稳态性能指标是评判系统设计好坏的标准。首先给出控制系统稳定性的定义,并讨论如何利用劳斯稳定判据进行判稳;其次对典型控制系统的时域性能指标进行定性和定量描述,分析典型一阶系统、二阶系统动态时域性能指标的近似计算方法,介绍一般控制系统的稳态精度的计算方法和补偿方法以及常用的时域校正方法等;最后以某型飞机俯仰通道控制系统为例详细介绍典型时域分析的操作步骤。
引言
由第2章的知识可以将一个物理系统抽象化,建立描述其内部物理量(或变量)之间关系的微分方程、传递函数或结构图,这就为对系统性能进行理论分析和控制系统设计提供了前提。
由于多数控制系统是以时间作为独立变量的,所以人们往往关心该系统的状态和输出对时间的响应。对系统施加一给定输入信号,通过研究系统的时间响应来评价系统的性能,这就是控制系统的时域分析法。它根据描述系统的微分方程或传递函数,直接求解出在某种典型输入作用下系统输出随时间t变化的表达式或其他相应的描述曲线来分析系统的稳定性、动态特性和稳态特性。时域分析法是一种直接在时间域中对系统进行分析的方法,具有直观、准确的优点, ...