【问题标题】:When to use Simulink in an embedded processor何时在嵌入式处理器中使用 Simulink
【发布时间】:2010-11-22 01:46:19
【问题描述】:

我们正在 dsPIC 上开发电机控制器。我们打算使用 Simulink 对电机控制算法进行建模,通过 Real Time Embedded Workshop 将 Simulink 模型转换为 C 代码。
我们的固件会有一些其他的小逻辑操作,但它的主要功能是电机控制。我们想知道我们是否应该尝试在 Simulink 中完成所有固件或将逻辑操作分离到 C 代码中,而电机控制算法则留在 Simulink 中? 有没有人建议我们应该从哪条路开始?

谢谢, 布伦特

【问题讨论】:

    标签: embedded simulink


    【解决方案1】:

    仅供参考,我刚刚构建了一个与您类似的系统,但使用的是 TI DSP。

    我假设您正在做一些复杂的事情,比如矢量控制。如果是这样,这就是您要做的:在您的模型中,为您需要的每个任务/每个时间段制作一个块。这可能只是带有控制权的 PWM 中断。定义每个任务需要的所有 IO - 尝试将每个信号保持为 16 位,这在 DsPIC 上是原子的(这消除了大多数速率转换)。获取 simulink 以使每个顶级块都成为函数调用。仅在此/这些块内进行控制,并将所有硬件配置、任务调度和其他逻辑留给 C 代码。 Simulink 可以生成一个 C 和 H 文件,您只需将其与其他代码一起包含在项目中。您将填写一个输入结构,调用该函数,然后返回一个带有输出的结构。保持模型清洁所有硬件依赖项。

    不要相信 Mathworks 的营销人员。他们希望您在 Simulink 中完成所有工作。不要误会我的意思,它对于某些类型的事情来说是一个很好的工具。但是对于你不能在模型中做的事情(比如你好世界),他们建议使用“遗留代码工具”,就好像任何不是模型的东西都是“像完全老派一样”。限制你的模型来控制循环和信号流——这对它有好处——它会很好。

    【讨论】:

      【解决方案2】:

      逻辑操作是否与电机控制交互,或者它们只是不相关的操作?互动程度有助于做出决定。

      如果它们不相关,那么为了可维护性,最好将它们排除在模型之外。然后您可以更新逻辑,而无需为整个 SimuLink 模型重新生成 C。出现回归问题的可能性会更小。

      如果它们与模型相关或与之交互,那么当然可以将它们保留在模型中,这样您就不会将不兼容的版本链接到构建中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-21
        • 2016-02-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多