【发布时间】:2021-03-17 17:50:37
【问题描述】:
【问题讨论】:
【问题讨论】:
您可以做的是将结果分配给一个变量。这可以使用Outputs 组来完成,如下面的屏幕截图所示。如果你例如在ss的字段中输入“sys”,您将获得一条记录sys,您可以在其中通过键入sys.A、sys.B等访问矩阵/向量,我已经针对系统进行了测试尺寸为 200x200。将其键入命令行将显示内容。当然这个记录不仅是为了输出,也是为了后期处理。
实际上唯一要做的就是将调用从Modelica_LinearSystems2.ModelAnalysis.Linearize("ModelName") 修改为sys=Modelica_LinearSystems2.ModelAnalysis.Linearize("ModelName"),所以它也可以在命令窗口中完成。
【讨论】:
从命令行调用函数并捕获输出。然后,您可以随心所欲地使用它。
您在线性分析工具栏中找到的所有内容都是库Modelica_LinearSystems2的一部分。此菜单中的 Linearize 项调用函数
Modelica_LinearSystems2.ModelAnalysis.Linearize("<your-model>")
这也被打印到命令行。该函数返回操作员记录Modelica_LinearSystems2.StateSpace,其中包含您感兴趣的所有信息。Dymola 的默认行为是调用此操作员记录的String 方法并将其打印到命令行。如果您查看Modelica_LinearSystems2.StateSpace.'String' 的源代码,您可以在算法部分的开头看到:
// If system is too large, do not print the matrices
if size(ss.A,1) > 50 or size(ss.B, 2) > 50 or size(ss.C, 1) > 50 then
...
在命令行中,您可以像这样在变量中捕获操作员记录:
stateSpace = Modelica_LinearSystems2.ModelAnalysis.Linearize("<your-model>");
然后在命令行中通过
访问这些值stateSpace.A
stateSpace.B
stateSpace.C
stateSpace.D
对于一个漂亮的 html 报告,您还可以将操作员记录传递给分析函数之一:
Modelica_LinearSystems2.StateSpace.Analysis.analysis2.printSystem(stateSpace)
这会在您的工作目录中创建文件systemAnalysis.html,其中包含您系统的精美视觉呈现。
【讨论】: