问题标签 [transfer-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 带死区时间的传递函数
我有以下传递函数:
(5/(s^2+1) ) * e^(-0.1*s)
如何在传递函数模型中包含死区时间?
我试过A=tf([5],[1 0 1],'td',0.1)
但不起作用(td
未定义)。
math - 构造传递函数
我将如何创建以下传递函数?
它需要两个参数:
- 范围内的凸起位置 (-1.0, +1.0)
- 凹凸锐度
该图片仅演示了第一个参数中的运动。
我可以想到几种可能的方法:
- 找出一个公式
- 贝塞尔曲线?
- 从几个点开始,进行某种链环式物理动力学模拟,其中每个环节都施加其邻居的力,末端环节保持低位,特定环节保持高位
- 类似于上面的东西,但从粗略的形状开始并滤除高频
但是,我看不到任何简单的方法来阐述上述任何一种方法。
谁能看到一个干净的方法来破解它?
matlab - 传递函数的差分方程,Matlab
我绘制了从 Z 变换传递函数获得的两个差分方程的响应。我使用了两种方法,得到了两种不同的结果。为什么?
方法1,使用Matlab,取Z逆变换
产生:y = 2^k - 1,对于时间步长“k”。这是一个指数。
方法二,手工代数重排,将z^n变成(kn):
或等效地
另外,对于第二种方法,我需要指定一个'u',而在第一种方法中不需要,只需要k。为什么第一种方法不需要输入信号 u,只需要一个时间步长?
c - 如何在 C/C++ 中实现过程调节器?
这个问题很简单,我不知道在哪里以及如何实现传输功能。
假设我有一个经典系统
其中 P 具有二阶传递函数,zita=0.7,F=1,C 是过程调节器。
我想在 C 或 C++ 中的 ATMega128P 等控制器上实现这个调节器。
过程的传递函数通过实验方法确定,调节器可能因过程传递函数而异。
我应该从哪里开始?
matlab - Matlab中非数元素的索引
我已经定义了一个内部带有传递函数的数组。如何在该数组中找到某个传递函数的位置?
matlab - sym2poly 选择性工作的matlab
我正在评估 matlab 中的一系列理论(不一定是功能)电路。我一直在尝试获取电路的传递函数,并且在此过程中我使用了 sym2poly 函数。有时, sym2poly 工作并返回传递函数。有时它不会。
这是代码的样子:
n 和 d 是符号元胞数组。我得到的错误是:
这看起来类似于很久以前发布的几个问题,但所有这些问题都已通过符号数学工具箱的更新版本中的错误修复得到解决。这是否意味着我给的东西不可能变成多项式?
有解决办法吗?对适用于我所有电路阵列的方法有什么建议吗?
如果它可以返回传递函数,也许可以尝试一下?
matlab - 如何找到以不同速率采样的输入和输出之间的传递函数?
我知道通常我会ftest()
在使用iddata()
. 但是,为了iddata()
正常工作,我需要以相同的速率对输入和输出数据进行采样。是否有与速率无关的变体iddata()
或任何其他方式可以让我完成我需要完成的事情?
simulink - Simulink 中连续模块的重置状态(例如,传递函数)
如何在 Simulink 中重置传递函数块的状态(即重置回初始条件)?
例如,在电气网络中,这将对应于例如通过开关将电容器/电感器重置为零(或初始状态)。
我尝试使用“启用的子系统”并将 Transfer Fcn 块放在那里,但似乎启用更改时状态未重置......
microcontroller - ADC 传递函数
我从很久以前离开的人那里接手了这个项目。
我现在正在查看 ADC 模块,但我不明白代码的含义。
Process: Reading volts(0 ~ +10v) --> Amplifier(INA114) --> AD7609.
这是代码:
- 完成转换后存储的 8 个通道
data[9]
将数据转换为微伏?
//convert to microvolts and store the readings // unsigned long temp[], data[] temp[0] = ((data[0]<<2)& 0x3FFFC) + ((data[1]>>14)& 0x0003); temp[1] = ((data[1]<<4)& 0x3FFF0) + ((data[2]>>12)& 0x000F); temp[2] = ((data[2]<<6)& 0x3FFC0) + ((data[3]>>10)& 0x003F); temp[3] = ((data[3]<<8)& 0x3FF00) + ((data[4]>>8)& 0x00FF); temp[4] = ((data[4]<<10)& 0x3FC00) + ((data[5]>>6)& 0x03FF); temp[5] = ((data[5]<<12) & 0x3F000) + ((data[6]>>4)& 0x0FFF); temp[6] = ((data[6]<<14)& 0x3FFF0) + ((data[7]>>2)& 0x3FFF); temp[7] = ((data[7]<<16)& 0x3FFFC) + (data[8]& 0xFFFF);
我不明白这些代码在做什么......?我知道它会发生变化,但它们如何成为微数据格式?
- 转换功能
//store the final value in the raw data array adstor[]
adstor[i] = (signed long)(((temp[i]*2000)/131072)*10000);
131072 = 2^(18-1)
但我不知道其他值来自哪里
AD7609 datasheet 说The FSR for the AD7609 is 40 V for the ±10 V range and 20 V for the ±5 V range
,所以我猜他选择20v
了上面描述的,它不知何故变成了2000???
有没有人有任何线索?
谢谢
-------------------从这里更新的问题----------
在 ADC 传递函数之后,我不知道数据 [0] 的 18 位连接值 + 数据 [1] 的 16 位连接值如何变成微伏。
数据[9]
+---+---+--- +---+---+---+---+---+---++---+---+---++---+---+---++
analog volts | 1.902v | 1.921v | 1.887v | 1.934v |
+-----------++-----------+------------+------------+------------+
digital value| 12,464 | 12,589 | 12,366 | 12,674 |
+---+---+---++---+---+---++---+---+---++---+---+---++---+---+---+
data[3:0]
1 resolution = 20v/2^17-1 = 152.59 uV/bit
我只是举一个例子1.902v/152.59uv = 12,464
现在通过串联获得:
temp[0] = ((data[0]<<2)& 0x3FFFC) + ((data[1]>>14)& 0x0003) = C2C0
temp[1] = ((data[1]<<4)& 0x3FFF0) + ((data[2]>>12)& 0x000F) = 312D3
temp[2] = ((data[1]<<6)& 0x3FFC0) + ((data[3]>>10)& 0x003F) = 138C
然后将它们放入传递函数并得到微伏
adstor[i] = (signed long)(((temp[i]*2000)/131072)*10000);
adstor[0]= 7,607,421 with temp[0] !=1.902*e6
adstor[1]= 30,735,321 with temp[1] != 1.921*e6
adstor[2]= 763,549 with temp[2]
如您所见,它们与表中的模拟值完全不同。
我不明白为什么 data 需要移位和<<
,>>
并加起来两个 data[]??
谢谢,
opengl - 开窗传递函数
我正在实现一个体积渲染器,我想使用窗口传递函数来使用户能够更改某些区域的不透明度。据我了解,window、offset和scale三个变量
窗口是我想要更改 alpha 值的多少,偏移量是我的窗口与最小值之间的距离。但我不确定规模是多少?是一个 alpha 值到下一个 alpha 值之间的增加,还是我当前窗口中的最大 alpha?
我有什么遗漏或有什么问题吗?
这就是我的想法