如何使用simulink进行二维逆查表

下图所示是一张二维表,内容是可调阻尼减振器的速度--电流--阻尼力曲线,当已知减振器当前的拉压速度(mm/s)和减振器电磁阀当前的电流值,便可以查表得出减振器当前时刻能提供的阻尼力值。

在simulink中搭建一个二维查表模型,如下图所示,输入速度和电流, 就可以查出对应的力。

现在,如果反过来,已知了速度和力,如果想要确定电流是多少,该怎么做?

1、先根据输入的速度,查出0,0.2,0.4....1.6每个电流下对应的力值;

比如,此刻输入的速度是分别是-20和正20,我们得到的力的数据分别是以下两行;

这时候,假设速度是20,再输入力值136.8,那电流该是多少?很明显,电流是0.4A;如果力值是130呢,直觉上电流应该是在0.2到0.4之间,更偏向0.4,要确定这个偏向的多少,可以利用pre look预查表这个模块。

预查表模块有要求输入的断点必须是从小到大排列。由于我们的数据有正有负,速度为正则数据都为正,速度为负则数据都为负,且数据的绝对值都符合电流越大,绝对值越大的规律,我们可以按照上图模型所示处理办法,确保输出的数据都是从小到大排列。

2、经过第一步以后,知道了该速度下,每个电流下的力值,接着我们要确定,实际的力值这一系列力中所处的位置。

如图所示,我们输入速度-20,力-60,运行显示-60在下图这串数字从下到大排列第7个数以后,且再第7个数以后还超过了68.4%,更靠近-45.6。也即图中k和f的含义。

3、有了k和f以后,相当于我们知道了实际电流在0,0.2,0.4,0.6....这一串电流里的坐标,用个一维查表就很容易可以查出电流是多少。同样,这里也要注意下电流的顺序和逆序。

4、验证,将逆向查出来的电流输入正向表,再正向查一下输出的力与输入的力是否一致。

Matlab二维查表原理: 二维查表是一种常见的数据处理方式,可以通过查表的方式快速地获取数据。在Matlab中,可以通过使用二维数组来实现二维查表。以一个简单的例子来说明二维查表的原理: 假设有一个二维数组A,其中包含一些数据,如下所示: A = [1 2 3; 4 5 6; 7 8 9]; 现在我们需要查找A中第2行第3列的数据,即6。可以使用A(2,3)来获取这个数据。这个过程就是一个简单的二维查表Simulink一维查表功能实现: Simulink中提供了一维查表的功能,可以通过使用Lookup Table块来实现一维查表。下面是一维查表的实现步骤: 1. 创建一个Lookup Table块,并将其输出端口连接到需要进行查表操作的模块。 2. 在Lookup Table块中设置查表数据。可以手动输入查表数据,也可以通过读取外部文件来获取查表数据。 3. 设置输入端口类型和数值范围。 4. 设置输出端口类型和数值范围。 5. 在模拟过程中输入相应的数据,Lookup Table块会自动输出查表结果。 代码生成: Simulink中的一维查表功能可以通过使用Embedded Coder进行代码生成。生成的代码可以直接在嵌入式系统中运行。下面是代码生成的实现步骤: 1. 在Simulink中创建查表模块,并设置查表数据和输入输出端口。 2. 在Embedded Coder中设置代码生成选项,包括目标硬件和编译器信息等。 3. 进行代码生成,生成的代码可以直接在目标硬件上运行。 以上就是Matlab二维查表原理、Simulink一维查表功能实现以及代码生成的相关介绍,希望对你有所帮助。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极简车辆控制

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值