Opened 5 years ago

Closed 4 years ago

#5815 closed defect (fixed)

OMEdit not showing results

Reported by: Adam Dershowitz Owned by: Adeel Asghar
Priority: high Milestone: 1.18.0
Component: OMEdit Version:
Keywords: Cc: Martin Sjölund

Description

After a recent upgrade (both 1.16.0~dev-146 and 1.16.0~dev-154) I often can't see any results.
If I open a model (easy example: Modelica->Blocks->Example->PID_Controller) and hit simulate, it compiles and finishes successfully.

But, in the message browser I get this:

[1] 09:00:50 Scripting Error
Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json. Unknown error


And the variables browser window shows just the name of the results file, but no variables below that.

If I then hit "resimulate" I get this in the message browser window:

[2] 09:04:55 Scripting Notification
Number is out of range:  1 
json_parser - syntax error found,  forcing abort, Line 1 Column 1 


The variables do then show up correctly.

I have verified that the .mat and .json files are created. So, I think that it is an issue of OMEdit just not always opening up the results for some reason?

This is on a Mac.

Attachments (7)

Screen Shot 2020-04-20 at 9.13.52 AM.png (1.9 MB ) - added by Adam Dershowitz 5 years ago.
omeditcommunication.log (3.2 MB ) - added by Adam Dershowitz 5 years ago.
omscommunication.log (1.7 KB ) - added by Adam Dershowitz 5 years ago.
Modelica.Blocks.Examples.PID_Controller_info.json (175.8 KB ) - added by Adam Dershowitz 5 years ago.
Modelica.Blocks.Examples.PID_Controller_init.xml (104.8 KB ) - added by Adam Dershowitz 5 years ago.
Modelica.Blocks.Examples.PID_Controller_res.mat (159.1 KB ) - added by Adam Dershowitz 5 years ago.
Result.png (67.6 KB ) - added by Adeel Asghar 5 years ago.

Change History (56)

comment:1 by Adrian Pop, 5 years ago

The simulation executable, not OMEdit, is opening the .json file. OMEdit does open the .mat result file. Do you by any chance have some weird locale? Having "," instead of "." for decimal separator?

comment:2 by Adam Dershowitz, 5 years ago

So, maybe the json error is not related?
No. I haven't made any changes to locale, and just have defaults. Nothing unusual.
It seems particularly strange that resimulate seems to often open the file.

Here's another potential clue:
If I compile and run it simulation it fails to open results. If I resimulate, it then opens the results file. If I then quit OM, and reopen OM and select Open Results File and select the .mat from above, I get this in messages:

[1] 11:53:59 Scripting Notification
objc[19602]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit (0x7fffb24753d8) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x116867f50). One of the two will be used. Which one is undefined.


[2] 11:53:59 Scripting Error
Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_init.xml. Unknown error


Note this time is xml instead of json.
And, the same problem as above that I see the name of the results in variables, but there is no way to actually see any variable names or data.

in reply to:  1 comment:3 by Adeel Asghar, 5 years ago

Milestone: Future1.16.0
Resolution: fixed
Status: newclosed

Replying to adrpo:

The simulation executable, not OMEdit, is opening the .json file. OMEdit does open the .mat result file. Do you by any chance have some weird locale? Having "," instead of "." for decimal separator?

OMEdit also reads the json file for Transformational debugger and for some of the new stuff that Martin added recently.

Anyways this issue seems similar to #5895 and I guess is already fixed. I suggest testing again with the latest nightly.

Feel free to reopen this ticket if the problem persists.

comment:4 by Adam Dershowitz, 5 years ago

Resolution: fixed
Status: closedreopened

I just downloaded and built the newest, 1.16.0~dev-284-gd5ae327. I then tried to run a simple case and again, no results showed up. I resimulated and then was able to see results.

comment:5 by Adeel Asghar, 5 years ago

So is this happening for all the models or just specific ones? Can you share more information like omeditcommunication.log file. Some screenshots of the problem if possible.

by Adam Dershowitz, 5 years ago

comment:6 by Adam Dershowitz, 5 years ago

For the attached screen shot I just opened OMEdit, selected PID_Controller, and simulated. The normal simulation output box popped and reports "The simulation finished successfully." Then I see the attached (Note that instead of results in the variable window it shows a file or something). If I then right click there and resimulate, I can get variables to show up there.

by Adam Dershowitz, 5 years ago

Attachment: omeditcommunication.log added

by Adam Dershowitz, 5 years ago

Attachment: omscommunication.log added

comment:7 by Adam Dershowitz, 5 years ago

