kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

php统计文章字数

https://cloud.tencent.com/developer/article/1135559

strlen,mb_strlen,mb_strwidth 这个三个函数去测试统计字符串的长度

1
2
3
4
5
6
7
8
echo strlen("二货ABC") . "";
# 输出 9

echo mb_strlen("二货ABC", 'UTF-8') . "";
# 输出 5

echo mb_strwidth("二货ABC") . "";
# 输出 7

strlen 把中文字符算成 3 个字节,

mb_strlen 不管中文还是英文,都算 1 个字节,

而 mb_strwidth 则把中文算成 2 个字节

php unicode转成汉字

https://www.php.cn/faq/504261.html

在web开发中,unicode和汉字的相互转换是非常常见的需求。特别是在中文网站或应用程序中,将用户输入的unicode转换为汉字是非常重要的。本文将介绍如何使用php将unicode编码转换为汉字。

一、Unicode编码

Unicode编码是一种用于表示各种字符的标准编码方式,可以表示世界上几乎所有的字符。Unicode编码是由国际组织Unicode Consortium制定的,它为每个字符分配了一个唯一的编码值。

在Unicode编码中,每个字符都有一个唯一的编码点,用'U+‘加上该字符的十六进制值来表示。例如,英文字母A的编码点是'U+0041',中文汉字'你'的编码点是'U+4F60'。

二、将Unicode编码转换成汉字

立即学习'PHP免费学习笔记(深入)';

在PHP中,可以使用mb_convert_encoding()函数将Unicode编码转换为汉字。该函数的语法如下:

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )

其中,$str为要转换的Unicode编码字符串,$to_encoding为目标编码方式,这里为'UTF-8';$from_encoding为源编码方式,如果未设置,则默认为当前系统的内部编码。

例如,想要将'U+4F60'转换为'你',可以使用如下代码:

1
2
3
$unicode = '\u4f60';
$decode = json_decode('"' . $unicode . '"');
echo mb_convert_encoding($decode, 'UTF-8', 'Unicode');

注:JSON数据传输的时候,中文字符串(含Unicode编码)必须加上双引号。

三、将汉字转换成Unicode编码

如果想要将汉字转换为Unicode编码,可以使用PHP内置函数ord()和dechex()。ord()函数返回字符串的第一个字符的ASCII码值,dechex()函数将十进制数转换为十六进制数。

以下是将汉字'你'转换为Unicode编码的代码示例:

1
2
$str = '你';
echo '\u' . dechex(ord(substr($str,0,1))) . '\u' . dechex(ord(substr($str,1,1)));

以上代码将返回'\u4f60'。

UPS电池的放电时间计算

https://blog.csdn.net/TXNMG/article/details/127646930

https://zhidao.baidu.com/question/1521553747325286300.html

UPS系统蓄电池放电时间的估算

因电池放电时间与放电电流、环境温度、负载类型、放电速率、电池容量等多因素相关,故实际放电时间无法直接用公式推导出。

我们可以先通过以下公式估算出UPS系统蓄电池平均放电电流:

蓄电池平均放电电流I≈UPS负载功率P÷(Ev×η)

其中蓄电池组平均放电电压Ev可取蓄电池组标称电压与放电终止电压的中间值(标称12V的单块蓄电池平均放电电压取11.25V),UPS效率η一般取0.8。

求出电池平均放电电流后,再算出放电倍率(放电倍率=放电电流÷蓄电池标称容量),即可从电池在各温度下放电曲线图上查出相应的放电时间。如果没有蓄电池放电曲线图,可依据以下规律估算放电时间(蓄电池放电时间=蓄电池放电容量÷蓄电池平均放电电流):

放电倍率为0.05C时,蓄电池放电容量≥标称容量(环境温度25℃)

放电倍率为0.1C时,蓄电池放电容量≈0.95倍标称容量(环境温度25℃)

放电倍率为0.2C时,蓄电池放电容量≈0.85倍标称容量(环境温度25℃)

放电倍率为0.3C时,蓄电池放电容量≈0.8倍标称容量(环境温度25℃)

放电倍率为0.4C时,蓄电池放电容量≈0.75倍标称容量(环境温度25℃)

放电倍率为0.5C时,蓄电池放电容量≈0.7倍标称容量(环境温度25℃)

放电倍率为0.6C时,蓄电池放电容量≈0.65倍标称容量(环境温度25℃)

