哈工大智能车 | 新一届培训开始啦

简 介: 根据学生提出的如何使用C语言来实现系统函数的问题,给出了利用MATLAB,Python对连续时间系统函数进行离散化的方法。继而可以进行C语言实现。
关键词系统函数离散化MATLAB

01 如何实现传递函数?

  卓晴老师,请教一下,传递函数环节用C需要编写,该怎么编写?在matlab中他能简单的表述,但是在利用C语言,该咋办呢?

  例如写进单片机中。类似于写一个传递函数通式,想实现各种环节。

  在matlab中他有很好的封装,却不好理解matlab怎么做到的,simulink中一个时域信号输入传递模块输出还是时域信号,逐步仿真我认为这个传递模块中封装着一个复杂表达式,想知道用C语言咋能实现,这样以后对信号处理想加个滤波环节,一阶延时,可以利用这种方法直接解决。

  好的,感谢卓大大,最好给出一个G/TS+1这种的一个C代码的例子,然后我就可以仿照思路写出更多高阶的。

02 什么是传递函数?

  要回答前面同学提出的“如何使用C编程语言实现传递函数?”,则需要先了解什么是系统传递函数?为什么引入系统传递函数?

一、线性时不变系统

  下面两个由线性R,C组成的电路网络,它们的共同之处都属于 线性时不变系统[1] ,不同之处在于左边的电路输入输出之间是一个比例关系,

  这类系统被称为即时系统

▲ 图2.1.1 左:电阻分压电路;右:阻容低通滤波电路

  右边的低通滤波电路输入输出之间关系则需要通过微分方程才能够描述:

  这种带有储能器件的电路,当前的输出不仅与当前的输入有关系,还和之前时间输入有关系。这类系统被称为动态系统,显然动态系统比即使系统复杂,但功能更强大。即使系统可以看成一类特殊的动态系统。

二、系统函数

  既然两个电路都属于线性时不变系统,可否将它们的输入输出关系都简化成比例关系,这样分析与求解就比较方便了?

  答案是可以的,只不过需要把输入输出信号都进行某种变换,比如 傅里叶变换[2]拉普拉斯变换[3] ,这时变换后的系统输入输出之间就是一个比例关系了。这个比值就被称为线性时不变分析对象的系统函数

  在拉普拉斯变换下,上面的电阻分压电路对应的系统函数为:

  阻容低通滤波电路对应的系统函数为:

  如果抛开这些变换概念背后的数学基础,从工程应用角度也可以将上述系统函数看成对描述线性时不变系统输入输出关系之间的微分方程的另外一种表示方式。

  借助于系统函数的概念,就把线性时不变系统的分析、设计都可以进行简化。

▲ 图2.2.1 在变换域内定义的系统函数等于系统的零状态响应与输入信号的比值

三、离散时间系统函数

  计算机的普及使得离散时间系统应用增加,系统可以通过软件编程来实现。如果实现对于输入信号进行低通滤波,也可以在对信号进行采样之后利用下面离散时间系统来进行处理。

▲ 图2.3.1.1 一阶低通离散时间系统

  下图中显示的随机噪声的原始信号,经过上面迭代方程滤波之后,就会形成平滑后的数据。其中的滤波器系数。

▲ 图2.3.3 增加有噪声信号以及一阶低通滤波后的信号
from headm import *

t = linspace(0, 10, 1000)
sint = sin(t)

data = sint + random.rand(len(t))

def filter_1(data, a):
    yn = data[0]
    newd = [yn]

for d in data[1:]:
        yn = d*(1-a) + a * yn
        newd.append(yn)

return newd

data_filter = filter_1(data, 0.99)

plt.plot(t, data, label='origin')
plt.plot(t, data_filter, label='filter data')
plt.xlabel('t')
plt.ylabel('data')
plt.grid(True)
plt.legend(loc='upper right')
plt.tight_layout()
plt.show()

  线性时不变动态离散时间系统可以使用差分方程来刻画,经过简单的一项便可成写出的迭代方程形式,即由输入信号以及以前的输出信号计算出当前系统输出值,这是利用软件编程实现的基础。

  同样,在对于系统的输入输出信号进行 Z-变换[4] ,那么系统的零状态输出信号比上输入信号也是一个常量,定义为离散时间系统的系统函数。上述一阶低通离散时间系统对应的系统函数为:

  同样,如果抛开z变换背后的数学原理,仅仅把看成对于信号的延迟操作,那么上面的系统函数也可以看成差分方程另外一种描述方法。可以看到系统函数所对应的有理分式的分子多项式系数对应着差分方程输入信号前的系数;分母多项式的系数对应差分方程输出信号前的系数。

▲ 图2.3.2 离散时间系统的系统方程

  因此,如果已知知道了离散时间系统函数,则按照上面的系统函数与差分方程对应关系可以写出对应的差分方程,进而整理成对应的迭代方程。这样就可以使用编程语言(C,Python)来实现算法了。

