From f1e7d7b511f2c8dc8cb1b8047195077381376b0c Mon Sep 17 00:00:00 2001 From: zjk <1553836110@qq.com> Date: Wed, 18 Jun 2025 23:10:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E8=88=AA=E5=90=91?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/p.md | 25 + ...XLOG_SHORESIDE_18_6_2025_____23_04_26.slog | 1218 +++++++++++++++++ missions/alder/alder.moos | 2 +- src/pAUV150/AUV150.cpp | 8 + src/pAUV150/AUV150.h | 4 + src/pAUV150/Controler/Controler.cpp | 423 +++--- src/pAUV150/Controler/Controler.h | 382 +++--- src/pAUV150/Controler/Controler_data.cpp | 36 +- src/pAUV150/Controler/Controler_private.h | 4 +- src/pAUV150/Controler/Controler_types.h | 4 +- src/pAUV150/Controler/rtGetNaN.cpp | 50 + src/pAUV150/Controler/rtGetNaN.h | 53 + src/pAUV150/Controler/rt_nonfinite.cpp | 4 +- src/pAUV150/Controler/rt_nonfinite.h | 4 +- src/pAUV150/Controler/rtwtypes.h | 4 +- 15 files changed, 1834 insertions(+), 387 deletions(-) create mode 100644 doc/p.md create mode 100644 missions/alder/XLOG_SHORESIDE_18_6_2025_____23_04_26/XLOG_SHORESIDE_18_6_2025_____23_04_26.slog create mode 100644 src/pAUV150/Controler/rtGetNaN.cpp create mode 100644 src/pAUV150/Controler/rtGetNaN.h diff --git a/doc/p.md b/doc/p.md new file mode 100644 index 0000000..cb230c1 --- /dev/null +++ b/doc/p.md @@ -0,0 +1,25 @@ +# 参数记录 + + { + 1, + 0.1, + 0.01, + 10.0 + }, + + // Variable: pid_pitch + // Referenced by: + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' + + { + 0.5, + 0.1, + 0.1, + 10.0 + } +}; + + diff --git a/missions/alder/XLOG_SHORESIDE_18_6_2025_____23_04_26/XLOG_SHORESIDE_18_6_2025_____23_04_26.slog b/missions/alder/XLOG_SHORESIDE_18_6_2025_____23_04_26/XLOG_SHORESIDE_18_6_2025_____23_04_26.slog new file mode 100644 index 0000000..ca84189 --- /dev/null +++ b/missions/alder/XLOG_SHORESIDE_18_6_2025_____23_04_26/XLOG_SHORESIDE_18_6_2025_____23_04_26.slog @@ -0,0 +1,1218 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOG FILE: ./XLOG_SHORESIDE_18_6_2025_____23_04_26/XLOG_SHORESIDE_18_6_2025_____23_04_26.slog +%% FILE OPENED ON Thu Jan 1 08:00:00 1970 +%% LOGSTART 1750259065.405409 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% (1) TIME +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TIME +%% TIME +0.7553048 +%% TIME +%% TIME +0.9568219 +1.157094 +1.358194 +1.558897 +1.761991 +1.964001 +2.167645 +2.369612 +2.570489 +2.77167 +2.972586 +3.174145 +3.374939 +3.575863 +3.778682 +3.980167 +4.181408 +4.382192 +4.583258 +4.784295 +4.98517 +5.186004 +5.39164 +5.691985 +5.894865 +6.095767 +6.296849 +6.497891 +6.698853 +6.8998 +%% TIME +%% TIME +7.101031 +7.302188 +7.503106 +7.703861 +7.904828 +8.105568 +8.306428 +8.507369 +8.708272 +8.909341 +9.110479 +9.311565 +9.514531 +9.81458 +10.01951 +10.22069 +10.42203 +10.62315 +10.82429 +11.02532 +11.22664 +11.42787 +11.62955 +11.83065 +12.03207 +12.23302 +12.43387 +12.63509 +12.83611 +13.03697 +%% TIME +%% TIME +13.23784 +13.43876 +13.63993 +13.8408 +14.0416 +14.24258 +14.44378 +14.64471 +14.84572 +15.04656 +15.24768 +15.44877 +15.6497 +15.85059 +16.05138 +16.25222 +16.45317 +16.65413 +16.85527 +17.05705 +17.25793 +17.45894 +17.66009 +17.86112 +18.06204 +18.26303 +18.46403 +18.66522 +18.86627 +19.06733 +%% TIME +%% TIME +19.26822 +19.4692 +19.67038 +19.87316 +20.07458 +20.27619 +20.47721 +20.6781 +20.87962 +21.08151 +21.28293 +21.48403 +21.68508 +21.88743 +22.08827 +22.28922 +22.4903 +22.69126 +22.89258 +23.09387 +23.29564 +23.49567 +23.69701 +23.89814 +24.09913 +24.30011 +24.501 +24.70181 +24.90279 +25.1056 +%% TIME +%% TIME +25.30645 +25.50726 +25.70811 +25.90901 +26.10997 +26.31089 +26.51183 +26.71286 +26.91385 +27.11485 +27.31578 +27.51669 +27.71752 +27.91842 +28.11939 +28.32023 +28.52121 +28.72349 +28.92455 +29.12551 +29.32649 +29.52744 +29.72851 +29.92954 +30.13041 +30.33138 +30.53251 +30.73355 +30.93464 +31.13566 +%% TIME +%% TIME +31.33643 +31.53724 +31.73806 +31.93903 +32.13995 +32.3408 +32.5421 +32.74301 +32.94433 +33.14528 +33.34606 +33.54712 +33.74802 +33.94905 +34.15936 +34.36034 +34.56131 +34.76236 +34.96391 +35.16515 +35.36596 +35.56714 +35.76822 +35.96903 +36.16999 +36.37098 +36.57189 +36.77378 +36.97393 +37.17497 +%% TIME +%% TIME +37.37593 +37.57683 +37.77756 +37.97849 +38.17927 +38.37999 +38.5809 +38.78171 +38.98264 +39.18372 +39.38441 +39.58536 +39.78637 +39.98719 +40.18801 +40.38883 +40.5897 +40.79063 +40.99178 +41.19272 +41.39355 +41.59469 +41.79566 +41.99649 +42.19743 +42.39823 +42.59904 +42.79996 +43.00099 +43.2019 +%% TIME +%% TIME +43.40277 +43.60349 +43.80718 +44.00818 +44.20923 +44.41015 +44.61098 +44.81308 +45.01405 +45.21507 +45.41613 +45.61701 +45.81798 +46.01885 +46.21989 +46.4208 +46.62163 +46.82254 +47.0235 +47.22452 +47.42558 +47.62643 +47.82734 +48.02829 +48.22912 +48.4301 +48.631 +48.83197 +49.03302 +49.23409 +%% TIME +%% TIME +49.43589 +49.63849 +49.8395 +50.04046 +50.24147 +50.44257 +50.64344 +50.84431 +51.04549 +51.2467 +51.44755 +51.64863 +51.84954 +52.05072 +52.25165 +52.45264 +52.65342 +52.85446 +53.05543 +53.25624 +53.45709 +53.65813 +53.85922 +54.0602 +54.26119 +54.46232 +54.66311 +54.86394 +55.06524 +55.26622 +%% TIME +%% TIME +55.46712 +55.6681 +55.86896 +56.0698 +56.27069 +56.47162 +56.67235 +56.87327 +57.07423 +57.27523 +57.47611 +57.67736 +57.8784 +58.07926 +58.28025 +58.48115 +58.68199 +58.88289 +59.08436 +59.28518 +59.48625 +59.68839 +59.88925 +60.09011 +60.29102 +60.4919 +60.69279 +60.89389 +61.0949 +61.29604 +%% TIME +%% TIME +61.49692 +61.698 +61.89917 +62.10007 +62.30095 +62.50172 +62.70249 +62.90323 +63.10425 +63.305 +63.50573 +63.70647 +63.90742 +64.1083 +64.30932 +64.51018 +64.71129 +64.91213 +65.11322 +65.31419 +65.51513 +65.71602 +65.91683 +66.11783 +66.31867 +66.51951 +66.72034 +66.92117 +67.12209 +67.323 +%% TIME +%% TIME +67.52421 +67.72521 +67.9261 +68.12735 +68.32838 +68.52932 +68.73021 +68.93123 +69.13261 +69.33379 +69.5347 +69.7356 +69.93653 +70.13745 +70.33836 +70.53925 +70.74035 +70.94117 +71.14244 +71.34345 +71.54441 +71.74559 +71.94873 +72.1496 +72.35054 +72.5514 +72.75226 +72.95427 +73.15519 +73.35603 +%% TIME +%% TIME +73.55708 +73.75792 +73.95881 +74.15976 +74.36089 +74.56192 +74.76306 +74.964 +75.16492 +75.36571 +75.56654 +75.76747 +75.96832 +76.16919 +76.37012 +76.57099 +76.77172 +76.97253 +77.17367 +77.37455 +77.57552 +77.77632 +77.97712 +78.17797 +78.37891 +78.57977 +78.78056 +78.98133 +79.18229 +79.38323 +%% TIME +%% TIME +79.58404 +79.78489 +79.98566 +80.18647 +80.3873 +80.58819 +80.7891 +80.98993 +81.19089 +81.39173 +81.59287 +81.79365 +81.99436 +82.19522 +82.39603 +82.5971 +82.79818 +82.99892 +83.19986 +83.40063 +83.60139 +83.8023 +84.00327 +84.20404 +84.40478 +84.60555 +84.80662 +85.00747 +85.20853 +85.40939 +%% TIME +%% TIME +85.6102 +85.81104 +86.01205 +86.21303 +86.41384 +86.61516 +86.81605 +87.01697 +87.21848 +87.41945 +87.61994 +87.82083 +88.02162 +88.22267 +88.42377 +88.62564 +88.82659 +89.02763 +89.22865 +89.4296 +89.63142 +89.83236 +90.03312 +90.23401 +90.43491 +90.63584 +90.83671 +91.03744 +91.23851 +91.43938 +%% TIME +%% TIME +91.64038 +91.8413 +92.04212 +92.24301 +92.44409 +92.64506 +92.84593 +93.04665 +93.24764 +93.44857 +93.6494 +93.85062 +94.05135 +94.25219 +94.45299 +94.65382 +94.85465 +95.05557 +95.25661 +95.45761 +95.65841 +95.85924 +96.06007 +96.26095 +96.46181 +96.66283 +96.86363 +97.06451 +97.26561 +97.46658 +%% TIME +%% TIME +97.66733 +97.86818 +98.06907 +98.26998 +98.47081 +98.67158 +98.87282 +99.07365 +99.27477 +99.47566 +99.67667 +99.87765 +100.0787 +100.2795 +100.4804 +100.6812 +100.8821 +101.0829 +101.2838 +101.4847 +101.6855 +101.8865 +102.0874 +102.2882 +102.4905 +102.6914 +102.893 +103.0939 +103.2949 +103.4959 +%% TIME +%% TIME +103.6968 +103.8994 +104.1003 +104.301 +104.5022 +104.7031 +104.9041 +105.105 +105.3059 +105.5069 +105.7078 +105.9087 +106.1095 +106.3103 +106.5112 +106.712 +106.9129 +107.1141 +107.3151 +107.516 +107.7168 +107.9176 +108.1185 +108.3193 +108.5202 +108.721 +108.9218 +109.1227 +109.3236 +109.5245 +%% TIME +%% TIME +109.7259 +109.9271 +110.1281 +110.3286 +110.5295 +110.7304 +110.9313 +111.1321 +111.3331 +111.534 +111.735 +111.936 +112.1369 +112.3377 +112.539 +112.7404 +112.9414 +113.1422 +113.3433 +113.5443 +113.7454 +113.9464 +114.1473 +114.3481 +114.549 +114.7504 +114.9514 +115.1522 +115.3534 +115.5542 +%% TIME +%% TIME +115.7554 +115.9565 +116.1575 +116.3582 +116.5593 +116.7622 +116.9632 +117.164 +117.3649 +117.5658 +117.7666 +117.9676 +118.1704 +118.3712 +118.5721 +118.7731 +118.9739 +119.175 +119.3758 +119.5769 +119.7777 +119.9786 +120.1795 +120.3896 +120.5904 +120.7914 +120.9925 +121.1934 +121.3943 +121.5952 +%% TIME +%% TIME +121.796 +121.9969 +122.1978 +122.3985 +122.5994 +122.8002 +123.001 +123.202 +123.4029 +123.6035 +123.8044 +124.0053 +124.2063 +124.4072 +124.6081 +124.8094 +125.0104 +125.2114 +125.4124 +125.6134 +125.8146 +126.0156 +126.2165 +126.4173 +126.6182 +126.8192 +127.0201 +127.221 +127.4222 +127.623 +%% TIME +%% TIME +127.824 +128.025 +128.226 +128.4281 +128.6289 +128.8297 +129.031 +129.232 +129.4329 +129.6336 +129.8345 +130.0354 +130.2363 +130.4404 +130.6415 +130.8425 +131.044 +131.2449 +131.446 +131.6469 +131.8478 +132.0488 +132.2497 +132.451 +132.6518 +132.8526 +133.0535 +133.2548 +133.4558 +133.6566 +%% TIME +%% TIME +133.8574 +134.0584 +134.2596 +134.4613 +134.6623 +134.8633 +135.0641 +135.265 +135.466 +135.6668 +135.868 +136.0691 +136.27 +136.471 +136.6718 +136.8732 +137.0741 +137.2751 +137.4762 +137.6771 +137.879 +138.08 +138.2809 +138.4818 +138.6826 +138.8834 +139.0845 +139.2855 +139.4865 +139.6875 +%% TIME +%% TIME +139.8884 +140.0893 +140.2902 +140.4911 +140.6949 +140.8958 +141.097 +141.2982 +141.4991 +141.7002 +141.9012 +142.1019 +142.3029 +142.5041 +142.7052 +142.906 +143.107 +143.3087 +143.5098 +143.7109 +143.9117 +144.1127 +144.3136 +144.5145 +144.7156 +144.9164 +145.1172 +145.3181 +145.519 +145.72 +%% TIME +%% TIME +145.9209 +146.1217 +146.3226 +146.5236 +146.7247 +146.9256 +147.1266 +147.3276 +147.5285 +147.7294 +147.9302 +148.131 +148.3318 +148.5327 +148.734 +148.9348 +149.1357 +149.3366 +149.5377 +149.7385 +149.9394 +150.1407 +150.3417 +150.5427 +150.7437 +150.9447 +151.1456 +151.3465 +151.5475 +151.7484 +%% TIME +%% TIME +151.9492 +152.1503 +152.3512 +152.552 +152.7528 +152.9536 +153.1546 +153.3558 +153.5569 +153.7579 +153.9618 +154.1627 +154.3635 +154.5644 +154.7653 +154.967 +155.1679 +155.3686 +155.5702 +155.7711 +155.9718 +156.1728 +156.3739 +156.5747 +156.7756 +156.9764 +157.1773 +157.3782 +157.5792 +157.7803 +%% TIME +%% TIME +157.9811 +158.1819 +158.3827 +158.5835 +158.7844 +158.9852 +159.1863 +159.3873 +159.5884 +159.7896 +159.9905 +160.195 +160.396 +160.597 +160.7979 +160.9987 +161.1996 +161.4006 +161.6023 +161.8034 +162.0046 +162.2058 +162.4069 +162.6079 +162.8088 +163.0096 +163.2105 +163.4116 +163.6127 +163.8138 +%% TIME +%% TIME +164.0146 +164.2155 +164.4166 +164.6175 +164.8186 +165.0194 +165.2206 +165.4216 +165.6228 +165.8239 +166.0247 +166.2257 +166.4269 +166.6281 +166.8311 +167.032 +167.2332 +167.4342 +167.6352 +167.8412 +168.0436 +168.2437 +168.4448 +168.6464 +168.8475 +169.0489 +169.2497 +169.4505 +169.6516 +169.8525 +%% TIME +%% TIME +170.0537 +170.2548 +170.4558 +170.6571 +170.8581 +171.0591 +171.2603 +171.4613 +171.6623 +171.8633 +172.0645 +172.2682 +172.4691 +172.6704 +172.8716 +173.0726 +173.2736 +173.4746 +173.6757 +173.8768 +174.0776 +174.2784 +174.4794 +174.6803 +174.8811 +175.082 +175.2829 +175.4838 +175.6864 +175.8874 +%% TIME +%% TIME +176.0884 +176.2895 +176.4905 +176.6917 +176.8925 +177.0944 +177.2952 +177.496 +177.697 +177.8998 +178.102 +178.3031 +178.5047 +178.7058 +178.9068 +179.1078 +179.3087 +179.5098 +179.7108 +179.9118 +180.1131 +180.314 +180.5149 +180.7157 +180.9167 +181.1185 +181.3194 +181.5204 +181.7216 +181.9227 +%% TIME +%% TIME +182.1237 +182.3247 +182.5256 +182.7265 +182.9274 +183.1283 +183.3291 +183.5302 +183.7313 +183.9322 +184.1332 +184.334 +184.5351 +184.736 +184.9375 +185.1385 +185.3393 +185.5403 +185.7414 +185.9424 +186.1433 +186.3442 +186.545 +186.7461 +186.947 +187.1478 +187.3486 +187.5501 +187.7513 +187.9523 +%% TIME +%% TIME +188.1532 +188.3541 +188.5564 +188.7588 +188.9597 +189.1608 +189.3616 +189.5624 +189.7634 +189.9644 +190.1653 +190.369 +190.5698 +190.7721 +190.973 +191.174 +191.3751 +191.5762 +191.7773 +191.9784 +192.1795 +192.3804 +192.5815 +192.7823 +192.9832 +193.1843 +193.3854 +193.5864 +193.7876 +193.9885 +%% TIME +%% TIME +194.1897 +194.3907 +194.5915 +194.7925 +194.994 +195.1949 +195.3966 +195.5975 +195.8002 +196.0012 +196.2024 +196.4041 +196.6051 +196.8061 +197.0073 +197.2083 +197.4093 +197.61 +197.8111 +198.0121 +198.2131 +198.414 +198.6149 +198.8161 +199.0171 +199.2182 +199.4193 +199.6202 +199.8213 +200.0222 +%% TIME +%% TIME +200.2232 +200.4243 +200.625 +200.8259 +201.0289 +201.2298 +201.4308 +201.6339 +201.8353 +202.0363 +202.2376 +202.4386 +202.6397 +202.8408 +203.0416 +203.2425 +203.4434 +203.6443 +203.8455 +204.0465 +204.2476 +204.4487 +204.65 +204.8509 +205.0519 +205.2529 +205.454 +205.6549 +205.856 +206.0569 +%% TIME +%% TIME +206.2578 +206.4587 +206.6595 +206.8605 +207.0613 +207.2623 +207.4631 +207.664 +207.8649 +208.0659 +208.2668 +208.4677 +208.6686 +208.8697 +209.0706 +209.2716 +209.4727 +209.6735 +209.8747 +210.0762 +210.2771 +210.4779 +210.6788 +210.8795 +211.0805 +211.2814 +211.4823 +211.6833 +211.8841 +212.0855 +%% TIME +%% TIME +212.2869 +212.4878 +212.6887 +212.8895 +213.0905 +213.292 +213.4929 +213.6939 +213.8954 +214.0963 +214.2973 +214.4981 +214.699 +214.8998 +215.1008 +215.308 +215.509 +215.7099 +215.9108 +216.1116 +216.3125 +216.5136 +216.7145 +216.9152 +217.1187 +217.3197 +217.521 +217.7223 +217.9232 +218.1242 +%% TIME +%% TIME +218.3251 +218.526 +218.727 +218.9305 +219.1316 +219.3327 +219.5338 +219.7349 +219.9364 +220.1373 +220.3383 +220.5394 +220.7404 +220.9415 +221.1424 +221.3435 +221.5444 +221.7454 +221.9463 +222.1473 +222.3485 +222.5494 +222.7503 +222.9514 +223.1525 +223.3536 +223.5546 +223.7558 +223.9569 +224.1578 +%% TIME +%% TIME +224.3591 +224.5622 +224.7632 +224.964 +225.1668 +225.3683 +225.5706 +225.7717 +225.9726 +226.1739 +226.375 +226.5763 +226.7772 +226.9782 +227.1791 +227.3801 +227.5833 +227.7862 +227.9871 +228.1881 +228.3891 +228.5906 diff --git a/missions/alder/alder.moos b/missions/alder/alder.moos index 044b8ae..b3c1a41 100644 --- a/missions/alder/alder.moos +++ b/missions/alder/alder.moos @@ -16,7 +16,7 @@ ProcessConfig = ANTLER Run = MOOSDB @ NewConsole = false //Run = uSimMarineV22 @ NewConsole = false Run = pNodeReporter @ NewConsole = false - //Run = pLogger @ NewConsole = false + Run = pLogger @ NewConsole = false //Run = pMarinePIDV22 @ NewConsole = false Run = pMarineViewer @ NewConsole = false Run = uProcessWatch @ NewConsole = false diff --git a/src/pAUV150/AUV150.cpp b/src/pAUV150/AUV150.cpp index 07571fc..5528b3d 100644 --- a/src/pAUV150/AUV150.cpp +++ b/src/pAUV150/AUV150.cpp @@ -326,6 +326,9 @@ bool AUV150::ListenLoop() m_CommandFrame.rudderLeft = m_control.rtY.DirectLeftRudderServoAngleCmd + 35.0f; m_CommandFrame.rudderRight = m_control.rtY.DirectRightRudderServoAngleCmd + 35.0f; m_CommandFrame.mainThruster = m_control.rtY.MainThrusterSpeedCmd; + m_status.depth_error = m_control.rtY.depth_error; + m_status.heading_error = m_control.rtY.heading_error; + m_status.pitch_error = m_control.rtY.pitch_error; // } // 发送消息 try @@ -663,4 +666,9 @@ void AUV150::postStatusUpdate(std::string prefix) if(m_status.insAltitude > 0) { Notify(prefix+"_ALTITUDE", m_status.insAltitude, m_curr_time); } + + // 发布误差信息 + Notify(prefix+"_HEADING_ERROR", m_status.heading_error, m_curr_time); + Notify(prefix+"_PITCH_ERROR", m_status.pitch_error, m_curr_time); + Notify(prefix+"_DEPTH_ERROR", m_status.depth_error, m_curr_time); } diff --git a/src/pAUV150/AUV150.h b/src/pAUV150/AUV150.h index 61ab5ce..4542334 100644 --- a/src/pAUV150/AUV150.h +++ b/src/pAUV150/AUV150.h @@ -116,6 +116,10 @@ struct AUV150_Status double x; double y; double z; + + double heading_error; + double pitch_error; + double depth_error; }; class AUV150 : public AppCastingMOOSApp diff --git a/src/pAUV150/Controler/Controler.cpp b/src/pAUV150/Controler/Controler.cpp index 45a50b5..218793f 100644 --- a/src/pAUV150/Controler/Controler.cpp +++ b/src/pAUV150/Controler/Controler.cpp @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.37 +// Model version : 5.56 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Wed Jun 18 17:26:02 2025 +// C/C++ source code generated on : Wed Jun 18 22:52:45 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) @@ -19,308 +19,356 @@ // Validation result: Not run // #include "Controler.h" +#include #include "rtwtypes.h" +#include "cmath" // Model step function void Controler::step() { - real_T rtb_DeadZone; - real_T rtb_Filter; + real_T mod_error; real_T rtb_FilterCoefficient; real_T rtb_FilterCoefficient_a; real_T rtb_FilterCoefficient_lc; - real_T rtb_Filter_k; - real_T rtb_Integrator_l; - real_T rtb_Integrator_p; + real_T rtb_Filter_b; + real_T rtb_IntegralGain; + real_T rtb_Integrator_d; + real_T rtb_Switch; + real_T rtb_depth_error; + int8_T rtb_Switch1; int8_T tmp; - int8_T tmp_0; boolean_T rtb_RelationalOperator; + boolean_T rtb_fixforDTpropagationissue; // Outputs for Atomic SubSystem: '/Controler' - // Sum: '/Sum' incorporates: + // MATLAB Function: '/MATLAB Function' incorporates: // Inport: '/heading_cmd' // Inport: '/psi' - rtb_Filter = rtU.heading_cmd - rtU.psi; + mod_error = rtU.heading_cmd - rtU.psi; + if (!std::isnan(mod_error)) { + if (std::isinf(mod_error)) { + mod_error = (rtNaN); + } else if (mod_error == 0.0) { + mod_error = 0.0; + } else { + mod_error = std::fmod(mod_error, 360.0); + if (mod_error == 0.0) { + mod_error = 0.0; + } else if (mod_error < 0.0) { + mod_error += 360.0; + } + } + } - // Gain: '/Integral Gain' - rtb_Integrator_l = rtP.pid_heading.I * rtb_Filter; + if (mod_error >= 180.0) { + mod_error -= 360.0; + } - // Gain: '/Filter Coefficient' incorporates: - // DiscreteIntegrator: '/Filter' - // Gain: '/Derivative Gain' - // Sum: '/SumD' + // End of MATLAB Function: '/MATLAB Function' - rtb_FilterCoefficient = (rtP.pid_heading.D * rtb_Filter - rtDW.Filter_DSTATE) * + // Gain: '/Filter Coefficient' incorporates: + // DiscreteIntegrator: '/Filter' + // Gain: '/Derivative Gain' + // Sum: '/SumD' + + rtb_FilterCoefficient = (rtP.pid_heading.D * mod_error - rtDW.Filter_DSTATE) * rtP.pid_heading.N; - // Sum: '/Sum' incorporates: - // DiscreteIntegrator: '/Integrator' - // Gain: '/Proportional Gain' + // Sum: '/Sum' incorporates: + // DiscreteIntegrator: '/Integrator' + // Gain: '/Proportional Gain' - rtb_Filter = (rtP.pid_heading.P * rtb_Filter + rtDW.Integrator_DSTATE) + + rtb_IntegralGain = (rtP.pid_heading.P * mod_error + rtDW.Integrator_DSTATE) + rtb_FilterCoefficient; - // DeadZone: '/DeadZone' incorporates: - // Saturate: '/Saturation' - - if (rtb_Filter > 35.0) { - rtb_Filter_k = rtb_Filter - 35.0; - - // Switch: '/Switch1' incorporates: - // Constant: '/Constant' - - tmp = 1; + // Saturate: '/Saturation' incorporates: + // DeadZone: '/DeadZone' + if (rtb_IntegralGain > 35.0) { // Outport: '/DirectUpperRudderServoAngleCmd' rtY.DirectUpperRudderServoAngleCmd = 35.0; + rtb_IntegralGain -= 35.0; } else { - if (rtb_Filter >= -35.0) { - rtb_Filter_k = 0.0; - } else { - rtb_Filter_k = rtb_Filter - -35.0; - } - - // Switch: '/Switch1' incorporates: - // Constant: '/Constant2' - - tmp = -1; - if (rtb_Filter < -35.0) { + if (rtb_IntegralGain < -35.0) { // Outport: '/DirectUpperRudderServoAngleCmd' rtY.DirectUpperRudderServoAngleCmd = -35.0; } else { // Outport: '/DirectUpperRudderServoAngleCmd' - rtY.DirectUpperRudderServoAngleCmd = rtb_Filter; + rtY.DirectUpperRudderServoAngleCmd = rtb_IntegralGain; + } + + if (rtb_IntegralGain >= -35.0) { + rtb_IntegralGain = 0.0; + } else { + rtb_IntegralGain -= -35.0; } } - // End of DeadZone: '/DeadZone' + // End of Saturate: '/Saturation' - // RelationalOperator: '/Relational Operator' incorporates: - // Constant: '/Clamping_zero' + // RelationalOperator: '/Relational Operator' incorporates: + // Constant: '/Clamping_zero' - rtb_RelationalOperator = (rtb_Filter_k != 0.0); + rtb_RelationalOperator = (rtb_IntegralGain != 0.0); + + // RelationalOperator: '/fix for DT propagation issue' incorporates: + // Constant: '/Clamping_zero' + + rtb_fixforDTpropagationissue = (rtb_IntegralGain > 0.0); + + // Gain: '/Integral Gain' + rtb_IntegralGain = rtP.pid_heading.I * mod_error; + + // Switch: '/Switch1' incorporates: + // Constant: '/Constant' + // Constant: '/Constant2' + + if (rtb_fixforDTpropagationissue) { + tmp = 1; + } else { + tmp = -1; + } + + // Switch: '/Switch2' incorporates: + // Constant: '/Clamping_zero' + // Constant: '/Constant3' + // Constant: '/Constant4' + // RelationalOperator: '/fix for DT propagation issue1' + + if (rtb_IntegralGain > 0.0) { + rtb_Switch1 = 1; + } else { + rtb_Switch1 = -1; + } + + // Switch: '/Switch' incorporates: + // Constant: '/Constant1' + // Logic: '/AND3' + // RelationalOperator: '/Equal1' + // Switch: '/Switch1' + // Switch: '/Switch2' + + if (rtb_RelationalOperator && (tmp == rtb_Switch1)) { + rtb_Switch = 0.0; + } else { + rtb_Switch = rtb_IntegralGain; + } + + // End of Switch: '/Switch' // Sum: '/Sum1' incorporates: // Inport: '/depth_cmd' // Inport: '/z' - rtb_Filter_k = rtU.z - rtU.depth_cmd; + rtb_depth_error = rtU.z - rtU.depth_cmd; - // Gain: '/Integral Gain' - rtb_Filter = 0.0 * rtb_Filter_k; + // Gain: '/Integral Gain' + rtb_IntegralGain = rtP.pid_depth.I * rtb_depth_error; - // Gain: '/Filter Coefficient' incorporates: - // DiscreteIntegrator: '/Filter' - // Gain: '/Derivative Gain' - // Sum: '/SumD' + // Gain: '/Filter Coefficient' incorporates: + // DiscreteIntegrator: '/Filter' + // Gain: '/Derivative Gain' + // Sum: '/SumD' - rtb_FilterCoefficient_lc = (0.0 * rtb_Filter_k - rtDW.Filter_DSTATE_m) * 10.0; + rtb_FilterCoefficient_lc = (rtP.pid_depth.D * rtb_depth_error - + rtDW.Filter_DSTATE_m) * rtP.pid_depth.N; - // Sum: '/Sum' incorporates: - // DiscreteIntegrator: '/Integrator' - // Gain: '/Proportional Gain' + // Sum: '/Sum' incorporates: + // DiscreteIntegrator: '/Integrator' + // Gain: '/Proportional Gain' - rtb_Filter_k = (2.0 * rtb_Filter_k + rtDW.Integrator_DSTATE_o) + - rtb_FilterCoefficient_lc; + rtb_Filter_b = (rtP.pid_depth.P * rtb_depth_error + rtDW.Integrator_DSTATE_o) + + rtb_FilterCoefficient_lc; - // DeadZone: '/DeadZone' incorporates: - // Saturate: '/Saturation' + // DeadZone: '/DeadZone' + if (rtb_Filter_b > 30.0) { + rtb_Integrator_d = rtb_Filter_b - 30.0; - if (rtb_Filter_k > 30.0) { - rtb_Integrator_p = rtb_Filter_k - 30.0; - rtb_Filter_k = 30.0; + // Switch: '/Switch1' incorporates: + // Constant: '/Constant' + + tmp = 1; } else { - if (rtb_Filter_k >= -30.0) { - rtb_Integrator_p = 0.0; + if (rtb_Filter_b >= -30.0) { + rtb_Integrator_d = 0.0; } else { - rtb_Integrator_p = rtb_Filter_k - -30.0; + rtb_Integrator_d = rtb_Filter_b - -30.0; } - if (rtb_Filter_k < -30.0) { - rtb_Filter_k = -30.0; - } + // Switch: '/Switch1' incorporates: + // Constant: '/Constant2' + + tmp = -1; } - // End of DeadZone: '/DeadZone' + // End of DeadZone: '/DeadZone' + + // Switch: '/Switch2' incorporates: + // Constant: '/Clamping_zero' + // Constant: '/Constant3' + // Constant: '/Constant4' + // RelationalOperator: '/fix for DT propagation issue1' + + if (rtb_IntegralGain > 0.0) { + rtb_Switch1 = 1; + } else { + rtb_Switch1 = -1; + } + + // Switch: '/Switch' incorporates: + // Constant: '/Clamping_zero' + // Constant: '/Constant1' + // Logic: '/AND3' + // RelationalOperator: '/Equal1' + // RelationalOperator: '/Relational Operator' + // Switch: '/Switch1' + // Switch: '/Switch2' + + if ((rtb_Integrator_d != 0.0) && (tmp == rtb_Switch1)) { + rtb_Integrator_d = 0.0; + } else { + rtb_Integrator_d = rtb_IntegralGain; + } + + // End of Switch: '/Switch' + + // Saturate: '/Saturation' + if (rtb_Filter_b > 30.0) { + rtb_Filter_b = 30.0; + } else if (rtb_Filter_b < -30.0) { + rtb_Filter_b = -30.0; + } // Sum: '/Sum2' incorporates: // Inport: '/theta' - // Saturate: '/Saturation' + // Saturate: '/Saturation' - rtb_Filter_k -= rtU.theta; + rtb_Filter_b -= rtU.theta; - // Gain: '/Filter Coefficient' incorporates: - // DiscreteIntegrator: '/Filter' - // Gain: '/Derivative Gain' - // Sum: '/SumD' + // Gain: '/Filter Coefficient' incorporates: + // DiscreteIntegrator: '/Filter' + // Gain: '/Derivative Gain' + // Sum: '/SumD' - rtb_FilterCoefficient_a = (rtP.pid_pitch.D * rtb_Filter_k - + rtb_FilterCoefficient_a = (rtP.pid_pitch.D * rtb_Filter_b - rtDW.Filter_DSTATE_l) * rtP.pid_pitch.N; - // Sum: '/Sum' incorporates: - // DiscreteIntegrator: '/Integrator' - // Gain: '/Proportional Gain' + // Sum: '/Sum' incorporates: + // DiscreteIntegrator: '/Integrator' + // Gain: '/Proportional Gain' - rtb_DeadZone = (rtP.pid_pitch.P * rtb_Filter_k + rtDW.Integrator_DSTATE_f) + - rtb_FilterCoefficient_a; + rtb_IntegralGain = (rtP.pid_pitch.P * rtb_Filter_b + rtDW.Integrator_DSTATE_f) + + rtb_FilterCoefficient_a; - // Saturate: '/Saturation' incorporates: - // DeadZone: '/DeadZone' + // Saturate: '/Saturation' incorporates: + // DeadZone: '/DeadZone' - if (rtb_DeadZone > 35.0) { + if (rtb_IntegralGain > 35.0) { // Outport: '/DirectLeftRudderServoAngleCmd' rtY.DirectLeftRudderServoAngleCmd = 35.0; - rtb_DeadZone -= 35.0; + rtb_IntegralGain -= 35.0; } else { - if (rtb_DeadZone < -35.0) { + if (rtb_IntegralGain < -35.0) { // Outport: '/DirectLeftRudderServoAngleCmd' rtY.DirectLeftRudderServoAngleCmd = -35.0; } else { // Outport: '/DirectLeftRudderServoAngleCmd' - rtY.DirectLeftRudderServoAngleCmd = rtb_DeadZone; + rtY.DirectLeftRudderServoAngleCmd = rtb_IntegralGain; } - if (rtb_DeadZone >= -35.0) { - rtb_DeadZone = 0.0; + if (rtb_IntegralGain >= -35.0) { + rtb_IntegralGain = 0.0; } else { - rtb_DeadZone -= -35.0; + rtb_IntegralGain -= -35.0; } } - // End of Saturate: '/Saturation' + // End of Saturate: '/Saturation' - // Gain: '/Integral Gain' - rtb_Filter_k *= rtP.pid_pitch.I; + // RelationalOperator: '/Relational Operator' incorporates: + // Constant: '/Clamping_zero' - // Switch: '/Switch2' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant3' - // Constant: '/Constant4' - // RelationalOperator: '/fix for DT propagation issue1' + rtb_RelationalOperator = (rtb_IntegralGain != 0.0); - if (rtb_Integrator_l > 0.0) { - tmp_0 = 1; + // Switch: '/Switch1' incorporates: + // Constant: '/Clamping_zero' + // Constant: '/Constant' + // Constant: '/Constant2' + // RelationalOperator: '/fix for DT propagation issue' + + if (rtb_IntegralGain > 0.0) { + rtb_Switch1 = 1; } else { - tmp_0 = -1; + rtb_Switch1 = -1; } - // Switch: '/Switch' incorporates: - // Constant: '/Constant1' - // Logic: '/AND3' - // RelationalOperator: '/Equal1' - // Switch: '/Switch1' - // Switch: '/Switch2' + // End of Switch: '/Switch1' - if (rtb_RelationalOperator && (tmp == tmp_0)) { - rtb_Integrator_l = 0.0; - } + // Gain: '/Integral Gain' + rtb_IntegralGain = rtP.pid_pitch.I * rtb_Filter_b; - // Update for DiscreteIntegrator: '/Integrator' incorporates: - // Switch: '/Switch' - - rtDW.Integrator_DSTATE += rtb_Integrator_l; + // Update for DiscreteIntegrator: '/Integrator' + rtDW.Integrator_DSTATE += rtb_Switch; if (rtDW.Integrator_DSTATE > 15.0) { rtDW.Integrator_DSTATE = 15.0; } else if (rtDW.Integrator_DSTATE < -15.0) { rtDW.Integrator_DSTATE = -15.0; } - // End of Update for DiscreteIntegrator: '/Integrator' + // End of Update for DiscreteIntegrator: '/Integrator' - // Update for DiscreteIntegrator: '/Filter' + // Update for DiscreteIntegrator: '/Filter' rtDW.Filter_DSTATE += 0.1 * rtb_FilterCoefficient; - // Switch: '/Switch1' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant' - // Constant: '/Constant2' - // RelationalOperator: '/fix for DT propagation issue' - - if (rtb_Integrator_p > 0.0) { - tmp = 1; - } else { - tmp = -1; - } - - // Switch: '/Switch' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant1' - // Logic: '/AND3' - // RelationalOperator: '/Equal1' - // RelationalOperator: '/Relational Operator' - // Switch: '/Switch1' - // Switch: '/Switch2' - - if ((rtb_Integrator_p != 0.0) && (tmp == -1)) { - rtb_Filter = 0.0; - } - - // Update for DiscreteIntegrator: '/Integrator' incorporates: - // Switch: '/Switch' - - rtDW.Integrator_DSTATE_o += rtb_Filter; + // Update for DiscreteIntegrator: '/Integrator' + rtDW.Integrator_DSTATE_o += rtb_Integrator_d; if (rtDW.Integrator_DSTATE_o > 10.0) { rtDW.Integrator_DSTATE_o = 10.0; } else if (rtDW.Integrator_DSTATE_o < -10.0) { rtDW.Integrator_DSTATE_o = -10.0; } - // End of Update for DiscreteIntegrator: '/Integrator' + // End of Update for DiscreteIntegrator: '/Integrator' - // Update for DiscreteIntegrator: '/Filter' + // Update for DiscreteIntegrator: '/Filter' rtDW.Filter_DSTATE_m += 0.1 * rtb_FilterCoefficient_lc; - // Switch: '/Switch1' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant' - // Constant: '/Constant2' - // RelationalOperator: '/fix for DT propagation issue' + // Switch: '/Switch2' incorporates: + // Constant: '/Clamping_zero' + // Constant: '/Constant3' + // Constant: '/Constant4' + // RelationalOperator: '/fix for DT propagation issue1' - if (rtb_DeadZone > 0.0) { + if (rtb_IntegralGain > 0.0) { tmp = 1; } else { tmp = -1; } - // Switch: '/Switch2' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant3' - // Constant: '/Constant4' - // RelationalOperator: '/fix for DT propagation issue1' + // Switch: '/Switch' incorporates: + // Constant: '/Constant1' + // Logic: '/AND3' + // RelationalOperator: '/Equal1' + // Switch: '/Switch2' - if (rtb_Filter_k > 0.0) { - tmp_0 = 1; - } else { - tmp_0 = -1; + if (rtb_RelationalOperator && (rtb_Switch1 == tmp)) { + rtb_IntegralGain = 0.0; } - // Switch: '/Switch' incorporates: - // Constant: '/Clamping_zero' - // Constant: '/Constant1' - // Logic: '/AND3' - // RelationalOperator: '/Equal1' - // RelationalOperator: '/Relational Operator' - // Switch: '/Switch1' - // Switch: '/Switch2' + // Update for DiscreteIntegrator: '/Integrator' incorporates: + // Switch: '/Switch' - if ((rtb_DeadZone != 0.0) && (tmp == tmp_0)) { - rtb_Filter_k = 0.0; - } - - // Update for DiscreteIntegrator: '/Integrator' incorporates: - // Switch: '/Switch' - - rtDW.Integrator_DSTATE_f += rtb_Filter_k; + rtDW.Integrator_DSTATE_f += rtb_IntegralGain; if (rtDW.Integrator_DSTATE_f > 15.0) { rtDW.Integrator_DSTATE_f = 15.0; } else if (rtDW.Integrator_DSTATE_f < -15.0) { rtDW.Integrator_DSTATE_f = -15.0; } - // End of Update for DiscreteIntegrator: '/Integrator' + // End of Update for DiscreteIntegrator: '/Integrator' - // Update for DiscreteIntegrator: '/Filter' + // Update for DiscreteIntegrator: '/Filter' rtDW.Filter_DSTATE_l += 0.1 * rtb_FilterCoefficient_a; // End of Outputs for SubSystem: '/Controler' @@ -339,6 +387,15 @@ void Controler::step() // Constant: '/Constant4' rtY.DirectRightRudderServoAngleCmd = 1.0; + + // Outport: '/heading_error' + rtY.heading_error = mod_error; + + // Outport: '/pitch_error' + rtY.pitch_error = rtb_Filter_b; + + // Outport: '/depth_error' + rtY.depth_error = rtb_depth_error; } // Model initialize function diff --git a/src/pAUV150/Controler/Controler.h b/src/pAUV150/Controler/Controler.h index b04cd7a..bae67cf 100644 --- a/src/pAUV150/Controler/Controler.h +++ b/src/pAUV150/Controler/Controler.h @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.37 +// Model version : 5.56 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Wed Jun 18 17:26:02 2025 +// C/C++ source code generated on : Wed Jun 18 22:52:45 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) @@ -25,6 +25,13 @@ #include "rt_nonfinite.h" #include "Controler_types.h" +extern "C" +{ + +#include "rtGetNaN.h" + +} + // Class declaration for model Controler class Controler final { @@ -32,12 +39,12 @@ class Controler final public: // Block signals and states (default storage) for system '' struct DW { - real_T Integrator_DSTATE; // '/Integrator' - real_T Filter_DSTATE; // '/Filter' - real_T Integrator_DSTATE_o; // '/Integrator' - real_T Filter_DSTATE_m; // '/Filter' - real_T Integrator_DSTATE_f; // '/Integrator' - real_T Filter_DSTATE_l; // '/Filter' + real_T Integrator_DSTATE; // '/Integrator' + real_T Filter_DSTATE; // '/Filter' + real_T Integrator_DSTATE_o; // '/Integrator' + real_T Filter_DSTATE_m; // '/Filter' + real_T Integrator_DSTATE_f; // '/Integrator' + real_T Filter_DSTATE_l; // '/Filter' }; // External inputs (root inport signals with default storage) @@ -70,23 +77,33 @@ class Controler final // '/DirectLeftRudderServoAngleCmd' real_T DirectRightRudderServoAngleCmd; // '/DirectRightRudderServoAngleCmd' + real_T heading_error; // '/heading_error' + real_T pitch_error; // '/pitch_error' + real_T depth_error; // '/depth_error' }; // Parameters (default storage) struct P { + struct_n3jlyiLoC0PV1TieyhpPwD pid_depth;// Variable: pid_depth + // Referenced by: + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' + struct_n3jlyiLoC0PV1TieyhpPwD pid_heading;// Variable: pid_heading // Referenced by: - // '/Derivative Gain' - // '/Integral Gain' - // '/Filter Coefficient' - // '/Proportional Gain' + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' struct_n3jlyiLoC0PV1TieyhpPwD pid_pitch;// Variable: pid_pitch // Referenced by: - // '/Derivative Gain' - // '/Integral Gain' - // '/Filter Coefficient' - // '/Proportional Gain' + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' }; @@ -145,7 +162,7 @@ class Controler final //- // These blocks were eliminated from the model due to optimizations: // -// Block '/Scope1' : Unused code path elimination +// Block '/Scope' : Unused code path elimination //- @@ -167,171 +184,172 @@ class Controler final // // '' : 'SimModel0618' // '' : 'SimModel0618/Controler' -// '' : 'SimModel0618/Controler/PID Controller' -// '' : 'SimModel0618/Controler/PID Controller1' -// '' : 'SimModel0618/Controler/PID Controller2' -// '' : 'SimModel0618/Controler/PID Controller/Anti-windup' -// '' : 'SimModel0618/Controler/PID Controller/D Gain' -// '' : 'SimModel0618/Controler/PID Controller/External Derivative' -// '' : 'SimModel0618/Controler/PID Controller/Filter' -// '' : 'SimModel0618/Controler/PID Controller/Filter ICs' -// '' : 'SimModel0618/Controler/PID Controller/I Gain' -// '' : 'SimModel0618/Controler/PID Controller/Ideal P Gain' -// '' : 'SimModel0618/Controler/PID Controller/Ideal P Gain Fdbk' -// '' : 'SimModel0618/Controler/PID Controller/Integrator' -// '' : 'SimModel0618/Controler/PID Controller/Integrator ICs' -// '' : 'SimModel0618/Controler/PID Controller/N Copy' -// '' : 'SimModel0618/Controler/PID Controller/N Gain' -// '' : 'SimModel0618/Controler/PID Controller/P Copy' -// '' : 'SimModel0618/Controler/PID Controller/Parallel P Gain' -// '' : 'SimModel0618/Controler/PID Controller/Reset Signal' -// '' : 'SimModel0618/Controler/PID Controller/Saturation' -// '' : 'SimModel0618/Controler/PID Controller/Saturation Fdbk' -// '' : 'SimModel0618/Controler/PID Controller/Sum' -// '' : 'SimModel0618/Controler/PID Controller/Sum Fdbk' -// '' : 'SimModel0618/Controler/PID Controller/Tracking Mode' -// '' : 'SimModel0618/Controler/PID Controller/Tracking Mode Sum' -// '' : 'SimModel0618/Controler/PID Controller/Tsamp - Integral' -// '' : 'SimModel0618/Controler/PID Controller/Tsamp - Ngain' -// '' : 'SimModel0618/Controler/PID Controller/postSat Signal' -// '' : 'SimModel0618/Controler/PID Controller/preInt Signal' -// '' : 'SimModel0618/Controler/PID Controller/preSat Signal' -// '' : 'SimModel0618/Controler/PID Controller/Anti-windup/Disc. Clamping Parallel' -// '' : 'SimModel0618/Controler/PID Controller/Anti-windup/Disc. Clamping Parallel/Dead Zone' -// '' : 'SimModel0618/Controler/PID Controller/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' -// '' : 'SimModel0618/Controler/PID Controller/D Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller/External Derivative/Error' -// '' : 'SimModel0618/Controler/PID Controller/Filter/Disc. Forward Euler Filter' -// '' : 'SimModel0618/Controler/PID Controller/Filter ICs/Internal IC - Filter' -// '' : 'SimModel0618/Controler/PID Controller/I Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller/Ideal P Gain/Passthrough' -// '' : 'SimModel0618/Controler/PID Controller/Ideal P Gain Fdbk/Disabled' -// '' : 'SimModel0618/Controler/PID Controller/Integrator/Discrete' -// '' : 'SimModel0618/Controler/PID Controller/Integrator ICs/Internal IC' -// '' : 'SimModel0618/Controler/PID Controller/N Copy/Disabled' -// '' : 'SimModel0618/Controler/PID Controller/N Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller/P Copy/Disabled' -// '' : 'SimModel0618/Controler/PID Controller/Parallel P Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller/Reset Signal/Disabled' -// '' : 'SimModel0618/Controler/PID Controller/Saturation/Enabled' -// '' : 'SimModel0618/Controler/PID Controller/Saturation Fdbk/Disabled' -// '' : 'SimModel0618/Controler/PID Controller/Sum/Sum_PID' -// '' : 'SimModel0618/Controler/PID Controller/Sum Fdbk/Disabled' -// '' : 'SimModel0618/Controler/PID Controller/Tracking Mode/Disabled' -// '' : 'SimModel0618/Controler/PID Controller/Tracking Mode Sum/Passthrough' -// '' : 'SimModel0618/Controler/PID Controller/Tsamp - Integral/TsSignalSpecification' -// '' : 'SimModel0618/Controler/PID Controller/Tsamp - Ngain/Passthrough' -// '' : 'SimModel0618/Controler/PID Controller/postSat Signal/Forward_Path' -// '' : 'SimModel0618/Controler/PID Controller/preInt Signal/Internal PreInt' -// '' : 'SimModel0618/Controler/PID Controller/preSat Signal/Forward_Path' -// '' : 'SimModel0618/Controler/PID Controller1/Anti-windup' -// '' : 'SimModel0618/Controler/PID Controller1/D Gain' -// '' : 'SimModel0618/Controler/PID Controller1/External Derivative' -// '' : 'SimModel0618/Controler/PID Controller1/Filter' -// '' : 'SimModel0618/Controler/PID Controller1/Filter ICs' -// '' : 'SimModel0618/Controler/PID Controller1/I Gain' -// '' : 'SimModel0618/Controler/PID Controller1/Ideal P Gain' -// '' : 'SimModel0618/Controler/PID Controller1/Ideal P Gain Fdbk' -// '' : 'SimModel0618/Controler/PID Controller1/Integrator' -// '' : 'SimModel0618/Controler/PID Controller1/Integrator ICs' -// '' : 'SimModel0618/Controler/PID Controller1/N Copy' -// '' : 'SimModel0618/Controler/PID Controller1/N Gain' -// '' : 'SimModel0618/Controler/PID Controller1/P Copy' -// '' : 'SimModel0618/Controler/PID Controller1/Parallel P Gain' -// '' : 'SimModel0618/Controler/PID Controller1/Reset Signal' -// '' : 'SimModel0618/Controler/PID Controller1/Saturation' -// '' : 'SimModel0618/Controler/PID Controller1/Saturation Fdbk' -// '' : 'SimModel0618/Controler/PID Controller1/Sum' -// '' : 'SimModel0618/Controler/PID Controller1/Sum Fdbk' -// '' : 'SimModel0618/Controler/PID Controller1/Tracking Mode' -// '' : 'SimModel0618/Controler/PID Controller1/Tracking Mode Sum' -// '' : 'SimModel0618/Controler/PID Controller1/Tsamp - Integral' -// '' : 'SimModel0618/Controler/PID Controller1/Tsamp - Ngain' -// '' : 'SimModel0618/Controler/PID Controller1/postSat Signal' -// '' : 'SimModel0618/Controler/PID Controller1/preInt Signal' -// '' : 'SimModel0618/Controler/PID Controller1/preSat Signal' -// '' : 'SimModel0618/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel' -// '' : 'SimModel0618/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel/Dead Zone' -// '' : 'SimModel0618/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' -// '' : 'SimModel0618/Controler/PID Controller1/D Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller1/External Derivative/Error' -// '' : 'SimModel0618/Controler/PID Controller1/Filter/Disc. Forward Euler Filter' -// '' : 'SimModel0618/Controler/PID Controller1/Filter ICs/Internal IC - Filter' -// '' : 'SimModel0618/Controler/PID Controller1/I Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller1/Ideal P Gain/Passthrough' -// '' : 'SimModel0618/Controler/PID Controller1/Ideal P Gain Fdbk/Disabled' -// '' : 'SimModel0618/Controler/PID Controller1/Integrator/Discrete' -// '' : 'SimModel0618/Controler/PID Controller1/Integrator ICs/Internal IC' -// '' : 'SimModel0618/Controler/PID Controller1/N Copy/Disabled' -// '' : 'SimModel0618/Controler/PID Controller1/N Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller1/P Copy/Disabled' -// '' : 'SimModel0618/Controler/PID Controller1/Parallel P Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller1/Reset Signal/Disabled' -// '' : 'SimModel0618/Controler/PID Controller1/Saturation/Enabled' -// '' : 'SimModel0618/Controler/PID Controller1/Saturation Fdbk/Disabled' -// '' : 'SimModel0618/Controler/PID Controller1/Sum/Sum_PID' -// '' : 'SimModel0618/Controler/PID Controller1/Sum Fdbk/Disabled' -// '' : 'SimModel0618/Controler/PID Controller1/Tracking Mode/Disabled' -// '' : 'SimModel0618/Controler/PID Controller1/Tracking Mode Sum/Passthrough' -// '' : 'SimModel0618/Controler/PID Controller1/Tsamp - Integral/TsSignalSpecification' -// '' : 'SimModel0618/Controler/PID Controller1/Tsamp - Ngain/Passthrough' -// '' : 'SimModel0618/Controler/PID Controller1/postSat Signal/Forward_Path' -// '' : 'SimModel0618/Controler/PID Controller1/preInt Signal/Internal PreInt' -// '' : 'SimModel0618/Controler/PID Controller1/preSat Signal/Forward_Path' -// '' : 'SimModel0618/Controler/PID Controller2/Anti-windup' -// '' : 'SimModel0618/Controler/PID Controller2/D Gain' -// '' : 'SimModel0618/Controler/PID Controller2/External Derivative' -// '' : 'SimModel0618/Controler/PID Controller2/Filter' -// '' : 'SimModel0618/Controler/PID Controller2/Filter ICs' -// '' : 'SimModel0618/Controler/PID Controller2/I Gain' -// '' : 'SimModel0618/Controler/PID Controller2/Ideal P Gain' -// '' : 'SimModel0618/Controler/PID Controller2/Ideal P Gain Fdbk' -// '' : 'SimModel0618/Controler/PID Controller2/Integrator' -// '' : 'SimModel0618/Controler/PID Controller2/Integrator ICs' -// '' : 'SimModel0618/Controler/PID Controller2/N Copy' -// '' : 'SimModel0618/Controler/PID Controller2/N Gain' -// '' : 'SimModel0618/Controler/PID Controller2/P Copy' -// '' : 'SimModel0618/Controler/PID Controller2/Parallel P Gain' -// '' : 'SimModel0618/Controler/PID Controller2/Reset Signal' -// '' : 'SimModel0618/Controler/PID Controller2/Saturation' -// '' : 'SimModel0618/Controler/PID Controller2/Saturation Fdbk' -// '' : 'SimModel0618/Controler/PID Controller2/Sum' -// '' : 'SimModel0618/Controler/PID Controller2/Sum Fdbk' -// '' : 'SimModel0618/Controler/PID Controller2/Tracking Mode' -// '' : 'SimModel0618/Controler/PID Controller2/Tracking Mode Sum' -// '' : 'SimModel0618/Controler/PID Controller2/Tsamp - Integral' -// '' : 'SimModel0618/Controler/PID Controller2/Tsamp - Ngain' -// '' : 'SimModel0618/Controler/PID Controller2/postSat Signal' -// '' : 'SimModel0618/Controler/PID Controller2/preInt Signal' -// '' : 'SimModel0618/Controler/PID Controller2/preSat Signal' -// '' : 'SimModel0618/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel' -// '' : 'SimModel0618/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel/Dead Zone' -// '' : 'SimModel0618/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' -// '' : 'SimModel0618/Controler/PID Controller2/D Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller2/External Derivative/Error' -// '' : 'SimModel0618/Controler/PID Controller2/Filter/Disc. Forward Euler Filter' -// '' : 'SimModel0618/Controler/PID Controller2/Filter ICs/Internal IC - Filter' -// '' : 'SimModel0618/Controler/PID Controller2/I Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller2/Ideal P Gain/Passthrough' -// '' : 'SimModel0618/Controler/PID Controller2/Ideal P Gain Fdbk/Disabled' -// '' : 'SimModel0618/Controler/PID Controller2/Integrator/Discrete' -// '' : 'SimModel0618/Controler/PID Controller2/Integrator ICs/Internal IC' -// '' : 'SimModel0618/Controler/PID Controller2/N Copy/Disabled' -// '' : 'SimModel0618/Controler/PID Controller2/N Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller2/P Copy/Disabled' -// '' : 'SimModel0618/Controler/PID Controller2/Parallel P Gain/Internal Parameters' -// '' : 'SimModel0618/Controler/PID Controller2/Reset Signal/Disabled' -// '' : 'SimModel0618/Controler/PID Controller2/Saturation/Enabled' -// '' : 'SimModel0618/Controler/PID Controller2/Saturation Fdbk/Disabled' -// '' : 'SimModel0618/Controler/PID Controller2/Sum/Sum_PID' -// '' : 'SimModel0618/Controler/PID Controller2/Sum Fdbk/Disabled' -// '' : 'SimModel0618/Controler/PID Controller2/Tracking Mode/Disabled' -// '' : 'SimModel0618/Controler/PID Controller2/Tracking Mode Sum/Passthrough' -// '' : 'SimModel0618/Controler/PID Controller2/Tsamp - Integral/TsSignalSpecification' -// '' : 'SimModel0618/Controler/PID Controller2/Tsamp - Ngain/Passthrough' -// '' : 'SimModel0618/Controler/PID Controller2/postSat Signal/Forward_Path' -// '' : 'SimModel0618/Controler/PID Controller2/preInt Signal/Internal PreInt' -// '' : 'SimModel0618/Controler/PID Controller2/preSat Signal/Forward_Path' +// '' : 'SimModel0618/Controler/MATLAB Function' +// '' : 'SimModel0618/Controler/PID Controller' +// '' : 'SimModel0618/Controler/PID Controller1' +// '' : 'SimModel0618/Controler/PID Controller2' +// '' : 'SimModel0618/Controler/PID Controller/Anti-windup' +// '' : 'SimModel0618/Controler/PID Controller/D Gain' +// '' : 'SimModel0618/Controler/PID Controller/External Derivative' +// '' : 'SimModel0618/Controler/PID Controller/Filter' +// '' : 'SimModel0618/Controler/PID Controller/Filter ICs' +// '' : 'SimModel0618/Controler/PID Controller/I Gain' +// '' : 'SimModel0618/Controler/PID Controller/Ideal P Gain' +// '' : 'SimModel0618/Controler/PID Controller/Ideal P Gain Fdbk' +// '' : 'SimModel0618/Controler/PID Controller/Integrator' +// '' : 'SimModel0618/Controler/PID Controller/Integrator ICs' +// '' : 'SimModel0618/Controler/PID Controller/N Copy' +// '' : 'SimModel0618/Controler/PID Controller/N Gain' +// '' : 'SimModel0618/Controler/PID Controller/P Copy' +// '' : 'SimModel0618/Controler/PID Controller/Parallel P Gain' +// '' : 'SimModel0618/Controler/PID Controller/Reset Signal' +// '' : 'SimModel0618/Controler/PID Controller/Saturation' +// '' : 'SimModel0618/Controler/PID Controller/Saturation Fdbk' +// '' : 'SimModel0618/Controler/PID Controller/Sum' +// '' : 'SimModel0618/Controler/PID Controller/Sum Fdbk' +// '' : 'SimModel0618/Controler/PID Controller/Tracking Mode' +// '' : 'SimModel0618/Controler/PID Controller/Tracking Mode Sum' +// '' : 'SimModel0618/Controler/PID Controller/Tsamp - Integral' +// '' : 'SimModel0618/Controler/PID Controller/Tsamp - Ngain' +// '' : 'SimModel0618/Controler/PID Controller/postSat Signal' +// '' : 'SimModel0618/Controler/PID Controller/preInt Signal' +// '' : 'SimModel0618/Controler/PID Controller/preSat Signal' +// '' : 'SimModel0618/Controler/PID Controller/Anti-windup/Disc. Clamping Parallel' +// '' : 'SimModel0618/Controler/PID Controller/Anti-windup/Disc. Clamping Parallel/Dead Zone' +// '' : 'SimModel0618/Controler/PID Controller/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' +// '' : 'SimModel0618/Controler/PID Controller/D Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller/External Derivative/Error' +// '' : 'SimModel0618/Controler/PID Controller/Filter/Disc. Forward Euler Filter' +// '' : 'SimModel0618/Controler/PID Controller/Filter ICs/Internal IC - Filter' +// '' : 'SimModel0618/Controler/PID Controller/I Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller/Ideal P Gain/Passthrough' +// '' : 'SimModel0618/Controler/PID Controller/Ideal P Gain Fdbk/Disabled' +// '' : 'SimModel0618/Controler/PID Controller/Integrator/Discrete' +// '' : 'SimModel0618/Controler/PID Controller/Integrator ICs/Internal IC' +// '' : 'SimModel0618/Controler/PID Controller/N Copy/Disabled' +// '' : 'SimModel0618/Controler/PID Controller/N Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller/P Copy/Disabled' +// '' : 'SimModel0618/Controler/PID Controller/Parallel P Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller/Reset Signal/Disabled' +// '' : 'SimModel0618/Controler/PID Controller/Saturation/Enabled' +// '' : 'SimModel0618/Controler/PID Controller/Saturation Fdbk/Disabled' +// '' : 'SimModel0618/Controler/PID Controller/Sum/Sum_PID' +// '' : 'SimModel0618/Controler/PID Controller/Sum Fdbk/Disabled' +// '' : 'SimModel0618/Controler/PID Controller/Tracking Mode/Disabled' +// '' : 'SimModel0618/Controler/PID Controller/Tracking Mode Sum/Passthrough' +// '' : 'SimModel0618/Controler/PID Controller/Tsamp - Integral/TsSignalSpecification' +// '' : 'SimModel0618/Controler/PID Controller/Tsamp - Ngain/Passthrough' +// '' : 'SimModel0618/Controler/PID Controller/postSat Signal/Forward_Path' +// '' : 'SimModel0618/Controler/PID Controller/preInt Signal/Internal PreInt' +// '' : 'SimModel0618/Controler/PID Controller/preSat Signal/Forward_Path' +// '' : 'SimModel0618/Controler/PID Controller1/Anti-windup' +// '' : 'SimModel0618/Controler/PID Controller1/D Gain' +// '' : 'SimModel0618/Controler/PID Controller1/External Derivative' +// '' : 'SimModel0618/Controler/PID Controller1/Filter' +// '' : 'SimModel0618/Controler/PID Controller1/Filter ICs' +// '' : 'SimModel0618/Controler/PID Controller1/I Gain' +// '' : 'SimModel0618/Controler/PID Controller1/Ideal P Gain' +// '' : 'SimModel0618/Controler/PID Controller1/Ideal P Gain Fdbk' +// '' : 'SimModel0618/Controler/PID Controller1/Integrator' +// '' : 'SimModel0618/Controler/PID Controller1/Integrator ICs' +// '' : 'SimModel0618/Controler/PID Controller1/N Copy' +// '' : 'SimModel0618/Controler/PID Controller1/N Gain' +// '' : 'SimModel0618/Controler/PID Controller1/P Copy' +// '' : 'SimModel0618/Controler/PID Controller1/Parallel P Gain' +// '' : 'SimModel0618/Controler/PID Controller1/Reset Signal' +// '' : 'SimModel0618/Controler/PID Controller1/Saturation' +// '' : 'SimModel0618/Controler/PID Controller1/Saturation Fdbk' +// '' : 'SimModel0618/Controler/PID Controller1/Sum' +// '' : 'SimModel0618/Controler/PID Controller1/Sum Fdbk' +// '' : 'SimModel0618/Controler/PID Controller1/Tracking Mode' +// '' : 'SimModel0618/Controler/PID Controller1/Tracking Mode Sum' +// '' : 'SimModel0618/Controler/PID Controller1/Tsamp - Integral' +// '' : 'SimModel0618/Controler/PID Controller1/Tsamp - Ngain' +// '' : 'SimModel0618/Controler/PID Controller1/postSat Signal' +// '' : 'SimModel0618/Controler/PID Controller1/preInt Signal' +// '' : 'SimModel0618/Controler/PID Controller1/preSat Signal' +// '' : 'SimModel0618/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel' +// '' : 'SimModel0618/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel/Dead Zone' +// '' : 'SimModel0618/Controler/PID Controller1/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' +// '' : 'SimModel0618/Controler/PID Controller1/D Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller1/External Derivative/Error' +// '' : 'SimModel0618/Controler/PID Controller1/Filter/Disc. Forward Euler Filter' +// '' : 'SimModel0618/Controler/PID Controller1/Filter ICs/Internal IC - Filter' +// '' : 'SimModel0618/Controler/PID Controller1/I Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller1/Ideal P Gain/Passthrough' +// '' : 'SimModel0618/Controler/PID Controller1/Ideal P Gain Fdbk/Disabled' +// '' : 'SimModel0618/Controler/PID Controller1/Integrator/Discrete' +// '' : 'SimModel0618/Controler/PID Controller1/Integrator ICs/Internal IC' +// '' : 'SimModel0618/Controler/PID Controller1/N Copy/Disabled' +// '' : 'SimModel0618/Controler/PID Controller1/N Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller1/P Copy/Disabled' +// '' : 'SimModel0618/Controler/PID Controller1/Parallel P Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller1/Reset Signal/Disabled' +// '' : 'SimModel0618/Controler/PID Controller1/Saturation/Enabled' +// '' : 'SimModel0618/Controler/PID Controller1/Saturation Fdbk/Disabled' +// '' : 'SimModel0618/Controler/PID Controller1/Sum/Sum_PID' +// '' : 'SimModel0618/Controler/PID Controller1/Sum Fdbk/Disabled' +// '' : 'SimModel0618/Controler/PID Controller1/Tracking Mode/Disabled' +// '' : 'SimModel0618/Controler/PID Controller1/Tracking Mode Sum/Passthrough' +// '' : 'SimModel0618/Controler/PID Controller1/Tsamp - Integral/TsSignalSpecification' +// '' : 'SimModel0618/Controler/PID Controller1/Tsamp - Ngain/Passthrough' +// '' : 'SimModel0618/Controler/PID Controller1/postSat Signal/Forward_Path' +// '' : 'SimModel0618/Controler/PID Controller1/preInt Signal/Internal PreInt' +// '' : 'SimModel0618/Controler/PID Controller1/preSat Signal/Forward_Path' +// '' : 'SimModel0618/Controler/PID Controller2/Anti-windup' +// '' : 'SimModel0618/Controler/PID Controller2/D Gain' +// '' : 'SimModel0618/Controler/PID Controller2/External Derivative' +// '' : 'SimModel0618/Controler/PID Controller2/Filter' +// '' : 'SimModel0618/Controler/PID Controller2/Filter ICs' +// '' : 'SimModel0618/Controler/PID Controller2/I Gain' +// '' : 'SimModel0618/Controler/PID Controller2/Ideal P Gain' +// '' : 'SimModel0618/Controler/PID Controller2/Ideal P Gain Fdbk' +// '' : 'SimModel0618/Controler/PID Controller2/Integrator' +// '' : 'SimModel0618/Controler/PID Controller2/Integrator ICs' +// '' : 'SimModel0618/Controler/PID Controller2/N Copy' +// '' : 'SimModel0618/Controler/PID Controller2/N Gain' +// '' : 'SimModel0618/Controler/PID Controller2/P Copy' +// '' : 'SimModel0618/Controler/PID Controller2/Parallel P Gain' +// '' : 'SimModel0618/Controler/PID Controller2/Reset Signal' +// '' : 'SimModel0618/Controler/PID Controller2/Saturation' +// '' : 'SimModel0618/Controler/PID Controller2/Saturation Fdbk' +// '' : 'SimModel0618/Controler/PID Controller2/Sum' +// '' : 'SimModel0618/Controler/PID Controller2/Sum Fdbk' +// '' : 'SimModel0618/Controler/PID Controller2/Tracking Mode' +// '' : 'SimModel0618/Controler/PID Controller2/Tracking Mode Sum' +// '' : 'SimModel0618/Controler/PID Controller2/Tsamp - Integral' +// '' : 'SimModel0618/Controler/PID Controller2/Tsamp - Ngain' +// '' : 'SimModel0618/Controler/PID Controller2/postSat Signal' +// '' : 'SimModel0618/Controler/PID Controller2/preInt Signal' +// '' : 'SimModel0618/Controler/PID Controller2/preSat Signal' +// '' : 'SimModel0618/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel' +// '' : 'SimModel0618/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel/Dead Zone' +// '' : 'SimModel0618/Controler/PID Controller2/Anti-windup/Disc. Clamping Parallel/Dead Zone/Enabled' +// '' : 'SimModel0618/Controler/PID Controller2/D Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller2/External Derivative/Error' +// '' : 'SimModel0618/Controler/PID Controller2/Filter/Disc. Forward Euler Filter' +// '' : 'SimModel0618/Controler/PID Controller2/Filter ICs/Internal IC - Filter' +// '' : 'SimModel0618/Controler/PID Controller2/I Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller2/Ideal P Gain/Passthrough' +// '' : 'SimModel0618/Controler/PID Controller2/Ideal P Gain Fdbk/Disabled' +// '' : 'SimModel0618/Controler/PID Controller2/Integrator/Discrete' +// '' : 'SimModel0618/Controler/PID Controller2/Integrator ICs/Internal IC' +// '' : 'SimModel0618/Controler/PID Controller2/N Copy/Disabled' +// '' : 'SimModel0618/Controler/PID Controller2/N Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller2/P Copy/Disabled' +// '' : 'SimModel0618/Controler/PID Controller2/Parallel P Gain/Internal Parameters' +// '' : 'SimModel0618/Controler/PID Controller2/Reset Signal/Disabled' +// '' : 'SimModel0618/Controler/PID Controller2/Saturation/Enabled' +// '' : 'SimModel0618/Controler/PID Controller2/Saturation Fdbk/Disabled' +// '' : 'SimModel0618/Controler/PID Controller2/Sum/Sum_PID' +// '' : 'SimModel0618/Controler/PID Controller2/Sum Fdbk/Disabled' +// '' : 'SimModel0618/Controler/PID Controller2/Tracking Mode/Disabled' +// '' : 'SimModel0618/Controler/PID Controller2/Tracking Mode Sum/Passthrough' +// '' : 'SimModel0618/Controler/PID Controller2/Tsamp - Integral/TsSignalSpecification' +// '' : 'SimModel0618/Controler/PID Controller2/Tsamp - Ngain/Passthrough' +// '' : 'SimModel0618/Controler/PID Controller2/postSat Signal/Forward_Path' +// '' : 'SimModel0618/Controler/PID Controller2/preInt Signal/Internal PreInt' +// '' : 'SimModel0618/Controler/PID Controller2/preSat Signal/Forward_Path' #endif // Controler_h_ diff --git a/src/pAUV150/Controler/Controler_data.cpp b/src/pAUV150/Controler/Controler_data.cpp index fbf551d..499169c 100644 --- a/src/pAUV150/Controler/Controler_data.cpp +++ b/src/pAUV150/Controler/Controler_data.cpp @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.37 +// Model version : 5.56 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Wed Jun 18 17:26:02 2025 +// C/C++ source code generated on : Wed Jun 18 22:52:45 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) @@ -22,12 +22,26 @@ // Block parameters (default storage) Controler::P Controler::rtP{ + // Variable: pid_depth + // Referenced by: + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' + + { + 2.0, + 0.0, + 0.0, + 10.0 + }, + // Variable: pid_heading // Referenced by: - // '/Derivative Gain' - // '/Integral Gain' - // '/Filter Coefficient' - // '/Proportional Gain' + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' { 1, @@ -38,14 +52,14 @@ Controler::P Controler::rtP{ // Variable: pid_pitch // Referenced by: - // '/Derivative Gain' - // '/Integral Gain' - // '/Filter Coefficient' - // '/Proportional Gain' + // '/Derivative Gain' + // '/Integral Gain' + // '/Filter Coefficient' + // '/Proportional Gain' { 0.5, - 0.1, + 0.0, 0.1, 10.0 } diff --git a/src/pAUV150/Controler/Controler_private.h b/src/pAUV150/Controler/Controler_private.h index cb6e490..bafc1c3 100644 --- a/src/pAUV150/Controler/Controler_private.h +++ b/src/pAUV150/Controler/Controler_private.h @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.37 +// Model version : 5.56 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Wed Jun 18 17:26:02 2025 +// C/C++ source code generated on : Wed Jun 18 22:52:45 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) diff --git a/src/pAUV150/Controler/Controler_types.h b/src/pAUV150/Controler/Controler_types.h index f740454..f871d4e 100644 --- a/src/pAUV150/Controler/Controler_types.h +++ b/src/pAUV150/Controler/Controler_types.h @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.37 +// Model version : 5.56 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Wed Jun 18 17:26:02 2025 +// C/C++ source code generated on : Wed Jun 18 22:52:45 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) diff --git a/src/pAUV150/Controler/rtGetNaN.cpp b/src/pAUV150/Controler/rtGetNaN.cpp new file mode 100644 index 0000000..a6924f2 --- /dev/null +++ b/src/pAUV150/Controler/rtGetNaN.cpp @@ -0,0 +1,50 @@ +// +// Academic License - for use in teaching, academic research, and meeting +// course requirements at degree granting institutions only. Not for +// government, commercial, or other organizational use. +// +// File: rtGetNaN.cpp +// +// Code generated for Simulink model 'Controler'. +// +// Model version : 5.56 +// Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 +// C/C++ source code generated on : Wed Jun 18 22:52:45 2025 +// +// Target selection: ert.tlc +// Embedded hardware selection: Intel->x86-64 (Linux 64) +// Code generation objectives: +// 1. Execution efficiency +// 2. RAM efficiency +// Validation result: Not run +// + +#include "rtwtypes.h" + +extern "C" +{ + +#include "rtGetNaN.h" + +} + +extern "C" +{ + // Return rtNaN needed by the generated code. + real_T rtGetNaN(void) + { + return rtNaN; + } + + // Return rtNaNF needed by the generated code. + real32_T rtGetNaNF(void) + { + return rtNaNF; + } +} + +// +// File trailer for generated code. +// +// [EOF] +// diff --git a/src/pAUV150/Controler/rtGetNaN.h b/src/pAUV150/Controler/rtGetNaN.h new file mode 100644 index 0000000..c8a9487 --- /dev/null +++ b/src/pAUV150/Controler/rtGetNaN.h @@ -0,0 +1,53 @@ +// +// Academic License - for use in teaching, academic research, and meeting +// course requirements at degree granting institutions only. Not for +// government, commercial, or other organizational use. +// +// File: rtGetNaN.h +// +// Code generated for Simulink model 'Controler'. +// +// Model version : 5.56 +// Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 +// C/C++ source code generated on : Wed Jun 18 22:52:45 2025 +// +// Target selection: ert.tlc +// Embedded hardware selection: Intel->x86-64 (Linux 64) +// Code generation objectives: +// 1. Execution efficiency +// 2. RAM efficiency +// Validation result: Not run +// +#ifndef rtGetNaN_h_ +#define rtGetNaN_h_ + +extern "C" +{ + +#include "rt_nonfinite.h" + +} + +#include "rtwtypes.h" +#ifdef __cplusplus + +extern "C" +{ + +#endif + + extern real_T rtGetNaN(void); + extern real32_T rtGetNaNF(void); + +#ifdef __cplusplus + +} // extern "C" + +#endif +#endif // rtGetNaN_h_ + +// +// File trailer for generated code. +// +// [EOF] +// diff --git a/src/pAUV150/Controler/rt_nonfinite.cpp b/src/pAUV150/Controler/rt_nonfinite.cpp index 50d8701..0e33e04 100644 --- a/src/pAUV150/Controler/rt_nonfinite.cpp +++ b/src/pAUV150/Controler/rt_nonfinite.cpp @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.37 +// Model version : 5.56 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Wed Jun 18 17:26:02 2025 +// C/C++ source code generated on : Wed Jun 18 22:52:45 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) diff --git a/src/pAUV150/Controler/rt_nonfinite.h b/src/pAUV150/Controler/rt_nonfinite.h index 92f81a3..f9a5bc6 100644 --- a/src/pAUV150/Controler/rt_nonfinite.h +++ b/src/pAUV150/Controler/rt_nonfinite.h @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.37 +// Model version : 5.56 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Wed Jun 18 17:26:02 2025 +// C/C++ source code generated on : Wed Jun 18 22:52:45 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64) diff --git a/src/pAUV150/Controler/rtwtypes.h b/src/pAUV150/Controler/rtwtypes.h index a9cbcb3..d228e9d 100644 --- a/src/pAUV150/Controler/rtwtypes.h +++ b/src/pAUV150/Controler/rtwtypes.h @@ -7,9 +7,9 @@ // // Code generated for Simulink model 'Controler'. // -// Model version : 5.37 +// Model version : 5.56 // Simulink Coder version : 24.2 (R2024b) 21-Jun-2024 -// C/C++ source code generated on : Wed Jun 18 17:26:02 2025 +// C/C++ source code generated on : Wed Jun 18 22:52:45 2025 // // Target selection: ert.tlc // Embedded hardware selection: Intel->x86-64 (Linux 64)