放电倍率为0.8C时,蓄电池放电容量≈0.55倍标称容量(环境温度25℃)

放电倍率为1C时,蓄电池放电容量≈0.4倍标称容量(环境温度25℃)

放电倍率为2C时,蓄电池放电容量≈0.3倍标称容量(环境温度25℃)

例:UPS负载功率1400W,蓄电池组平均放电电压Ev=90V(8块标称12V100AH的蓄电池串联,平均放电电压11.25×8=90V)。

蓄电池平均放电电流I≈1400÷(90×0.8)≈19.4A

放电倍率=19.4÷100≈0.2C, 此放电倍率下,蓄电池组放电容量≈0.85倍标称容量。

UPS系统蓄电池放电时间≈(0.85×100)÷19.4≈4.38小时。

UPS用的12V电池一般终止电压为10.5V。

铅酘蓄电池的放电截止电压是随放电电流不同而不同的。其值并不是固定的。

假设铅酸电池的标准容量放电电流为C(如容量60AH的电池,C=60A)。

当放电流I=<0.05C时,单体电池截止电压为 1.9V,12V电池放电截止电压为11.4V。 1.9 * 6 = 11.4

当放电流I=0.1-0.3C时,单体电池截止电压为 1.8V,12V电池放电截止电压为10.8V。 1.8 * 6 = 10.8

当放电流I=0.4-0.5C时,单体电池截止电压为 1.75V,12V电池放电截止电压为10.5V。 1.75 * 6 = 10.5

当放电流I=0.6-3C时,单体电池截止电压为 1.6V,12V电池放电截止电压为9.6V。 1.6 * 6 = 9.6

查表

首先要明确一个概念,就是蓄电池的放电电流与放电时间不是线性的,有人认为20A放电5小时就要用100AH的,这样就错了。蓄电池的容量一般都是20HR(小时率)的,也就是说只有以5A放电20小时才是配100AH的,因为100AH的电池在5A可以放电20小时,在10A时只有9小时左右,20A时只有4小时左右。但在2A时确可以放60小时以上。这就是蓄电池放电时间与电流的非线性关系。正因为非线性关系就有了下面这个表。

如果知道负载功率,如何来配置蓄电池组的数量来达到预定的时间?

如负载的的功率为2000W,需要延时2小时。怎样配UPS及蓄电池呢? 首先算出蓄电池的放电电流,能量守恒,UPS的放电电量与蓄电池的放电电量是基本相等的。所以可以直接按2000W的功率来算出电池的放电电流。如果我们配的UPS是山特3KVA的,12V电池个数是8只,终止电压是10.5*8=84V,放电时的计算电流是2000W/84V=23.8A,如逆变器的效率按95%来算,则实际电流为23.8/0.95=25A。

再对照上面的表,看有哪个电池的规格能在终止电压为10.5V、放电电流25A时可以达到2小时,很明显,MF12-65(12V-65AH)的这款可以达到。所以电池的配置就选12V-65AH 8只。这样就可以满足要求了。

其它规格也都是这样计算的,又比如,12V-100AH的电池在27.2A时可以放电3小时,如果电流在55A时需要放电3小时,就需要选12V-100AH的电池2组并联使用才可以达到相应的时间。

如果知道蓄电池的容量,如何知道能放电多长时间?

比如现有一台6KVA的UPS,配了一组MF12-26(12V-26AH)的蓄电池,想知道能放电多长时间。6KVA的UPS功率因素是0.7,最大有功功率是4.2KW,首先要确定UPS后面接设备的实际功率是多大,可以估计一下,也可以用钳流表来测一下电流。

如果半载即2KW左右的话能延时多久呢?6KVA的直流电压是240V,放电终止电压是210V,逆变器效率是95%,这样电池的放电电流是:2000W/210V/0.95=10A,再对比上面的恒流参数表,MF12-26的电池在9.96时可以放电2小时,因此,如果设备功率为2KW时,这样一组电池的放电时间约为2小时。

如果按满载,即设备的功率为4200W时,这样一组12V-26AH的电池能放电多久呢?和上面一样,电池的放电电流是4200W/210V/0.95=21A。再对比上面的恒流参数表,MF12-26的电池在21.7A6时可以放电45分钟,因此,如果设备功率为4.2KW时,这样一组电池的放电时间约为45分钟。