03 如何将H(s)转换成H(z)?

  本文一开始同学询问,如果知道了一个连续时间系统的传递函数,怎么使用C语言编程实现系统功能?这个问题就转换成如何将连续时间系统函数转换成对应的离散时间系统函数的问题了。这个过程也称为连续时间系统的离散化。

一、连续系统函数离散化

1、离散化方法

  将连续时间系统转换成对应的离散时间系统的过程常常用在模拟设计-离散实现的设计过程中。通常使用的方法包括:

  • 冲激响应不变法:这种方法可以保持离散时间系统的单位冲激响应是对应连续时间系统的采样;
  • 变量替换法:包括前向差分(Euler方法)、后向差分、双线性法,也称梯形方法;

  除此之外,在 Continuous[5] 中给出了在控制系统中常用到的六种方法及其转换原理。

2、举例

  比如使用双线性方法,它是基于把代表位移算子的所对应的连续系统函数近似展开成有理分式:

  以一个一阶低通滤波器为例:

  使用双线性方法转换成离散系统函数:

二、使用MATLAB离散化系统函数

  利用MATLAB内部函数  c2d[6] ,可以很方便将连续时间系统函数转换成对应的离散时间系统函数。

1、命令语法

  MATLAB 中给出了一下四种常用到离散系统函数命令形式:

sysd = c2d(sysc,Ts)sysd = c2d(sysc,Ts,method)sysd = c2d(sysc,Ts,opts)[sysd,G] = c2d(___)

  第一种方法利用了零阶保持方法完成系统函数离散化,如果希望指明离散化具体方法,可以使用2,3两种命令形式。

1、转换举例

(1)连续时间系统函数

  将如下带有延时环节的二阶连续时间系统进行离散化:

$$H\left( s \right) = e{ - 0.25s} {{10} \over {s2  + 3s + 10}} $$

(2)转换命令

h = tf(10,[1 3 10],'IODelay',0.25); 
hd = c2d(h,0.1)
hd =

           0.01187 z^2 + 0.06408 z + 0.009721  z^(-3) * ----------------------------------                 z^2 - 1.655 z + 0.7408

Sample time: 0.1 secondsDiscrete-time transfer function.

(3)系统仿真

  通过以下指令,可以对比连续时间系统与离散时间系统单位冲激响应波形。