And, yes it seems to happen with all models (or at least the small random sampling that I've tested). And on each of those if I select "re-simulate" after a rerun I can see the output variable list open and can see the variables as used to work in the past.

comment:8 by Adeel Asghar, 5 years ago

Do you still get that parser error as well?

Can you also please attach the following files,

  • Modelica.Blocks.Examples.PID_Controller_info.json
  • Modelica.Blocks.Examples.PID_Controller_init.xml
  • Modelica.Blocks.Examples.PID_Controller_res.mat

by Adam Dershowitz, 5 years ago

comment:9 by Adam Dershowitz, 5 years ago

If I open, select PID_Controller and simulate, the only message in my message window is:
[1] 10:16:38 Scripting Error
Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json. Unknown error

by Adeel Asghar, 5 years ago

Attachment: Result.png added

comment:10 by Adeel Asghar, 5 years ago

I can open the result file without any issues on Windows. Maybe the parser has some issues on the MAC. But surprisingly why does re-simulate works.

comment:11 by Adam Dershowitz, 5 years ago

I just tried to open the results file, but just selecting "Open results file" and that does work. So, it seems that it is a communication issue of some kind where OMEdit just doesn't actually perform the open, but is capable of doing it.

comment:12 by Adam Dershowitz, 5 years ago

So, for each run, I need to simulate, then manually open the results file.

comment:13 by Adeel Asghar, 5 years ago

The thing is its the same code that is used for simulate, re-simulate and opening a result file.

Anyways I found a minor issue that I fixed here. You need a newer version for it. Maybe it will help us to show the correct error.

comment:14 by Adam Dershowitz, 5 years ago

I just updated to 1.16.0~dev-286-g954477b_0 (newest available), and I see the same thing as before.
It seems as though the problem is just the "simulate" is not causing it to open the correct file. Although the results are actually being generated.

comment:15 by Adeel Asghar, 5 years ago

You need version da6919f to get my latest changes. However, it is not a fix just that we get correct error message.

comment:16 by Adam Dershowitz, 5 years ago

How does the version numbering work? I just checked on Macports, and now the newest version listed is 1.16.0~dev-287-g39ab592_0 which doesn't correspond to da6919f.
I'm happy to try that one if it might give us a good error message to help explain the bug.

comment:17 by Adeel Asghar, 5 years ago

Dev versioning is from github commit hash of repo. It will take a while before it is up on macports.

Last edited 5 years ago by Adeel Asghar (previous) (diff)

comment:18 by Adam Dershowitz, 5 years ago

Got it. Does GitHub, or openmodelica, have a page that shows the matchup so I can just verify when the version is up? Does a while mean an hour, overnight, days?

comment:19 by Francesco Casella, 5 years ago

You can see the log of the MAC builds here

comment:20 by Adam Dershowitz, 5 years ago

But, macports ports upgrade more frequently. They are not the nightly, but seem more like hourly upgrades or so. I just checked and the current devel version is now: 1.16.0~dev-289-gda6919f_0
So it looks like in the last 5 hours or so, the available dev version has gone from 287 to 289. And, that suffix is the same as the version that adeas31 mentioned. So, that should be the version that includes his fix for error messages. I'll try it out.

comment:21 by Adam Dershowitz, 5 years ago

The same issue is still there, as expected. But, the error is slightly different:

[1] 21:23:21 Scripting Error
Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json. syntax error, unexpected invalid

If I then resimulate, it does correctly open and show the variables, but I also see this in the messages:
[2] 21:26:39 Scripting Notification
Number is out of range: 1
json_parser - syntax error found, forcing abort, Line 1 Column 1

comment:22 by Adeel Asghar, 5 years ago

Cc: Martin Sjölund added

Martin manages the macports. He can tell about that.

comment:23 by Adrian Pop, 5 years ago

Job https://test.openmodelica.org/hudson/job/OpenModelica_UPDATE_APT_SERVER
runs each hour and updates the source code from which macports are built.

comment:24 by Adeel Asghar, 5 years ago

@dersh I added some more debug information to see what is going on. You can try once 5fc329e is up on macports.

Note that to get the debug logging you need to start OMEdit with debug flag like this,

./OMEdit --Debug=true

Post the messages you get on Messages Browser. Sorry I don't have Mac available right now for testing.

in reply to:  23 ; comment:25 by Francesco Casella, 5 years ago

Replying to adrpo:

Job https://test.openmodelica.org/hudson/job/OpenModelica_UPDATE_APT_SERVER
runs each hour and updates the source code from which macports are built.

But then, as I understand it, the APT update job takes whatever was built last time. By default the Mac job runs once a day. @dersh, you may ask for an account on Hudson and start more builds manually to get them after important pull requests have been merged in, without waiting for the next day's nightly.

Last edited 5 years ago by Francesco Casella (previous) (diff)

in reply to:  25 comment:26 by Adam Dershowitz, 5 years ago

Replying to casella:

Replying to adrpo:

Job https://test.openmodelica.org/hudson/job/OpenModelica_UPDATE_APT_SERVER
runs each hour and updates the source code from which macports are built.

But then, as I understand it, the APT update job takes whatever was built last time. By default the Mac job runs once a day. @dersh, you may ask for an account on Hudson and start more builds manually to get them after important pull requests have been merged in, without waiting for the next day's nightly.

When I run macports on my machine it builds from source. So, it doesn't need the nightly. I think that what @adrpo said sounds right. So, every hour, the port file is updated (macport uses a portfile that is essentially build instructions, but points to specific source versions etc).

I'll download and build the newest one and urn it with Debug and see if there's anything different.

comment:27 by Adam Dershowitz, 5 years ago

I downloaded and built 1.16.0~dev-291-ga871306_0 I then ran it with Debug=true and opened and simulated PID_Controller.

Here's what showed up in the messages:

[1] 09:46:00 Scripting Error
Opening json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json

[2] 09:46:00 Scripting Error
Reading json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json

[3] 09:46:00 Scripting Error
Json file contents are {"format":"Transformational debugger info","version":1,
"info":{"name":"Modelica.Blocks.Examples.PID_Controller","description":"Demonstrates the usage of a Continuous.LimPID controller"},
"variables":{
"PI.I.y":{"comment":"Connector of Real output signal","kind":"state","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"inertia2.w":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
"integrator.y":{"comment":"Connector of Real output signal","kind":"state","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"spring.phi_rel":{"comment":"Relative rotation angle (= flange_b.phi - flange_a.phi)","kind":"state","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.w_rel":{"comment":"Relative angular velocity (= der(phi_rel))","kind":"state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7289,"lineEnd":7290,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"der(PI.I.y)":{"comment":"der(Connector of Real output signal)","kind":"derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"der(inertia2.w)":{"comment":"der(Absolute angular velocity of component (= der(phi)))","kind":"derivative","type":"Real","unit":"s-2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
"der(integrator.y)":{"comment":"der(Connector of Real output signal)","kind":"derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"der(spring.phi_rel)":{"comment":"der(Relative rotation angle (= flange_b.phi - flange_a.phi))","kind":"derivative","type":"Real","unit":"Hz","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"der(spring.w_rel)":{"comment":"der(Relative angular velocity (= der(phi_rel)))","kind":"derivative","type":"Real","unit":"s-2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7289,"lineEnd":7290,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"der(inertia1.w)":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"dummy derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"operations":[{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia1.w)","der(inertia1.w)"]},{"op":"before-after","display":"flattening","data":["a = der(w);","inertia1.a = der(inertia1.w);"]}]}},
"PI.I.local_set":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","PI.I.local_set = 0.0;"]}]}},
"PI.I.u":{"comment":"Connector of Real input signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":327,"lineEnd":328,"colStart":5,"colEnd":58},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"PI.P.u":{"comment":"Input signal connector","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":546,"lineEnd":547,"colStart":5,"colEnd":58},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}},
"PI.P.y":{"comment":"Output signal connector","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":548,"lineEnd":549,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}},
"PI.addFF.u1":{"comment":"Connector of Real input signal 1","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":342,"lineEnd":343,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
"PI.addFF.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":346,"lineEnd":347,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
"PI.addI.u3":{"comment":"Connector of Real input signal 3","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":975,"lineEnd":976,"colStart":5,"colEnd":68},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
"PI.addPID.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":977,"lineEnd":978,"colStart":5,"colEnd":64},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
"PI.addSat.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":346,"lineEnd":347,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}},
"PI.controlError":{"comment":"Control error (set point - measurement)","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":887,"lineEnd":888,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.y":{"comment":"Connector of actuator output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":501,"lineEnd":502,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"inertia1.a":{"comment":"Absolute angular acceleration of component (= der(w))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2481,"lineEnd":2483,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
"inertia1.w":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"dummy state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
"inertia2.a":{"comment":"Absolute angular acceleration of component (= der(w))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2481,"lineEnd":2483,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
"integrator.local_set":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","integrator.local_set = 0.0;"]}]}},
"kinematicPTP.Ta1":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1474,"lineEnd":1474,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"before-after","display":"flattening","data":["Ta1 = sqrt(1 / sdd_max);","kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max);"]}]}},
"kinematicPTP.Ta2":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1475,"lineEnd":1475,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"before-after","display":"flattening","data":["Ta2 = sd_max / sdd_max;","kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max;"]}]}},
"kinematicPTP.Te":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1477,"lineEnd":1477,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]},{"op":"before-after","display":"flattening","data":["Te = if noWphase then Ta1 + Ta1 else Tv + Ta2;","kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2;"]}]}},
"kinematicPTP.Tv":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1476,"lineEnd":1476,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]},{"op":"before-after","display":"flattening","data":["Tv = if noWphase then Ta1 else 1 / sd_max;","kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max;"]}]}},
"kinematicPTP.aux1[1]":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1472,"lineEnd":1472,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux1[i] = p_deltaq[i] / p_qd_max[i];","kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1];"]}]}},
"kinematicPTP.aux2[1]":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1473,"lineEnd":1473,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux2[i] = p_deltaq[i] / p_qdd_max[i];","kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1];"]}]}},
"kinematicPTP.sd_max":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1469,"lineEnd":1469,"colStart":5,"colEnd":16},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"before-after","display":"flattening","data":["sd_max = 1 / max(abs(aux1));","kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1]);"]}]}},
"kinematicPTP.sdd":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1471,"lineEnd":1471,"colStart":5,"colEnd":13},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.sdd_max":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1470,"lineEnd":1470,"colStart":5,"colEnd":17},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"before-after","display":"flattening","data":["sdd_max = 1 / max(abs(aux2));","kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1]);"]}]}},
"kinematicPTP.y[1]":{"comment":"Connector of Real output signals","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":314,"lineEnd":315,"colStart":5,"colEnd":56},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"loadTorque.phi":{"comment":"Angle of flange with respect to support (= flange.phi - support.phi)","kind":"dummy state","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7683,"lineEnd":7684,"colStart":7,"colEnd":79},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}},
"loadTorque.phi_support":{"comment":"Absolute angle of support flange","kind":"variable","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","loadTorque.phi_support = 0.0;"]}]}},
"speedSensor.flange.tau":{"comment":"Cut torque in the flange","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"speedSensorflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sensors.SpeedSensor","Modelica.Mechanics.Rotational.Interfaces.Flange_a"],"operations":[{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"before-after","display":"flattening","data":["0 = flange.tau;","0.0 = speedSensor.flange.tau;"]}]}},
"spring.a_rel":{"comment":"Relative angular acceleration (= der(w_rel))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7291,"lineEnd":7292,"colStart":7,"colEnd":55},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.lossPower":{"comment":"Loss power leaving component via heatPort (> 0, if heat is flowing out of component)","kind":"variable","type":"Real","unit":"W","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3144,"lineEnd":3145,"colStart":7,"colEnd":95},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.tau":{"comment":"Torque between flanges (= flange_b.tau)","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7293,"lineEnd":7293,"colStart":7,"colEnd":76},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.tau_c":{"comment":"Spring torque","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2704,"lineEnd":2704,"colStart":7,"colEnd":52},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.tau_d":{"comment":"Damping torque","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2705,"lineEnd":2705,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"torque.phi_support":{"comment":"Absolute angle of support flange","kind":"variable","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"],"operations":[{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","torque.phi_support = 0.0;"]}]}},
"PI.I.local_reset":{"comment":"","kind":"discrete","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","PI.I.local_reset = false;"]}]}},
"kinematicPTP.noWphase":{"comment":"","kind":"discrete","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1478,"lineEnd":1478,"colStart":5,"colEnd":21},"within":["Boolean"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]},{"op":"before-after","display":"flattening","data":["noWphase = Ta2 >= Ta1;","kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1;"]}]}},
"PI.Dzero.k":{"comment":"Constant output value","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"]}},
"PI.FFzero.k":{"comment":"Constant output value","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"]}},
"PI.FFzero.y":{"comment":"Connector of Real output signal","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"],"operations":[{"op":"info","display":"solved","data":["PI.FFzero.y = PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.FFzero.y = PI.FFzero.k;"]}]}},
"PI.I.k":{"comment":"Integrator gain","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"PI.I.y_start":{"comment":"Initial or guess value of output (= state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"PI.Nd":{"comment":"The higher Nd, the more ideal the derivative block","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.Ni":{"comment":"Ni*Ti is time constant of anti-windup compensation","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.P.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}},
"PI.Td":{"comment":"Time constant of Derivative block","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.Ti":{"comment":"Time constant of Integrator block","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.addFF.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
"PI.addFF.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
"PI.addFF.u2":{"comment":"Connector of Real input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":344,"lineEnd":345,"colStart":5,"colEnd":59},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"],"operations":[{"op":"info","display":"solved","data":["PI.addFF.u2 = PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.u2","PI.FFzero.y"]}]}},
"PI.addI.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
"PI.addI.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
"PI.addI.k3":{"comment":"Gain of input signal 3","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
"PI.addP.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}},
"PI.addP.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}},
"PI.addPID.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
"PI.addPID.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
"PI.addPID.k3":{"comment":"Gain of input signal 3","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
"PI.addPID.u2":{"comment":"Connector of Real input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":973,"lineEnd":974,"colStart":5,"colEnd":66},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"],"operations":[{"op":"info","display":"solved","data":["PI.addPID.u2 = PI.Dzero.k"]},{"op":"chain","display":"substitution","data":["PI.addPID.u2","PI.Dzero.y"]}]}},
"PI.addSat.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}},
"PI.addSat.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}},
"PI.gainPID.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainPID"]}},
"PI.gainTrack.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainTrack","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainTrack"]}},
"PI.k":{"comment":"Gain of controller","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.kFF":{"comment":"Gain of feed-forward input","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":917,"lineEnd":918,"colStart":5,"colEnd":49},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.limiter.uMax":{"comment":"Upper limits of input signals","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":8,"lineEnd":8,"colStart":9,"colEnd":69},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
"PI.limiter.uMin":{"comment":"Lower limits of input signals","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":9,"lineEnd":9,"colStart":9,"colEnd":67},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
"PI.wd":{"comment":"Set-point weight for Derivative block (0..1)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.wp":{"comment":"Set-point weight for Proportional block (0..1)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.xd_start":{"comment":"Initial or guess value for state of derivative block","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":927,"lineEnd":931,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.xi_start":{"comment":"Initial or guess value for integrator output (= integrator state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":922,"lineEnd":926,"colStart":5,"colEnd":87},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.yMax":{"comment":"Upper limit of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":900,"lineEnd":900,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.yMin":{"comment":"Lower limit of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":901,"lineEnd":901,"colStart":5,"colEnd":54},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.y_start":{"comment":"Initial value of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":932,"lineEnd":934,"colStart":5,"colEnd":31},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"driveAngle":{"comment":"Reference distance to move","kind":"parameter","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":17,"lineEnd":18,"colStart":5,"colEnd":35},"within":["Real"],"typeLst":["Modelica.Blocks.Examples.PID_Controller"]}},
"inertia1.J":{"comment":"Moment of inertia","kind":"parameter","type":"Real","unit":"kg.m2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
"inertia2.J":{"comment":"Moment of inertia","kind":"parameter","type":"Real","unit":"kg.m2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
"inertia2.flange_b.tau":{"comment":"Cut torque in the flange","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"inertia2flange_b","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["inertia2.flange_b.tau = loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["inertia2.flange_b.tau","-loadTorque.flange.tau"]}]}},
"integrator.k":{"comment":"Integrator gain","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"integrator.y_start":{"comment":"Initial or guess value of output (= state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"kinematicPTP.deltaq[1]":{"comment":"Distance to move","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1452,"lineEnd":1453,"colStart":5,"colEnd":106},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.p_deltaq[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1463,"lineEnd":1464,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.p_qd_max[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1465,"lineEnd":1466,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.p_qdd_max[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1467,"lineEnd":1468,"colStart":5,"colEnd":33},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.qd_max[1]":{"comment":"Maximum velocities der(q)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.qdd_max[1]":{"comment":"Maximum accelerations der(qd)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.startTime":{"comment":"Time instant at which movement starts","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1458,"lineEnd":1458,"colStart":5,"colEnd":79},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"loadTorque.flange.tau":{"comment":"Cut torque in the flange","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"loadTorqueflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["loadTorque.flange.tau = -loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["loadTorque.flange.tau","loadTorque.tau"]},{"op":"before-after","display":"flattening","data":["tau = -flange.tau;","loadTorque.tau = -loadTorque.flange.tau;"]}]}},
"loadTorque.tau":{"comment":"Accelerating torque acting at flange (= -flange.tau)","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6685,"lineEnd":6686,"colStart":7,"colEnd":63},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.tau = loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["tau = tau_constant;","loadTorque.tau = loadTorque.tau_constant;"]}]}},
"loadTorque.tau_constant":{"comment":"Constant torque (if negative, torque is acting as load in positive direction of rotation)","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6681,"lineEnd":6682,"colStart":7,"colEnd":100},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}},
"spring.c":{"comment":"Spring constant","kind":"parameter","type":"Real","unit":"N.m/rad","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.d":{"comment":"Damping constant","kind":"parameter","type":"Real","unit":"N.m.s/rad","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.phi_nominal":{"comment":"Nominal value of phi_rel (used for scaling)","kind":"parameter","type":"Real","unit":"rad","displayUnit":"rad","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.phi_rel0":{"comment":"Unstretched spring angle","kind":"parameter","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2698,"lineEnd":2698,"colStart":7,"colEnd":63},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"PI.I.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3,4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"PI.homotopyType":{"comment":"Simplified model for homotopy-based initialization","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3: initial state, 4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.limiter.homotopyType":{"comment":"Simplified model for homotopy-based initialization","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
"inertia1.stateSelect":{"comment":"Priority to use phi and w as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
"inertia2.stateSelect":{"comment":"Priority to use phi and w as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
"integrator.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3,4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"kinematicPTP.nout":{"comment":"Number of outputs","kind":"parameter","type":"Integer","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"spring.stateSelect":{"comment":"Priority to use phi_rel and w_rel as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"PI.I.use_reset":{"comment":"=true, if reset port enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"PI.limiter.limitsAtInit":{"comment":"Has no longer an effect and is only kept for backwards compatibility (the implementation uses now the homotopy operator)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":14,"lineEnd":16,"colStart":9,"colEnd":81},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
"PI.limiter.strict":{"comment":"= true, if strict limits with noEvent(..)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":10,"lineEnd":11,"colStart":9,"colEnd":85},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
"PI.limitsAtInit":{"comment":"Has no longer an effect and is only kept for backwards compatibility (the implementation uses now the homotopy operator)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":940,"lineEnd":942,"colStart":5,"colEnd":77},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.strict":{"comment":"= true, if strict limits with noEvent(..)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":938,"lineEnd":939,"colStart":5,"colEnd":81},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.withFeedForward":{"comment":"Use feed-forward input?","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":915,"lineEnd":916,"colStart":5,"colEnd":56},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.with_D":{"comment":"","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":995,"lineEnd":996,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.with_I":{"comment":"","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":993,"lineEnd":994,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"integrator.use_reset":{"comment":"=true, if reset port enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"integrator.use_set":{"comment":"=true, if set port enabled and used as reinitialization value when reset","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"loadTorque.useSupport":{"comment":"= true, if support flange enabled, otherwise implicitly grounded","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}},
"spring.useHeatPort":{"comment":"=true, if heatPort is enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3137,"lineEnd":3138,"colStart":7,"colEnd":75},"within":["Boolean"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"torque.useSupport":{"comment":"= true, if support flange enabled, otherwise implicitly grounded","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"]}},
"PI.unitTime":{"comment":"","kind":"constant","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":943,"lineEnd":943,"colStart":5,"colEnd":75},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}
},
"equations":[{"eqIndex":0,"tag":"dummy"},
{"eqIndex":1,"section":"initial","tag":"assign","defines":["PI.I.local_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","PI.I.local_reset = false;"]}]}},
{"eqIndex":2,"section":"initial","tag":"assign","defines":["PI.I.local_set"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","PI.I.local_set = 0.0;"]}]}},
{"eqIndex":3,"section":"initial","tag":"assign","defines":["torque.phi_support"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"],"operations":[{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","torque.phi_support = 0.0;"]}]}},
{"eqIndex":4,"section":"initial","tag":"assign","defines":["integrator.local_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","integrator.local_reset = false;"]}]}},
{"eqIndex":5,"section":"initial","tag":"assign","defines":["integrator.local_set"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","integrator.local_set = 0.0;"]}]}},
{"eqIndex":6,"section":"initial","tag":"assign","defines":["kinematicPTP.aux1[1]"],"uses":["kinematicPTP.p_qd_max[1]","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1472,"lineEnd":1472,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux1[i] = p_deltaq[i] / p_qd_max[i];","kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1];"]}]}},
{"eqIndex":7,"section":"initial","tag":"assign","defines":["kinematicPTP.sd_max"],"uses":["kinematicPTP.aux1[1]"],"equation":["1.0 / abs(kinematicPTP.aux1[1])"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1469,"lineEnd":1469,"colStart":5,"colEnd":16},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"before-after","display":"flattening","data":["sd_max = 1 / max(abs(aux1));","kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1]);"]}]}},
{"eqIndex":8,"section":"initial","tag":"assign","defines":["kinematicPTP.aux2[1]"],"uses":["kinematicPTP.p_qdd_max[1]","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1473,"lineEnd":1473,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux2[i] = p_deltaq[i] / p_qdd_max[i];","kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1];"]}]}},
{"eqIndex":9,"section":"initial","tag":"assign","defines":["kinematicPTP.sdd_max"],"uses":["kinematicPTP.aux2[1]"],"equation":["1.0 / abs(kinematicPTP.aux2[1])"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1470,"lineEnd":1470,"colStart":5,"colEnd":17},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"before-after","display":"flattening","data":["sdd_max = 1 / max(abs(aux2));","kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1]);"]}]}},
{"eqIndex":10,"section":"initial","tag":"assign","defines":["kinematicPTP.Ta2"],"uses":["kinematicPTP.sdd_max","kinematicPTP.sd_max"],"equation":["kinematicPTP.sd_max / kinematicPTP.sdd_max"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1475,"lineEnd":1475,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"before-after","display":"flattening","data":["Ta2 = sd_max / sdd_max;","kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max;"]}]}},
{"eqIndex":11,"section":"initial","tag":"assign","defines":["kinematicPTP.Ta1"],"uses":["kinematicPTP.sdd_max"],"equation":["sqrt(1.0 / kinematicPTP.sdd_max)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1474,"lineEnd":1474,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"before-after","display":"flattening","data":["Ta1 = sqrt(1 / sdd_max);","kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max);"]}]}},
{"eqIndex":12,"tag":"alias","equation":[187],"section":"initial"},
{"eqIndex":13,"tag":"alias","equation":[188],"section":"initial"},
{"eqIndex":14,"tag":"alias","equation":[189],"section":"initial"},
{"eqIndex":15,"tag":"alias","equation":[198],"section":"initial"},
{"eqIndex":16,"tag":"alias","equation":[199],"section":"initial"},
{"eqIndex":17,"tag":"alias","equation":[200],"section":"initial"},
{"eqIndex":18,"section":"initial","tag":"assign","defines":["speedSensor.flange.tau"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"speedSensorflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sensors.SpeedSensor","Modelica.Mechanics.Rotational.Interfaces.Flange_a"],"operations":[{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"before-after","display":"flattening","data":["0 = flange.tau;","0.0 = speedSensor.flange.tau;"]}]}},
{"eqIndex":19,"section":"initial","tag":"assign","defines":["loadTorque.phi_support"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","loadTorque.phi_support = 0.0;"]}]}},
{"eqIndex":20,"section":"initial","tag":"assign","defines":["inertia1.phi"],"uses":["$START.inertia1.phi"],"equation":["$START.inertia1.phi"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["inertia1.phi = $START.inertia1.phi"]},{"op":"info","display":"solved","data":["inertia1.phi = $START.inertia1.phi"]}]}},
{"eqIndex":21,"section":"initial","tag":"assign","defines":["inertia1.a"],"uses":["$START.inertia1.a"],"equation":["$START.inertia1.a"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["inertia1.a = $START.inertia1.a"]},{"op":"info","display":"solved","data":["inertia1.a = $START.inertia1.a"]}]}},
{"eqIndex":22,"tag":"alias","equation":[212],"section":"initial"},
{"eqIndex":23,"section":"initial","tag":"assign","defines":["spring.w_rel"],"uses":["$START.spring.w_rel"],"equation":["$START.spring.w_rel"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["spring.w_rel = $START.spring.w_rel"]},{"op":"info","display":"solved","data":["spring.w_rel = $START.spring.w_rel"]}]}},
{"eqIndex":24,"tag":"alias","equation":[197],"section":"initial"},
{"eqIndex":25,"tag":"alias","equation":[192],"section":"initial"},
{"eqIndex":26,"tag":"alias","equation":[193],"section":"initial"},
{"eqIndex":27,"section":"initial","tag":"assign","defines":["der(spring.w_rel)"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":59,"lineEnd":59,"colStart":5,"colEnd":26},"within":["Modelica.Blocks.Examples.PID_Controller"],"operations":[{"op":"info","display":"solved","data":["der(spring.w_rel) = 0.0"]},{"op":"info","display":"solved","data":["der(spring.w_rel) = 0.0"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["der(spring.w_rel) = 0;","#UNKNOWN_EQUATION#"]}]}},
{"eqIndex":28,"section":"initial","tag":"assign","defines":["spring.a_rel"],"uses":["der(spring.w_rel)"],"equation":["$DER.spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7310,"lineEnd":7310,"colStart":7,"colEnd":25},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.a_rel = $DER.spring.w_rel"]},{"op":"info","display":"solved","data":["spring.a_rel = $DER.spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["a_rel = der(w_rel);","spring.a_rel = der(spring.w_rel);"]}]}},
{"eqIndex":29,"section":"initial","tag":"assign","defines":["inertia2.a"],"uses":["spring.a_rel","inertia1.a"],"equation":["inertia1.a + spring.a_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia2.a = inertia1.a + spring.a_rel"]},{"op":"info","display":"solved","data":["inertia2.a = inertia1.a + spring.a_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["inertia2.w - inertia1.w","der(inertia2.w) - der(inertia1.w)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.w_rel","der(spring.w_rel)"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}},
{"eqIndex":30,"section":"initial","tag":"assign","defines":["spring.tau"],"uses":["inertia2.a","inertia2.J","loadTorque.tau_constant"],"equation":["loadTorque.tau_constant - inertia2.J * inertia2.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["spring.tau = loadTorque.tau_constant - inertia2.J * inertia2.a"]},{"op":"info","display":"solved","data":["spring.tau = loadTorque.tau_constant - inertia2.J * inertia2.a"]},{"op":"before-after","display":"simplify","data":["inertia2.J * inertia2.a = (-spring.tau) + loadTorque.tau_constant","inertia2.J * inertia2.a = loadTorque.tau_constant - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia2.flange_a.tau + inertia2.flange_b.tau","(-spring.tau) + loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia2.J * inertia2.a = inertia2.flange_a.tau + inertia2.flange_b.tau;"]}]}},
{"eqIndex":31,"section":"initial","tag":"assign","defines":["spring.tau_c"],"uses":["spring.tau_d","spring.tau"],"equation":["spring.tau - spring.tau_d"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2709,"lineEnd":2709,"colStart":7,"colEnd":26},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_c = spring.tau - spring.tau_d"]},{"op":"info","display":"solved","data":["spring.tau_c = spring.tau - spring.tau_d"]},{"op":"before-after","display":"flattening","data":["tau = tau_c + tau_d;","spring.tau = spring.tau_c + spring.tau_d;"]}]}},
{"eqIndex":32,"section":"initial","tag":"assign","defines":["spring.phi_rel"],"uses":["spring.phi_rel0","spring.c","spring.tau_c"],"equation":["spring.tau_c / spring.c + spring.phi_rel0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2707,"lineEnd":2707,"colStart":7,"colEnd":37},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.phi_rel = spring.tau_c / spring.c + spring.phi_rel0"]},{"op":"info","display":"solved","data":["spring.phi_rel = spring.tau_c / spring.c + spring.phi_rel0"]},{"op":"before-after","display":"flattening","data":["tau_c = c * (phi_rel - phi_rel0);","spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0);"]}]}},
{"eqIndex":33,"tag":"alias","equation":[218],"section":"initial"},
{"eqIndex":34,"section":"initial","tag":"assign","defines":["PI.y"],"uses":["spring.tau","inertia1.a","inertia1.J"],"equation":["inertia1.J * inertia1.a - spring.tau"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["PI.y = inertia1.J * inertia1.a - spring.tau"]},{"op":"info","display":"solved","data":["PI.y = inertia1.J * inertia1.a - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia1.flange_a.tau + inertia1.flange_b.tau","PI.y + spring.tau","PI.y + inertia1.flange_b.tau"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia1.J * inertia1.a = inertia1.flange_a.tau + inertia1.flange_b.tau;"]}]}},
{"eqIndex":35,"parent":36,"section":"initial","tag":"residual","uses":["PI.limiter.uMin","PI.limiter.uMax","PI.addFF.y","PI.y"],"equation":["PI.y - homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}},
{"eqIndex":36,"section":"initial","tag":"system","display":"non-linear","unknowns":1,"defines":["PI.addFF.y"],"equation":[[35],[]]},
{"eqIndex":37,"tag":"alias","equation":[213],"section":"initial"},
{"eqIndex":38,"tag":"alias","equation":[214],"section":"initial"},
{"eqIndex":39,"section":"initial","tag":"assign","defines":["PI.addFF.u1"],"uses":["PI.addFF.k1","PI.FFzero.k","PI.addFF.k2","PI.addFF.y"],"equation":["(PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addFF"],"instance":"PIaddFF","operations":[{"op":"info","display":"solved","data":["PI.addFF.u1 = (PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"]},{"op":"info","display":"solved","data":["PI.addFF.u1 = (PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"]},{"op":"chain","display":"substitution","data":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2","PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2;"]}]}},
{"eqIndex":40,"section":"initial","tag":"assign","defines":["PI.addPID.y"],"uses":["PI.gainPID.k","PI.addFF.u1"],"equation":["PI.addFF.u1 / PI.gainPID.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainPID"],"instance":"PIgainPID","operations":[{"op":"info","display":"solved","data":["PI.addPID.y = PI.addFF.u1 / PI.gainPID.k"]},{"op":"info","display":"solved","data":["PI.addPID.y = PI.addFF.u1 / PI.gainPID.k"]},{"op":"chain","display":"substitution","data":["PI.gainPID.k * PI.gainPID.u","PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.y","PI.addFF.u1"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainPID.y = PI.gainPID.k * PI.gainPID.u;"]}]}},
{"eqIndex":41,"tag":"alias","equation":[196],"section":"initial"},
{"eqIndex":42,"section":"initial","tag":"assign","defines":["integrator.y"],"uses":["integrator.y_start"],"equation":["integrator.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":44,"lineEnd":44,"colStart":7,"colEnd":18},"within":["Modelica.Blocks.Continuous.Integrator$integrator"],"instance":"integrator","operations":[{"op":"info","display":"solved","data":["integrator.y = integrator.y_start"]},{"op":"info","display":"solved","data":["integrator.y = integrator.y_start"]},{"op":"before-after","display":"flattening","data":["y = y_start;","#UNKNOWN_EQUATION#"]}]}},
{"eqIndex":43,"section":"initial","tag":"assign","defines":["der(PI.I.y)"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":41,"lineEnd":41,"colStart":8,"colEnd":18},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["der(PI.I.y) = 0.0"]},{"op":"info","display":"solved","data":["der(PI.I.y) = 0.0"]},{"op":"before-after","display":"flattening","data":["der(y) = 0;","#UNKNOWN_EQUATION#"]}]}},
{"eqIndex":44,"section":"initial","tag":"assign","defines":["PI.I.u"],"uses":["PI.I.k","der(PI.I.y)"],"equation":["$DER.PI.I.y / PI.I.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["PI.I.u = $DER.PI.I.y / PI.I.k"]},{"op":"info","display":"solved","data":["PI.I.u = $DER.PI.I.y / PI.I.k"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(PI.I.y)","der(PI.I.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(PI.I.y) = PI.I.k * PI.I.u;"]}]}},
{"eqIndex":45,"section":"initial","tag":"assign","defines":["inertia1.w"],"uses":["PI.addI.k2","PI.addI.u3","PI.addI.k3","integrator.y","PI.addI.k1","PI.I.u"],"equation":["(PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3$PI$addI"],"instance":"PIaddI","operations":[{"op":"info","display":"solved","data":["inertia1.w = (PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"]},{"op":"info","display":"solved","data":["inertia1.w = (PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"]},{"op":"chain","display":"substitution","data":["PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * PI.u_m + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.y","PI.I.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addI.y = PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3;"]}]}},
{"eqIndex":46,"section":"initial","tag":"assign","defines":["inertia2.w"],"uses":["spring.w_rel","inertia1.w"],"equation":["inertia1.w + spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia2.w = inertia1.w + spring.w_rel"]},{"op":"info","display":"solved","data":["inertia2.w = inertia1.w + spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}},
{"eqIndex":47,"tag":"alias","equation":[190],"section":"initial"},
{"eqIndex":48,"tag":"alias","equation":[202],"section":"initial"},
{"eqIndex":49,"tag":"alias","equation":[203],"section":"initial"},
{"eqIndex":50,"tag":"alias","equation":[204],"section":"initial"},
{"eqIndex":51,"section":"initial","tag":"assign","defines":["PI.I.y"],"uses":["PI.addPID.k3","PI.Dzero.k","PI.addPID.k2","PI.P.y","PI.addPID.k1","PI.addPID.y"],"equation":["(PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3"],"instance":"PIaddPID","operations":[{"op":"info","display":"solved","data":["PI.I.y = (PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"]},{"op":"info","display":"solved","data":["PI.I.y = (PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"]},{"op":"chain","display":"substitution","data":["PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3","PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addPID.y = PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3;"]}]}},
{"eqIndex":52,"tag":"alias","equation":[217],"section":"initial"},
{"eqIndex":53,"section":"initial","tag":"algorithm","equation":["assert(PI.limiter.uMax >= PI.limiter.uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(PI.limiter.uMax, 6, 0, true) + \") < uMin (=\" + String(PI.limiter.uMin, 6, 0, true) + \")\");"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":22,"lineEnd":23,"colStart":9,"colEnd":65},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"scode","data":["assert(uMax >= uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(uMax) + \") < uMin (=\" + String(uMin) + \")\");"]}]}},
{"eqIndex":54,"section":"initial-lambda0","tag":"assign","defines":["PI.controllerType"],"uses":[],"equation":["Modelica.Blocks.Types.SimpleController.PI"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":889,"lineEnd":890,"colStart":5,"colEnd":76},"within":["Modelica.Blocks.Types.SimpleController"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":55,"section":"initial-lambda0","tag":"assign","defines":["PI.Td"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":56,"section":"initial-lambda0","tag":"assign","defines":["PI.wd"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":57,"section":"initial-lambda0","tag":"assign","defines":["PI.Nd"],"uses":[],"equation":["10.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":58,"section":"initial-lambda0","tag":"assign","defines":["PI.withFeedForward"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":915,"lineEnd":916,"colStart":5,"colEnd":56},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":59,"section":"initial-lambda0","tag":"assign","defines":["PI.initType"],"uses":[],"equation":["Modelica.Blocks.Types.InitPID.SteadyState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":60,"section":"initial-lambda0","tag":"assign","defines":["PI.xd_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":927,"lineEnd":931,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":61,"section":"initial-lambda0","tag":"assign","defines":["PI.y_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":932,"lineEnd":934,"colStart":5,"colEnd":31},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":62,"section":"initial-lambda0","tag":"assign","defines":["PI.homotopyType"],"uses":[],"equation":["Modelica.Blocks.Types.LimiterHomotopy.Linear"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":63,"section":"initial-lambda0","tag":"assign","defines":["PI.strict"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":938,"lineEnd":939,"colStart":5,"colEnd":81},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":64,"section":"initial-lambda0","tag":"assign","defines":["PI.limitsAtInit"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":940,"lineEnd":942,"colStart":5,"colEnd":77},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":65,"section":"initial-lambda0","tag":"assign","defines":["PI.addP.k1"],"uses":["PI.wp"],"equation":["PI.wp"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}},
{"eqIndex":66,"section":"initial-lambda0","tag":"assign","defines":["PI.wp"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":67,"section":"initial-lambda0","tag":"assign","defines":["PI.addP.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}},
{"eqIndex":68,"section":"initial-lambda0","tag":"assign","defines":["PI.P.k"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}},
{"eqIndex":69,"section":"initial-lambda0","tag":"assign","defines":["PI.gainPID.k"],"uses":["PI.k"],"equation":["PI.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainPID"]}},
{"eqIndex":70,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
{"eqIndex":71,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k2"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
{"eqIndex":72,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k3"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
{"eqIndex":73,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.uMax"],"uses":["PI.yMax"],"equation":["PI.yMax"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":8,"lineEnd":8,"colStart":9,"colEnd":69},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":74,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.uMin"],"uses":["PI.yMin"],"equation":["PI.yMin"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":9,"lineEnd":9,"colStart":9,"colEnd":67},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":75,"section":"initial-lambda0","tag":"assign","defines":["PI.yMin"],"uses":["PI.yMax"],"equation":["-PI.yMax"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":901,"lineEnd":901,"colStart":5,"colEnd":54},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":76,"section":"initial-lambda0","tag":"assign","defines":["PI.yMax"],"uses":[],"equation":["12.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":900,"lineEnd":900,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":77,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.strict"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":10,"lineEnd":11,"colStart":9,"colEnd":85},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":78,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.homotopyType"],"uses":[],"equation":["Modelica.Blocks.Types.LimiterHomotopy.Linear"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":79,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.limitsAtInit"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":14,"lineEnd":16,"colStart":9,"colEnd":81},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":80,"section":"initial-lambda0","tag":"assign","defines":["PI.with_I"],"uses":[],"equation":["true"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":993,"lineEnd":994,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":81,"section":"initial-lambda0","tag":"assign","defines":["PI.with_D"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":995,"lineEnd":996,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":82,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
{"eqIndex":83,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.k2"],"uses":["PI.kFF"],"equation":["PI.kFF"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
{"eqIndex":84,"section":"initial-lambda0","tag":"assign","defines":["PI.kFF"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":917,"lineEnd":918,"colStart":5,"colEnd":49},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":85,"section":"initial-lambda0","tag":"assign","defines":["PI.I.k"],"uses":["PI.Ti"],"equation":["1.0 / PI.Ti"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":86,"section":"initial-lambda0","tag":"assign","defines":["PI.Ti"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":87,"section":"initial-lambda0","tag":"assign","defines":["PI.I.use_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":88,"section":"initial-lambda0","tag":"assign","defines":["PI.I.use_set"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":89,"section":"initial-lambda0","tag":"assign","defines":["PI.I.initType"],"uses":[],"equation":["Modelica.Blocks.Types.Init.SteadyState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":90,"section":"initial-lambda0","tag":"assign","defines":["PI.I.y_start"],"uses":["PI.xi_start"],"equation":["PI.xi_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":91,"section":"initial-lambda0","tag":"assign","defines":["PI.xi_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":922,"lineEnd":926,"colStart":5,"colEnd":87},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":92,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
{"eqIndex":93,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
{"eqIndex":94,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k3"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
{"eqIndex":95,"section":"initial-lambda0","tag":"assign","defines":["PI.addSat.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}},
{"eqIndex":96,"section":"initial-lambda0","tag":"assign","defines":["PI.addSat.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}},
{"eqIndex":97,"section":"initial-lambda0","tag":"assign","defines":["PI.gainTrack.k"],"uses":["PI.k","PI.Ni"],"equation":["1.0 / (PI.Ni * PI.k)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainTrack","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainTrack"]}},
{"eqIndex":98,"section":"initial-lambda0","tag":"assign","defines":["PI.Ni"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":99,"section":"initial-lambda0","tag":"assign","defines":["PI.k"],"uses":[],"equation":["100.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":100,"section":"initial-lambda0","tag":"assign","defines":["inertia1.J"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
{"eqIndex":101,"section":"initial-lambda0","tag":"assign","defines":["inertia1.stateSelect"],"uses":[],"equation":["StateSelect.default"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
{"eqIndex":102,"section":"initial-lambda0","tag":"assign","defines":["torque.useSupport"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"]}},
{"eqIndex":103,"section":"initial-lambda0","tag":"assign","defines":["spring.phi_nominal"],"uses":[],"equation":["0.0001"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":104,"section":"initial-lambda0","tag":"assign","defines":["spring.stateSelect"],"uses":[],"equation":["StateSelect.prefer"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":105,"section":"initial-lambda0","tag":"assign","defines":["spring.useHeatPort"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3137,"lineEnd":3138,"colStart":7,"colEnd":75},"within":["Boolean"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":106,"section":"initial-lambda0","tag":"assign","defines":["spring.c"],"uses":[],"equation":["10000.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":107,"section":"initial-lambda0","tag":"assign","defines":["spring.d"],"uses":[],"equation":["100.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":108,"section":"initial-lambda0","tag":"assign","defines":["spring.phi_rel0"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2698,"lineEnd":2698,"colStart":7,"colEnd":63},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":109,"section":"initial-lambda0","tag":"assign","defines":["inertia2.J"],"uses":[],"equation":["2.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
{"eqIndex":110,"section":"initial-lambda0","tag":"assign","defines":["inertia2.stateSelect"],"uses":[],"equation":["StateSelect.default"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
{"eqIndex":111,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.nout"],"uses":[],"equation":["1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":112,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.startTime"],"uses":[],"equation":["0.5"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1458,"lineEnd":1458,"colStart":5,"colEnd":79},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":113,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_deltaq[1]"],"uses":["kinematicPTP.deltaq[1]"],"equation":["kinematicPTP.deltaq[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1463,"lineEnd":1464,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":114,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.deltaq[1]"],"uses":["driveAngle"],"equation":["driveAngle"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1452,"lineEnd":1453,"colStart":5,"colEnd":106},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":115,"section":"initial-lambda0","tag":"assign","defines":["driveAngle"],"uses":[],"equation":["1.570796326794897"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":17,"lineEnd":18,"colStart":5,"colEnd":35},"within":["Real"],"typeLst":["Modelica.Blocks.Examples.PID_Controller"]}},
{"eqIndex":116,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_qd_max[1]"],"uses":["kinematicPTP.qd_max[1]"],"equation":["kinematicPTP.qd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1465,"lineEnd":1466,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":117,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.qd_max[1]"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":118,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_qdd_max[1]"],"uses":["kinematicPTP.qdd_max[1]"],"equation":["kinematicPTP.qdd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1467,"lineEnd":1468,"colStart":5,"colEnd":33},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":119,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.qdd_max[1]"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":120,"section":"initial-lambda0","tag":"assign","defines":["integrator.k"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":121,"section":"initial-lambda0","tag":"assign","defines":["integrator.use_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":122,"section":"initial-lambda0","tag":"assign","defines":["integrator.use_set"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":123,"section":"initial-lambda0","tag":"assign","defines":["integrator.initType"],"uses":[],"equation":["Modelica.Blocks.Types.Init.InitialState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":124,"section":"initial-lambda0","tag":"assign","defines":["integrator.y_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":125,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.useSupport"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}},
{"eqIndex":126,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.tau"],"uses":["loadTorque.tau_constant"],"equation":["loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6685,"lineEnd":6686,"colStart":7,"colEnd":63},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.tau = loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["tau = tau_constant;","loadTorque.tau = loadTorque.tau_constant;"]}]}},
{"eqIndex":127,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.flange.tau"],"uses":["loadTorque.tau_constant"],"equation":["-loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"loadTorqueflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["loadTorque.flange.tau = -loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["loadTorque.flange.tau","loadTorque.tau"]},{"op":"before-after","display":"flattening","data":["tau = -flange.tau;","loadTorque.tau = -loadTorque.flange.tau;"]}]}},
{"eqIndex":128,"section":"initial-lambda0","tag":"assign","defines":["inertia2.flange_b.tau"],"uses":["loadTorque.tau_constant"],"equation":["loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"inertia2flange_b","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["inertia2.flange_b.tau = loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["inertia2.flange_b.tau","-loadTorque.flange.tau"]}]}},
{"eqIndex":129,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.tau_constant"],"uses":[],"equation":["10.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6681,"lineEnd":6682,"colStart":7,"colEnd":100},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}},
{"eqIndex":130,"section":"initial-lambda0","tag":"assign","defines":["PI.FFzero.y"],"uses":["PI.FFzero.k"],"equation":["PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"],"operations":[{"op":"info","display":"solved","data":["PI.FFzero.y = PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.FFzero.y = PI.FFzero.k;"]}]}},
{"eqIndex":131,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.u2"],"uses":["PI.FFzero.k"],"equation":["PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":344,"lineEnd":345,"colStart":5,"colEnd":59},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"],"operations":[{"op":"info","display":"solved","data":["PI.addFF.u2 = PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.u2","PI.FFzero.y"]}]}},
{"eqIndex":132,"section":"initial-lambda0","tag":"assign","defines":["PI.FFzero.k"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"]}},
{"eqIndex":133,"section":"initial-lambda0","tag":"assign","defines":["PI.Dzero.y"],"uses":["PI.Dzero.k"],"equation":["PI.Dzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"],"operations":[{"op":"info","display":"solved","data":["PI.Dzero.y = PI.Dzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.Dzero.y = PI.Dzero.k;"]}]}},
{"eqIndex":134,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.u2"],"uses":["PI.Dzero.k"],"equation":["PI.Dzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":973,"lineEnd":974,"colStart":5,"colEnd":66},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"],"operations":[{"op":"info","display":"solved","data":["PI.addPID.u2 = PI.Dzero.k"]},{"op":"chain","display":"substitution","data":["PI.addPID.u2","PI.Dzero.y"]}]}},
{"eqIndex":135,"section":"initial-lambda0","tag":"assign","defines":["PI.Dzero.k"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"]}},
{"eqIndex":136,"tag":"alias","equation":[1],"section":"initial-lambda0"},
{"eqIndex":137,"tag":"alias","equation":[2],"section":"initial-lambda0"},
{"eqIndex":138,"tag":"alias","equation":[3],"section":"initial-lambda0"},
{"eqIndex":139,"tag":"alias","equation":[4],"section":"initial-lambda0"},
{"eqIndex":140,"tag":"alias","equation":[5],"section":"initial-lambda0"},
{"eqIndex":141,"tag":"alias","equation":[6],"section":"initial-lambda0"},
{"eqIndex":142,"tag":"alias","equation":[7],"section":"initial-lambda0"},
{"eqIndex":143,"tag":"alias","equation":[8],"section":"initial-lambda0"},
{"eqIndex":144,"tag":"alias","equation":[9],"section":"initial-lambda0"},
{"eqIndex":145,"tag":"alias","equation":[10],"section":"initial-lambda0"},
{"eqIndex":146,"tag":"alias","equation":[11],"section":"initial-lambda0"},
{"eqIndex":147,"tag":"alias","equation":[187],"section":"initial-lambda0"},
{"eqIndex":148,"tag":"alias","equation":[188],"section":"initial-lambda0"},
{"eqIndex":149,"tag":"alias","equation":[189],"section":"initial-lambda0"},
{"eqIndex":150,"tag":"alias","equation":[198],"section":"initial-lambda0"},
{"eqIndex":151,"tag":"alias","equation":[199],"section":"initial-lambda0"},
{"eqIndex":152,"tag":"alias","equation":[200],"section":"initial-lambda0"},
{"eqIndex":153,"tag":"alias","equation":[18],"section":"initial-lambda0"},
{"eqIndex":154,"tag":"alias","equation":[19],"section":"initial-lambda0"},
{"eqIndex":155,"tag":"alias","equation":[20],"section":"initial-lambda0"},
{"eqIndex":156,"tag":"alias","equation":[21],"section":"initial-lambda0"},
{"eqIndex":157,"tag":"alias","equation":[212],"section":"initial-lambda0"},
{"eqIndex":158,"tag":"alias","equation":[23],"section":"initial-lambda0"},
{"eqIndex":159,"tag":"alias","equation":[197],"section":"initial-lambda0"},
{"eqIndex":160,"tag":"alias","equation":[192],"section":"initial-lambda0"},
{"eqIndex":161,"tag":"alias","equation":[193],"section":"initial-lambda0"},
{"eqIndex":162,"tag":"alias","equation":[27],"section":"initial-lambda0"},
{"eqIndex":163,"tag":"alias","equation":[28],"section":"initial-lambda0"},
{"eqIndex":164,"tag":"alias","equation":[29],"section":"initial-lambda0"},
{"eqIndex":165,"tag":"alias","equation":[30],"section":"initial-lambda0"},
{"eqIndex":166,"tag":"alias","equation":[31],"section":"initial-lambda0"},
{"eqIndex":167,"tag":"alias","equation":[32],"section":"initial-lambda0"},
{"eqIndex":168,"tag":"alias","equation":[218],"section":"initial-lambda0"},
{"eqIndex":169,"tag":"alias","equation":[34],"section":"initial-lambda0"},
{"eqIndex":170,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.y"],"uses":["PI.y"],"equation":["PI.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"solved","data":["PI.addFF.y = PI.y"]},{"op":"info","display":"solved","data":["PI.addFF.y = PI.y"]},{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}},
{"eqIndex":171,"tag":"alias","equation":[213],"section":"initial-lambda0"},
{"eqIndex":172,"tag":"alias","equation":[214],"section":"initial-lambda0"},
{"eqIndex":173,"tag":"alias","equation":[39],"section":"initial-lambda0"},
{"eqIndex":174,"tag":"alias","equation":[40],"section":"initial-lambda0"},
{"eqIndex":175,"tag":"alias","equation":[196],"section":"initial-lambda0"},
{"eqIndex":176,"tag":"alias","equation":[42],"section":"initial-lambda0"},
{"eqIndex":177,"tag":"alias","equation":[43],"section":"initial-lambda0"},
{"eqIndex":178,"tag":"alias","equation":[44],"section":"initial-lambda0"},
{"eqIndex":179,"tag":"alias","equation":[45],"section":"initial-lambda0"},
{"eqIndex":180,"tag":"alias","equation":[46],"section":"initial-lambda0"},
{"eqIndex":181,"tag":"alias","equation":[190],"section":"initial-lambda0"},
{"eqIndex":182,"tag":"alias","equation":[202],"section":"initial-lambda0"},
{"eqIndex":183,"tag":"alias","equation":[203],"section":"initial-lambda0"},
{"eqIndex":184,"tag":"alias","equation":[204],"section":"initial-lambda0"},
{"eqIndex":185,"tag":"alias","equation":[51],"section":"initial-lambda0"},
{"eqIndex":186,"tag":"alias","equation":[217],"section":"initial-lambda0"},
{"eqIndex":187,"section":"regular","tag":"assign","defines":["kinematicPTP.noWphase"],"uses":["kinematicPTP.Ta1","kinematicPTP.Ta2"],"equation":["kinematicPTP.Ta2 >= kinematicPTP.Ta1"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]},{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]}]}},
{"eqIndex":188,"section":"regular","tag":"assign","defines":["kinematicPTP.Tv"],"uses":["kinematicPTP.sd_max","kinematicPTP.Ta1","kinematicPTP.noWphase"],"equation":["if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]}]}},
{"eqIndex":189,"section":"regular","tag":"assign","defines":["kinematicPTP.Te"],"uses":["kinematicPTP.Ta2","kinematicPTP.Tv","kinematicPTP.Ta1","kinematicPTP.noWphase"],"equation":["if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]},{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]}]}},
{"eqIndex":190,"section":"regular","tag":"assign","defines":["der(loadTorque.phi)"],"uses":["inertia2.w"],"equation":["inertia2.w"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["der(loadTorque.phi) = inertia2.w"]},{"op":"info","display":"solved","data":["der(loadTorque.phi) = inertia2.w"]}]}},
{"eqIndex":191,"section":"regular","tag":"assign","defines":["spring.tau_c"],"uses":["spring.phi_rel0","spring.phi_rel","spring.c"],"equation":["spring.c * (spring.phi_rel - spring.phi_rel0)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2707,"lineEnd":2707,"colStart":7,"colEnd":37},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0)"]},{"op":"info","display":"solved","data":["spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0)"]},{"op":"before-after","display":"flattening","data":["tau_c = c * (phi_rel - phi_rel0);","spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0);"]}]}},
{"eqIndex":192,"section":"regular","tag":"assign","defines":["spring.tau_d"],"uses":["spring.w_rel","spring.d"],"equation":["spring.d * spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2708,"lineEnd":2708,"colStart":7,"colEnd":22},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_d = spring.d * spring.w_rel"]},{"op":"info","display":"solved","data":["spring.tau_d = spring.d * spring.w_rel"]},{"op":"before-after","display":"flattening","data":["tau_d = d * w_rel;","spring.tau_d = spring.d * spring.w_rel;"]}]}},
{"eqIndex":193,"section":"regular","tag":"assign","defines":["spring.lossPower"],"uses":["spring.w_rel","spring.tau_d"],"equation":["spring.tau_d * spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2710,"lineEnd":2710,"colStart":7,"colEnd":30},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.lossPower = spring.tau_d * spring.w_rel"]},{"op":"info","display":"solved","data":["spring.lossPower = spring.tau_d * spring.w_rel"]},{"op":"before-after","display":"flattening","data":["lossPower = tau_d * w_rel;","spring.lossPower = spring.tau_d * spring.w_rel;"]}]}},
{"eqIndex":194,"section":"regular","tag":"assign","defines":["spring.tau"],"uses":["spring.tau_d","spring.tau_c"],"equation":["spring.tau_c + spring.tau_d"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2709,"lineEnd":2709,"colStart":7,"colEnd":26},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau = spring.tau_c + spring.tau_d"]},{"op":"info","display":"solved","data":["spring.tau = spring.tau_c + spring.tau_d"]},{"op":"before-after","display":"flattening","data":["tau = tau_c + tau_d;","spring.tau = spring.tau_c + spring.tau_d;"]}]}},
{"eqIndex":195,"section":"regular","tag":"assign","defines":["inertia2.a"],"uses":["inertia2.J","spring.tau","loadTorque.tau_constant"],"equation":["(loadTorque.tau_constant - spring.tau) / inertia2.J"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["inertia2.a = (loadTorque.tau_constant - spring.tau) / inertia2.J"]},{"op":"info","display":"solved","data":["inertia2.a = (loadTorque.tau_constant - spring.tau) / inertia2.J"]},{"op":"before-after","display":"simplify","data":["inertia2.J * inertia2.a = (-spring.tau) + loadTorque.tau_constant","inertia2.J * inertia2.a = loadTorque.tau_constant - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia2.flange_a.tau + inertia2.flange_b.tau","(-spring.tau) + loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia2.J * inertia2.a = inertia2.flange_a.tau + inertia2.flange_b.tau;"]}]}},
{"eqIndex":196,"section":"regular","tag":"assign","defines":["der(inertia2.w)"],"uses":["inertia2.a"],"equation":["inertia2.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2489,"lineEnd":2489,"colStart":7,"colEnd":17},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["der(inertia2.w) = inertia2.a"]},{"op":"info","display":"solved","data":["der(inertia2.w) = inertia2.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia2.w)","der(inertia2.w)"]},{"op":"before-after","display":"flattening","data":["a = der(w);","inertia2.a = der(inertia2.w);"]}]}},
{"eqIndex":197,"section":"regular","tag":"assign","defines":["der(spring.phi_rel)"],"uses":["spring.w_rel"],"equation":["spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7309,"lineEnd":7309,"colStart":7,"colEnd":27},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["der(spring.phi_rel) = spring.w_rel"]},{"op":"info","display":"solved","data":["der(spring.phi_rel) = spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.phi_rel)","der(spring.phi_rel)"]},{"op":"before-after","display":"flattening","data":["w_rel = der(phi_rel);","spring.w_rel = der(spring.phi_rel);"]}]}},
{"eqIndex":198,"section":"regular","tag":"assign","defines":["kinematicPTP.sdd"],"uses":["kinematicPTP.Tv","kinematicPTP.Ta2","kinematicPTP.Te","kinematicPTP.sdd_max","kinematicPTP.Ta1","kinematicPTP.noWphase","kinematicPTP.startTime","time"],"equation":["if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1495,"lineEnd":1498,"colStart":5,"colEnd":80},"within":["Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"instance":"kinematicPTP","operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"]},{"op":"before-after","display":"flattening","data":["sdd = if time < startTime then 0 else if noWphase then if time < Ta1 + startTime then sdd_max else if time < Te + startTime then -sdd_max else 0 else if time < Ta2 + startTime then sdd_max else if time < Tv + startTime then 0 else if time < Te + startTime then -sdd_max else 0;","kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0;"]}]}},
{"eqIndex":199,"section":"regular","tag":"assign","defines":["kinematicPTP.y[1]"],"uses":["kinematicPTP.sdd","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1501,"lineEnd":1501,"colStart":5,"colEnd":21},"within":["Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"instance":"kinematicPTP","operations":[{"op":"info","display":"solved","data":["kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"]},{"op":"info","display":"solved","data":["kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"]},{"op":"before-after","display":"flattening","data":["y = p_deltaq * sdd;","kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd;"]}]}},
{"eqIndex":200,"section":"regular","tag":"assign","defines":["der(integrator.y)"],"uses":["kinematicPTP.y[1]","integrator.k"],"equation":["integrator.k * kinematicPTP.y[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$integrator"],"instance":"integrator","operations":[{"op":"info","display":"solved","data":["der(integrator.y) = integrator.k * kinematicPTP.y[1]"]},{"op":"info","display":"solved","data":["der(integrator.y) = integrator.k * kinematicPTP.y[1]"]},{"op":"chain","display":"substitution","data":["integrator.k * integrator.u","integrator.k * kinematicPTP.y[1]"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(integrator.y)","der(integrator.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(integrator.y) = integrator.k * integrator.u;"]}]}},
{"eqIndex":201,"section":"regular","tag":"assign","defines":["inertia1.w"],"uses":["spring.w_rel","inertia2.w"],"equation":["inertia2.w - spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia1.w = inertia2.w - spring.w_rel"]},{"op":"info","display":"solved","data":["inertia1.w = inertia2.w - spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}},
{"eqIndex":202,"section":"regular","tag":"assign","defines":["der(inertia1.phi)"],"uses":["inertia1.w"],"equation":["inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2488,"lineEnd":2488,"colStart":7,"colEnd":19},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["der(inertia1.phi) = inertia1.w"]},{"op":"info","display":"solved","data":["der(inertia1.phi) = inertia1.w"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia1.phi)","der(inertia1.phi)"]},{"op":"before-after","display":"flattening","data":["w = der(phi);","inertia1.w = der(inertia1.phi);"]}]}},
{"eqIndex":203,"section":"regular","tag":"assign","defines":["PI.P.u"],"uses":["inertia1.w","PI.addP.k2","integrator.y","PI.addP.k1"],"equation":["PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addP"],"instance":"PIaddP","operations":[{"op":"info","display":"solved","data":["PI.P.u = PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"]},{"op":"info","display":"solved","data":["PI.P.u = PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"]},{"op":"chain","display":"substitution","data":["PI.addP.k1 * PI.addP.u1 + PI.addP.k2 * PI.addP.u2","PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w","PI.addP.k1 * integrator.y + PI.addP.k2 * PI.u_m"]},{"op":"chain","display":"substitution","data":["PI.addP.y","PI.P.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addP.y = PI.addP.k1 * PI.addP.u1 + PI.addP.k2 * PI.addP.u2;"]}]}},
{"eqIndex":204,"section":"regular","tag":"assign","defines":["PI.P.y"],"uses":["PI.P.u","PI.P.k"],"equation":["PI.P.k * PI.P.u"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$P"],"instance":"PIP","operations":[{"op":"info","display":"solved","data":["PI.P.y = PI.P.k * PI.P.u"]},{"op":"info","display":"solved","data":["PI.P.y = PI.P.k * PI.P.u"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.P.y = PI.P.k * PI.P.u;"]}]}},
{"eqIndex":205,"section":"regular","tag":"assign","defines":["PI.addPID.y"],"uses":["PI.I.y","PI.addPID.k3","PI.Dzero.k","PI.addPID.k2","PI.P.y","PI.addPID.k1"],"equation":["PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3"],"instance":"PIaddPID","operations":[{"op":"info","display":"solved","data":["PI.addPID.y = PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"info","display":"solved","data":["PI.addPID.y = PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"chain","display":"substitution","data":["PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3","PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addPID.y = PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3;"]}]}},
{"eqIndex":206,"section":"regular","tag":"assign","defines":["PI.addFF.u1"],"uses":["PI.addPID.y","PI.gainPID.k"],"equation":["PI.gainPID.k * PI.addPID.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainPID"],"instance":"PIgainPID","operations":[{"op":"info","display":"solved","data":["PI.addFF.u1 = PI.gainPID.k * PI.addPID.y"]},{"op":"info","display":"solved","data":["PI.addFF.u1 = PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.k * PI.gainPID.u","PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.y","PI.addFF.u1"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainPID.y = PI.gainPID.k * PI.gainPID.u;"]}]}},
{"eqIndex":207,"section":"regular","tag":"assign","defines":["PI.addFF.y"],"uses":["PI.FFzero.k","PI.addFF.k2","PI.addFF.u1","PI.addFF.k1"],"equation":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addFF"],"instance":"PIaddFF","operations":[{"op":"info","display":"solved","data":["PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"info","display":"solved","data":["PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2","PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2;"]}]}},
{"eqIndex":208,"section":"regular","tag":"assign","defines":["PI.y"],"uses":["PI.limiter.uMin","PI.limiter.uMax","PI.addFF.y"],"equation":["smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"solved","data":["PI.y = smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"]},{"op":"info","display":"solved","data":["PI.y = smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}},
{"eqIndex":209,"section":"regular","tag":"assign","defines":["inertia1.a"],"uses":["inertia1.J","spring.tau","PI.y"],"equation":["(PI.y + spring.tau) / inertia1.J"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["inertia1.a = (PI.y + spring.tau) / inertia1.J"]},{"op":"info","display":"solved","data":["inertia1.a = (PI.y + spring.tau) / inertia1.J"]},{"op":"chain","display":"substitution","data":["inertia1.flange_a.tau + inertia1.flange_b.tau","PI.y + spring.tau","PI.y + inertia1.flange_b.tau"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia1.J * inertia1.a = inertia1.flange_a.tau + inertia1.flange_b.tau;"]}]}},
{"eqIndex":210,"section":"regular","tag":"assign","defines":["spring.a_rel"],"uses":["inertia1.a","inertia2.a"],"equation":["inertia2.a - inertia1.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.a_rel = inertia2.a - inertia1.a"]},{"op":"info","display":"solved","data":["spring.a_rel = inertia2.a - inertia1.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["inertia2.w - inertia1.w","der(inertia2.w) - der(inertia1.w)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.w_rel","der(spring.w_rel)"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}},
{"eqIndex":211,"section":"regular","tag":"assign","defines":["der(spring.w_rel)"],"uses":["spring.a_rel"],"equation":["spring.a_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7310,"lineEnd":7310,"colStart":7,"colEnd":25},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["der(spring.w_rel) = spring.a_rel"]},{"op":"info","display":"solved","data":["der(spring.w_rel) = spring.a_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["a_rel = der(w_rel);","spring.a_rel = der(spring.w_rel);"]}]}},
{"eqIndex":212,"section":"regular","tag":"assign","defines":["der(inertia1.w)"],"uses":["inertia1.a"],"equation":["inertia1.a"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]},{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]}]}},
{"eqIndex":213,"section":"regular","tag":"assign","defines":["PI.addSat.y"],"uses":["PI.addFF.y","PI.addSat.k2","PI.y","PI.addSat.k1"],"equation":["PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addSat"],"instance":"PIaddSat","operations":[{"op":"info","display":"solved","data":["PI.addSat.y = PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"info","display":"solved","data":["PI.addSat.y = PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"chain","display":"substitution","data":["PI.addSat.k1 * PI.addSat.u1 + PI.addSat.k2 * PI.addSat.u2","PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addSat.y = PI.addSat.k1 * PI.addSat.u1 + PI.addSat.k2 * PI.addSat.u2;"]}]}},
{"eqIndex":214,"section":"regular","tag":"assign","defines":["PI.addI.u3"],"uses":["PI.addSat.y","PI.gainTrack.k"],"equation":["PI.gainTrack.k * PI.addSat.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainTrack"],"instance":"PIgainTrack","operations":[{"op":"info","display":"solved","data":["PI.addI.u3 = PI.gainTrack.k * PI.addSat.y"]},{"op":"info","display":"solved","data":["PI.addI.u3 = PI.gainTrack.k * PI.addSat.y"]},{"op":"chain","display":"substitution","data":["PI.gainTrack.k * PI.gainTrack.u","PI.gainTrack.k * PI.addSat.y"]},{"op":"chain","display":"substitution","data":["PI.gainTrack.y","PI.addI.u3"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainTrack.y = PI.gainTrack.k * PI.gainTrack.u;"]}]}},
{"eqIndex":215,"section":"regular","tag":"assign","defines":["PI.I.u"],"uses":["PI.addI.u3","PI.addI.k3","inertia1.w","PI.addI.k2","integrator.y","PI.addI.k1"],"equation":["PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3$PI$addI"],"instance":"PIaddI","operations":[{"op":"info","display":"solved","data":["PI.I.u = PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"]},{"op":"info","display":"solved","data":["PI.I.u = PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * PI.u_m + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.y","PI.I.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addI.y = PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3;"]}]}},
{"eqIndex":216,"section":"regular","tag":"assign","defines":["der(PI.I.y)"],"uses":["PI.I.u","PI.I.k"],"equation":["PI.I.k * PI.I.u"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["der(PI.I.y) = PI.I.k * PI.I.u"]},{"op":"info","display":"solved","data":["der(PI.I.y) = PI.I.k * PI.I.u"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(PI.I.y)","der(PI.I.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(PI.I.y) = PI.I.k * PI.I.u;"]}]}},
{"eqIndex":217,"section":"regular","tag":"assign","defines":["PI.controlError"],"uses":["inertia1.w","integrator.y"],"equation":["integrator.y - inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":887,"lineEnd":888,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"],"operations":[{"op":"info","display":"solved","data":["PI.controlError = integrator.y - inertia1.w"]},{"op":"info","display":"solved","data":["PI.controlError = integrator.y - inertia1.w"]},{"op":"chain","display":"substitution","data":["PI.u_s - PI.u_m","integrator.y - inertia1.w","integrator.y - PI.u_m"]}]}},
{"eqIndex":218,"section":"regular","tag":"assign","defines":["loadTorque.phi"],"uses":["spring.phi_rel","inertia1.phi"],"equation":["inertia1.phi + spring.phi_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["loadTorque.phi = inertia1.phi + spring.phi_rel"]},{"op":"info","display":"solved","data":["loadTorque.phi = inertia1.phi + spring.phi_rel"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}},
{"eqIndex":219,"section":"regular","tag":"algorithm","equation":["assert(PI.limiter.uMax >= PI.limiter.uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(PI.limiter.uMax, 6, 0, true) + \") < uMin (=\" + String(PI.limiter.uMin, 6, 0, true) + \")\");"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":22,"lineEnd":23,"colStart":9,"colEnd":65},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"scode","data":["assert(uMax >= uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(uMax) + \") < uMin (=\" + String(uMin) + \")\");"]}]}},
{"eqIndex":220,"section":"start","tag":"assign","defines":["$START.integrator.y"],"uses":["integrator.y_start"],"equation":["integrator.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":221,"section":"start","tag":"assign","defines":["$START.PI.I.y"],"uses":["PI.I.y_start"],"equation":["PI.I.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":222,"section":"nominal","tag":"assign","defines":["spring.phi_rel"],"uses":["spring.phi_nominal"],"equation":["if spring.phi_nominal >= 1e-15 then spring.phi_nominal else 1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":223,"tag":"alias","equation":[134],"section":"parameter"},
{"eqIndex":224,"tag":"alias","equation":[133],"section":"parameter"},
{"eqIndex":225,"tag":"alias","equation":[131],"section":"parameter"},
{"eqIndex":226,"tag":"alias","equation":[130],"section":"parameter"},
{"eqIndex":227,"tag":"alias","equation":[128],"section":"parameter"},
{"eqIndex":228,"tag":"alias","equation":[127],"section":"parameter"},
{"eqIndex":229,"tag":"alias","equation":[126],"section":"parameter"},
{"eqIndex":230,"tag":"alias","equation":[125],"section":"parameter"},
{"eqIndex":231,"tag":"alias","equation":[123],"section":"parameter"},
{"eqIndex":232,"tag":"alias","equation":[122],"section":"parameter"},
{"eqIndex":233,"tag":"alias","equation":[121],"section":"parameter"},
{"eqIndex":234,"tag":"alias","equation":[118],"section":"parameter"},
{"eqIndex":235,"tag":"alias","equation":[116],"section":"parameter"},
{"eqIndex":236,"tag":"alias","equation":[114],"section":"parameter"},
{"eqIndex":237,"tag":"alias","equation":[113],"section":"parameter"},
{"eqIndex":238,"tag":"alias","equation":[111],"section":"parameter"},
{"eqIndex":239,"tag":"alias","equation":[110],"section":"parameter"},
{"eqIndex":240,"tag":"alias","equation":[105],"section":"parameter"},
{"eqIndex":241,"tag":"alias","equation":[104],"section":"parameter"},
{"eqIndex":242,"tag":"alias","equation":[102],"section":"parameter"},
{"eqIndex":243,"tag":"alias","equation":[101],"section":"parameter"},
{"eqIndex":244,"tag":"alias","equation":[97],"section":"parameter"},
{"eqIndex":245,"tag":"alias","equation":[90],"section":"parameter"},
{"eqIndex":246,"tag":"alias","equation":[89],"section":"parameter"},
{"eqIndex":247,"tag":"alias","equation":[88],"section":"parameter"},
{"eqIndex":248,"tag":"alias","equation":[87],"section":"parameter"},
{"eqIndex":249,"tag":"alias","equation":[85],"section":"parameter"},
{"eqIndex":250,"tag":"alias","equation":[83],"section":"parameter"},
{"eqIndex":251,"tag":"alias","equation":[81],"section":"parameter"},
{"eqIndex":252,"tag":"alias","equation":[80],"section":"parameter"},
{"eqIndex":253,"tag":"alias","equation":[79],"section":"parameter"},
{"eqIndex":254,"tag":"alias","equation":[78],"section":"parameter"},
{"eqIndex":255,"tag":"alias","equation":[77],"section":"parameter"},
{"eqIndex":256,"tag":"alias","equation":[75],"section":"parameter"},
{"eqIndex":257,"tag":"alias","equation":[74],"section":"parameter"},
{"eqIndex":258,"tag":"alias","equation":[73],"section":"parameter"},
{"eqIndex":259,"tag":"alias","equation":[69],"section":"parameter"},
{"eqIndex":260,"tag":"alias","equation":[65],"section":"parameter"},
{"eqIndex":261,"tag":"alias","equation":[64],"section":"parameter"},
{"eqIndex":262,"tag":"alias","equation":[63],"section":"parameter"},
{"eqIndex":263,"tag":"alias","equation":[62],"section":"parameter"},
{"eqIndex":264,"tag":"alias","equation":[59],"section":"parameter"},
{"eqIndex":265,"tag":"alias","equation":[58],"section":"parameter"},
{"eqIndex":266,"tag":"alias","equation":[54],"section":"parameter"},
{"eqIndex":267,"tag":"alias","equation":[19],"section":"parameter"},
{"eqIndex":268,"tag":"alias","equation":[18],"section":"parameter"},
{"eqIndex":269,"tag":"alias","equation":[8],"section":"parameter"},
{"eqIndex":270,"tag":"alias","equation":[6],"section":"parameter"},
{"eqIndex":271,"tag":"alias","equation":[7],"section":"parameter"},
{"eqIndex":272,"tag":"alias","equation":[9],"section":"parameter"},
{"eqIndex":273,"tag":"alias","equation":[10],"section":"parameter"},
{"eqIndex":274,"tag":"alias","equation":[11],"section":"parameter"},
{"eqIndex":275,"tag":"alias","equation":[5],"section":"parameter"},
{"eqIndex":276,"tag":"alias","equation":[4],"section":"parameter"},
{"eqIndex":277,"tag":"alias","equation":[3],"section":"parameter"},
{"eqIndex":278,"tag":"alias","equation":[2],"section":"parameter"},
{"eqIndex":279,"tag":"alias","equation":[1],"section":"parameter"},
{"eqIndex":280,"section":"parameter","tag":"algorithm","equation":["assert(integrator.initType >= Modelica.Blocks.Types.Init.NoInit and integrator.initType <= Modelica.Blocks.Types.Init.InitialOutput, \"Variable violating min/max constraint: Modelica.Blocks.Types.Init.NoInit <= integrator.initType <= Modelica.Blocks.Types.Init.InitialOutput, has value: \" + String(integrator.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":281,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.qdd_max[1] >= 1e-60, \"Variable violating min constraint: 1e-60 <= kinematicPTP.qdd_max[1], has value: \" + String(kinematicPTP.qdd_max[1], \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":282,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.qd_max[1] >= 1e-60, \"Variable violating min constraint: 1e-60 <= kinematicPTP.qd_max[1], has value: \" + String(kinematicPTP.qd_max[1], \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":283,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.nout >= 1, \"Variable violating min constraint: 1 <= kinematicPTP.nout, has value: \" + String(kinematicPTP.nout, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":284,"section":"parameter","tag":"algorithm","equation":["assert(inertia2.stateSelect >= StateSelect.never and inertia2.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= inertia2.stateSelect <= StateSelect.always, has value: \" + String(inertia2.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
{"eqIndex":285,"section":"parameter","tag":"algorithm","equation":["assert(inertia2.J >= 0.0, \"Variable violating min constraint: 0.0 <= inertia2.J, has value: \" + String(inertia2.J, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
{"eqIndex":286,"section":"parameter","tag":"algorithm","equation":["assert(spring.d >= 0.0, \"Variable violating min constraint: 0.0 <= spring.d, has value: \" + String(spring.d, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":287,"section":"parameter","tag":"algorithm","equation":["assert(spring.c >= 0.0, \"Variable violating min constraint: 0.0 <= spring.c, has value: \" + String(spring.c, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":288,"section":"parameter","tag":"algorithm","equation":["assert(spring.stateSelect >= StateSelect.never and spring.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= spring.stateSelect <= StateSelect.always, has value: \" + String(spring.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":289,"section":"parameter","tag":"algorithm","equation":["assert(spring.phi_nominal >= 0.0, \"Variable violating min constraint: 0.0 <= spring.phi_nominal, has value: \" + String(spring.phi_nominal, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":290,"section":"parameter","tag":"algorithm","equation":["assert(inertia1.stateSelect >= StateSelect.never and inertia1.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= inertia1.stateSelect <= StateSelect.always, has value: \" + String(inertia1.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
{"eqIndex":291,"section":"parameter","tag":"algorithm","equation":["assert(inertia1.J >= 0.0, \"Variable violating min constraint: 0.0 <= inertia1.J, has value: \" + String(inertia1.J, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
{"eqIndex":292,"section":"parameter","tag":"algorithm","equation":["assert(PI.k >= 0.0, \"Variable violating min constraint: 0.0 <= PI.k, has value: \" + String(PI.k, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":293,"section":"parameter","tag":"algorithm","equation":["assert(PI.Ni >= 1e-13, \"Variable violating min constraint: 1e-13 <= PI.Ni, has value: \" + String(PI.Ni, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":294,"section":"parameter","tag":"algorithm","equation":["assert(PI.I.initType >= Modelica.Blocks.Types.Init.NoInit and PI.I.initType <= Modelica.Blocks.Types.Init.InitialOutput, \"Variable violating min/max constraint: Modelica.Blocks.Types.Init.NoInit <= PI.I.initType <= Modelica.Blocks.Types.Init.InitialOutput, has value: \" + String(PI.I.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":295,"section":"parameter","tag":"algorithm","equation":["assert(PI.Ti >= 1e-60, \"Variable violating min constraint: 1e-60 <= PI.Ti, has value: \" + String(PI.Ti, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":296,"section":"parameter","tag":"algorithm","equation":["assert(PI.limiter.homotopyType >= Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy and PI.limiter.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, \"Variable violating min/max constraint: Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy <= PI.limiter.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, has value: \" + String(PI.limiter.homotopyType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":297,"section":"parameter","tag":"algorithm","equation":["assert(PI.wp >= 0.0, \"Variable violating min constraint: 0.0 <= PI.wp, has value: \" + String(PI.wp, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":298,"section":"parameter","tag":"algorithm","equation":["assert(PI.homotopyType >= Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy and PI.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, \"Variable violating min/max constraint: Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy <= PI.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, has value: \" + String(PI.homotopyType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":299,"section":"parameter","tag":"algorithm","equation":["assert(PI.initType >= Modelica.Blocks.Types.InitPID.NoInit and PI.initType <= Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState, \"Variable violating min/max constraint: Modelica.Blocks.Types.InitPID.NoInit <= PI.initType <= Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState, has value: \" + String(PI.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":300,"section":"parameter","tag":"algorithm","equation":["assert(PI.Nd >= 1e-13, \"Variable violating min constraint: 1e-13 <= PI.Nd, has value: \" + String(PI.Nd, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":301,"section":"parameter","tag":"algorithm","equation":["assert(PI.wd >= 0.0, \"Variable violating min constraint: 0.0 <= PI.wd, has value: \" + String(PI.wd, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":302,"section":"parameter","tag":"algorithm","equation":["assert(PI.Td >= 0.0, \"Variable violating min constraint: 0.0 <= PI.Td, has value: \" + String(PI.Td, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":303,"section":"parameter","tag":"algorithm","equation":["assert(PI.controllerType >= Modelica.Blocks.Types.SimpleController.P and PI.controllerType <= Modelica.Blocks.Types.SimpleController.PID, \"Variable violating min/max constraint: Modelica.Blocks.Types.SimpleController.P <= PI.controllerType <= Modelica.Blocks.Types.SimpleController.PID, has value: \" + String(PI.controllerType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":889,"lineEnd":890,"colStart":5,"colEnd":76},"within":["Modelica.Blocks.Types.SimpleController"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}
],
"functions":[
]
}

[4] 09:46:00 Scripting Error
Parsing json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json

[5] 09:46:00 Scripting Error
Failed to parse json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json

[6] 09:46:00 Scripting Error
Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json. syntax error, unexpected invalid

[7] 09:46:00 Scripting Notification
Number is out of range:  1 
json_parser - syntax error found,  forcing abort, Line 1 Column 1 



I then right clicked on the "not-opened" results file and clicked resimulate and it opened. Here's what then showed up in the messages:

[8] 09:49:37 Scripting Error
Opening json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json

[9] 09:49:37 Scripting Error
Reading json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json

[10] 09:49:37 Scripting Error
Json file contents are {"format":"Transformational debugger info","version":1,
"info":{"name":"Modelica.Blocks.Examples.PID_Controller","description":"Demonstrates the usage of a Continuous.LimPID controller"},
"variables":{
"PI.I.y":{"comment":"Connector of Real output signal","kind":"state","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"inertia2.w":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
"integrator.y":{"comment":"Connector of Real output signal","kind":"state","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"spring.phi_rel":{"comment":"Relative rotation angle (= flange_b.phi - flange_a.phi)","kind":"state","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.w_rel":{"comment":"Relative angular velocity (= der(phi_rel))","kind":"state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7289,"lineEnd":7290,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"der(PI.I.y)":{"comment":"der(Connector of Real output signal)","kind":"derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"der(inertia2.w)":{"comment":"der(Absolute angular velocity of component (= der(phi)))","kind":"derivative","type":"Real","unit":"s-2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
"der(integrator.y)":{"comment":"der(Connector of Real output signal)","kind":"derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"der(spring.phi_rel)":{"comment":"der(Relative rotation angle (= flange_b.phi - flange_a.phi))","kind":"derivative","type":"Real","unit":"Hz","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"der(spring.w_rel)":{"comment":"der(Relative angular velocity (= der(phi_rel)))","kind":"derivative","type":"Real","unit":"s-2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7289,"lineEnd":7290,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"der(inertia1.w)":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"dummy derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"operations":[{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia1.w)","der(inertia1.w)"]},{"op":"before-after","display":"flattening","data":["a = der(w);","inertia1.a = der(inertia1.w);"]}]}},
"PI.I.local_set":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","PI.I.local_set = 0.0;"]}]}},
"PI.I.u":{"comment":"Connector of Real input signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":327,"lineEnd":328,"colStart":5,"colEnd":58},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"PI.P.u":{"comment":"Input signal connector","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":546,"lineEnd":547,"colStart":5,"colEnd":58},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}},
"PI.P.y":{"comment":"Output signal connector","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":548,"lineEnd":549,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}},
"PI.addFF.u1":{"comment":"Connector of Real input signal 1","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":342,"lineEnd":343,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
"PI.addFF.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":346,"lineEnd":347,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
"PI.addI.u3":{"comment":"Connector of Real input signal 3","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":975,"lineEnd":976,"colStart":5,"colEnd":68},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
"PI.addPID.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":977,"lineEnd":978,"colStart":5,"colEnd":64},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
"PI.addSat.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":346,"lineEnd":347,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}},
"PI.controlError":{"comment":"Control error (set point - measurement)","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":887,"lineEnd":888,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.y":{"comment":"Connector of actuator output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":501,"lineEnd":502,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"inertia1.a":{"comment":"Absolute angular acceleration of component (= der(w))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2481,"lineEnd":2483,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
"inertia1.w":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"dummy state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
"inertia2.a":{"comment":"Absolute angular acceleration of component (= der(w))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2481,"lineEnd":2483,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
"integrator.local_set":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","integrator.local_set = 0.0;"]}]}},
"kinematicPTP.Ta1":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1474,"lineEnd":1474,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"before-after","display":"flattening","data":["Ta1 = sqrt(1 / sdd_max);","kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max);"]}]}},
"kinematicPTP.Ta2":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1475,"lineEnd":1475,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"before-after","display":"flattening","data":["Ta2 = sd_max / sdd_max;","kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max;"]}]}},
"kinematicPTP.Te":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1477,"lineEnd":1477,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]},{"op":"before-after","display":"flattening","data":["Te = if noWphase then Ta1 + Ta1 else Tv + Ta2;","kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2;"]}]}},
"kinematicPTP.Tv":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1476,"lineEnd":1476,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]},{"op":"before-after","display":"flattening","data":["Tv = if noWphase then Ta1 else 1 / sd_max;","kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max;"]}]}},
"kinematicPTP.aux1[1]":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1472,"lineEnd":1472,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux1[i] = p_deltaq[i] / p_qd_max[i];","kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1];"]}]}},
"kinematicPTP.aux2[1]":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1473,"lineEnd":1473,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux2[i] = p_deltaq[i] / p_qdd_max[i];","kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1];"]}]}},
"kinematicPTP.sd_max":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1469,"lineEnd":1469,"colStart":5,"colEnd":16},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"before-after","display":"flattening","data":["sd_max = 1 / max(abs(aux1));","kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1]);"]}]}},
"kinematicPTP.sdd":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1471,"lineEnd":1471,"colStart":5,"colEnd":13},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.sdd_max":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1470,"lineEnd":1470,"colStart":5,"colEnd":17},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"before-after","display":"flattening","data":["sdd_max = 1 / max(abs(aux2));","kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1]);"]}]}},
"kinematicPTP.y[1]":{"comment":"Connector of Real output signals","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":314,"lineEnd":315,"colStart":5,"colEnd":56},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"loadTorque.phi":{"comment":"Angle of flange with respect to support (= flange.phi - support.phi)","kind":"dummy state","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7683,"lineEnd":7684,"colStart":7,"colEnd":79},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}},
"loadTorque.phi_support":{"comment":"Absolute angle of support flange","kind":"variable","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","loadTorque.phi_support = 0.0;"]}]}},
"speedSensor.flange.tau":{"comment":"Cut torque in the flange","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"speedSensorflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sensors.SpeedSensor","Modelica.Mechanics.Rotational.Interfaces.Flange_a"],"operations":[{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"before-after","display":"flattening","data":["0 = flange.tau;","0.0 = speedSensor.flange.tau;"]}]}},
"spring.a_rel":{"comment":"Relative angular acceleration (= der(w_rel))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7291,"lineEnd":7292,"colStart":7,"colEnd":55},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.lossPower":{"comment":"Loss power leaving component via heatPort (> 0, if heat is flowing out of component)","kind":"variable","type":"Real","unit":"W","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3144,"lineEnd":3145,"colStart":7,"colEnd":95},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.tau":{"comment":"Torque between flanges (= flange_b.tau)","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7293,"lineEnd":7293,"colStart":7,"colEnd":76},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.tau_c":{"comment":"Spring torque","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2704,"lineEnd":2704,"colStart":7,"colEnd":52},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.tau_d":{"comment":"Damping torque","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2705,"lineEnd":2705,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"torque.phi_support":{"comment":"Absolute angle of support flange","kind":"variable","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"],"operations":[{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","torque.phi_support = 0.0;"]}]}},
"PI.I.local_reset":{"comment":"","kind":"discrete","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","PI.I.local_reset = false;"]}]}},
"kinematicPTP.noWphase":{"comment":"","kind":"discrete","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1478,"lineEnd":1478,"colStart":5,"colEnd":21},"within":["Boolean"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]},{"op":"before-after","display":"flattening","data":["noWphase = Ta2 >= Ta1;","kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1;"]}]}},
"PI.Dzero.k":{"comment":"Constant output value","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"]}},
"PI.FFzero.k":{"comment":"Constant output value","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"]}},
"PI.FFzero.y":{"comment":"Connector of Real output signal","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"],"operations":[{"op":"info","display":"solved","data":["PI.FFzero.y = PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.FFzero.y = PI.FFzero.k;"]}]}},
"PI.I.k":{"comment":"Integrator gain","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"PI.I.y_start":{"comment":"Initial or guess value of output (= state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"PI.Nd":{"comment":"The higher Nd, the more ideal the derivative block","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.Ni":{"comment":"Ni*Ti is time constant of anti-windup compensation","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.P.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}},
"PI.Td":{"comment":"Time constant of Derivative block","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.Ti":{"comment":"Time constant of Integrator block","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.addFF.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
"PI.addFF.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
"PI.addFF.u2":{"comment":"Connector of Real input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":344,"lineEnd":345,"colStart":5,"colEnd":59},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"],"operations":[{"op":"info","display":"solved","data":["PI.addFF.u2 = PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.u2","PI.FFzero.y"]}]}},
"PI.addI.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
"PI.addI.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
"PI.addI.k3":{"comment":"Gain of input signal 3","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
"PI.addP.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}},
"PI.addP.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}},
"PI.addPID.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
"PI.addPID.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
"PI.addPID.k3":{"comment":"Gain of input signal 3","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
"PI.addPID.u2":{"comment":"Connector of Real input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":973,"lineEnd":974,"colStart":5,"colEnd":66},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"],"operations":[{"op":"info","display":"solved","data":["PI.addPID.u2 = PI.Dzero.k"]},{"op":"chain","display":"substitution","data":["PI.addPID.u2","PI.Dzero.y"]}]}},
"PI.addSat.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}},
"PI.addSat.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}},
"PI.gainPID.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainPID"]}},
"PI.gainTrack.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainTrack","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainTrack"]}},
"PI.k":{"comment":"Gain of controller","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.kFF":{"comment":"Gain of feed-forward input","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":917,"lineEnd":918,"colStart":5,"colEnd":49},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.limiter.uMax":{"comment":"Upper limits of input signals","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":8,"lineEnd":8,"colStart":9,"colEnd":69},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
"PI.limiter.uMin":{"comment":"Lower limits of input signals","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":9,"lineEnd":9,"colStart":9,"colEnd":67},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
"PI.wd":{"comment":"Set-point weight for Derivative block (0..1)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.wp":{"comment":"Set-point weight for Proportional block (0..1)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.xd_start":{"comment":"Initial or guess value for state of derivative block","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":927,"lineEnd":931,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.xi_start":{"comment":"Initial or guess value for integrator output (= integrator state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":922,"lineEnd":926,"colStart":5,"colEnd":87},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.yMax":{"comment":"Upper limit of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":900,"lineEnd":900,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.yMin":{"comment":"Lower limit of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":901,"lineEnd":901,"colStart":5,"colEnd":54},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.y_start":{"comment":"Initial value of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":932,"lineEnd":934,"colStart":5,"colEnd":31},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"driveAngle":{"comment":"Reference distance to move","kind":"parameter","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":17,"lineEnd":18,"colStart":5,"colEnd":35},"within":["Real"],"typeLst":["Modelica.Blocks.Examples.PID_Controller"]}},
"inertia1.J":{"comment":"Moment of inertia","kind":"parameter","type":"Real","unit":"kg.m2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
"inertia2.J":{"comment":"Moment of inertia","kind":"parameter","type":"Real","unit":"kg.m2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
"inertia2.flange_b.tau":{"comment":"Cut torque in the flange","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"inertia2flange_b","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["inertia2.flange_b.tau = loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["inertia2.flange_b.tau","-loadTorque.flange.tau"]}]}},
"integrator.k":{"comment":"Integrator gain","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"integrator.y_start":{"comment":"Initial or guess value of output (= state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"kinematicPTP.deltaq[1]":{"comment":"Distance to move","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1452,"lineEnd":1453,"colStart":5,"colEnd":106},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.p_deltaq[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1463,"lineEnd":1464,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.p_qd_max[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1465,"lineEnd":1466,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.p_qdd_max[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1467,"lineEnd":1468,"colStart":5,"colEnd":33},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.qd_max[1]":{"comment":"Maximum velocities der(q)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.qdd_max[1]":{"comment":"Maximum accelerations der(qd)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"kinematicPTP.startTime":{"comment":"Time instant at which movement starts","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1458,"lineEnd":1458,"colStart":5,"colEnd":79},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"loadTorque.flange.tau":{"comment":"Cut torque in the flange","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"loadTorqueflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["loadTorque.flange.tau = -loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["loadTorque.flange.tau","loadTorque.tau"]},{"op":"before-after","display":"flattening","data":["tau = -flange.tau;","loadTorque.tau = -loadTorque.flange.tau;"]}]}},
"loadTorque.tau":{"comment":"Accelerating torque acting at flange (= -flange.tau)","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6685,"lineEnd":6686,"colStart":7,"colEnd":63},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.tau = loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["tau = tau_constant;","loadTorque.tau = loadTorque.tau_constant;"]}]}},
"loadTorque.tau_constant":{"comment":"Constant torque (if negative, torque is acting as load in positive direction of rotation)","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6681,"lineEnd":6682,"colStart":7,"colEnd":100},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}},
"spring.c":{"comment":"Spring constant","kind":"parameter","type":"Real","unit":"N.m/rad","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.d":{"comment":"Damping constant","kind":"parameter","type":"Real","unit":"N.m.s/rad","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.phi_nominal":{"comment":"Nominal value of phi_rel (used for scaling)","kind":"parameter","type":"Real","unit":"rad","displayUnit":"rad","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"spring.phi_rel0":{"comment":"Unstretched spring angle","kind":"parameter","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2698,"lineEnd":2698,"colStart":7,"colEnd":63},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"PI.I.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3,4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"PI.homotopyType":{"comment":"Simplified model for homotopy-based initialization","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3: initial state, 4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.limiter.homotopyType":{"comment":"Simplified model for homotopy-based initialization","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
"inertia1.stateSelect":{"comment":"Priority to use phi and w as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
"inertia2.stateSelect":{"comment":"Priority to use phi and w as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
"integrator.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3,4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"kinematicPTP.nout":{"comment":"Number of outputs","kind":"parameter","type":"Integer","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
"spring.stateSelect":{"comment":"Priority to use phi_rel and w_rel as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"PI.I.use_reset":{"comment":"=true, if reset port enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
"PI.limiter.limitsAtInit":{"comment":"Has no longer an effect and is only kept for backwards compatibility (the implementation uses now the homotopy operator)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":14,"lineEnd":16,"colStart":9,"colEnd":81},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
"PI.limiter.strict":{"comment":"= true, if strict limits with noEvent(..)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":10,"lineEnd":11,"colStart":9,"colEnd":85},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
"PI.limitsAtInit":{"comment":"Has no longer an effect and is only kept for backwards compatibility (the implementation uses now the homotopy operator)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":940,"lineEnd":942,"colStart":5,"colEnd":77},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.strict":{"comment":"= true, if strict limits with noEvent(..)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":938,"lineEnd":939,"colStart":5,"colEnd":81},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.withFeedForward":{"comment":"Use feed-forward input?","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":915,"lineEnd":916,"colStart":5,"colEnd":56},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.with_D":{"comment":"","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":995,"lineEnd":996,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"PI.with_I":{"comment":"","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":993,"lineEnd":994,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
"integrator.use_reset":{"comment":"=true, if reset port enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"integrator.use_set":{"comment":"=true, if set port enabled and used as reinitialization value when reset","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
"loadTorque.useSupport":{"comment":"= true, if support flange enabled, otherwise implicitly grounded","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}},
"spring.useHeatPort":{"comment":"=true, if heatPort is enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3137,"lineEnd":3138,"colStart":7,"colEnd":75},"within":["Boolean"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
"torque.useSupport":{"comment":"= true, if support flange enabled, otherwise implicitly grounded","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"]}},
"PI.unitTime":{"comment":"","kind":"constant","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":943,"lineEnd":943,"colStart":5,"colEnd":75},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}
},
"equations":[{"eqIndex":0,"tag":"dummy"},
{"eqIndex":1,"section":"initial","tag":"assign","defines":["PI.I.local_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","PI.I.local_reset = false;"]}]}},
{"eqIndex":2,"section":"initial","tag":"assign","defines":["PI.I.local_set"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","PI.I.local_set = 0.0;"]}]}},
{"eqIndex":3,"section":"initial","tag":"assign","defines":["torque.phi_support"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"],"operations":[{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","torque.phi_support = 0.0;"]}]}},
{"eqIndex":4,"section":"initial","tag":"assign","defines":["integrator.local_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","integrator.local_reset = false;"]}]}},
{"eqIndex":5,"section":"initial","tag":"assign","defines":["integrator.local_set"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","integrator.local_set = 0.0;"]}]}},
{"eqIndex":6,"section":"initial","tag":"assign","defines":["kinematicPTP.aux1[1]"],"uses":["kinematicPTP.p_qd_max[1]","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1472,"lineEnd":1472,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux1[i] = p_deltaq[i] / p_qd_max[i];","kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1];"]}]}},
{"eqIndex":7,"section":"initial","tag":"assign","defines":["kinematicPTP.sd_max"],"uses":["kinematicPTP.aux1[1]"],"equation":["1.0 / abs(kinematicPTP.aux1[1])"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1469,"lineEnd":1469,"colStart":5,"colEnd":16},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"before-after","display":"flattening","data":["sd_max = 1 / max(abs(aux1));","kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1]);"]}]}},
{"eqIndex":8,"section":"initial","tag":"assign","defines":["kinematicPTP.aux2[1]"],"uses":["kinematicPTP.p_qdd_max[1]","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1473,"lineEnd":1473,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux2[i] = p_deltaq[i] / p_qdd_max[i];","kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1];"]}]}},
{"eqIndex":9,"section":"initial","tag":"assign","defines":["kinematicPTP.sdd_max"],"uses":["kinematicPTP.aux2[1]"],"equation":["1.0 / abs(kinematicPTP.aux2[1])"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1470,"lineEnd":1470,"colStart":5,"colEnd":17},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"before-after","display":"flattening","data":["sdd_max = 1 / max(abs(aux2));","kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1]);"]}]}},
{"eqIndex":10,"section":"initial","tag":"assign","defines":["kinematicPTP.Ta2"],"uses":["kinematicPTP.sdd_max","kinematicPTP.sd_max"],"equation":["kinematicPTP.sd_max / kinematicPTP.sdd_max"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1475,"lineEnd":1475,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"before-after","display":"flattening","data":["Ta2 = sd_max / sdd_max;","kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max;"]}]}},
{"eqIndex":11,"section":"initial","tag":"assign","defines":["kinematicPTP.Ta1"],"uses":["kinematicPTP.sdd_max"],"equation":["sqrt(1.0 / kinematicPTP.sdd_max)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1474,"lineEnd":1474,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"before-after","display":"flattening","data":["Ta1 = sqrt(1 / sdd_max);","kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max);"]}]}},
{"eqIndex":12,"tag":"alias","equation":[187],"section":"initial"},
{"eqIndex":13,"tag":"alias","equation":[188],"section":"initial"},
{"eqIndex":14,"tag":"alias","equation":[189],"section":"initial"},
{"eqIndex":15,"tag":"alias","equation":[198],"section":"initial"},
{"eqIndex":16,"tag":"alias","equation":[199],"section":"initial"},
{"eqIndex":17,"tag":"alias","equation":[200],"section":"initial"},
{"eqIndex":18,"section":"initial","tag":"assign","defines":["speedSensor.flange.tau"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"speedSensorflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sensors.SpeedSensor","Modelica.Mechanics.Rotational.Interfaces.Flange_a"],"operations":[{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"before-after","display":"flattening","data":["0 = flange.tau;","0.0 = speedSensor.flange.tau;"]}]}},
{"eqIndex":19,"section":"initial","tag":"assign","defines":["loadTorque.phi_support"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","loadTorque.phi_support = 0.0;"]}]}},
{"eqIndex":20,"section":"initial","tag":"assign","defines":["inertia1.phi"],"uses":["$START.inertia1.phi"],"equation":["$START.inertia1.phi"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["inertia1.phi = $START.inertia1.phi"]},{"op":"info","display":"solved","data":["inertia1.phi = $START.inertia1.phi"]}]}},
{"eqIndex":21,"section":"initial","tag":"assign","defines":["inertia1.a"],"uses":["$START.inertia1.a"],"equation":["$START.inertia1.a"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["inertia1.a = $START.inertia1.a"]},{"op":"info","display":"solved","data":["inertia1.a = $START.inertia1.a"]}]}},
{"eqIndex":22,"tag":"alias","equation":[212],"section":"initial"},
{"eqIndex":23,"section":"initial","tag":"assign","defines":["spring.w_rel"],"uses":["$START.spring.w_rel"],"equation":["$START.spring.w_rel"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["spring.w_rel = $START.spring.w_rel"]},{"op":"info","display":"solved","data":["spring.w_rel = $START.spring.w_rel"]}]}},
{"eqIndex":24,"tag":"alias","equation":[197],"section":"initial"},
{"eqIndex":25,"tag":"alias","equation":[192],"section":"initial"},
{"eqIndex":26,"tag":"alias","equation":[193],"section":"initial"},
{"eqIndex":27,"section":"initial","tag":"assign","defines":["der(spring.w_rel)"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":59,"lineEnd":59,"colStart":5,"colEnd":26},"within":["Modelica.Blocks.Examples.PID_Controller"],"operations":[{"op":"info","display":"solved","data":["der(spring.w_rel) = 0.0"]},{"op":"info","display":"solved","data":["der(spring.w_rel) = 0.0"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["der(spring.w_rel) = 0;","#UNKNOWN_EQUATION#"]}]}},
{"eqIndex":28,"section":"initial","tag":"assign","defines":["spring.a_rel"],"uses":["der(spring.w_rel)"],"equation":["$DER.spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7310,"lineEnd":7310,"colStart":7,"colEnd":25},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.a_rel = $DER.spring.w_rel"]},{"op":"info","display":"solved","data":["spring.a_rel = $DER.spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["a_rel = der(w_rel);","spring.a_rel = der(spring.w_rel);"]}]}},
{"eqIndex":29,"section":"initial","tag":"assign","defines":["inertia2.a"],"uses":["spring.a_rel","inertia1.a"],"equation":["inertia1.a + spring.a_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia2.a = inertia1.a + spring.a_rel"]},{"op":"info","display":"solved","data":["inertia2.a = inertia1.a + spring.a_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["inertia2.w - inertia1.w","der(inertia2.w) - der(inertia1.w)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.w_rel","der(spring.w_rel)"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}},
{"eqIndex":30,"section":"initial","tag":"assign","defines":["spring.tau"],"uses":["inertia2.a","inertia2.J","loadTorque.tau_constant"],"equation":["loadTorque.tau_constant - inertia2.J * inertia2.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["spring.tau = loadTorque.tau_constant - inertia2.J * inertia2.a"]},{"op":"info","display":"solved","data":["spring.tau = loadTorque.tau_constant - inertia2.J * inertia2.a"]},{"op":"before-after","display":"simplify","data":["inertia2.J * inertia2.a = (-spring.tau) + loadTorque.tau_constant","inertia2.J * inertia2.a = loadTorque.tau_constant - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia2.flange_a.tau + inertia2.flange_b.tau","(-spring.tau) + loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia2.J * inertia2.a = inertia2.flange_a.tau + inertia2.flange_b.tau;"]}]}},
{"eqIndex":31,"section":"initial","tag":"assign","defines":["spring.tau_c"],"uses":["spring.tau_d","spring.tau"],"equation":["spring.tau - spring.tau_d"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2709,"lineEnd":2709,"colStart":7,"colEnd":26},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_c = spring.tau - spring.tau_d"]},{"op":"info","display":"solved","data":["spring.tau_c = spring.tau - spring.tau_d"]},{"op":"before-after","display":"flattening","data":["tau = tau_c + tau_d;","spring.tau = spring.tau_c + spring.tau_d;"]}]}},
{"eqIndex":32,"section":"initial","tag":"assign","defines":["spring.phi_rel"],"uses":["spring.phi_rel0","spring.c","spring.tau_c"],"equation":["spring.tau_c / spring.c + spring.phi_rel0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2707,"lineEnd":2707,"colStart":7,"colEnd":37},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.phi_rel = spring.tau_c / spring.c + spring.phi_rel0"]},{"op":"info","display":"solved","data":["spring.phi_rel = spring.tau_c / spring.c + spring.phi_rel0"]},{"op":"before-after","display":"flattening","data":["tau_c = c * (phi_rel - phi_rel0);","spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0);"]}]}},
{"eqIndex":33,"tag":"alias","equation":[218],"section":"initial"},
{"eqIndex":34,"section":"initial","tag":"assign","defines":["PI.y"],"uses":["spring.tau","inertia1.a","inertia1.J"],"equation":["inertia1.J * inertia1.a - spring.tau"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["PI.y = inertia1.J * inertia1.a - spring.tau"]},{"op":"info","display":"solved","data":["PI.y = inertia1.J * inertia1.a - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia1.flange_a.tau + inertia1.flange_b.tau","PI.y + spring.tau","PI.y + inertia1.flange_b.tau"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia1.J * inertia1.a = inertia1.flange_a.tau + inertia1.flange_b.tau;"]}]}},
{"eqIndex":35,"parent":36,"section":"initial","tag":"residual","uses":["PI.limiter.uMin","PI.limiter.uMax","PI.addFF.y","PI.y"],"equation":["PI.y - homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}},
{"eqIndex":36,"section":"initial","tag":"system","display":"non-linear","unknowns":1,"defines":["PI.addFF.y"],"equation":[[35],[]]},
{"eqIndex":37,"tag":"alias","equation":[213],"section":"initial"},
{"eqIndex":38,"tag":"alias","equation":[214],"section":"initial"},
{"eqIndex":39,"section":"initial","tag":"assign","defines":["PI.addFF.u1"],"uses":["PI.addFF.k1","PI.FFzero.k","PI.addFF.k2","PI.addFF.y"],"equation":["(PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addFF"],"instance":"PIaddFF","operations":[{"op":"info","display":"solved","data":["PI.addFF.u1 = (PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"]},{"op":"info","display":"solved","data":["PI.addFF.u1 = (PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"]},{"op":"chain","display":"substitution","data":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2","PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2;"]}]}},
{"eqIndex":40,"section":"initial","tag":"assign","defines":["PI.addPID.y"],"uses":["PI.gainPID.k","PI.addFF.u1"],"equation":["PI.addFF.u1 / PI.gainPID.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainPID"],"instance":"PIgainPID","operations":[{"op":"info","display":"solved","data":["PI.addPID.y = PI.addFF.u1 / PI.gainPID.k"]},{"op":"info","display":"solved","data":["PI.addPID.y = PI.addFF.u1 / PI.gainPID.k"]},{"op":"chain","display":"substitution","data":["PI.gainPID.k * PI.gainPID.u","PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.y","PI.addFF.u1"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainPID.y = PI.gainPID.k * PI.gainPID.u;"]}]}},
{"eqIndex":41,"tag":"alias","equation":[196],"section":"initial"},
{"eqIndex":42,"section":"initial","tag":"assign","defines":["integrator.y"],"uses":["integrator.y_start"],"equation":["integrator.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":44,"lineEnd":44,"colStart":7,"colEnd":18},"within":["Modelica.Blocks.Continuous.Integrator$integrator"],"instance":"integrator","operations":[{"op":"info","display":"solved","data":["integrator.y = integrator.y_start"]},{"op":"info","display":"solved","data":["integrator.y = integrator.y_start"]},{"op":"before-after","display":"flattening","data":["y = y_start;","#UNKNOWN_EQUATION#"]}]}},
{"eqIndex":43,"section":"initial","tag":"assign","defines":["der(PI.I.y)"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":41,"lineEnd":41,"colStart":8,"colEnd":18},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["der(PI.I.y) = 0.0"]},{"op":"info","display":"solved","data":["der(PI.I.y) = 0.0"]},{"op":"before-after","display":"flattening","data":["der(y) = 0;","#UNKNOWN_EQUATION#"]}]}},
{"eqIndex":44,"section":"initial","tag":"assign","defines":["PI.I.u"],"uses":["PI.I.k","der(PI.I.y)"],"equation":["$DER.PI.I.y / PI.I.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["PI.I.u = $DER.PI.I.y / PI.I.k"]},{"op":"info","display":"solved","data":["PI.I.u = $DER.PI.I.y / PI.I.k"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(PI.I.y)","der(PI.I.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(PI.I.y) = PI.I.k * PI.I.u;"]}]}},
{"eqIndex":45,"section":"initial","tag":"assign","defines":["inertia1.w"],"uses":["PI.addI.k2","PI.addI.u3","PI.addI.k3","integrator.y","PI.addI.k1","PI.I.u"],"equation":["(PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3$PI$addI"],"instance":"PIaddI","operations":[{"op":"info","display":"solved","data":["inertia1.w = (PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"]},{"op":"info","display":"solved","data":["inertia1.w = (PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"]},{"op":"chain","display":"substitution","data":["PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * PI.u_m + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.y","PI.I.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addI.y = PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3;"]}]}},
{"eqIndex":46,"section":"initial","tag":"assign","defines":["inertia2.w"],"uses":["spring.w_rel","inertia1.w"],"equation":["inertia1.w + spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia2.w = inertia1.w + spring.w_rel"]},{"op":"info","display":"solved","data":["inertia2.w = inertia1.w + spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}},
{"eqIndex":47,"tag":"alias","equation":[190],"section":"initial"},
{"eqIndex":48,"tag":"alias","equation":[202],"section":"initial"},
{"eqIndex":49,"tag":"alias","equation":[203],"section":"initial"},
{"eqIndex":50,"tag":"alias","equation":[204],"section":"initial"},
{"eqIndex":51,"section":"initial","tag":"assign","defines":["PI.I.y"],"uses":["PI.addPID.k3","PI.Dzero.k","PI.addPID.k2","PI.P.y","PI.addPID.k1","PI.addPID.y"],"equation":["(PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3"],"instance":"PIaddPID","operations":[{"op":"info","display":"solved","data":["PI.I.y = (PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"]},{"op":"info","display":"solved","data":["PI.I.y = (PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"]},{"op":"chain","display":"substitution","data":["PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3","PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addPID.y = PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3;"]}]}},
{"eqIndex":52,"tag":"alias","equation":[217],"section":"initial"},
{"eqIndex":53,"section":"initial","tag":"algorithm","equation":["assert(PI.limiter.uMax >= PI.limiter.uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(PI.limiter.uMax, 6, 0, true) + \") < uMin (=\" + String(PI.limiter.uMin, 6, 0, true) + \")\");"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":22,"lineEnd":23,"colStart":9,"colEnd":65},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"scode","data":["assert(uMax >= uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(uMax) + \") < uMin (=\" + String(uMin) + \")\");"]}]}},
{"eqIndex":54,"section":"initial-lambda0","tag":"assign","defines":["PI.controllerType"],"uses":[],"equation":["Modelica.Blocks.Types.SimpleController.PI"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":889,"lineEnd":890,"colStart":5,"colEnd":76},"within":["Modelica.Blocks.Types.SimpleController"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":55,"section":"initial-lambda0","tag":"assign","defines":["PI.Td"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":56,"section":"initial-lambda0","tag":"assign","defines":["PI.wd"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":57,"section":"initial-lambda0","tag":"assign","defines":["PI.Nd"],"uses":[],"equation":["10.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":58,"section":"initial-lambda0","tag":"assign","defines":["PI.withFeedForward"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":915,"lineEnd":916,"colStart":5,"colEnd":56},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":59,"section":"initial-lambda0","tag":"assign","defines":["PI.initType"],"uses":[],"equation":["Modelica.Blocks.Types.InitPID.SteadyState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":60,"section":"initial-lambda0","tag":"assign","defines":["PI.xd_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":927,"lineEnd":931,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":61,"section":"initial-lambda0","tag":"assign","defines":["PI.y_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":932,"lineEnd":934,"colStart":5,"colEnd":31},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":62,"section":"initial-lambda0","tag":"assign","defines":["PI.homotopyType"],"uses":[],"equation":["Modelica.Blocks.Types.LimiterHomotopy.Linear"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":63,"section":"initial-lambda0","tag":"assign","defines":["PI.strict"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":938,"lineEnd":939,"colStart":5,"colEnd":81},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":64,"section":"initial-lambda0","tag":"assign","defines":["PI.limitsAtInit"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":940,"lineEnd":942,"colStart":5,"colEnd":77},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":65,"section":"initial-lambda0","tag":"assign","defines":["PI.addP.k1"],"uses":["PI.wp"],"equation":["PI.wp"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}},
{"eqIndex":66,"section":"initial-lambda0","tag":"assign","defines":["PI.wp"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":67,"section":"initial-lambda0","tag":"assign","defines":["PI.addP.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}},
{"eqIndex":68,"section":"initial-lambda0","tag":"assign","defines":["PI.P.k"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}},
{"eqIndex":69,"section":"initial-lambda0","tag":"assign","defines":["PI.gainPID.k"],"uses":["PI.k"],"equation":["PI.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainPID"]}},
{"eqIndex":70,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
{"eqIndex":71,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k2"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
{"eqIndex":72,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k3"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}},
{"eqIndex":73,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.uMax"],"uses":["PI.yMax"],"equation":["PI.yMax"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":8,"lineEnd":8,"colStart":9,"colEnd":69},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":74,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.uMin"],"uses":["PI.yMin"],"equation":["PI.yMin"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":9,"lineEnd":9,"colStart":9,"colEnd":67},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":75,"section":"initial-lambda0","tag":"assign","defines":["PI.yMin"],"uses":["PI.yMax"],"equation":["-PI.yMax"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":901,"lineEnd":901,"colStart":5,"colEnd":54},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":76,"section":"initial-lambda0","tag":"assign","defines":["PI.yMax"],"uses":[],"equation":["12.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":900,"lineEnd":900,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":77,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.strict"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":10,"lineEnd":11,"colStart":9,"colEnd":85},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":78,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.homotopyType"],"uses":[],"equation":["Modelica.Blocks.Types.LimiterHomotopy.Linear"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":79,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.limitsAtInit"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":14,"lineEnd":16,"colStart":9,"colEnd":81},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":80,"section":"initial-lambda0","tag":"assign","defines":["PI.with_I"],"uses":[],"equation":["true"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":993,"lineEnd":994,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":81,"section":"initial-lambda0","tag":"assign","defines":["PI.with_D"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":995,"lineEnd":996,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":82,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
{"eqIndex":83,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.k2"],"uses":["PI.kFF"],"equation":["PI.kFF"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}},
{"eqIndex":84,"section":"initial-lambda0","tag":"assign","defines":["PI.kFF"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":917,"lineEnd":918,"colStart":5,"colEnd":49},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":85,"section":"initial-lambda0","tag":"assign","defines":["PI.I.k"],"uses":["PI.Ti"],"equation":["1.0 / PI.Ti"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":86,"section":"initial-lambda0","tag":"assign","defines":["PI.Ti"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":87,"section":"initial-lambda0","tag":"assign","defines":["PI.I.use_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":88,"section":"initial-lambda0","tag":"assign","defines":["PI.I.use_set"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":89,"section":"initial-lambda0","tag":"assign","defines":["PI.I.initType"],"uses":[],"equation":["Modelica.Blocks.Types.Init.SteadyState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":90,"section":"initial-lambda0","tag":"assign","defines":["PI.I.y_start"],"uses":["PI.xi_start"],"equation":["PI.xi_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":91,"section":"initial-lambda0","tag":"assign","defines":["PI.xi_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":922,"lineEnd":926,"colStart":5,"colEnd":87},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":92,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
{"eqIndex":93,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
{"eqIndex":94,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k3"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}},
{"eqIndex":95,"section":"initial-lambda0","tag":"assign","defines":["PI.addSat.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}},
{"eqIndex":96,"section":"initial-lambda0","tag":"assign","defines":["PI.addSat.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}},
{"eqIndex":97,"section":"initial-lambda0","tag":"assign","defines":["PI.gainTrack.k"],"uses":["PI.k","PI.Ni"],"equation":["1.0 / (PI.Ni * PI.k)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainTrack","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainTrack"]}},
{"eqIndex":98,"section":"initial-lambda0","tag":"assign","defines":["PI.Ni"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":99,"section":"initial-lambda0","tag":"assign","defines":["PI.k"],"uses":[],"equation":["100.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":100,"section":"initial-lambda0","tag":"assign","defines":["inertia1.J"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
{"eqIndex":101,"section":"initial-lambda0","tag":"assign","defines":["inertia1.stateSelect"],"uses":[],"equation":["StateSelect.default"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
{"eqIndex":102,"section":"initial-lambda0","tag":"assign","defines":["torque.useSupport"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"]}},
{"eqIndex":103,"section":"initial-lambda0","tag":"assign","defines":["spring.phi_nominal"],"uses":[],"equation":["0.0001"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":104,"section":"initial-lambda0","tag":"assign","defines":["spring.stateSelect"],"uses":[],"equation":["StateSelect.prefer"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":105,"section":"initial-lambda0","tag":"assign","defines":["spring.useHeatPort"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3137,"lineEnd":3138,"colStart":7,"colEnd":75},"within":["Boolean"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":106,"section":"initial-lambda0","tag":"assign","defines":["spring.c"],"uses":[],"equation":["10000.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":107,"section":"initial-lambda0","tag":"assign","defines":["spring.d"],"uses":[],"equation":["100.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":108,"section":"initial-lambda0","tag":"assign","defines":["spring.phi_rel0"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2698,"lineEnd":2698,"colStart":7,"colEnd":63},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":109,"section":"initial-lambda0","tag":"assign","defines":["inertia2.J"],"uses":[],"equation":["2.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
{"eqIndex":110,"section":"initial-lambda0","tag":"assign","defines":["inertia2.stateSelect"],"uses":[],"equation":["StateSelect.default"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
{"eqIndex":111,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.nout"],"uses":[],"equation":["1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":112,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.startTime"],"uses":[],"equation":["0.5"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1458,"lineEnd":1458,"colStart":5,"colEnd":79},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":113,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_deltaq[1]"],"uses":["kinematicPTP.deltaq[1]"],"equation":["kinematicPTP.deltaq[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1463,"lineEnd":1464,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":114,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.deltaq[1]"],"uses":["driveAngle"],"equation":["driveAngle"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1452,"lineEnd":1453,"colStart":5,"colEnd":106},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":115,"section":"initial-lambda0","tag":"assign","defines":["driveAngle"],"uses":[],"equation":["1.570796326794897"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":17,"lineEnd":18,"colStart":5,"colEnd":35},"within":["Real"],"typeLst":["Modelica.Blocks.Examples.PID_Controller"]}},
{"eqIndex":116,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_qd_max[1]"],"uses":["kinematicPTP.qd_max[1]"],"equation":["kinematicPTP.qd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1465,"lineEnd":1466,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":117,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.qd_max[1]"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":118,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_qdd_max[1]"],"uses":["kinematicPTP.qdd_max[1]"],"equation":["kinematicPTP.qdd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1467,"lineEnd":1468,"colStart":5,"colEnd":33},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":119,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.qdd_max[1]"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":120,"section":"initial-lambda0","tag":"assign","defines":["integrator.k"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":121,"section":"initial-lambda0","tag":"assign","defines":["integrator.use_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":122,"section":"initial-lambda0","tag":"assign","defines":["integrator.use_set"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":123,"section":"initial-lambda0","tag":"assign","defines":["integrator.initType"],"uses":[],"equation":["Modelica.Blocks.Types.Init.InitialState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":124,"section":"initial-lambda0","tag":"assign","defines":["integrator.y_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":125,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.useSupport"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}},
{"eqIndex":126,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.tau"],"uses":["loadTorque.tau_constant"],"equation":["loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6685,"lineEnd":6686,"colStart":7,"colEnd":63},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.tau = loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["tau = tau_constant;","loadTorque.tau = loadTorque.tau_constant;"]}]}},
{"eqIndex":127,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.flange.tau"],"uses":["loadTorque.tau_constant"],"equation":["-loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"loadTorqueflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["loadTorque.flange.tau = -loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["loadTorque.flange.tau","loadTorque.tau"]},{"op":"before-after","display":"flattening","data":["tau = -flange.tau;","loadTorque.tau = -loadTorque.flange.tau;"]}]}},
{"eqIndex":128,"section":"initial-lambda0","tag":"assign","defines":["inertia2.flange_b.tau"],"uses":["loadTorque.tau_constant"],"equation":["loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"inertia2flange_b","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["inertia2.flange_b.tau = loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["inertia2.flange_b.tau","-loadTorque.flange.tau"]}]}},
{"eqIndex":129,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.tau_constant"],"uses":[],"equation":["10.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6681,"lineEnd":6682,"colStart":7,"colEnd":100},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}},
{"eqIndex":130,"section":"initial-lambda0","tag":"assign","defines":["PI.FFzero.y"],"uses":["PI.FFzero.k"],"equation":["PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"],"operations":[{"op":"info","display":"solved","data":["PI.FFzero.y = PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.FFzero.y = PI.FFzero.k;"]}]}},
{"eqIndex":131,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.u2"],"uses":["PI.FFzero.k"],"equation":["PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":344,"lineEnd":345,"colStart":5,"colEnd":59},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"],"operations":[{"op":"info","display":"solved","data":["PI.addFF.u2 = PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.u2","PI.FFzero.y"]}]}},
{"eqIndex":132,"section":"initial-lambda0","tag":"assign","defines":["PI.FFzero.k"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"]}},
{"eqIndex":133,"section":"initial-lambda0","tag":"assign","defines":["PI.Dzero.y"],"uses":["PI.Dzero.k"],"equation":["PI.Dzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"],"operations":[{"op":"info","display":"solved","data":["PI.Dzero.y = PI.Dzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.Dzero.y = PI.Dzero.k;"]}]}},
{"eqIndex":134,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.u2"],"uses":["PI.Dzero.k"],"equation":["PI.Dzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":973,"lineEnd":974,"colStart":5,"colEnd":66},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"],"operations":[{"op":"info","display":"solved","data":["PI.addPID.u2 = PI.Dzero.k"]},{"op":"chain","display":"substitution","data":["PI.addPID.u2","PI.Dzero.y"]}]}},
{"eqIndex":135,"section":"initial-lambda0","tag":"assign","defines":["PI.Dzero.k"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"]}},
{"eqIndex":136,"tag":"alias","equation":[1],"section":"initial-lambda0"},
{"eqIndex":137,"tag":"alias","equation":[2],"section":"initial-lambda0"},
{"eqIndex":138,"tag":"alias","equation":[3],"section":"initial-lambda0"},
{"eqIndex":139,"tag":"alias","equation":[4],"section":"initial-lambda0"},
{"eqIndex":140,"tag":"alias","equation":[5],"section":"initial-lambda0"},
{"eqIndex":141,"tag":"alias","equation":[6],"section":"initial-lambda0"},
{"eqIndex":142,"tag":"alias","equation":[7],"section":"initial-lambda0"},
{"eqIndex":143,"tag":"alias","equation":[8],"section":"initial-lambda0"},
{"eqIndex":144,"tag":"alias","equation":[9],"section":"initial-lambda0"},
{"eqIndex":145,"tag":"alias","equation":[10],"section":"initial-lambda0"},
{"eqIndex":146,"tag":"alias","equation":[11],"section":"initial-lambda0"},
{"eqIndex":147,"tag":"alias","equation":[187],"section":"initial-lambda0"},
{"eqIndex":148,"tag":"alias","equation":[188],"section":"initial-lambda0"},
{"eqIndex":149,"tag":"alias","equation":[189],"section":"initial-lambda0"},
{"eqIndex":150,"tag":"alias","equation":[198],"section":"initial-lambda0"},
{"eqIndex":151,"tag":"alias","equation":[199],"section":"initial-lambda0"},
{"eqIndex":152,"tag":"alias","equation":[200],"section":"initial-lambda0"},
{"eqIndex":153,"tag":"alias","equation":[18],"section":"initial-lambda0"},
{"eqIndex":154,"tag":"alias","equation":[19],"section":"initial-lambda0"},
{"eqIndex":155,"tag":"alias","equation":[20],"section":"initial-lambda0"},
{"eqIndex":156,"tag":"alias","equation":[21],"section":"initial-lambda0"},
{"eqIndex":157,"tag":"alias","equation":[212],"section":"initial-lambda0"},
{"eqIndex":158,"tag":"alias","equation":[23],"section":"initial-lambda0"},
{"eqIndex":159,"tag":"alias","equation":[197],"section":"initial-lambda0"},
{"eqIndex":160,"tag":"alias","equation":[192],"section":"initial-lambda0"},
{"eqIndex":161,"tag":"alias","equation":[193],"section":"initial-lambda0"},
{"eqIndex":162,"tag":"alias","equation":[27],"section":"initial-lambda0"},
{"eqIndex":163,"tag":"alias","equation":[28],"section":"initial-lambda0"},
{"eqIndex":164,"tag":"alias","equation":[29],"section":"initial-lambda0"},
{"eqIndex":165,"tag":"alias","equation":[30],"section":"initial-lambda0"},
{"eqIndex":166,"tag":"alias","equation":[31],"section":"initial-lambda0"},
{"eqIndex":167,"tag":"alias","equation":[32],"section":"initial-lambda0"},
{"eqIndex":168,"tag":"alias","equation":[218],"section":"initial-lambda0"},
{"eqIndex":169,"tag":"alias","equation":[34],"section":"initial-lambda0"},
{"eqIndex":170,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.y"],"uses":["PI.y"],"equation":["PI.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"solved","data":["PI.addFF.y = PI.y"]},{"op":"info","display":"solved","data":["PI.addFF.y = PI.y"]},{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}},
{"eqIndex":171,"tag":"alias","equation":[213],"section":"initial-lambda0"},
{"eqIndex":172,"tag":"alias","equation":[214],"section":"initial-lambda0"},
{"eqIndex":173,"tag":"alias","equation":[39],"section":"initial-lambda0"},
{"eqIndex":174,"tag":"alias","equation":[40],"section":"initial-lambda0"},
{"eqIndex":175,"tag":"alias","equation":[196],"section":"initial-lambda0"},
{"eqIndex":176,"tag":"alias","equation":[42],"section":"initial-lambda0"},
{"eqIndex":177,"tag":"alias","equation":[43],"section":"initial-lambda0"},
{"eqIndex":178,"tag":"alias","equation":[44],"section":"initial-lambda0"},
{"eqIndex":179,"tag":"alias","equation":[45],"section":"initial-lambda0"},
{"eqIndex":180,"tag":"alias","equation":[46],"section":"initial-lambda0"},
{"eqIndex":181,"tag":"alias","equation":[190],"section":"initial-lambda0"},
{"eqIndex":182,"tag":"alias","equation":[202],"section":"initial-lambda0"},
{"eqIndex":183,"tag":"alias","equation":[203],"section":"initial-lambda0"},
{"eqIndex":184,"tag":"alias","equation":[204],"section":"initial-lambda0"},
{"eqIndex":185,"tag":"alias","equation":[51],"section":"initial-lambda0"},
{"eqIndex":186,"tag":"alias","equation":[217],"section":"initial-lambda0"},
{"eqIndex":187,"section":"regular","tag":"assign","defines":["kinematicPTP.noWphase"],"uses":["kinematicPTP.Ta1","kinematicPTP.Ta2"],"equation":["kinematicPTP.Ta2 >= kinematicPTP.Ta1"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]},{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]}]}},
{"eqIndex":188,"section":"regular","tag":"assign","defines":["kinematicPTP.Tv"],"uses":["kinematicPTP.sd_max","kinematicPTP.Ta1","kinematicPTP.noWphase"],"equation":["if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]}]}},
{"eqIndex":189,"section":"regular","tag":"assign","defines":["kinematicPTP.Te"],"uses":["kinematicPTP.Ta2","kinematicPTP.Tv","kinematicPTP.Ta1","kinematicPTP.noWphase"],"equation":["if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]},{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]}]}},
{"eqIndex":190,"section":"regular","tag":"assign","defines":["der(loadTorque.phi)"],"uses":["inertia2.w"],"equation":["inertia2.w"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["der(loadTorque.phi) = inertia2.w"]},{"op":"info","display":"solved","data":["der(loadTorque.phi) = inertia2.w"]}]}},
{"eqIndex":191,"section":"regular","tag":"assign","defines":["spring.tau_c"],"uses":["spring.phi_rel0","spring.phi_rel","spring.c"],"equation":["spring.c * (spring.phi_rel - spring.phi_rel0)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2707,"lineEnd":2707,"colStart":7,"colEnd":37},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0)"]},{"op":"info","display":"solved","data":["spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0)"]},{"op":"before-after","display":"flattening","data":["tau_c = c * (phi_rel - phi_rel0);","spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0);"]}]}},
{"eqIndex":192,"section":"regular","tag":"assign","defines":["spring.tau_d"],"uses":["spring.w_rel","spring.d"],"equation":["spring.d * spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2708,"lineEnd":2708,"colStart":7,"colEnd":22},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_d = spring.d * spring.w_rel"]},{"op":"info","display":"solved","data":["spring.tau_d = spring.d * spring.w_rel"]},{"op":"before-after","display":"flattening","data":["tau_d = d * w_rel;","spring.tau_d = spring.d * spring.w_rel;"]}]}},
{"eqIndex":193,"section":"regular","tag":"assign","defines":["spring.lossPower"],"uses":["spring.w_rel","spring.tau_d"],"equation":["spring.tau_d * spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2710,"lineEnd":2710,"colStart":7,"colEnd":30},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.lossPower = spring.tau_d * spring.w_rel"]},{"op":"info","display":"solved","data":["spring.lossPower = spring.tau_d * spring.w_rel"]},{"op":"before-after","display":"flattening","data":["lossPower = tau_d * w_rel;","spring.lossPower = spring.tau_d * spring.w_rel;"]}]}},
{"eqIndex":194,"section":"regular","tag":"assign","defines":["spring.tau"],"uses":["spring.tau_d","spring.tau_c"],"equation":["spring.tau_c + spring.tau_d"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2709,"lineEnd":2709,"colStart":7,"colEnd":26},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau = spring.tau_c + spring.tau_d"]},{"op":"info","display":"solved","data":["spring.tau = spring.tau_c + spring.tau_d"]},{"op":"before-after","display":"flattening","data":["tau = tau_c + tau_d;","spring.tau = spring.tau_c + spring.tau_d;"]}]}},
{"eqIndex":195,"section":"regular","tag":"assign","defines":["inertia2.a"],"uses":["inertia2.J","spring.tau","loadTorque.tau_constant"],"equation":["(loadTorque.tau_constant - spring.tau) / inertia2.J"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["inertia2.a = (loadTorque.tau_constant - spring.tau) / inertia2.J"]},{"op":"info","display":"solved","data":["inertia2.a = (loadTorque.tau_constant - spring.tau) / inertia2.J"]},{"op":"before-after","display":"simplify","data":["inertia2.J * inertia2.a = (-spring.tau) + loadTorque.tau_constant","inertia2.J * inertia2.a = loadTorque.tau_constant - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia2.flange_a.tau + inertia2.flange_b.tau","(-spring.tau) + loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia2.J * inertia2.a = inertia2.flange_a.tau + inertia2.flange_b.tau;"]}]}},
{"eqIndex":196,"section":"regular","tag":"assign","defines":["der(inertia2.w)"],"uses":["inertia2.a"],"equation":["inertia2.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2489,"lineEnd":2489,"colStart":7,"colEnd":17},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["der(inertia2.w) = inertia2.a"]},{"op":"info","display":"solved","data":["der(inertia2.w) = inertia2.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia2.w)","der(inertia2.w)"]},{"op":"before-after","display":"flattening","data":["a = der(w);","inertia2.a = der(inertia2.w);"]}]}},
{"eqIndex":197,"section":"regular","tag":"assign","defines":["der(spring.phi_rel)"],"uses":["spring.w_rel"],"equation":["spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7309,"lineEnd":7309,"colStart":7,"colEnd":27},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["der(spring.phi_rel) = spring.w_rel"]},{"op":"info","display":"solved","data":["der(spring.phi_rel) = spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.phi_rel)","der(spring.phi_rel)"]},{"op":"before-after","display":"flattening","data":["w_rel = der(phi_rel);","spring.w_rel = der(spring.phi_rel);"]}]}},
{"eqIndex":198,"section":"regular","tag":"assign","defines":["kinematicPTP.sdd"],"uses":["kinematicPTP.Tv","kinematicPTP.Ta2","kinematicPTP.Te","kinematicPTP.sdd_max","kinematicPTP.Ta1","kinematicPTP.noWphase","kinematicPTP.startTime","time"],"equation":["if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1495,"lineEnd":1498,"colStart":5,"colEnd":80},"within":["Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"instance":"kinematicPTP","operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"]},{"op":"before-after","display":"flattening","data":["sdd = if time < startTime then 0 else if noWphase then if time < Ta1 + startTime then sdd_max else if time < Te + startTime then -sdd_max else 0 else if time < Ta2 + startTime then sdd_max else if time < Tv + startTime then 0 else if time < Te + startTime then -sdd_max else 0;","kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0;"]}]}},
{"eqIndex":199,"section":"regular","tag":"assign","defines":["kinematicPTP.y[1]"],"uses":["kinematicPTP.sdd","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1501,"lineEnd":1501,"colStart":5,"colEnd":21},"within":["Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"instance":"kinematicPTP","operations":[{"op":"info","display":"solved","data":["kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"]},{"op":"info","display":"solved","data":["kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"]},{"op":"before-after","display":"flattening","data":["y = p_deltaq * sdd;","kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd;"]}]}},
{"eqIndex":200,"section":"regular","tag":"assign","defines":["der(integrator.y)"],"uses":["kinematicPTP.y[1]","integrator.k"],"equation":["integrator.k * kinematicPTP.y[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$integrator"],"instance":"integrator","operations":[{"op":"info","display":"solved","data":["der(integrator.y) = integrator.k * kinematicPTP.y[1]"]},{"op":"info","display":"solved","data":["der(integrator.y) = integrator.k * kinematicPTP.y[1]"]},{"op":"chain","display":"substitution","data":["integrator.k * integrator.u","integrator.k * kinematicPTP.y[1]"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(integrator.y)","der(integrator.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(integrator.y) = integrator.k * integrator.u;"]}]}},
{"eqIndex":201,"section":"regular","tag":"assign","defines":["inertia1.w"],"uses":["spring.w_rel","inertia2.w"],"equation":["inertia2.w - spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia1.w = inertia2.w - spring.w_rel"]},{"op":"info","display":"solved","data":["inertia1.w = inertia2.w - spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}},
{"eqIndex":202,"section":"regular","tag":"assign","defines":["der(inertia1.phi)"],"uses":["inertia1.w"],"equation":["inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2488,"lineEnd":2488,"colStart":7,"colEnd":19},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["der(inertia1.phi) = inertia1.w"]},{"op":"info","display":"solved","data":["der(inertia1.phi) = inertia1.w"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia1.phi)","der(inertia1.phi)"]},{"op":"before-after","display":"flattening","data":["w = der(phi);","inertia1.w = der(inertia1.phi);"]}]}},
{"eqIndex":203,"section":"regular","tag":"assign","defines":["PI.P.u"],"uses":["inertia1.w","PI.addP.k2","integrator.y","PI.addP.k1"],"equation":["PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addP"],"instance":"PIaddP","operations":[{"op":"info","display":"solved","data":["PI.P.u = PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"]},{"op":"info","display":"solved","data":["PI.P.u = PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"]},{"op":"chain","display":"substitution","data":["PI.addP.k1 * PI.addP.u1 + PI.addP.k2 * PI.addP.u2","PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w","PI.addP.k1 * integrator.y + PI.addP.k2 * PI.u_m"]},{"op":"chain","display":"substitution","data":["PI.addP.y","PI.P.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addP.y = PI.addP.k1 * PI.addP.u1 + PI.addP.k2 * PI.addP.u2;"]}]}},
{"eqIndex":204,"section":"regular","tag":"assign","defines":["PI.P.y"],"uses":["PI.P.u","PI.P.k"],"equation":["PI.P.k * PI.P.u"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$P"],"instance":"PIP","operations":[{"op":"info","display":"solved","data":["PI.P.y = PI.P.k * PI.P.u"]},{"op":"info","display":"solved","data":["PI.P.y = PI.P.k * PI.P.u"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.P.y = PI.P.k * PI.P.u;"]}]}},
{"eqIndex":205,"section":"regular","tag":"assign","defines":["PI.addPID.y"],"uses":["PI.I.y","PI.addPID.k3","PI.Dzero.k","PI.addPID.k2","PI.P.y","PI.addPID.k1"],"equation":["PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3"],"instance":"PIaddPID","operations":[{"op":"info","display":"solved","data":["PI.addPID.y = PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"info","display":"solved","data":["PI.addPID.y = PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"chain","display":"substitution","data":["PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3","PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addPID.y = PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3;"]}]}},
{"eqIndex":206,"section":"regular","tag":"assign","defines":["PI.addFF.u1"],"uses":["PI.addPID.y","PI.gainPID.k"],"equation":["PI.gainPID.k * PI.addPID.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainPID"],"instance":"PIgainPID","operations":[{"op":"info","display":"solved","data":["PI.addFF.u1 = PI.gainPID.k * PI.addPID.y"]},{"op":"info","display":"solved","data":["PI.addFF.u1 = PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.k * PI.gainPID.u","PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.y","PI.addFF.u1"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainPID.y = PI.gainPID.k * PI.gainPID.u;"]}]}},
{"eqIndex":207,"section":"regular","tag":"assign","defines":["PI.addFF.y"],"uses":["PI.FFzero.k","PI.addFF.k2","PI.addFF.u1","PI.addFF.k1"],"equation":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addFF"],"instance":"PIaddFF","operations":[{"op":"info","display":"solved","data":["PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"info","display":"solved","data":["PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2","PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2;"]}]}},
{"eqIndex":208,"section":"regular","tag":"assign","defines":["PI.y"],"uses":["PI.limiter.uMin","PI.limiter.uMax","PI.addFF.y"],"equation":["smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"solved","data":["PI.y = smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"]},{"op":"info","display":"solved","data":["PI.y = smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}},
{"eqIndex":209,"section":"regular","tag":"assign","defines":["inertia1.a"],"uses":["inertia1.J","spring.tau","PI.y"],"equation":["(PI.y + spring.tau) / inertia1.J"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["inertia1.a = (PI.y + spring.tau) / inertia1.J"]},{"op":"info","display":"solved","data":["inertia1.a = (PI.y + spring.tau) / inertia1.J"]},{"op":"chain","display":"substitution","data":["inertia1.flange_a.tau + inertia1.flange_b.tau","PI.y + spring.tau","PI.y + inertia1.flange_b.tau"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia1.J * inertia1.a = inertia1.flange_a.tau + inertia1.flange_b.tau;"]}]}},
{"eqIndex":210,"section":"regular","tag":"assign","defines":["spring.a_rel"],"uses":["inertia1.a","inertia2.a"],"equation":["inertia2.a - inertia1.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.a_rel = inertia2.a - inertia1.a"]},{"op":"info","display":"solved","data":["spring.a_rel = inertia2.a - inertia1.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["inertia2.w - inertia1.w","der(inertia2.w) - der(inertia1.w)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.w_rel","der(spring.w_rel)"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}},
{"eqIndex":211,"section":"regular","tag":"assign","defines":["der(spring.w_rel)"],"uses":["spring.a_rel"],"equation":["spring.a_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7310,"lineEnd":7310,"colStart":7,"colEnd":25},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["der(spring.w_rel) = spring.a_rel"]},{"op":"info","display":"solved","data":["der(spring.w_rel) = spring.a_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["a_rel = der(w_rel);","spring.a_rel = der(spring.w_rel);"]}]}},
{"eqIndex":212,"section":"regular","tag":"assign","defines":["der(inertia1.w)"],"uses":["inertia1.a"],"equation":["inertia1.a"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]},{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]}]}},
{"eqIndex":213,"section":"regular","tag":"assign","defines":["PI.addSat.y"],"uses":["PI.addFF.y","PI.addSat.k2","PI.y","PI.addSat.k1"],"equation":["PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addSat"],"instance":"PIaddSat","operations":[{"op":"info","display":"solved","data":["PI.addSat.y = PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"info","display":"solved","data":["PI.addSat.y = PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"chain","display":"substitution","data":["PI.addSat.k1 * PI.addSat.u1 + PI.addSat.k2 * PI.addSat.u2","PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addSat.y = PI.addSat.k1 * PI.addSat.u1 + PI.addSat.k2 * PI.addSat.u2;"]}]}},
{"eqIndex":214,"section":"regular","tag":"assign","defines":["PI.addI.u3"],"uses":["PI.addSat.y","PI.gainTrack.k"],"equation":["PI.gainTrack.k * PI.addSat.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainTrack"],"instance":"PIgainTrack","operations":[{"op":"info","display":"solved","data":["PI.addI.u3 = PI.gainTrack.k * PI.addSat.y"]},{"op":"info","display":"solved","data":["PI.addI.u3 = PI.gainTrack.k * PI.addSat.y"]},{"op":"chain","display":"substitution","data":["PI.gainTrack.k * PI.gainTrack.u","PI.gainTrack.k * PI.addSat.y"]},{"op":"chain","display":"substitution","data":["PI.gainTrack.y","PI.addI.u3"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainTrack.y = PI.gainTrack.k * PI.gainTrack.u;"]}]}},
{"eqIndex":215,"section":"regular","tag":"assign","defines":["PI.I.u"],"uses":["PI.addI.u3","PI.addI.k3","inertia1.w","PI.addI.k2","integrator.y","PI.addI.k1"],"equation":["PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3$PI$addI"],"instance":"PIaddI","operations":[{"op":"info","display":"solved","data":["PI.I.u = PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"]},{"op":"info","display":"solved","data":["PI.I.u = PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * PI.u_m + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.y","PI.I.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addI.y = PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3;"]}]}},
{"eqIndex":216,"section":"regular","tag":"assign","defines":["der(PI.I.y)"],"uses":["PI.I.u","PI.I.k"],"equation":["PI.I.k * PI.I.u"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["der(PI.I.y) = PI.I.k * PI.I.u"]},{"op":"info","display":"solved","data":["der(PI.I.y) = PI.I.k * PI.I.u"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(PI.I.y)","der(PI.I.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(PI.I.y) = PI.I.k * PI.I.u;"]}]}},
{"eqIndex":217,"section":"regular","tag":"assign","defines":["PI.controlError"],"uses":["inertia1.w","integrator.y"],"equation":["integrator.y - inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":887,"lineEnd":888,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"],"operations":[{"op":"info","display":"solved","data":["PI.controlError = integrator.y - inertia1.w"]},{"op":"info","display":"solved","data":["PI.controlError = integrator.y - inertia1.w"]},{"op":"chain","display":"substitution","data":["PI.u_s - PI.u_m","integrator.y - inertia1.w","integrator.y - PI.u_m"]}]}},
{"eqIndex":218,"section":"regular","tag":"assign","defines":["loadTorque.phi"],"uses":["spring.phi_rel","inertia1.phi"],"equation":["inertia1.phi + spring.phi_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["loadTorque.phi = inertia1.phi + spring.phi_rel"]},{"op":"info","display":"solved","data":["loadTorque.phi = inertia1.phi + spring.phi_rel"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}},
{"eqIndex":219,"section":"regular","tag":"algorithm","equation":["assert(PI.limiter.uMax >= PI.limiter.uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(PI.limiter.uMax, 6, 0, true) + \") < uMin (=\" + String(PI.limiter.uMin, 6, 0, true) + \")\");"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":22,"lineEnd":23,"colStart":9,"colEnd":65},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"scode","data":["assert(uMax >= uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(uMax) + \") < uMin (=\" + String(uMin) + \")\");"]}]}},
{"eqIndex":220,"section":"start","tag":"assign","defines":["$START.integrator.y"],"uses":["integrator.y_start"],"equation":["integrator.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":221,"section":"start","tag":"assign","defines":["$START.PI.I.y"],"uses":["PI.I.y_start"],"equation":["PI.I.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":222,"section":"nominal","tag":"assign","defines":["spring.phi_rel"],"uses":["spring.phi_nominal"],"equation":["if spring.phi_nominal >= 1e-15 then spring.phi_nominal else 1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":223,"tag":"alias","equation":[134],"section":"parameter"},
{"eqIndex":224,"tag":"alias","equation":[133],"section":"parameter"},
{"eqIndex":225,"tag":"alias","equation":[131],"section":"parameter"},
{"eqIndex":226,"tag":"alias","equation":[130],"section":"parameter"},
{"eqIndex":227,"tag":"alias","equation":[128],"section":"parameter"},
{"eqIndex":228,"tag":"alias","equation":[127],"section":"parameter"},
{"eqIndex":229,"tag":"alias","equation":[126],"section":"parameter"},
{"eqIndex":230,"tag":"alias","equation":[125],"section":"parameter"},
{"eqIndex":231,"tag":"alias","equation":[123],"section":"parameter"},
{"eqIndex":232,"tag":"alias","equation":[122],"section":"parameter"},
{"eqIndex":233,"tag":"alias","equation":[121],"section":"parameter"},
{"eqIndex":234,"tag":"alias","equation":[118],"section":"parameter"},
{"eqIndex":235,"tag":"alias","equation":[116],"section":"parameter"},
{"eqIndex":236,"tag":"alias","equation":[114],"section":"parameter"},
{"eqIndex":237,"tag":"alias","equation":[113],"section":"parameter"},
{"eqIndex":238,"tag":"alias","equation":[111],"section":"parameter"},
{"eqIndex":239,"tag":"alias","equation":[110],"section":"parameter"},
{"eqIndex":240,"tag":"alias","equation":[105],"section":"parameter"},
{"eqIndex":241,"tag":"alias","equation":[104],"section":"parameter"},
{"eqIndex":242,"tag":"alias","equation":[102],"section":"parameter"},
{"eqIndex":243,"tag":"alias","equation":[101],"section":"parameter"},
{"eqIndex":244,"tag":"alias","equation":[97],"section":"parameter"},
{"eqIndex":245,"tag":"alias","equation":[90],"section":"parameter"},
{"eqIndex":246,"tag":"alias","equation":[89],"section":"parameter"},
{"eqIndex":247,"tag":"alias","equation":[88],"section":"parameter"},
{"eqIndex":248,"tag":"alias","equation":[87],"section":"parameter"},
{"eqIndex":249,"tag":"alias","equation":[85],"section":"parameter"},
{"eqIndex":250,"tag":"alias","equation":[83],"section":"parameter"},
{"eqIndex":251,"tag":"alias","equation":[81],"section":"parameter"},
{"eqIndex":252,"tag":"alias","equation":[80],"section":"parameter"},
{"eqIndex":253,"tag":"alias","equation":[79],"section":"parameter"},
{"eqIndex":254,"tag":"alias","equation":[78],"section":"parameter"},
{"eqIndex":255,"tag":"alias","equation":[77],"section":"parameter"},
{"eqIndex":256,"tag":"alias","equation":[75],"section":"parameter"},
{"eqIndex":257,"tag":"alias","equation":[74],"section":"parameter"},
{"eqIndex":258,"tag":"alias","equation":[73],"section":"parameter"},
{"eqIndex":259,"tag":"alias","equation":[69],"section":"parameter"},
{"eqIndex":260,"tag":"alias","equation":[65],"section":"parameter"},
{"eqIndex":261,"tag":"alias","equation":[64],"section":"parameter"},
{"eqIndex":262,"tag":"alias","equation":[63],"section":"parameter"},
{"eqIndex":263,"tag":"alias","equation":[62],"section":"parameter"},
{"eqIndex":264,"tag":"alias","equation":[59],"section":"parameter"},
{"eqIndex":265,"tag":"alias","equation":[58],"section":"parameter"},
{"eqIndex":266,"tag":"alias","equation":[54],"section":"parameter"},
{"eqIndex":267,"tag":"alias","equation":[19],"section":"parameter"},
{"eqIndex":268,"tag":"alias","equation":[18],"section":"parameter"},
{"eqIndex":269,"tag":"alias","equation":[8],"section":"parameter"},
{"eqIndex":270,"tag":"alias","equation":[6],"section":"parameter"},
{"eqIndex":271,"tag":"alias","equation":[7],"section":"parameter"},
{"eqIndex":272,"tag":"alias","equation":[9],"section":"parameter"},
{"eqIndex":273,"tag":"alias","equation":[10],"section":"parameter"},
{"eqIndex":274,"tag":"alias","equation":[11],"section":"parameter"},
{"eqIndex":275,"tag":"alias","equation":[5],"section":"parameter"},
{"eqIndex":276,"tag":"alias","equation":[4],"section":"parameter"},
{"eqIndex":277,"tag":"alias","equation":[3],"section":"parameter"},
{"eqIndex":278,"tag":"alias","equation":[2],"section":"parameter"},
{"eqIndex":279,"tag":"alias","equation":[1],"section":"parameter"},
{"eqIndex":280,"section":"parameter","tag":"algorithm","equation":["assert(integrator.initType >= Modelica.Blocks.Types.Init.NoInit and integrator.initType <= Modelica.Blocks.Types.Init.InitialOutput, \"Variable violating min/max constraint: Modelica.Blocks.Types.Init.NoInit <= integrator.initType <= Modelica.Blocks.Types.Init.InitialOutput, has value: \" + String(integrator.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}},
{"eqIndex":281,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.qdd_max[1] >= 1e-60, \"Variable violating min constraint: 1e-60 <= kinematicPTP.qdd_max[1], has value: \" + String(kinematicPTP.qdd_max[1], \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":282,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.qd_max[1] >= 1e-60, \"Variable violating min constraint: 1e-60 <= kinematicPTP.qd_max[1], has value: \" + String(kinematicPTP.qd_max[1], \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":283,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.nout >= 1, \"Variable violating min constraint: 1 <= kinematicPTP.nout, has value: \" + String(kinematicPTP.nout, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}},
{"eqIndex":284,"section":"parameter","tag":"algorithm","equation":["assert(inertia2.stateSelect >= StateSelect.never and inertia2.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= inertia2.stateSelect <= StateSelect.always, has value: \" + String(inertia2.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
{"eqIndex":285,"section":"parameter","tag":"algorithm","equation":["assert(inertia2.J >= 0.0, \"Variable violating min constraint: 0.0 <= inertia2.J, has value: \" + String(inertia2.J, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}},
{"eqIndex":286,"section":"parameter","tag":"algorithm","equation":["assert(spring.d >= 0.0, \"Variable violating min constraint: 0.0 <= spring.d, has value: \" + String(spring.d, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":287,"section":"parameter","tag":"algorithm","equation":["assert(spring.c >= 0.0, \"Variable violating min constraint: 0.0 <= spring.c, has value: \" + String(spring.c, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":288,"section":"parameter","tag":"algorithm","equation":["assert(spring.stateSelect >= StateSelect.never and spring.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= spring.stateSelect <= StateSelect.always, has value: \" + String(spring.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":289,"section":"parameter","tag":"algorithm","equation":["assert(spring.phi_nominal >= 0.0, \"Variable violating min constraint: 0.0 <= spring.phi_nominal, has value: \" + String(spring.phi_nominal, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}},
{"eqIndex":290,"section":"parameter","tag":"algorithm","equation":["assert(inertia1.stateSelect >= StateSelect.never and inertia1.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= inertia1.stateSelect <= StateSelect.always, has value: \" + String(inertia1.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
{"eqIndex":291,"section":"parameter","tag":"algorithm","equation":["assert(inertia1.J >= 0.0, \"Variable violating min constraint: 0.0 <= inertia1.J, has value: \" + String(inertia1.J, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}},
{"eqIndex":292,"section":"parameter","tag":"algorithm","equation":["assert(PI.k >= 0.0, \"Variable violating min constraint: 0.0 <= PI.k, has value: \" + String(PI.k, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":293,"section":"parameter","tag":"algorithm","equation":["assert(PI.Ni >= 1e-13, \"Variable violating min constraint: 1e-13 <= PI.Ni, has value: \" + String(PI.Ni, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":294,"section":"parameter","tag":"algorithm","equation":["assert(PI.I.initType >= Modelica.Blocks.Types.Init.NoInit and PI.I.initType <= Modelica.Blocks.Types.Init.InitialOutput, \"Variable violating min/max constraint: Modelica.Blocks.Types.Init.NoInit <= PI.I.initType <= Modelica.Blocks.Types.Init.InitialOutput, has value: \" + String(PI.I.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}},
{"eqIndex":295,"section":"parameter","tag":"algorithm","equation":["assert(PI.Ti >= 1e-60, \"Variable violating min constraint: 1e-60 <= PI.Ti, has value: \" + String(PI.Ti, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":296,"section":"parameter","tag":"algorithm","equation":["assert(PI.limiter.homotopyType >= Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy and PI.limiter.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, \"Variable violating min/max constraint: Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy <= PI.limiter.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, has value: \" + String(PI.limiter.homotopyType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}},
{"eqIndex":297,"section":"parameter","tag":"algorithm","equation":["assert(PI.wp >= 0.0, \"Variable violating min constraint: 0.0 <= PI.wp, has value: \" + String(PI.wp, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":298,"section":"parameter","tag":"algorithm","equation":["assert(PI.homotopyType >= Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy and PI.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, \"Variable violating min/max constraint: Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy <= PI.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, has value: \" + String(PI.homotopyType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":299,"section":"parameter","tag":"algorithm","equation":["assert(PI.initType >= Modelica.Blocks.Types.InitPID.NoInit and PI.initType <= Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState, \"Variable violating min/max constraint: Modelica.Blocks.Types.InitPID.NoInit <= PI.initType <= Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState, has value: \" + String(PI.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":300,"section":"parameter","tag":"algorithm","equation":["assert(PI.Nd >= 1e-13, \"Variable violating min constraint: 1e-13 <= PI.Nd, has value: \" + String(PI.Nd, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":301,"section":"parameter","tag":"algorithm","equation":["assert(PI.wd >= 0.0, \"Variable violating min constraint: 0.0 <= PI.wd, has value: \" + String(PI.wd, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":302,"section":"parameter","tag":"algorithm","equation":["assert(PI.Td >= 0.0, \"Variable violating min constraint: 0.0 <= PI.Td, has value: \" + String(PI.Td, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}},
{"eqIndex":303,"section":"parameter","tag":"algorithm","equation":["assert(PI.controllerType >= Modelica.Blocks.Types.SimpleController.P and PI.controllerType <= Modelica.Blocks.Types.SimpleController.PID, \"Variable violating min/max constraint: Modelica.Blocks.Types.SimpleController.P <= PI.controllerType <= Modelica.Blocks.Types.SimpleController.PID, has value: \" + String(PI.controllerType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":889,"lineEnd":890,"colStart":5,"colEnd":76},"within":["Modelica.Blocks.Types.SimpleController"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}
],
"functions":[
]
}

[11] 09:49:37 Scripting Error
Parsing json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json

[12] 09:49:37 Scripting Error
Parsed json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json


If the communication log, or anything else would also be useful, let me know. It does some strange to me that I can open the

comment:28 by Adeel Asghar, 5 years ago

No idea what is going on here. Both times the json file contents are same and correct but one time parser fails and the other time it works.

Does it work if you try to simulate with transformational debugger?

comment:29 by Adam Dershowitz, 5 years ago

It's the same with Transformational debugger. The debugger opens, as it should. But, the plot window still shows no variables. It just shows the "MAT" icon and "(Active) Modelica.Blocks.Examples.PID_Controller" There is no tab to click to open that and see the actual variables. And, still if I right-click on that and select resimulate then it shows the expected tab and variables in the list below.
So, it seems like OMEdit is just not completing the "open."

I just checked if I had any older versions still on my machine that work correctly and found that @1.16.0~dev-20-gdb95ef6_0 opens the variables as expected and @1.16.0~dev-78-g9317df6_0 fails to. I don't have any between those to help narrow down when the change was made.

comment:30 by Adam Dershowitz, 4 years ago

I have been running some simulations lately,and every time, I've been seeing the same thing as discussed above (no results show up in OM, until I resimulate), so I need to run each simulation twice.
I've not been able to test any new versions of OMEdit due to this bug:
https://trac.openmodelica.org/OpenModelica/ticket/6038

I wanted to see if there's been any progress with this?

comment:31 by Adam Dershowitz, 4 years ago

I was able to upgrade and I'm now running 1.16.0~dev-582-ga906312. And, still I need to run every simulation twice to see any results. The first time, it compiles and simulates, but no results show up. If I then resimulate I can see the results.

comment:32 by Adam Dershowitz, 4 years ago

Potentially another clue:
After a simulation (with it showing results or not) I right click on "re-simulate Setup" then click OK (whether I make any changes or not) it again gives me no results (and if I had results, they disappear).
And, as before, if instead I just "re-simulate" I do get results to show up.

I realize that this is a strange problem, but it is pretty critical that it is impossible to see simulation results, except by running the simulation then re-running a second time.

comment:33 by Adam Dershowitz, 4 years ago

I just upgraded to 1.17.0~dev-7-gfacfb1f_0 and this bug is still present.
Perhaps there is timing information that OMEdit is not checking or the new results file at the right time? So, doing a seconds run actually shows the first results?

comment:34 by Adrian Pop, 4 years ago

@adeas31, just do a try catch here:
https://github.com/OpenModelica/OpenModelica/blob/master/OMEdit/OMEditLIB/Plotting/VariablesWidget.cpp#L610
and if you cannot read the json just give a warning and continue and read the mat file.

comment:35 by Adeel Asghar, 4 years ago

The commit 46ede29/OpenModelica just makes sure that the result variables are shown even if OMEdit fails to parse the json file. You will still see an error message that reading the json has failed. I am still not sure why the parsing is failing.

Last edited 4 years ago by Adeel Asghar (previous) (diff)

comment:36 by Adam Dershowitz, 4 years ago

I'll try it out once I can get the new version to build. At the moment I'm again seeing build errors. https://trac.openmodelica.org/OpenModelica/ticket/6136

comment:37 by Adam Dershowitz, 4 years ago

I got it to build, and yes it now shows results (and also shows error messages as you expected):

[1] 12:24:36 Scripting Error
Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json. syntax error, unexpected invalid

[2] 12:24:36 Scripting Notification
Number is out of range:  1 
json_parser - syntax error found,  forcing abort, Line 1 Column 1 

It's a big improvement.

comment:38 by Francesco Casella, 4 years ago

@dersh, is that ok for you or would you like to have something more?

comment:39 by Adam Dershowitz, 4 years ago

It seems to have the basic functionality, so I'm fine with it.
I'm curious why the error shows up and what it means. But, it does't seem critical.

Thanks,

comment:40 by Adeel Asghar, 4 years ago

It means that the debugging functionality that is linked with variables browser is not available. The context menu items of the variable will be disabled.

comment:41 by Francesco Casella, 4 years ago

@dersh, would you like to have this in the final 1.16.0 release, or are you fine with 1.17.0-dev?

comment:42 by Adeel Asghar, 4 years ago

I already ported this to 1.16 maintenance branch so it will be part of final release or next beta.

comment:43 by Adam Dershowitz, 4 years ago

Does this mean that debugging can not be used at all on a Mac? If so, it seems like another important bug. But, it's not affecting me right now.

comment:44 by Francesco Casella, 4 years ago

Resolution: fixed
Status: reopenedclosed

I understand the specific issue of this ticket is resolved in 1.16.0.

@dersh, if you have issues with the debugger, please open another one which is specific to that.

comment:45 by Adeel Asghar, 4 years ago

Resolution: fixed
Status: closedreopened

No the specific issue of this ticket is not solved. Its just a workaround with a compromise of debugger. We should investigate more about this issue.

comment:46 by Francesco Casella, 4 years ago

OK, sorry. Just trying to reduce the number of active tickets a bit :)

comment:47 by Francesco Casella, 4 years ago

Milestone: 1.16.01.17.0

Retargeted to 1.17.0 after 1.16.0 release

comment:48 by Francesco Casella, 4 years ago

Milestone: 1.17.01.18.0

Retargeted to 1.18.0 because of 1.17.0 timed release.

comment:49 by Adeel Asghar, 4 years ago

Resolution: fixed
Status: reopenedclosed

This should work fine now as we have updated to Qt 5 and removed the old json implementation. You can re-open the ticket if you still have issues.

Note: See TracTickets for help on using tickets.