当前位置: 首页 > news >正文

三相感应电机的建模仿真(2)基于ABC相坐标系S-Fun的仿真模型

1. 概述

2. 三相感应电动机状态方程式

3. 基于S-Function的仿真模型建立

4. 瞬态分析实例

5. 总结

6. 参考文献

1. 概述

       前面建立的三相感应电机在ABC相坐标系下的数学模型是一组周期性变系数微分方程(其电感矩阵是转子位置角的函数,转子位置角随时间按正弦规律变化),依目前的数值计算和计算机水平求解这组方程已完全没有问题。自然坐标系下的三相感应电机数学模型,将其用于电机控制系统的设计和控制策略的分析定制也许不太合适,有点勉为其难。而将其用于理解电机的基本物理原理和数学特性,设计更高效的电机和优化算法;对分析三相感应电机的启动、运行和制动等状态,深入理解电机的工作原理和学生工程师的教育培训;提供电机的故障诊断和分析的详细信息;用于电机与机械系统的耦合分析等也许是非常合适的。

       电机的数学模型具有多样性,而根据数学模型建立的仿真模型更具多样性 ,因为同一个数学模型可以建立起对应的多个仿真模型。本文将根据前面所建立的三相感应电机在ABC相坐标系下的数学模型,用Matlab的动态分析工具Simulink建立基于S函数的仿真模型,这个仿真模型只对磁链方程和电磁转矩方程建立S函数,而电压方程和机械运动方程仍然用Simulink的基本功能模块建立,这样更方便对三相感应电机的某些运行状态或动态行为进行仿真。用建立的仿真模型对三相感应电动机在三相对称电源下直接起动和在不对称三相电源下直接起动的起动过程进行仿真分析。

2. 三相感应电动机相坐标系下的状态方程式

       为阅读方便,将前面建立的三相感应电动机在ABC相坐标系下的状态方程式罗列如下:

\mathbf{u}=\mathbf{Ri}+\mathbf{L}\frac{d\mathbf{i}}{dt}+\omega_r\frac{\partial\mathbf{L}}{\partial\theta}\mathbf{i}\\\frac12n_p\mathbf{i}^T\frac{\partial\mathbf{L}}{\partial\theta}\mathbf{i}=T_L+\frac J{n_p}\frac{d\omega_r}{dt}\\\omega_r=\frac{d\theta}{dt}    (1)

(1)式中,

\mathbf{u}=\begin{bmatrix}u_A&u_B&u_C&u_a&u_b&u_c\end{bmatrix}^T; R=diag(R_s\quad R_s\quad R_s\quad R_\mathrm{r}\quad R_r\quad R_r)

\mathbf{i}=\begin{bmatrix}\dot{\boldsymbol{\iota}}_{A}&\dot{\boldsymbol{\iota}}_{B}&\dot{\boldsymbol{\iota}}_{C}&\dot{\boldsymbol{\iota}}_{a}&\dot{\boldsymbol{\iota}}_{b}&\dot{\boldsymbol{\iota}}_{c}\end{bmatrix}^{T}

\begin{gathered}L=\begin{bmatrix}M_{ss}+L_{sl} & -M_{ss}/2 & -M_{ss}/2 & M_{sr}\cos\theta_1 & M_{sr}\cos\theta_3 & M_{sr}\cos\theta_2\\ -M_{ss}/2 & M_{ss}+L_{sl} & -M_{ss}/2 & M_{sr}\cos\theta_2 & M_{sr}\cos\theta_1 & M_{sr}\cos\theta_3\\ -M_{ss}/2 & -M_{ss}/2 & M_{ss}+L_{sl} & M_{sr}\cos\theta_3 & M_{sr}\cos\theta_2 & M_{sr}\cos\theta_1\\ M_{sr}\cos\theta_1 & M_{sr}\cos\theta_2 & M_{sr}\cos\theta_3 & M_{rr}+L_{rl} & -M_{rr}/2 & -M_{rr}/2\\ M_{sr}\cos\theta_3 & M_{sr}\cos\theta_1 & M_{sr}\cos\theta_2 & -M_{rr}/2 & M_{rr}+L_{rl} & -M_{rr}/2\\ M_{sr}\cos\theta_2 & M_{sr}\cos\theta_3 & M_{sr}\cos\theta_1 & -M_{rr}/2 & -M_{rr}/2 & M_{rr}+L_{rl}\end{bmatrix}\end{gathered}

M_{ss}:定子绕组互感;M_{rr}:转子绕组互感;L_{ls}:定子绕组漏感;