step(h,'--',hd','-')

▲ 图3.2.2.1 系统的单位冲激响应信号对比

※ 问题总结 ※

  使用嵌入式系统实现信号处理算法、控制算法,比起利用连续时间系统(或者模拟电路)实现具有很大的优点。在一些模拟设计(仿真)-数字化实现的场景中,将连续时间系统函数转换成对应的离散时间系统函数是编程实现控制算法的第一步。

  离散化系统函数的方法有很多种,在MATLAB中可以利用相关的命令完成这些转换,并进行系统仿真测试。

  在 control.TransferFunction[7] 中给出了利用 Python 中的 control 开发包进行连续时间系统离散化相关指令。

  下面示例给出了给出了将系统函数:转换成对应的离散时间系统函数:

import control
sys = control.TransferFunction(1,[1,1])
sysd = sys.sample(0.5, method='bilinear')

参考资料

[1]

线性时不变系统: https://baike.baidu.com/item/%E7%BA%BF%E6%80%A7%E6%97%B6%E4%B8%8D%E5%8F%98%E7%B3%BB%E7%BB%9F/2474061

[2]

傅里叶变换: https://mathworld.wolfram.com/FourierTransform.html#::text=The%20smoother%20a%20function%20%28i.e.%2C%20the%20larger%20the,Fourier%20transform%20is%20also%20symmetric%20since%20implies%20.

[3]

拉普拉斯变换: https://byjus.com/maths/laplace-transform/#::text=The%20Laplace%20transform%20is%20a%20well%20established%20mathematical,to%20calculate%20the%20solution%20to%20the%20given%20problem.

[4]

Z-变换: https://faculty.ksu.edu.sa/sites/default/files/dsp_cen352_ch5_z.pdf#:~:text=Definition%20of%20z-transform%3A%20The%20z-transform%20is%20a%20very,filter%20design%20and%20frequency%20analysis%20of%20digital%20signals.

[5]

Continuous: https://ww2.mathworks.cn/help/control/ug/continuous-discrete-conversion-methods.html

[6]

c2d: https://ww2.mathworks.cn/help/control/ref/lti.c2d.html#mw_53fc4689-2099-41d0-93b3-de1e51a174c1

[7]

control.TransferFunction: https://python-control.readthedocs.io/en/0.8.3/generated/control.TransferFunction.html


新一届培训开始啦

新一届的培训开始啦,希望卓大大规则也可以今早出台奥。

为祖国献礼,祝我们的祖国生日快乐,繁荣富强!

(0)

相关推荐

  • 傅里叶变换的应用Ⅱ——信号响应

    本节我们简单讨论一下线性系统的信号响应问题. 1 线性时不变系统   为简化问题,这里我们只研究线性时不变系统的响应.下面,我们先介绍一下什么是线性时不变系统. 线性系统   首先我们介绍什么是线性系 ...

  • 控制方程的离散方法

    通常在进行CFD计算之前,首先要对计算区域离散化,即对空间上连续的计算域进行划分,然后生成网格,将控制方程在网格上离散,最终将微分方程转化为代数方程组进行求解.常用的离散化方法有,有限差分法.有限元法 ...

  • 有限元分析之离散

    在上一个小短文之中提到了有限元的基本思想,开头提到"将求解域离散成互不重叠的仅有有限个节点相连接的单元".这句话中提到有限元当中一个十分重要的概念:离散(discretized). ...

  • ​数学是所有科学的女王,如果你打算放弃数学,请先看看这篇文章

    对大多数人来说,数学以算术开始,以代数或微积分结束,但数学的范围比你想象的要大得多. 雪花的六重对称性是水分子对称性的直接结果,可以通过现代代数来研究. 对许多人来说,数学无非就是算术.几何.代数和微 ...

  • 【仿真百科】有限元法(FEM)

    有限元法简介 空间和时间相关问题的物理定律通常用偏微分方程(PDE)来描述.对于绝大多数的几何结构和所面对的问题来说,可能无法求出这些偏微分方程的解析解.不过,在通常的情况下,可以根据不同的离散化 类 ...

  • 新能车/智能车/新能电池/车联网指数…谁是“新能源车王”?

    昨晚,司令的好友投资圈热闹非凡. 朋友甲嘚瑟来了句:"向各位汇报下,我股票账户里的华夏中证新能源汽车ETF创新高了!"朋友乙表示不服气:"我天天基金买的汇添富中证新能源汽 ...

  • 远迪,依靠技术创新,创造社区休闲代步智能车新品类

    商情,专注行业22年 纵观行业,产业政策摇摆不定,行业各品牌急功近利,片面追求销量.利润,价格战泛滥,致使产品同质化严重,电动车产业畸形发展.如果一个行业想要良性发展,就必须要有一些真正从产品本身入手 ...

  • 【e汽车】哪吒汽车在智能安全领域的温度,是造车新势力的新高度

    9月26日,第16届北京车展正式登场. 本届车展,"新势力"车企带来的亮点颇多. 比如威马,即将要亮相的EVOLVE量产版,其主打的便是更加智能.这款车型是全球首款搭载骁龙第三代智 ...

  • 【冠盟智能•设备】造车新势力—它“面世”到上市,不到三年!

    日前,哪吒汽车发布公告:目前已正式启动C轮融资,并计划于2021年3月在科创板上市. 有关资料显示,哪吒汽车此前已经经历过包括:鸿利智汇.金合股权投资.知合出行.桐乡同众投资管理等投资机构的4轮融资, ...

  • 汽车厂内智慧⽣产物流创新技术峰会 探索车企智能路上“新”模式

    厂内智慧物流行业新一轮政策红利释放,⼤量企业和资本涌⼊,深刻影响物流业务链条的各个环节."智能制造.5G.⼤数据"等新一代信息技术推动,汽车厂内⽣产物流领域迎来智能化升级改造,各车 ...

  • 谁说造车新势力才智能? 新宝骏RS-5第一个不服

    不管你承不承认,智能化已经成为当下汽车行业的最大热点,不管是传统主机厂还是造车新势力都开始着重打造自家产品的智能化标签. 造车新势力对智能化的宣传力度尤其卖力,其中不乏用"智能汽车" ...

  • 智能工厂,才是造车新势力的主战场

    作者 / 任娅斐 来源 / 盒饭财经(ID:daxiongfan) 距离 Model S 首批交付日期仅剩两个月,特斯拉加州弗里蒙特工厂的生产线上,铝片被切割.冲压,每个机械臂都能进行不同的任务,冲压 ...

  • 新一届日本年度车评选将开始,候选车型有这些

    日前,日本年度车评选实行委员会正式对外宣布了今年候选车型名单,共计31款. 根据规定,这31款车型为2016年11月1日--2017年10月31日发售的车型,同时其销量必须达到每月500台.评委会将从 ...

  • 造车新势力车企最强音:恒大汽车欲打造智能汽车生态圈

    3月15日,恒大汽车发布公告称,恒大汽车将与腾讯控股旗下的北京梧桐车联科技有限责任公司成立合作公司,双方出资比例为60%和40%. 新的公司成立后,双方将会在新能源汽车的研发制造.人工智能以及出行生态 ...