在块 - Simulink 的参数中使用输入端口的值
Use value from Input Port in Parameter of block - Simulink
我有一个 simulink 模型,我计划将其转换为 C 代码并在其他地方使用。我已经定义了"输入端口",以便在 simulink 模型中设置变量。
我正在尝试找到一种方法将输入变量用作状态空间块的一部分,但已经尝试了所有方法,但不确定如何去做。
如前所述,这将转换为 C/C++ 代码,因此无论如何都没有使用 matlab 的选项。
假设我在状态空间块参数中使用矩阵 A。矩阵 A 的定义是这样的 A= [输入1 0;输入2 0;0 输入3]
我希望能够通过设置Input1 2 3等的值来通过代码更改输入的值。
在 Simulink 中,参数和信号之间有非常明显的区别。 参数是输入到对话框中的东西,而信号是输入或从块中出来的东西。
状态空间块中的矩阵被定义为参数,因此您将永远无法将信号馈送到其中。
您有两种选择。
-
不要使用状态空间块。 而是使用更基本的块(即积分器、和乘积块)自己开发状态空间模型。 这对于小型模型是可行的,但并不真正推荐。
-
请注意,块的参数通常是可调的。 生成代码时,将
model_name_data.c
其中一个文件,该文件将包含一个参数结构,允许您更改参数。
请注意,无论哪种情况,仅从模型设计的角度来看,您都可以确保对模型的更改有意义(例如,不要使任何循环等变得不稳定)。
生成代码后无法调整参数,因为它内联了一个常量值,这通常是因为它会产生最快的代码。要完全控制行为,您必须使用可调参数。有一个具有不同代码版本的表,根据您想要的内容,您可以选择正确的参数类型。
在许多情况下,实现此目的的另一种懒惰方法是使用基本工作区变量,该变量非常容易实现,并且在大多数情况下工作正常。
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 树莓派上的端口音频,找不到输入流的设备
- 从特定 USB 端口捕获键盘输入
- C++客户端/服务器聊天应用程序 - 从 Ubuntu 命令窗口扫描输入
- Simulink-使用.Mat作为自动编码c函数的外部输入变量
- 服务器进程等待客户端输入/消息的最佳方法是什么?
- 如何监视Windows USB端口上的输入
- 清除boost::asio中串行端口的输入数据
- 我需要知道什么才能输入和输出完成端口不足
- 在块 - Simulink 的参数中使用输入端口的值
- Linux 串行端口读取 - 我可以更改输入缓冲区的大小吗?
- C++服务器/客户端回显某些输入末尾附加的奇怪字符
- 有没有办法使用Qt串行端口更改电视输入
- Windows:C++:从文件重定向到串行端口(输入)
- 如何在 Linux 中通过 C++ 中的套接字从客户端读取输入
- Linux串行端口:输入中缺少数据