L_{lr}:折算到定子绕组的转子绕组漏电感;M_{sr}:定转子绕组间的互感;

\theta_1=\theta\text{,}\theta_2=\theta-2\pi/3\text{,}\theta_3=\theta+2\pi/3\theta:定子A相绕组与转子a相绕组之间的夹角。

也可以将式(1)中的电压方程式写成以下矩阵形式:

\begin{bmatrix}\mathbf{u}_s\\\mathbf{u}_r\end{bmatrix}=\begin{bmatrix}\mathbf{R}_s&\mathbf{0}\\\mathbf{0}&\mathbf{R}_r\end{bmatrix}\begin{bmatrix}\mathbf{i}_s\\\mathbf{i}_r\end{bmatrix}+p\begin{bmatrix}\mathbf{L}_s&\mathbf{M}_{sr}\\\mathbf{M}_{rs}&\mathbf{L}_r\end{bmatrix}\begin{bmatrix}\mathbf{i}_s\\\mathbf{i}_r\end{bmatrix}    (2)

方程(2)中,

\mathbf{u}_s=\begin{bmatrix}u_A&u_B&u_C\end{bmatrix}^T;\quad\mathbf{u}_r=\begin{bmatrix}u_a&u_b&u_c\end{bmatrix}^T;

\mathbf{R}_s=diag(R_s\quad R_s\quad R_s); \mathbf{R}_r=diag(R_r\quad R_r\quad R_r);

\mathbf{i}_s=\begin{bmatrix}i_A&i_B&i_C\end{bmatrix}^T;\quad\mathbf{i}_r=\begin{bmatrix}i_a&i_b&i_c\end{bmatrix}^T;

设定、转子零序电流等于零,即设i_A+i_B+i_C=0   i_a+i_b+i_c=0,则有

\mathbf{L}_s=diag(L_s\quad L_s\quad L_s)\mathbf{L}_{r}=diag(L_{r}\quad L_{r}\quad L_{r})

L_s=L_{ss}+L_{sm}/2;\quad L_r=L_{rr}+L_{sm}/2

\mathbf{M}_{sr}=M_{sr}\begin{bmatrix}\cos\theta & \cos(\theta+2\pi/3) & \cos(\theta-2\pi/3)\\ \cos(\theta-2\pi/3) & \cos\theta & \cos(\theta+2\pi/3)\\ \cos(\theta+2\pi/3) & \cos(\theta-2\pi/3) & \cos\theta\end{bmatrix}

\mathbf{M}_{rs}=\mathbf{M}_{sr}^T

T_e=n_pi^T\frac{\partial L}{\partial\theta}i    (3)

3. 基于S-Function的仿真模型

       根据以上数学模型,用Simulink建立的ABC相坐标系下的三相感应电动机仿真模型如图1和图2所示,其中,左边图形为最后的封装形式,它由三个子系统所组成,如右边图形所示。图1中的子系统1表示的是定转子电压方程,子系统2是用S函数表示的磁链方程和电磁转矩方程,S函数取名为flux_torque,如图2所示,子系统3表示的是进行运动方程。这个仿真模型可以作为通用的仿真模型使用,可以用于为了三相感应电动机电源电压不对称、定转子绕组回路串电阻或电抗、起动、调速以及绕组开路故障等的动态行为的仿真分析。如果要考虑主磁路饱和因素,可以在S函数中加以补充。如果要对三相感应电机的定子绕组故障(一相开路,两相短路等)、定子绕组回路串电阻(电抗)起动以及转子绕组回路串电阻起动等可以在子系统1中进行修改来达到仿真的目的。如果要对转子的转动惯量对电机运行性能的影响进行仿真分析,可以修改子系统3来进行。S函数的程序代码如下:

图1. 三相感应电动机ABC相坐标数学模型

图2. 图1中子系统2的S-Fun(磁链和电磁转矩方程)模块

% This S function corresponds to the ABC phase coordinate 
% mathematical model of a three-phase induction motorfunction [sys,x0,str,ts,simStateCompliance] =flux_torque(t,x,u,flag,Lsl,Lrl,Lm,np)
%==========================================================================
switch flagcase 0[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;case 1sys=mdlDerivatives(t,x,u);case 2sys=mdlUpdate(t,x,u);case 3sys=mdlOutputs(t,x,u,Lsl,Lrl,Lm,np);case 4sys=mdlGetTimeOfNextVarHit(t,x,u);case 9sys=mdlTerminate(t,x,u);otherwiseDAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
end
%==========================================================================
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 7;
sizes.NumInputs      = 7;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;   % at least one sample time is needed
sys = simsizes(sizes);
x0  = zeros(0,0);
str = [];
ts  = [0 0];
simStateCompliance = 'UnknownSimState';
%==========================================================================
function sys=mdlDerivatives(t,x,u)
sys  = [];%==========================================================================
function sys=mdlUpdate(t,x,u)
sys = [];
%==========================================================================
function sys=mdlOutputs(t,x,u,Lsl,Lrl,Lm,np)
% Write inductance matrix for magnetic flux equation
ang=2/3*pi;
Lml=2/3*Lm;
Ls=Lsl+Lml;
Lr=Lrl+Lml;% Stator inductance matrix
Lss=[Ls -Lml/2 -Lml/2;-Lml/2  Ls -Lml/2;-Lml/2 -Lml/2  Ls];% Rotor inductance matrix
Lrr=[Lr -Lml/2 -Lml/2;-Lml/2  Lr -Lml/2;-Lml/2 -Lml/2  Lr];% Matrix of mutual inductance between stator and rotor
Lsr=Lml*[cos(u(1)),cos(u(1)+ang),cos(u(1)-ang);cos(u(1)-ang),cos(u(1)),cos(u(1)+ang);cos(u(1)+ang),cos(u(1)-ang),cos(u(1))];% Total inductance matrix
L=[Lss Lsr; Lsr' Lrr];%The derivative of the total inductance matrix with respect to the rotor position angle
dLsrdtheta=Lml*[-sin(u(1)), -sin(u(1)+ang),-sin(u(1)-ang);-sin(u(1)-ang),-sin(u(1)), -sin(u(1)+ang);-sin(u(1)+ang),-sin(u(1)-ang),-sin(u(1))];dLdtheta =[zeros(3,3) dLsrdtheta;dLsrdtheta' zeros(3,3)];% Current state variable
Psi=[u(2);u(3);u(4);u(5);u(6);u(7)];
I=L\(Psi);% Electromagnetic torque
Te=I'*dLdtheta*I*np;
sys=[I(1);I(2);I(3);I(4);I(5);I(6);Te];%==========================================================================
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 1;    %  Example, set the next hit to be one second later.
sys = t + sampleTime;
%==========================================================================
function sys=mdlTerminate(t,x,u)
sys = [];
% end mdlTerminate

4. 瞬态分析实例

       仿真计算用的电机参数如下:额定电压Un=220v,额定频率fn=50Hz,极对数np=2,转动惯量J=0.01,摩擦阻尼系数Bm=0.0006,定子电阻Rs=6.033欧,定子电感Lss=0.29614H,转子电阻Rr=4.467欧,转子电感Lrr=0.29614H,定子绕组互感Ms=0.1363H,转子绕组互感Mr=0.1363H,定转子绕组互感Msr=0.2726H;负载转矩TL=7.5N.m。

4.1 对称电源直接起动

      在三相额定对称电压下带恒转矩负载TL=7.5N.m直接起动,起动过程的仿真结果图3所示。

设Y接三相对称电源电压为

u_{A}=220\sqrt{2}\sin(\omega t)\nu\\u_{B}=220\sqrt{2}\sin(\omega t-120^{\circ})\nu\\u_{C}=220\sqrt{2}\sin(\omega t+120^{\circ})\nu

图3. 三相感应电动机在三相对称电源电压下直接起动时的定子电流特性

图4. 三相感应电动机三相对称电源电压下直接起动时的电磁转矩和转速特性

       从图3和图4的仿真结果来看,三相对称定子绕组感应电动机在三相对称电源下起动并稳定运行,起动电流倍数约为5.56,定子稳态电流幅值为3.6A,三相定子电流平衡。电机稳定运行时,电磁转矩无脉振现象,转速为1467r/min。

4.2 非对称电源直接起动

       三相感应电动机在不对称电源电压下运行是实际中经常遇到的一个问题,因为当电网中有较大的单相负载(如电炉﹑电焊机等),或者电网中发生暂时性短路故障(两相短路﹑一相接地等),或电网一相断开等都将引起电网三相电压不平衡。

     在电动机带恒转矩负载TL=7.5N.m,定子绕组端直接施加三相不对称电压:

u_{A}=176\sqrt{2}\sin(\omega t)\nu\\u_{B}=220\sqrt{2}\sin(\omega t-120^{\circ})\nu\\u_{C}=220\sqrt{2}\sin(\omega t+120^{\circ})\nu

直接起动时的仿真结果如图5和图6所示。

图5. 三相感应电动机在非对称三相电源电压下直接起动时的定子电流特性

图6. 三相感应电动机在非对称三相电源电压下直接起动时的转矩和转速特性

       从图5和图6的仿真结果可见,三相对称定子绕组感应电动机在三相不对称电源下起动并稳定运行,起动时定子各相的冲击电流(起动过程中的最大电流幅值)与图3的定子电流相比较相差不大,但稳态时电机三相定子电流不平衡,A相电流幅值大为减小(约为0.5A),而另外两相电流幅值都有所增加(约为4.5A)。这种三相定子电流不平衡的程度会随三相电源电压的不平衡程度的增加而增加。电机稳定运行时,电磁转矩波形有明显的二倍频脉振现象,转速也有明显的波动(振动)。起动过程有所延长,稳定转速的数值也略有降低。

       从上面的结果可以对称结论:三相电源电压不对称时,电动机的平均起动转矩较小,转速的过渡过程较长,电机的过载能力降低(转矩最大值有所减小);由于电流的波动加剧,使转矩的脉振程度增加,这将会加大电机的电磁噪声和机械振动。用瞬时对称分量法来分析,可知三相感应电动机在电源电压不对称情况下运行时的各不利因素,都是由于负序磁场分量造成的(负序磁场分量的存在还会增加电机的铁耗)。不对称程度增大时,负序磁场分量值变大,上述不利情形将会更为严重。因此,三相异步电动机一般不容许在较严重不对称电源电压下运行,否则必须相应地降低电动机的容量。

       对三相感应电动机在电源电压不对称情况下运行的瞬态和稳态过程进行仿真,仿真的结果可以作为电机以及系统控制﹑调节﹑保护装置设计的直接理论依据,对完善电机及其系统的运行性能有实际意义。

5. 总结

       本文根据三相感应电机在ABC相坐标系下的数学模型建立了基于S函数的仿真模型,然后应用这个仿真模型对 三相感应电动机在三相对称电源和不对称电源两种情况下的直接起动过程进行了仿真分析。得出了有用的分析结论。 

6. 参考文献

(1)黄守道,邓建国,罗德荣. 电机瞬态过程分析德Matlab建模仿真 北京 电子工业出版社,2013

(2)汤蕴璆等 交流电机动态分析. 北京 机械工业出版社 2004

相关文章:

三相感应电机的建模仿真(2)基于ABC相坐标系S-Fun的仿真模型

1. 概述 2. 三相感应电动机状态方程式 3. 基于S-Function的仿真模型建立 4. 瞬态分析实例 5. 总结 6. 参考文献 1. 概述 前面建立的三相感应电机在ABC相坐标系下的数学模型是一组周期性变系数微分方程(其电感矩阵是转子位置角的函数,转子位置角随时…...

开源全新H5充值系统源码/自定义首页+充值页面/灵活对接上游渠道接口

开源全新H5充值系统源码,系统基于thinkphp框架开发,功能已全完善,可灵活对接其他上游渠道接口,默认对接了大猿人接口,另外可无限制自定义创建充值页面,首页支持后台自定义修改,支持三级分销&…...

Linux查看文件的行数,字数,字节数

介绍 在Linux系统中这统计非常方便,只需要简单的几个命令就可以搞定,这个命令就是 wc。 wc --help 用法:wc [选项]... [文件]...或:wc [选项]... --files0-fromF 输出每个指定文件的行数、单词计数和字节数,如果指定…...

【IO】文件操作

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 文件1.1 认识文件1.2 分清操作的是内存还是硬盘1.3 路径1.3.1 目录结构1.3.2 相对和绝对路径 1.4 文本文件…...

代码随想录算法训练营第74天:路径总结[1]

代码随想录算法训练营第74天:路径总结 ‍ A * 算法精讲 (A star算法) 卡码网:126. 骑士的攻击(opens new window) 题目描述 在象棋中,马和象的移动规则分别是“马走日”和“象走田”。现给定骑士的起始坐标和目标…...

用 Emacs 写代码有哪些值得推荐的插件

以下是一些用于 Emacs 写代码的值得推荐的插件: Ido-mode:交互式操作模式,它用列出当前目录所有文件的列表来取代常规的打开文件提示符,能让操作更可视化,快速遍历文件。Smex:可替代普通的 M-x 提示符&…...

自定义注解-手机号验证注解

注解 package com.XX.assess.annotation;import com.XX.assess.util.MobileValidator;import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.*;/*** 手机号校验注解* author super*/ Retention(RetentionPolicy.RUNTIME) Targe…...

华为od-C卷200分题目5 -项目排期

华为od-C卷200分题目5 -项目排期 题目描述 项目组共有N个开发人员,项目经理接到了M个独立的需求,每个需求的工作量不同,且每个需求只能由一个开发人员独立完成,不能多人合作。 假定各个需求之间无任何先后依赖关系,请…...

如何使用Pip从Git仓库安装Python包:深入探索远程依赖管理

如何使用Pip从Git仓库安装Python包:深入探索远程依赖管理 Python的包管理工具Pip使得安装和管理Python库变得非常简单。有时,我们需要安装那些尚未发布到PyPI的包,或者想要尝试最新的开发版本。这时,可以直接从Git仓库安装包。本…...

计算机专业怎么选择电脑

现在高考录取结果基本已经全部出来了,很多同学都如愿以偿的进入到了计算机类专业,现在大部分同学都在为自己的大学生活做准备了,其中第一件事就是买电脑,那计算机类专业该怎么选择电脑呢? 计算机专业是个一类学科&…...

当前国内可用的docker加速器搜集 —— 筑梦之路

可用镜像加速器 以下地址搜集自网络,仅供参考,请自行验证。 1、https://docker.m.daocloud.io2、https://dockerpull.com3、https://atomhub.openatom.cn4、https://docker.1panel.live5、https://dockerhub.jobcher.com6、https://hub.rat.dev7、http…...

【腾讯内推】腾讯2025校招/青云计划/社招——长期有效

及时跟进进度,保证不让简历石沉大海! 涵盖NLP/CV/CG/ML/多模态/数据科学/多媒体等各方向! 定向匹配优质团队/竞争力薪酬/覆盖全球工作地点! 招聘对象: 本硕博:2024年1月-2025年12月毕业的同学 目前最热岗位: 技术研究-自然语言处理 技术研究-计算机视觉 …...

集群限流sentinel实践

参考: 集群模式 实践 集群流控规则 其中 用一个专门的 ClusterFlowConfig 代表集群限流相关配置项,以与现有规则配置项分开: // 全局唯一的规则 ID,由集群限流管控端分配. private Long flowId;// 阈值模式,默认&…...

Flutter-实现双向PK进度条

如何实现一个双向PK进度条 在Flutter应用中,进度条是一个非常常见的组件。而双向PK进度条则能够展示两个对立的数值,如对战中的双方得分对比等。本文将介绍如何实现一个具有双向PK效果的进度条,并支持竖直和斜角两种过渡效果。 1. 需求 我…...

unix高级编程系列之文件I/O

背景 作为linux 开发者,我们不可避免会接触到文件编程。比如通过文件记录程序配置参数,通过字符设备与外设进行通信。因此作为合格的linux开发者,一定要熟练掌握文件编程。在文件编程中,我们一般会有两类接口函数:标准…...

PySide(PyQt),记录最后一次访问文件的路径

1、在同目录下用文本编辑器创建JSON文件,命名为setting.json,并输入以下内容后保存: { "setting": { "last_file": [ "" ] } } 2、应用脚本: import json …...

wordpress企业网站模板免费下载

大气上档次的wordpress企业模板,可以直接免费下载,连注册都不需要,网盘就可以直接下载,是不是嘎嘎给力呢 演示 https://www.jianzhanpress.com/?p5857 下载 链接: https://pan.baidu.com/s/1et7uMYd6--NJEWx-srMG1Q 提取码:…...

[leetcode hot 150]第一百一十七题,填充每个节点的下一个右侧节点

题目: 给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。 初始状态下&#x…...

Docker 入门篇(十 一)-- 网络配置总结

Docker 容器技术的核心优势之一是其轻量级的虚拟化和隔离性,而 Docker 网络则是实现容器间以及容器与外界通信的关键。以下是对 Docker 网络的关键知识点的总结。 一、 Docker 网络概述 Docker 网络允许容器进行相互通信以及与外部网络的连接。Docker 提供了多种网…...

【Android面试八股文】Android 有哪些存储数据的方式?

在Android平台上,有多种方式可以存储数据,每种方式都适合不同类型的数据和使用场景。以下是主要的存储数据方式: SharedPreferences(轻量级数据存储): SharedPreferences是用于存储简单键值对数据的最简单方法,适合存储用户偏好设置、配置信息等。数据以XML文件形式存储…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则&#xf…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...